对LED板进行编程时,计算X的校验和或数据内容的结果



我正在编程一个应用程序,以便与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);

最新更新