用C#自制串口助手的发送栏接收的字符串转化为16进制的可用方法
目的:
用c#自己制作一个串口助手,在发送框内可以发送普通的字符串,也可以发送字符串形式的16进制数。对于此过程的字符串转化为16进制数研究了一段时间,发现如下可行方法。
方法:
public static void Write(ChangeType type, string sendData)
{
switch (type)
{
case ChangeType.String:
serial.Write(sendData);
break;
case ChangeType.Hex:
string[] s = sendData.Trim().Split(' ');
byte[] b = new byte[s.Length];
for (int i = 0; i < s.Length; i++)
{
b[i] = Convert.ToByte(s[i], 16);
}
serial.Write(b,0,b.Length);
break;
}
}
这里写入了一个类的静态方法:输入参数为自定义的一种枚举类型和字符串。
当选择使用16进制形式发送时运行第二种情况。
这段程序的思想是:
1,将输入的字符串头尾去掉空格,并以字符串中间部分的空格分割成多个字符串数组。
2,定义一个字符串数组长度的byte数组。
3,对字符串数组使用Convert.ToByte方法,第一个参数为需要转化的字符串,第二个参数为表示转16进制字节。
4,遍历每一个字符串数组,获取到处理后的byte数组。
5,用串口发送byte数组,从0字节偏移开始,发送byte数组内元素个数个字节。
部分截图: