Algorytm obliczania bajtu kontrolnego dla drukarki Posnet Thermal

0

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

0
    private String checkSum(String s)
    {
        int suma = 255;
        byte[] bufor = s.getBytes();
        for (int i=0;i<bufor.length;i++)
        {
            suma = suma^bufor[i];
        }
        String result = Integer.toHexString(suma);
        return result;
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1