IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Envoyer Variable sur serial.write


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 40
    Par défaut Envoyer Variable sur serial.write
    Bonjour à tous,
    Je suis novice en python, j'ai déjà un programme qui fonctionne mais dont je ne suis pas satisfait.
    Mon programme me sert à lire un fichier sur mon pc et à envoyer ligne après ligne ce qu'il contient vers mon port serial.
    Mon programme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
    import serial
    import time
    import os
     
    monfichier = open('data.txt', 'r')
    time.sleep(1)
    contenu = monfichier.readlines()
    n = 0
     
    ser = serial.Serial('COM5', 9600, timeout=1)
    time.sleep(2)
    for line in contenu:
     
        if contenu[n]=="$D8000\n":
     
           ser.write(b'$D8000\n')
           time.sleep(0.5)
           lu = ser.readline()
           lu=str(lu)
           print("$D8000")	   
           print(lu)	   
     
        if contenu[n]=="$D8100\n":
     
           ser.write(b'$D8100\n')
           time.sleep(0.5)
           lu = ser.readline()
           print("$D8100")
           print(lu)
     
        if contenu[n]=="$D8180\n":
     
           ser.write(b'$D8180\n')
           time.sleep(0.5)
           lu = ser.readline()
           print("$D8180")
           print(lu)
     
        n += 1
     
    print (n)
     
    monfichier.close()   
    ser.close()
    Ce programme marche bien mais je dois connaitre tous ce qui peut être reçu sinon je ne peux envoyer la valeur sur mon port serial.
    Je voudrais pouvoir faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ser.write(b'+contenu[n]+\n')
    et n'avoir qu'un seul if pour savoir si la ligne n'est pas vide et ensuite envoyer la valeur. Le port serial ne réagi que si les valeurs sont valides.
    J'ai retourné le write dans tout les sens, je suis à court d'arguments.
    Si quelqu'un à des idées.
    Merci d'avance.
    Stéphane

  2. #2
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2011
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2011
    Messages : 40
    Par défaut
    Je viens de trouver:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ser.write(contenu[n].encode())
    Je remet mon code si cela peut aider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    import serial
    import time
    import os
     
    monfichier = open('data.txt', 'r')
    time.sleep(1)
    contenu = monfichier.readlines()
    n = 0
     
    ser = serial.Serial('COM5', 9600, timeout=1)
    time.sleep(2)
    for line in contenu:
     
        if contenu[n]!="":
     
           ser.write(contenu[n].encode())
           time.sleep(0.5)
           lu = ser.readline()
           lu=str(lu)
           print(contenu[n])
           print(lu)
     
     
     
        n += 1
     
    print (n)
     
    monfichier.close()   
    ser.close()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer une variable sur une autre page
    Par xjr77 dans le forum Langage
    Réponses: 1
    Dernier message: 01/02/2011, 13h33
  2. Réponses: 0
    Dernier message: 02/06/2008, 17h12
  3. Envoyer une variable sur l'evenement onmove
    Par nabab dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/07/2007, 16h26
  4. Envoyer variable à dll
    Par goutbouyo dans le forum Windows
    Réponses: 4
    Dernier message: 30/10/2004, 14h10
  5. Utilisation d'une variable sur plusieurs unités
    Par Yamaneko dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2003, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo