59 lines
1.5 KiB
C#
59 lines
1.5 KiB
C#
namespace TBF.Rig.RegisterReaders.iPerlASICReader.communication.C4.hexLogger
|
|
{
|
|
public static class HexFormatter
|
|
{
|
|
/// <summary>
|
|
/// Formats a single byte as 0xNN.
|
|
/// Example: 0x0D
|
|
/// </summary>
|
|
public static string ToHex(byte value)
|
|
{
|
|
return "0x" + value.ToString("X2");
|
|
}
|
|
|
|
/// <summary>
|
|
/// Formats a byte array as 0xNN 0xNN ...
|
|
/// </summary>
|
|
public static string ToHex(byte[] data)
|
|
{
|
|
if (data == null || data.Length == 0)
|
|
return "<empty>";
|
|
|
|
var sb = new System.Text.StringBuilder();
|
|
|
|
for (int i = 0; i < data.Length; i++)
|
|
{
|
|
if (i > 0)
|
|
sb.Append(' ');
|
|
|
|
sb.Append("0x");
|
|
sb.Append(data[i].ToString("X2"));
|
|
}
|
|
|
|
return sb.ToString();
|
|
}
|
|
|
|
/// <summary>
|
|
/// Formats a byte array exactly as shown in serial terminals.
|
|
/// Example: "0D 04 08 01 00 1A"
|
|
/// </summary>
|
|
public static string ToSerialHex(byte[] data)
|
|
{
|
|
if (data == null || data.Length == 0)
|
|
return string.Empty;
|
|
|
|
var sb = new System.Text.StringBuilder();
|
|
|
|
for (int i = 0; i < data.Length; i++)
|
|
{
|
|
if (i > 0)
|
|
sb.Append(' ');
|
|
|
|
sb.Append(data[i].ToString("X2"));
|
|
}
|
|
|
|
return sb.ToString();
|
|
}
|
|
}
|
|
|
|
} |