Solche änderungen mußt du natürlich selber machen (der Code weiß ja nicht was du da berechnen willst und berechnet daher nur das "einfach" CRC32)
PS: ist die "Frame Check Sequence" nicht CRC16?
hmmmmmmm?
hier klingt es nach CRC16:
http://de.wikipedia.org/wiki/Frame_Check_Sequence (mit 16 Bit verwendet)
aber hier nach CRC32:
http://de.wikipedia.org/wiki/Datenframe (4 Byte)
nach dem Aufbau in
http://de.wikipedia.org/wiki/Datenframe würde ich die Brechnung wohl irgendwie in dieser Richtung vermuten:
Delphi-Quellcode:
Var CRC: ThxCRC32;
Temp, FCS: LongWord;
CRC.InitT(CRC32Table04);
CRC.Init;
CRC.Update(@SOF, 1);
Temp := not PLongWord(@DestMAC)^;
CRC.Update(@Temp, 4);
CRC.Update(@DestMAC + 4, 2);
Temp := not PLongWord(@SrcMAC)^;
CRC.Update(@SrcMAC, 4);
CRC.Update(@SrcMAC + 4, 2);
CRC.Update(@TypeOrLength, 2)
CRC.Update(@Data, DataLength);
CRC.Final;
FCS := not CRC{.asBin};
(also falls du nicht den ganten FrameBuffer kopieren und darin direct die entsprechenden Stellen invertieren willst)