Wale głową w ścianę próbując zaimplementowac algorytm wyliczający bajt kontrolny w javie bezskutecznie.
Innymi słowy tą pascalowa funkcję:
function CalcCRC(Data: string): string;
var
CRC: byte;
i: integer;
begin
CRC := 255;
for i := 1 to Length(Data) do
CRC := CRC xor byte(Data[i]);
Result := IntToHex(CRC, 2);
end;
musze zamienić na funkcje JAVA i jak do tej pory wyprodukowałem to:
private String checksum(String data) {
int crc = 255;
for (int i = 0; i < data.length(); i++) {
char character = data.charAt(i);
crc = crc ^ Character.getNumericValue(character);
}
return Integer.toHexString(crc);
}
To jednak najwyraźniej nie wyliczy prawidłowo tego bajtu kontrolnego