|
| 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 |
| |
| |
| | | |
|
| | | | |
| | |
|