Super !
Meuh non c'est pas compliqué. Je parie que je peux te donner un cours de chinois accéléré.
Ton compteur EDF t'envoie des trames.
Chaque trame est une suite de caractères, dont le format est défini à partir de la page 11 du document ci-dessous
http://www.erdfdistribution.fr/medias/DTR_Racc_Comptage/ERDF-NOI-CPT_02E.pdf
Prend un moment pour lire la spécification et la comprendre. C'est tout à fait accessible.
La trame que tu as reçue fait 141 caractères.
C'est ce qui s'affiche dans ton moniteur série, à raison de 20 caractères par ligne.
Comme tous les caractères reçus du compteur ne sont pas affichables tels quels directement, je les ai tous affichés dans le moniteur série sous forme de 4 caractères :
1er et 2nd caractères : la valeur hexadécimale du caractère reçu
3ème caractère : le caractère reçu si affichable (* si non affichable)
4ème caractère : un séparateur blanc
Ainsi, correctement présenté, cela donne
02* 0A* 41A 44D 43C 4FO 20 300 322 311 322 322 388 355 355 322 377 333 377 20
43C 0D* 0A* 4FO 50P 54T 41A 52R 49I 46F 20 42B 41A 53S 45E 20 300 0D* 0A* 49I
53S 4FO 55U 53S 43C 20 366 300 20 3C< 0D* 0A* 42B 41A 53S 45E 20 300 300 322
366 333 377 388 333 333 20 2B+ 0D* 0A* 50P 54T 45E 43C 20 54T 48H 2E. 2E. 20
24$ 0D* 0A* 49I 49I 4EN 53S 54T 20 300 300 366 20 5D] 0D* 0A* 49I 4DM 41A 58X
20 300 355 399 20 4DM 0D* 0A* 50P 41A 50P 50P 20 300 311 333 333 300 20 28(
0D* 0A* 4DM 4FO 54T 44D 45E 54T 41A 54T 20 300 300 300 300 300 300 20 42B 0D*
03*
Si je lis la première ligne : les caractères reçus sont :
0x02 (non affichable)
0x0A (non affichable)
0x41 (A)
0x44 (D)
0x43 (C)
0x4F (O)
0x20 (blanc)
etc.
Cela correspond bien pile poil à ce qui est annoncé dans la doc ERDF.
On retrouve bien les balises annoncées (0x02, 0x0A, 0x0D, 0x03, ...)
Et en clair, cela donne
ADCO=021228552737 (checksum=C)
OPTARIF=BASE (checksum=0)
ISOUSC=60 (checksum=<)
BASE=002637833 (checksum=+)
PTEC=TH.. (checksum=$)
IINST=006 (checksum=])
IMAX=059 (checksum=M)
PAPP=01330 (checksum=()
MOTDETAT=00000 (checksum=B)
Ton compteur t'envoie 9 étiquettes.
Tu as un abonnement de base (c'est-à-dire pas d'option heure creuse, ni EJP)
L'intensité souscrite est de 60 A
Ton index de consommation est à 2637833 Wh
L'intensité instantanée tirée au moment de le trame était de 6 A
L'intensité maxi délivrable est de 59 A
Etc. Tout est dans la doc, y compris la méthode à utiliser pour recalculer le checksum et vérifier l'intégrité des données reçues.
A partir de là, techniquement le plus dur est fait.
En terme de programmation, il s'agit juste de manipuler une suite de 141 caractères pour en extraire les informations qui t'intéressent.
C'est du C de base