Télécharger Imprimer la page

RealTrace RT 250 Mode D'emploi page 15

Masquer les pouces Voir aussi pour RT 250:

Publicité

Annexe 1 Algorithme de calcul d'un mot de control CRC-CCITT-16bits
Le code source C ANSI de la fonction permettant de calculer un mot de control d'une chaîne de
caractères terminant par le caractère "/x00" est décrit ci-dessous. L'aplet JAVA du site Internet
«
http://www.zorc.breitbandkatze.de/crc.html
Auparavant, il faut remplir correctement les champs avant d'effectuer le calcul de CRC et vérifier pour
la chaîne de caractère "123456789", que le mot de control est égal à 0xE5CC.
/*=======================================================================*/
/* Function that calculates CRC-CCITT 16 bits
/* INPUT:
/*
unsigned char *inbuffer : 8 bits input vector over which CRC checksum is calculated
/*
/* OUTPUT:
/*
unsigned int: 16 bits return of crc_ccitt checksum
/*=======================================================================*/
/* OVERVIEW:
/*
Width = 16 bits
/*
Truncated polynomial = 0x1021
/*
Initial value = 0xFFFF
/*
No XOR is performed on the output CRC
/* DESCRIPTION:
/*
Computing a POLY number from the crc equation.
/*
Crc s are usually expressed as an polynomial expression such as:
/*
/*
x^16 + x^12 + x^5 + 1
/* CHECK
/*
0xE5CC This is the checksum for the ascii string "123456789"
/* EXAMPLE
/* http://www.zorc.breitbandkatze.de/crc.html
*=======================================================================*/
#define crc_poly 0x1021
unsigned int crc_ccitt16 (unsigned char *inbuffer) {
unsigned int crc_checksum = 0xffff;
unsigned char ch;
char i,xor_flag;
while ( *inbuffer!=0)
{
ch = *inbuffer++;
for(i=0; i<8; i++)
{
xor_flag=(crc_checksum & 0x8000)? 1:0;
», vous permet aussi de calculer le mot de control.
must termined by 0x00
// Polynome du CRC-CCITT-16Bits
15

Publicité

loading