有那位大哥可以帮我看看这个LRC的较验码错在那里,为什么我在用Modbus协议发送数据时有时是可以有时是不可以的。 public string LRC(string str)
{
int d_lrc = 0;
string h_lrc = "";
int l = str.Length;
for (int c =1; c < l; c = c + 2)
{
string c_data = str.Substring(c, 2);
d_lrc = d_lrc + Convert.ToInt32(c_data,16);
}
d_lrc = d_lrc % 0xff;
d_lrc = ~d_lrc;
d_lrc = d_lrc + 1;
h_lrc=Convert.ToString( d_lrc ,16);
if (h_lrc.Length < 2)
return h_lrc.ToUpper();
return h_lrc.Substring(h_lrc.Length - 2, 2).ToUpper();
}参数的格式是 :0106210000...
{
int d_lrc = 0;
string h_lrc = "";
int l = str.Length;
for (int c =1; c < l; c = c + 2)
{
string c_data = str.Substring(c, 2);
d_lrc = d_lrc + Convert.ToInt32(c_data,16);
}
d_lrc = d_lrc % 0xff;
d_lrc = ~d_lrc;
d_lrc = d_lrc + 1;
h_lrc=Convert.ToString( d_lrc ,16);
if (h_lrc.Length < 2)
return h_lrc.ToUpper();
return h_lrc.Substring(h_lrc.Length - 2, 2).ToUpper();
}参数的格式是 :0106210000...
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货