Einzelnen Beitrag anzeigen

Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#8

AW: Chromoflex mit Delphi ansteuern

  Alt 18. Aug 2010, 14:46
Da stimmt aber das Ergebnis nicht mit der anderen funktion aus C# überein.
CRC-16 gibt es ja auch in unterschiedlichen Varianten.

Ich habe mal versucht das C# 1 zu 1 zu übersetzen:
Delphi-Quellcode:
procedure CalculateCrc16(var buffer: array of byte; index: integer);
var
  crc: word {UInt16};
  i, j: integer;
begin
  crc := $FFFF;
  for i := 0 to index - 1 do
  begin
    crc := crc xor buffer[i];
    for j := 0 to 7 do
    begin
      // process each bit
      if ((crc and 1) = 1) then
      begin
        crc := crc shr 1;
        crc := crc xor $A001;
      end
      else
        crc := crc shr 1;

    end;
  end;
  // write crc in buffer
  buffer[index] := crc div 256;
  buffer[index + 1] := crc mod 256;
end;
Er scheint den CRC-Code der ersten index Bytes zu bereichnen und ihn an die Stelle index und index+1 zu schreiben (und das afaik BigEndian).

EDIT: Code compiliert, aber nicht weiter getestet.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.

Geändert von BUG (18. Aug 2010 um 14:50 Uhr)
  Mit Zitat antworten Zitat