modbus
通信。我试图得到实际上是一个字符串的帧的长度。 while (reader.Read())
{
data.Add(reader["read_param"].ToString());
}
var single = string.Join("",data);
结果字符串是
4A601933906620468040204220442040004200404020602260246
根据文档,长度为1B
中的hex
和27
中的decimal
但是当我尝试获得长度
int length = combine.Length;
时,我正在获得53
。如何在HEX
中获取它?任何帮助将不胜感激。
combine.Length
获得的53是转换后的字符串的长度,从modbus协议获得的0x1B
是字节字符串的长度。您将获得53个字符串字符,而不是54个字符串字符,因为其中一个字节可能是0x0X,因此开头的零被剥夺了。我不确定您使用的是哪个阅读器,但是如果它读取的是字节,则可以添加一个计数器来确定modbus消息的长度。
所以编码后的字符串可以比字符串中的字符具有更多的字节。