我正在开发的软件与称重模块之间进行通讯。我面临以下问题: 我从CHAR的串行端口接收数据,但是直到127,之后我才开始接收“?”并转换为“ 63”。 有一种以十六进制形式接收消息的方法,或者您还有其他解决方案吗?因为我需要其余的数字从127到255。
SerialPort1.Write(message1)
message = SerialPort1.ReadLine()
peso1 = message.Chars(2)
value1 = Convert.ToInt32(peso1)
If pes2 = "?" Then
value2 = 0
If peso1 = "?" Then
value1 = 0
End If
End If
pes2 = message.Chars(1)
value2 = Convert.ToInt32(pes2)
pes3 = message.Chars(0)
value3 = Convert.ToInt32(pes3)
valuef = value1 + value2*255
TextBox1.Text = valuef
'
tv1.Text = value1
tv2.Text = value2
tv3.Text = value3
答案 0 :(得分:0)
如果设备正在发送ASCII字符,则串行端口的编码必须是定义了256个值的东西。我相信这是一个。
System.Text.Encoding.GetEncoding(28591)
在不知道设备协议的情况下,很难给出更好的答案。