从HEX的驱动程序获得答案

时间:2018-07-02 12:09:54

标签: vb.net visual-studio serial-port ascii

我正在开发的软件与称重模块之间进行通讯。我面临以下问题: 我从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

1 个答案:

答案 0 :(得分:0)

如果设备正在发送ASCII字符,则串行端口的编码必须是定义了256个值的东西。我相信这是一个。

 System.Text.Encoding.GetEncoding(28591)

在不知道设备协议的情况下,很难给出更好的答案。