Bonjour,

J'utilise ce code pour générer un CRC8 d'une trame avant de l'envoyer via RS232 à mon PC. Mon application PC dois générer ce même crc pour la valider ou non et là ... mes connaissances en VB semblent montrer leur limite :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char GetChkSum(char *d,char len)
{    
static char i,t;
 
t=0;            // occhio all'inizializzazione, se t diventa static!!! 
do {         
ClrWdt();
t ^= *d++;
for(i=0; i<8; i++)
	{ 
if(t & 0x80) t = (t << 1) ^ 0x85;else t <<= 1;
	}         
}while(--len);
 
return t;
}
voici mon debut de traduction en VB qui doit se rapprocher de la solution mais j'ai du mal avec les decallage d'octets les Xor ....

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    Private Function CRC8(ByVal d() As Byte, ByVal longueur As Integer) As Byte
        Dim i As Integer
        Dim j As Integer
        Dim t As Byte



        t = 0
        For j = 0 To longueur - 1
            t = t xor d[j]
            For i = 0 To 7
                if (t & 0x80)
                t = (t << 1) Xor 0x85
                Else
                    t <<= 1
            Next        Next

return t;
    End Function
Merci d'avance pour votre aide