Skip to content
  • Blog
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Community Forum

  1. Home
  2. Categories
  3. Téléinfo
  4. WifInfo
  5. Génération de trames Téléinfo de tests.

Génération de trames Téléinfo de tests.

Scheduled Pinned Locked Moved WifInfo
5 Posts 1 Posters 5.3k Views 1 Watching
  • 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.
  • S Offline
    S Offline
    smba38
    wrote on last edited by
    #1

    Bonsoir à tous,

    J'envisage d'utiliser Wifinfo en utilisant un Nodemcu (Esp8266 esp-12).
    Comme je n'ai pas encore reçu les composants nécessaires pour construire le capteur(optocoupleur ...), j'ai écrit un programme de génération de trames de tests téléinfo en vbscript.

    J'ai compilé Wifinfo (Version 1.01) sous l'IDE Arduino.
    Wifinfo fonctionne, les trames sont bien analysées et comptabilisées mais j'ai remarqué que les compteurs associés aux étiquettes continuent à s’incrémenter après l’arrêt du programme qui génère les trames sur le port série.
    Par contre les valeurs associées aux étiquettes ne changent plus.

    J’envoie peut être les trames trop rapidement ou ces trames sont mal construites.
    merci pour les réponses.
    SMBA38.

    [0_1487802122143_trames sur com9.zip](Uploading 100%)

    S 1 Reply Last reply
    • S Offline
      S Offline
      smba38
      wrote on last edited by smba38
      #2

      Hello,
      Le lien vers le code du programme vbscript de génération de trames de tests semble ne pas fonctionner.
      Voici le code
      Modifier les constantes en début de programme en fonction de vos besoins.

      '
      ' Génération et envoi de trames téléinfo  SMBA38 02/2017
      '
      ' Trois trames différentes sont créées dans trois fichiers trame1.txt, trames2.txt et trame3.txt
      ' Un fichier trames.bat est créé, ce fichier .bat boucle sur l'envoi successif des trois trames sur PORTCOM
      ' Avec un délai DELAIMS entre chaque trame (en millisecondes)
      '
      ' NBENVOICOM=n  permet d’envoyer n fois les  trames sur PORTCOM directement depuis ce programme.
      ' Si NBENVOICOM=0 pas d’envoi sur PORTCOM
      ' 
      '
      '---- Constantes à modifier en fonction des besoins
      const PORTCOM="COM9"  	' A changer en fonction du port à utiliser
      const DELAIMS=2000    	' delai entre l'envoi de deux trames (en millisecondes).
      const NBENVOICOM=0	' nb fois à envoyer les trames sur le port PORTCOM (si=0 pas d'envoi via PORTCOM)
      '-----Fin constantes
      
      const CONFIGPORT="baud=1200 data=7 parity=e stop=1" ' paramètres du PORTCOM pour téléinfo 
      const  ForWriting=2
      
      nbpings=1				' pour simuler un delai utilisation d'un ping nb fois
      if DELAIMS >0 then
      	nbpings=int(DELAIMS/1000)	' environ une seconde par ping
      	if nbpings <1 then nbpings=1	' nbpings=nombre entier
      end if
      Set fso = CreateObject("Scripting.FileSystemObject")
      Set ficho = fso.OpenTextFile("trames.bat", forwriting,true)
      '
      ' Fichier .bat d'envoi de trames contenues dans les fichier trame1.txt, trame2.txt, trame3.txt 
      '
      ficho.writeline  "mode " & PORTCOM & ": " & CONFIGPORT
      ficho.writeline ":boucle"
      ficho.writeline "type trames1.txt >" & PORTCOM
      ficho.writeline "ping -n " & nbpings & "  127.0.0.1"  ' pour simuler une attente entre deux trames
      ficho.writeline "type trames2.txt >" & PORTCOM
      ficho.writeline "ping -n " & nbpings & "  127.0.0.1"  ' pour simuler une attente entre deux trames
      ficho.writeline "type trames3.txt >" & PORTCOM
      ficho.writeline "ping -n " & nbpings & "  127.0.0.1"  ' pour simuler une attente entre deux trames
      ficho.writeline "goto boucle"		' boucle infinie
      ficho.close
      
      buf1="" 'trame1
      buf1=buf1 & crc("ADCO 012345678901") 'F
      buf1=buf1 & crc("OPTARIF HC..")  '<
      buf1=buf1 & crc("ISOUSC 20")  	'8
      buf1=buf1 & crc("HCHC 036424518") ''
      buf1=buf1 & crc("HCHP 026582379") '=
      buf1=buf1 & crc("PTEC HP..") 	'
      buf1=buf1 & crc("IINST1 003") 	'K
      buf1=buf1 & crc("IINST2 002") 	'I
      buf1=buf1 & crc("IINST3 001") 	'K
      buf1=buf1 & crc("IMAX1 019")	': 
      buf1=buf1 & crc("IMAX2 020") 	'3
      buf1=buf1 & crc("IMAX3 018")	'; 
      buf1=buf1 & crc("PMAX 08380") 	'9
      buf1=buf1 & crc("PAPP 00970")	'1 
      buf1=buf1 & crc("HHPHC E") 	'0
      buf1=buf1 & crc("OTDETAT 000000")	'0 
      buf1=buf1 & crc("PPOT 00")	'#
      Set ficho = fso.OpenTextFile("trames1.txt", forwriting,true)
      ficho.writeline(chr(02) & buf1 & chr(03))' début trame  & contenu trame & fin trame
      ficho.close
      
      buf2="" 'trame 2 avec quelques changements
      buf2=buf2 & crc("ADCO 012345678902") 'F
      buf2=buf2 & crc("OPTARIF HC..")  '<
      buf2=buf2 & crc("ISOUSC 20")  	'8
      buf2=buf2 & crc("HCHC 036424518") ''
      buf2=buf2 & crc("HCHP 026582379") '=
      buf2=buf2 & crc("PTEC HP..") 	'
      buf2=buf2 & crc("IINST1 004") 	'K
      buf2=buf2 & crc("IINST2 001") 	'I
      buf2=buf2 & crc("IINST3 002") 	'K
      buf2=buf2 & crc("IMAX1 019")	': 
      buf2=buf2 & crc("IMAX2 020") 	'3
      buf2=buf2 & crc("IMAX3 018")	'; 
      buf2=buf2 & crc("PMAX 08380") 	'9
      buf2=buf2 & crc("PAPP 00970")	'1 
      buf2=buf2 & crc("HHPHC E") 	'0
      buf2=buf2 & crc("OTDETAT 000000")	'0 
      buf2=buf2 & crc("PPOT 00")	'#  
      Set ficho = fso.OpenTextFile("trames2.txt", forwriting,true)
      ficho.writeline(chr(02) & buf2 & chr(03))' début trame  & contenu trame & fin trame
      ficho.close
      
      buf3="" ' trame3  (trame partielle)
      buf3=buf3 & crc("IINST1 002") 	'K
      buf3=buf3 & crc("IINST2 000") '	I
      buf3=buf3 & crc("IINST3 001") 	'K
      buf3=buf3 & crc("IMAX1 012")	': 
      buf3=buf3 & crc("IMAX2 014") 	'3
      buf3=buf3 & crc("IMAX3 014")	'; 
      Set ficho = fso.OpenTextFile("trames3.txt", forwriting,true)
      ficho.writeline(chr(02) & buf3 & chr(03))' début trame  & contenu trame & fin trame
      ficho.close
      
      '
      ' envoi trames sur PORTCOM
      '
      if NBENVOICOM>0 then 
      	Set oShell = CreateObject("Wscript.Shell")
      	oShell.Run "mode " & PORTCOM & ": "  & CONFIGPORT ,0,1	' conviguration port via CMD 
      '           car PB pour configure les paramètres du port via OpenTextFile
          	on error resume next
      	Set comObj = fso.OpenTextFile(PORTCOM  , forwriting)	' ouverture port COM configuré via CMD
      	If Err.Number <> 0 Then
      		msgbox " Erreur sur ouverture port de communications série " & PORTCOM
      		err.clear
      		wscript.quit
          	End If
      	On error goto 0
      	Wscript.sleep(2000)
      '	comObj.writeline(string(100,chr(0)))
         	for i=1 to NBENVOICOM
              	comObj.writeline(chr(02) & buf1 & chr(03))  ' trame1
      		wscript.sleep(DELAIMS)
      		comObj.writeline(chr(02) & buf2 & chr(03))  ' trame2
      		wscript.sleep(DELAIMS)
      		comObj.writeline(chr(02) & buf3 & chr(03))  ' trame3
      		wscript.sleep(DELAIMS)
      	next
      	comOBJ.Close
      	msgbox "fin envoi trames: " & NBENVOICOM & " fois avec un délai de " & DELAIMS & " millisecondes"
      else
      	msgbox "Fin génération des fichiers trame1.txt, trames.txt, trame3.txt et trames.bat"
      end if
      wscript.quit
      
      '--------------------------
      '
      '  calcul CRC ajout entête LF (0x0A)   et ajout fin de ligne CR (OX0D)
      '
      function crc( chaine_crc )
      icrc=0
      for i=1 to len(chaine_crc)
        icrc=icrc+asc(mid(chaine_crc,i,1))
      next 
      icrc=(icrc and 63) + 32   '  sum = sum & 0x3F + 0x20
      crc= chr(10) & chaine_crc & " " & chr(icrc) & chr(13) ' le blanc avant le CRC ne fait pas partie du calcul du CRC
      end function
      
      S 1 Reply Last reply
      • S smba38

        Bonsoir à tous,

        J'envisage d'utiliser Wifinfo en utilisant un Nodemcu (Esp8266 esp-12).
        Comme je n'ai pas encore reçu les composants nécessaires pour construire le capteur(optocoupleur ...), j'ai écrit un programme de génération de trames de tests téléinfo en vbscript.

        J'ai compilé Wifinfo (Version 1.01) sous l'IDE Arduino.
        Wifinfo fonctionne, les trames sont bien analysées et comptabilisées mais j'ai remarqué que les compteurs associés aux étiquettes continuent à s’incrémenter après l’arrêt du programme qui génère les trames sur le port série.
        Par contre les valeurs associées aux étiquettes ne changent plus.

        J’envoie peut être les trames trop rapidement ou ces trames sont mal construites.
        merci pour les réponses.
        SMBA38.

        [0_1487802122143_trames sur com9.zip](Uploading 100%)

        S Offline
        S Offline
        smba38
        wrote on last edited by
        #3
        This post is deleted!
        1 Reply Last reply
        • S smba38

          Hello,
          Le lien vers le code du programme vbscript de génération de trames de tests semble ne pas fonctionner.
          Voici le code
          Modifier les constantes en début de programme en fonction de vos besoins.

          '
          ' Génération et envoi de trames téléinfo  SMBA38 02/2017
          '
          ' Trois trames différentes sont créées dans trois fichiers trame1.txt, trames2.txt et trame3.txt
          ' Un fichier trames.bat est créé, ce fichier .bat boucle sur l'envoi successif des trois trames sur PORTCOM
          ' Avec un délai DELAIMS entre chaque trame (en millisecondes)
          '
          ' NBENVOICOM=n  permet d’envoyer n fois les  trames sur PORTCOM directement depuis ce programme.
          ' Si NBENVOICOM=0 pas d’envoi sur PORTCOM
          ' 
          '
          '---- Constantes à modifier en fonction des besoins
          const PORTCOM="COM9"  	' A changer en fonction du port à utiliser
          const DELAIMS=2000    	' delai entre l'envoi de deux trames (en millisecondes).
          const NBENVOICOM=0	' nb fois à envoyer les trames sur le port PORTCOM (si=0 pas d'envoi via PORTCOM)
          '-----Fin constantes
          
          const CONFIGPORT="baud=1200 data=7 parity=e stop=1" ' paramètres du PORTCOM pour téléinfo 
          const  ForWriting=2
          
          nbpings=1				' pour simuler un delai utilisation d'un ping nb fois
          if DELAIMS >0 then
          	nbpings=int(DELAIMS/1000)	' environ une seconde par ping
          	if nbpings <1 then nbpings=1	' nbpings=nombre entier
          end if
          Set fso = CreateObject("Scripting.FileSystemObject")
          Set ficho = fso.OpenTextFile("trames.bat", forwriting,true)
          '
          ' Fichier .bat d'envoi de trames contenues dans les fichier trame1.txt, trame2.txt, trame3.txt 
          '
          ficho.writeline  "mode " & PORTCOM & ": " & CONFIGPORT
          ficho.writeline ":boucle"
          ficho.writeline "type trames1.txt >" & PORTCOM
          ficho.writeline "ping -n " & nbpings & "  127.0.0.1"  ' pour simuler une attente entre deux trames
          ficho.writeline "type trames2.txt >" & PORTCOM
          ficho.writeline "ping -n " & nbpings & "  127.0.0.1"  ' pour simuler une attente entre deux trames
          ficho.writeline "type trames3.txt >" & PORTCOM
          ficho.writeline "ping -n " & nbpings & "  127.0.0.1"  ' pour simuler une attente entre deux trames
          ficho.writeline "goto boucle"		' boucle infinie
          ficho.close
          
          buf1="" 'trame1
          buf1=buf1 & crc("ADCO 012345678901") 'F
          buf1=buf1 & crc("OPTARIF HC..")  '<
          buf1=buf1 & crc("ISOUSC 20")  	'8
          buf1=buf1 & crc("HCHC 036424518") ''
          buf1=buf1 & crc("HCHP 026582379") '=
          buf1=buf1 & crc("PTEC HP..") 	'
          buf1=buf1 & crc("IINST1 003") 	'K
          buf1=buf1 & crc("IINST2 002") 	'I
          buf1=buf1 & crc("IINST3 001") 	'K
          buf1=buf1 & crc("IMAX1 019")	': 
          buf1=buf1 & crc("IMAX2 020") 	'3
          buf1=buf1 & crc("IMAX3 018")	'; 
          buf1=buf1 & crc("PMAX 08380") 	'9
          buf1=buf1 & crc("PAPP 00970")	'1 
          buf1=buf1 & crc("HHPHC E") 	'0
          buf1=buf1 & crc("OTDETAT 000000")	'0 
          buf1=buf1 & crc("PPOT 00")	'#
          Set ficho = fso.OpenTextFile("trames1.txt", forwriting,true)
          ficho.writeline(chr(02) & buf1 & chr(03))' début trame  & contenu trame & fin trame
          ficho.close
          
          buf2="" 'trame 2 avec quelques changements
          buf2=buf2 & crc("ADCO 012345678902") 'F
          buf2=buf2 & crc("OPTARIF HC..")  '<
          buf2=buf2 & crc("ISOUSC 20")  	'8
          buf2=buf2 & crc("HCHC 036424518") ''
          buf2=buf2 & crc("HCHP 026582379") '=
          buf2=buf2 & crc("PTEC HP..") 	'
          buf2=buf2 & crc("IINST1 004") 	'K
          buf2=buf2 & crc("IINST2 001") 	'I
          buf2=buf2 & crc("IINST3 002") 	'K
          buf2=buf2 & crc("IMAX1 019")	': 
          buf2=buf2 & crc("IMAX2 020") 	'3
          buf2=buf2 & crc("IMAX3 018")	'; 
          buf2=buf2 & crc("PMAX 08380") 	'9
          buf2=buf2 & crc("PAPP 00970")	'1 
          buf2=buf2 & crc("HHPHC E") 	'0
          buf2=buf2 & crc("OTDETAT 000000")	'0 
          buf2=buf2 & crc("PPOT 00")	'#  
          Set ficho = fso.OpenTextFile("trames2.txt", forwriting,true)
          ficho.writeline(chr(02) & buf2 & chr(03))' début trame  & contenu trame & fin trame
          ficho.close
          
          buf3="" ' trame3  (trame partielle)
          buf3=buf3 & crc("IINST1 002") 	'K
          buf3=buf3 & crc("IINST2 000") '	I
          buf3=buf3 & crc("IINST3 001") 	'K
          buf3=buf3 & crc("IMAX1 012")	': 
          buf3=buf3 & crc("IMAX2 014") 	'3
          buf3=buf3 & crc("IMAX3 014")	'; 
          Set ficho = fso.OpenTextFile("trames3.txt", forwriting,true)
          ficho.writeline(chr(02) & buf3 & chr(03))' début trame  & contenu trame & fin trame
          ficho.close
          
          '
          ' envoi trames sur PORTCOM
          '
          if NBENVOICOM>0 then 
          	Set oShell = CreateObject("Wscript.Shell")
          	oShell.Run "mode " & PORTCOM & ": "  & CONFIGPORT ,0,1	' conviguration port via CMD 
          '           car PB pour configure les paramètres du port via OpenTextFile
              	on error resume next
          	Set comObj = fso.OpenTextFile(PORTCOM  , forwriting)	' ouverture port COM configuré via CMD
          	If Err.Number <> 0 Then
          		msgbox " Erreur sur ouverture port de communications série " & PORTCOM
          		err.clear
          		wscript.quit
              	End If
          	On error goto 0
          	Wscript.sleep(2000)
          '	comObj.writeline(string(100,chr(0)))
             	for i=1 to NBENVOICOM
                  	comObj.writeline(chr(02) & buf1 & chr(03))  ' trame1
          		wscript.sleep(DELAIMS)
          		comObj.writeline(chr(02) & buf2 & chr(03))  ' trame2
          		wscript.sleep(DELAIMS)
          		comObj.writeline(chr(02) & buf3 & chr(03))  ' trame3
          		wscript.sleep(DELAIMS)
          	next
          	comOBJ.Close
          	msgbox "fin envoi trames: " & NBENVOICOM & " fois avec un délai de " & DELAIMS & " millisecondes"
          else
          	msgbox "Fin génération des fichiers trame1.txt, trames.txt, trame3.txt et trames.bat"
          end if
          wscript.quit
          
          '--------------------------
          '
          '  calcul CRC ajout entête LF (0x0A)   et ajout fin de ligne CR (OX0D)
          '
          function crc( chaine_crc )
          icrc=0
          for i=1 to len(chaine_crc)
            icrc=icrc+asc(mid(chaine_crc,i,1))
          next 
          icrc=(icrc and 63) + 32   '  sum = sum & 0x3F + 0x20
          crc= chr(10) & chaine_crc & " " & chr(icrc) & chr(13) ' le blanc avant le CRC ne fait pas partie du calcul du CRC
          end function
          
          S Offline
          S Offline
          smba38
          wrote on last edited by
          #4
          This post is deleted!
          S 1 Reply Last reply
          • S smba38

            This post is deleted!

            S Offline
            S Offline
            smba38
            wrote on last edited by
            #5
            This post is deleted!
            1 Reply Last reply

            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

            With your input, this post could be even better 💗

            Register Login
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            3

            Online

            5.8k

            Users

            566

            Topics

            5.3k

            Posts

            Top Topics

            • pas d'affichage
              CharlesC
              Charles
              0
              25
              543

            Popular Tags

            teleinfo
            25 topics
            arduino
            19 topics
            remora
            16 topics
            esp8266
            10 topics
            arduipi
            10 topics
            raspberry
            8 topics
            wifinfo
            7 topics
            broadcast
            7 topics
            Copyright © 2022 Charles-Henri Hallard | Return to blog page | Powered by NodeBB
            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Blog
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups