PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → C vers Windev
C vers Windev
Iniciado por oliversoft59, 16,abr. 2020 18:19 - 1 respuesta
Miembro registrado
1 mensaje
Publicado el 16,abril 2020 - 18:19
J'ai un petit algorythme en langage C qui effectue un calcule de CRC
quelqu'un pourrait il m'aider à le traduire en langage windev?
Merci bcp

#define TCP_CRC_8_SEED 0x55
#define TCP_CRC_8_POLY 0xD5

unsigned char cal_crc_8_tcp(unsigned char l, unsigned char* p, unsigned char seed, unsigned char poly)
{
int i = 0;
unsigned char crc = seed;
do
crc = crc ^ p[i++];
while(i<l);

return crc;
}

//txBufferLength = Your packet data lenght
//txData = Your packet data

unsigned char crc = cal_crc_8_tcp(txBufferLength, txData, TCP_CRC_8_SEED, TCP_CRC_8_POLY);

unsigned char crcL = "0123456789ABCDEF"[(unsigned char)(crc & 0x0F)];
unsigned char crcH = "0123456789ABCDEF"[(unsigned char)((crc >> 4) & 0x0F)];
Miembro registrado
948 mensajes
Publicado el 16,abril 2020 - 20:25
Bonjour
Sauf erreur de ma part cela devrais ce traduire par (j'ai simplifié un max et il faut tester que taille(p) >0)
cal_crc_8_tcp(p est une chaîne)

i est un entier
crc est un entier sans signe sur 1 octet = 0x55

FOR i=1 _TO_ Taille(p)
crc = crc || Asc(p[[i]])
END
RENVOYER crc


crcH = PoidsFort(crc,1)
crcL = PoidsFaible(crc,1)


--
« L'erreur ne devient pas vérité parce qu'elle se propage et se multiplie ; la vérité ne devient pas erreur parce que nul ne la voit. » Gandhi