Herunterladen Inhalt Inhalt Diese Seite drucken

Umsetzungsempfehlung; Crc Prüfsummen-Berechnung - Wenglor weCat3D MLSL-Serie Betriebsanleitung

2d-/3d-profilsensoren
Inhaltsverzeichnis

Werbung

Tag
Tag size
in bytes
Total size

11.8 Umsetzungsempfehlung

Zur einfachen Umsetzung empfiehlt es sich, einen komplexen Datentyp in der Struktur des Containers zu
definieren. Die Bits des Containers werden in den komplexen Datentyp kopiert. Details finden Sie im bereit-
gestellten SDK-Beispiel.
11.9 CRC Prüfsummen-Berechnung
Die CRC-Prüfsumme kann mithilfe des folgenden Algorithmus berechnet werden, der als Code-Snippets
bereitgestellt wird.
Definitionen in der Header-Datei:
#define CRCPOLYNOMIAL 0x04C11DB7L
/*!
* Function to calculate the CRC checksum of the container tag.
* \param[in] crc_accum start value of CRC calculation
* \param[in] *data_blk_ptr pointer to the data in the container tag
* \param[in] data_blk_size size of the data set equals to container size - 4
* \return value of the calculated checksum
*/
unsigned int CalculateCRC(unsigned int
unsigned int
data_blk_size);
Implementierung der Funktion:
unsigned int CalculateCRC(unsigned int
unsigned int
data_blk_size)
{
register unsigned int
unsigned int
boolean bCRCTableInitialize
if
(data_blk_size
{
return
0;
}
if
(bCRCTableInitialize
{
2D-/3D-Profilsensoren
Offset
0
1
2
3
in bytes
12992
i, j;
uiCRCTable[256];
> 10000000)
== false)
4
5
6
7
Tag element
CRC-Sum (32 bit CRC Polynom
0x04C11DB7)
crc_accum,
crc_accum,
= false;;
*data_blk_ptr,
unsigned char
*data_blk_ptr,
unsigned char
Content
2607141061
147

Werbung

Inhaltsverzeichnis
loading

Inhaltsverzeichnis