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 :

PySerial, paramétrage du port [Python 3.X]


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 219
    Par défaut PySerial, paramétrage du port
    Bonjour

    Je souhaite utiliser la bibliothèque PySerial.
    J'ai trouvé un bout de code comme base qui semble convenir à ce que je souhaite faire, c'est à dire communiquer avec un thermomètre infrarouge par une interface USB/UART.

    Le port de l'interface doit avoir les paramètres suivants :
    Baud rate: 9600…115200, set by user (factory default: 9600)
    Data bits: 8
    Parity: none
    Stop bits: 1
    Flow control: off

    Mon code exemple donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ser = serial.Serial(
        port='/dev/ttyUSB1',
        baudrate=9600,
        parity=serial.PARITY_ODD,
        stopbits=serial.STOPBITS_TWO,
        bytesize=serial.SEVENBITS
    Or, on voit que parité, Stop_bits, Flow_control et Data_bits sont différents ou non indiqué dans le paramétrage. Je n'arrive pas à trouver un présentation qui m'aide à transposer l'exemple à mon usage concernant ce paramétrage.

    La documentation de mon thermomètre :
    http://www.optris.com/interfaces?fil...r-commands.pdf

    Là ou j'ai récupéré mon script de base :
    https://stackoverflow.com/questions/...serial-package

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Salut,

    Citation Envoyé par hary66 Voir le message
    Or, on voit que parité, Stop_bits, Flow_control et Data_bits sont différents ou non indiqué dans le paramétrage. Je n'arrive pas à trouver un présentation qui m'aide à transposer l'exemple à mon usage concernant ce paramétrage.
    Plutôt que prendre un exemple qui n'est pas forcément adapté a votre cas, pourquoi ne pas ouvrir la documentation de pyserial et essayer de comprendre ce que çà dit?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 219
    Par défaut
    J'utilise ce code, mais n'obtenant aucune réponse, je ne sais pas ou chercher ! Je ne sais pas si c'est le paramétrage du port ou mon code qui ne va pas !

    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 time
    import serial
     
    # configure the serial connections (the parameters differs on the device you are connecting to)
    ser = serial.Serial(
        port='/dev/ttyUSB0',
        baudrate=9600,
        parity=serial.PARITY_NONE,
        stopbits=serial.STOPBITS_ONE,
        bytesize=serial.EIGHTBITS,
        xonxoff=False,
        rtscts=False,
        dsrdtr=False
    h)
     
    ser.isOpen()
     
    print ('Enter your commands below.\r\nInsert "q" to leave the application.')
     
    #input=1
    while 1 :
        # get keyboard input
        #input = raw_input(">>")
        incoming = raw_input(">>")
            # Python 3 users
            # input = input(">> ")
        if incoming == 'q':
            ser.close()
            exit()
        else:
            # send the character to the device
            # (note that I happend a \r\n carriage return and line feed to the characters - this is requested by my device)
            a=int(incoming)
            d=bin(a)
            print incoming , "   " , a  , "  " , d 
            ser.write(d) # + '\r\n')
            #print()
            out = 'pas de reponse'
            # let's wait one second before reading output (let's give device time to answer)
            time.sleep(.1)
            while ser.inWaiting() > 0:
                out += ser.read(2)
     
            if out != '':
                print ">>", out

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 677
    Par défaut
    Citation Envoyé par hary66 Voir le message
    J'utilise ce code, mais n'obtenant aucune réponse, je ne sais pas ou chercher ! Je ne sais pas si c'est le paramétrage du port ou mon code qui ne va pas !
    Si c'est juste pour tester, lancer la console Python et y écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> import serial
    >>> ser = serial.Serial(...)
    >>> ser.write(...)
    >>> ser.read(...)
    en replaçant les ... par des valeurs cohérentes avec ce que raconte votre documentation est un exercice qu'on ne peut pas faire à votre place.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 219
    Par défaut
    J'ai pas mal avancé en utilisant ce qui s'est dit dans ce post :

    https://www.developpez.net/forums/d1...rt-serie-uart/

    En particulier, ce qui m'a permit de savoir ce que je faisais est d'utiliser deux cables USB to TTL reliés entre eux comme ça m'a été indiqué dans le lien ci-dessus !

    Je marque donc le sujet comme "Résolu"

    Merci à tous.

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

Discussions similaires

  1. [pySerial] Scanner les ports séries
    Par Foxley dans le forum Bibliothèques tierces
    Réponses: 1
    Dernier message: 23/02/2009, 18h30
  2. [pyserial] lire et écrire sur le port série
    Par elscorpio dans le forum Bibliothèques tierces
    Réponses: 3
    Dernier message: 29/05/2008, 13h39
  3. débutante] Paramétrage port ORACLE
    Par sosophie dans le forum Connexions aux bases de données
    Réponses: 7
    Dernier message: 05/01/2008, 16h17
  4. [pyserial]Envoi d'une chaine hexadécimal par le port serie
    Par cesear dans le forum Général Python
    Réponses: 3
    Dernier message: 19/12/2007, 12h12
  5. [pyserial] Port série
    Par amalis dans le forum Bibliothèques tierces
    Réponses: 4
    Dernier message: 21/03/2006, 14h30

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