我正在编程一个应用程序,以便与LED指示板进行通信。程序设计语言是Processing。一个典型的请求如下:
<ID01><L1><PA><FE><MA><WC><FE>Probe3E<E>
其中3E是校验和。文档中说校验和"表示数据内容的X或结果"。我不是一个真正的编码忍者,所以我不太清楚如何编码。
我发现了一个据称在Delphi中编码的工作示例,但无法将其转移到Processing:
Function SimpleCheckSum (const MyMessage : String) : byte;
Var res : byte;
i : integer;
Begin
res := ord(MyMessage[1]);
for i:=2 to length(MyMessage) do
res := res XOR ord(MyMessage[i]);
result := res;
End;
非常感谢您的帮助和/或想法!
经过数小时的研究和测试,询问者能够正确计算校验和:
String myCommand = "<L1><PA><FE><MA><WC><FE>test"; // result should be: 62
byte res = 0;
for(int i=0; i<myCommand.length(); i++){
res ^= byte(myCommand.charAt(i));
}
String checksum = hex(res);