philou77 a écrit : ↑09 févr. 2022, 00:46
Salut !
01 Esclave
0F Fonction
01 Adresse départ (hi byte)
00 Adresse départ (Low Byte)
00 Nombre de Bits ( Hi byte)
80 Nombre de Bits (low byte)
10 Nombre d'octets
04 Byte 1 (8 bits) (hi Byte) adresses #100 à #107 (256 à 263)
00 Byte 2 (8 bits) (Low Byte) adresse #108 à #10F (264 à 271)
00 Byte 3 (8 bits) (hi Byte) adresse #110 à #117 (272 à 279)
00 Byte 4 (8 bits) (Low Byte) adresse #118 à #11F (280 à 287)
00 Byte 5 (8 bits) (hi Byte) adresse #120 à #127 (288 à 295)
04 Byte 6 (8 bits) (Low Byte) adresse #128 à #12F (296 à 303)
00 Byte 7 (8 bits) (hi Byte) adresse #130 à #137 (304 à 311)
00 Byte 8 (8 bits) (Low Byte) adresse #138 à #13F (312 à 319)
04 Byte 9 (8 bits) (hi Byte) adresse #140 à #147 (320 à 327)
01 Byte 10 (8 bits) (Low Byte) adresse #148 à #14F (328 à 335)
02 Byte 11 (8 bits) (hi Byte) adresse #150 à #157 (336 à 343)
06 Byte 12 (8 bits) (Low Byte) adresse #158 à #15F (344 à 351)
00 Byte 13 (8 bits) (hi Byte) adresse #160 à # 167 (352 à 359)
10 Byte 14 (8 bits) (Low Byte) adresse #168 à #16A (360 à 367)
00 Byte 15 (8 bits) ( hi Byte) adresse #170 à # 1177 (368 à 375)
00 Byte 16 (8 bits) (Low Byte) adresse #178 à #17F (376 à 383)
82 CRC
3C CRC
Si le nombre de bits à écrire n'est pas un multiple de 8, alors les bits non utilisés dans le dernier Byte doivent être à 0
Tes bits sont censés être rangés de la manière suivante
Adresse 100 (de départ)
107-106-105-104-103-102-101-100
-----Hi Byte ---------------------------
115-114-113-112-111-110-109-108
-----Low Byte -------------------------
Etc.....
Dans ta trame
04 Byte 1 (8 bits) ( hi Byte) adresses #100 à #107 (256 à 263)
ton octet vaut 4 donc 3ème bit à 1
le 3eme bit à 1 du Hi Byte (en partant de la droite) est bien l'adresse #102 = 258 (ton alarme qui est activée)
04 Byte 6 (8 bits) (Low Byte) adresse #128 à #12F (296 à 303)
le 3eme bit à 1 du low Byte (en partant de la droite) est bien l'adresse #12A = 298 (ton alarme qui est activée)
N'oublies pas que tu veux écrire des bits mais ils sont contenus dans des octets !!
Tu écris donc 8 bits d'un coup, dans ton cas en écrivant 16 octets, tu écris les 128 bits d'un coup, à chaque fois !!
etc... je vais pas décoder toute la trame , à toi de jouer un peu...
Fais-toi un classeur excel pour pouvoir mettre les bonnes valeurs aux bons endroits pour activer tes alarmes !