欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

这个诡谲的串口设备指令

更新时间: 2014-01-05 03:14:43 责任编辑: Author_N1

 

这个诡异的串口设备指令
最近在调试一台国外的串口设备。该设备的指令结构为开始符-地址-指令-参数(可选)-结束符-校验码。例如指令{A?}Z,其中{和}分别为开始符和结束符,省略地址,A?为指令,Z就是那该死的校验码。现在的问题是依据说明书上的计算公式,得不到该校验码。
原文是
the checksum byte is the sum modulo 95 of all message characters begining with the header byte up to and including the trailer byte.
the value 32 is subtracted from each character value before taking the modulo95 sum. the value 32 is added to the final sum to obtain the Checksum value. all values are in decimal.
 Checksum=Mod[(character value-32),95]+32
以指令{A?}Z为例,我的计算步骤是首先计算{、A、?和}的十进制ASCII码之和,然后减去32,再模95,最后和32相加,得到的值为91,而Z的ASCII值是90.怎么算都不对。请各位帮忙看看吧
--参考方法--
他上面没说用ASCII加啊,你直接加的看看
--参考方法--
每一个字符(each cahracter)ASCII 码都要减 32。

{: 123 - 32 = 91
A:  65 - 32 = 33
?:  63 - 32 = 31
}:  125 - 32 = 93

((91 + 33 + 31 + 93) Mod 95) + 32 = 90
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 03:14:43
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/20015/
本文WWW.DOC100.NET DOC100.NET版权所有。