Hallo,
ich versuche momentan ein serielles Kommunikationsprotokoll zu
implementieren. Dazu benötige ich jedoch am Ende eine Checksumme.
Leider existieren keine Herstellerangaben, jedoch habe ist ein Beispiel
in "perl" gefunden.
1 | sub checksum16 ($) {
|
2 | # calculates the checksum 16 of the given string argument
|
3 | my @bytes = unpack("C*", $_[0]);
|
4 | my $sum = 0;
|
5 | foreach(@bytes) {
|
6 | $sum += $_;
|
7 | $sum %= 2**16;
|
8 | }
|
9 | return $sum;
|
10 | }
|
Bedauerlicherweise habe ich mit Perl noch nie gearbeitet. Kann mir
jemand erklären, wie die Summe berechnet wird?
MfG
pindrei