Community Forum

    • Register
    • Login
    • Search
    • Blog
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups

    erreur trame TIC ADCO ?

    Téléinfo
    3
    10
    91
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • G
      Géryko last edited by

      Bonjour à tous,

      Je débute et je teste la librairie LibTeleinfo avec un esp32 mais avec Teleinfo_DenkyD4.ino
      (V1.01 2021-04-18 - Refactored for Denky D4 standalone test only)

      Tout semble fonctionner mais il y a une erreur sur la variable ADCO.
      Affiche 2147483647 au lieu de 031762023755.
      La donnée sur la trame traitée n'est pas celle reçue et affichée ! (voir ci- dessous)

      Y a t'il moyen de corriger cela ?
      Nota : sur la version esp32 (ESP32.ino) la valeur ADCO était correcte.

      Merci à vous.

      ... HHPHC A ,
      MOTDETAT 000000 B
      <ETX>

      <STX>
      ADCO 031762023755 @
      OPTARIF BASE 0
      ISOUSC 30 9
      BASE 015572905 -
      PTEC TH.. $
      IINST 002 Y
      IMAX 090 H
      PAPP 00490 .
      HHPHC A ,
      MOTDETAT 000000 B
      {"ADCO":2147483647, "OPTARIF":"BASE", "ISOUSC":30, "BASE":15572905, "PTEC":"TH..", "IINST":2, "IMAX":90, "PAPP":490, "HHPHC":"A", "MOTDETAT":0}
      <ETX>

      <STX>
      ADCO 031762023755 @
      OPTARIF BASE 0
      ISOUSC 30 9 ...

      G 1 Reply Last reply Reply Quote
      • G
        Géryko last edited by

        Bonjour,
        Question subsidiaire :
        J'ai actuellement un contrat basique (pas de HP-HC) et une TIC Linky "historique".
        Si j'ai bien compris, en passant en TIC "standard" je n'aurai aucune information supplémentaire ?

        Correct ou pas ?
        Merci.

        1 Reply Last reply Reply Quote
        • G
          Géryko @Géryko last edited by Géryko

          @Géryko said in erreur trame TIC ADCO ?:
          Sur mon 1er message :

          Nota : sur la version esp32 (ESP32.ino) la valeur ADCO était correcte.

          Je ne suis plus sûr de mon coup ?
          Sur la version "basique" il y avait le même problème mais je ne l'avais pas remarqué.

          1 Reply Last reply Reply Quote
          • G
            Géryko last edited by

            Bonjour,

            Remarques :

            1. Un indice : 2147483647 (dec) = 7fffffff (hex) "Comme c'est bizarre !"
              Je ne suis pas assez connaisseur pour trouver la cause du problème.

            2. Sans rapport avec le problème principal.
              Lorsque je créer un faux checksum sur une des étiquettes, l'affichage de cette étiquette ne se fait pas OK, mais je n'ai aucun signalement !
              Comment faire pour afficher les problèmes sur le moniteur ?
              genre ligne 901 du .cpp : TI_Debugf(PSTR("LibTeleinfo::checkLine Err checksum 0x%02X != 0x%02X"), calc_checksum, checksum);

            Merci à vous.

            Nicolas Bernaerts 1 Reply Last reply Reply Quote
            • Nicolas Bernaerts
              Nicolas Bernaerts @Géryko last edited by Nicolas Bernaerts

              @Géryko ADCO doit être traité comme un long long pour être géré en valeur numérique. Sinon, il faut le traiter en string.

              1 Reply Last reply Reply Quote
              • G
                Géryko last edited by Géryko

                Bonjour Nicolas Bernaerts,
                et merci pour ta réponse.

                Mais comme je l'ai écrit, c'est un problème de la bibliothèque LibTeleinfo que je ne sais pas traiter.
                Pour l'instant je n'ai rien programmé. L'anomalie est présente avec les exemples fournis.
                je ne suis pas assez "performant". en programmation.

                Je vais quand même y jeter un oeil sur les déclarations mais ???
                En clair, que faudrait-il modifier ?

                PS : à priori, toutes les données sont des "char".

                1 Reply Last reply Reply Quote
                • G
                  Géryko last edited by

                  Bonsoir à tous,

                  Le viens de faire des tests complémentaires.

                  Si ADCO est < à 2147483647 c'est OK ( 7fffffff (hex) 2^31 )
                  Si ADCO est > à 2147483647 c'est mauvais.

                  Mais je ne comprends pas comment cette valeur est déclarée ?
                  Il n'y a que du char dans la librairie LibTeleinfo.h et LibTeleinfo.cpp !

                  Quelqu'un peut-il m'aider à résoudre ce petit problème ?
                  Merci

                  1 Reply Last reply Reply Quote
                  • G
                    Géryko last edited by

                    Bonsoir à tous,

                    J'ai trouvé et résolu le problème.

                    Dans le fichier .ino il y a : Serial.print(atol(me->value));
                    Il faut : Serial.print(me->value);
                    Car "atol" convertit en long alors que (me->value) = 12 chiffres.
                    Merci

                    1 Reply Last reply Reply Quote
                    • G
                      Géryko last edited by

                      Bonjour,
                      Autre possibilité, mettre :
                      (strlen(me->value) > 9) ? SERIAL_DEBUG.print(me->value) : SERIAL_DEBUG.print(atoi(me->value));

                      Mais transformer String en nombre ne sert quasiment à rien pour l'afficher ?
                      (hormis effacer le zéros non significatifs et revérifier qu'il ne s'agit bien que de chiffres)
                      Une double erreur peut provoquer un checksum OK.

                      Charles 1 Reply Last reply Reply Quote
                      • Charles
                        Charles @Géryko last edited by

                        @Géryko Oui dans la librairie tous les champs sont traité en mode natif, c'est à dire des char, après sur l'affichage ou autre il faut faire du spécifique cf
                        https://github.com/hallard/LibTeleinfo/issues/22

                        1 Reply Last reply Reply Quote
                        • First post
                          Last post
                        Copyright © 2022 Charles-Henri Hallard | Return to blog page | Powered by NodeBB