Bonjour à tous,
Je bricole actuellement sur des modules radio .
Pour leurs configuration je dois pouvoir dialoguer avec eux. Afin d'envoyer des paramétres il faut dans ma trame que j'envoi un checksum .
J'ia des exemples mais je ne comprends pas comment ce checksum est calculé.
Un bon exemple vaut certainement un long discours, surtout que je ne connais pas bien .
Voici un extrait de la notice :
En prenant une commande exemple :8 The command interface
In the command mode, communication with the module occurs in the form of predefined commands. These commands must be sent in telegrams according to the format described in Table 3.
Start signal
Command
No. of data
Data (var.)
Checksum
Table 3 Telegram format in the command mode
Start signal: STX = 0x02
Command: One of the predefined commands according to section 13 (1 byte)
No. of data: Specifies the number of data in the following field of variable length and is limited to 128 in order to prevent buffer overflow (1 byte)
Data: Variable number of data or parameters (maximum 128 byte, LSB first)
Checksum: XOR relation of the preceding fields including the start signal STX, i.e. 0x02 ^ command ^ no. of data ^ data byte 0 ... (1 byte)
Je rentre donc cela dans realterm relié a mon module :0x02 0x0B 0x00 0x098.2.1 CMD_SERIALNO_REQ
This command can be used to query the individual serial number of the module.
Format:
0x02 0x0B 0x00 0x09
Return:
0x02 0x4B 0x04 < 4-byte serial number > < CS >
Contrary to most other mulit-byte parameters this function returns MSB first. Which means that the first returned byte of the Serial number is the Product-ID (PID).
la réponse est : 02 4B 04 0B 00 F4 69 DB
JE n'arrive pas a retomber sur mon DB comme checksum.
Y'a forcement un truc que je ne saisi pas dans la traduction ou la façon de calculer mais quoi ?
Merci a vous si vous avez une idée !
Je pourrais vous sortir d'autre exemples si cela s’avère nécessaire pour vous.
-----