1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
Sub Calcul_checksum()
Dim TabEnvoyé As Byte() = New Byte(12) {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
TabEnvoyé(0) = &H2 ' initialisation_connection(0)
TabEnvoyé(1) = &H3F ' initialisation_connection(1)
TabEnvoyé(2) = &H30 ' Id(0)
TabEnvoyé(3) = &H31 ' Id(1)
TabEnvoyé(4) = &H31 ' Id(2)
TabEnvoyé(5) = &H44 ' Type_registre(0)
TabEnvoyé(6) = &H52 ' Type_registre(1)
TabEnvoyé(7) = &H48 ' Registre(0)
TabEnvoyé(8) = &H52 ' Registre(1)
TabEnvoyé(9) = &H30 ' Nb_registre(0)
TabEnvoyé(10) = &H31 ' Nb_registre(1)
TabEnvoyé(11) = &H30 ' Nb_registre(2)
TabEnvoyé(12) = &H31 ' Nb_registre(3)
Dim Somme As Integer = 0
' Calcul du Cheksum de la trame Envoyé
For Each x As Byte In TabEnvoyé
Somme = Somme + x
Next
'Dans la trame envoyé : on a forcement 709 (>255) ou 2C5 en Hexa donc représenté sur 3 digits en hexa
Dim bt As Byte() 'je declare bt qui est un octet
bt = BitConverter.GetBytes(Somme) 'Retourne la valeur de l'entier non signé 32 bits spécifié sous la forme d'un tableau d'octets.
Dim a1 As String = Hex(bt(0)) 'dans a1 j'aurais C5
Dim aa As String = Hex(Somme)
End Sub |
Partager