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

Bibliothèques tierces Python Discussion :

PySerial code marchant sur Python24 et non Python26


Sujet :

Bibliothèques tierces Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Par défaut PySerial code marchant sur Python24 et non Python26
    Bonjour,

    J'ai besoin pour un projet de lire sur un lecteur de piste magnétique. Ce lecteur se branche en USB mais est bien considéré comme un port COM.

    Le truc c'est que lorsque je lance mon programme j'avais fait une routine pour lire les différents ports COM et distinguer avec lequel je devais dialoguer.

    Ca marchait parfaitement sous XP, Python2.4.3, pyserial2.2. Je veux porter l'application sous Vista, avec Python2.6.5 et pyserial2.5-rc1 (faites avec distutils 2.6.5) mais là ca coince.

    Mon code :

    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
     
                import serial
                port = "COM%s"
                baud_rate = 9600
     
                # Selection du port à tester
                serial_port = port % (i) #i indice de boucle pour scanner les différents ports
     
                # Initilisation de la connexion 
                reader = serial.Serial(serial_port, baud_rate, timeout = 1)
     
                # Ouverture de la connexion 
                reader.open()
     
                # Envoi du caractere '9' pour recevoir la version du lecteur
                reader.write('9')
     
                # Récupération de la réponse 
                msg = reader.read(26)
     
                # Fermeture de la connexion
                reader.close()
    Sachant que si j'envoie le caractère 9 a mon lecteur, il me renvoie la version qui fait 26 caractères.

    Alors je suis ouvert à tous commentaires sur ce qui aurait pu changer dans cette librairie.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    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 743
    Par défaut
    Salut

    Ça fait quand même un peu trop de changements...
    Pourquoi ne pas commencer par faire fonctionner la pile Python2.6+PySerial sous XP puis aller vers Vista?
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 27
    Par défaut
    Ca fait pas mal de changements, mais ils étaient nécessaire pour être up-to-date

    Après j'ai trouvé quel était mon problème : le port est ouvert lors de la création de l'objet Serial, et les paramètres du constructeur diffèrent un peu selon les versions de Pyserial

    Le code devient donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    import serial
                #port = "COM%s"
                baud_rate = 9600
     
                # Selection du port à tester
                #serial_port = port % (i) #i indice de boucle pour scanner les différents ports
     
                # Initilisation de la connexion 
                reader = serial.Serial(i, baud_rate, timeout = 1)
     
                # Ouverture de la connexion 
                #reader.open()

Discussions similaires

  1. [XL-2007] Code pour remplir des cellules non basé sur les colonnes
    Par Philippe_shelby dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 22/01/2015, 23h46
  2. [XL-2003] Code sur excel 2003 non compatible sur excel 2007!
    Par Patscaph dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 13/07/2014, 15h17
  3. Partie du code fonctionnel sur Firefox et non sur IE
    Par afrodje dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 18/10/2008, 16h04
  4. Réponses: 1
    Dernier message: 03/10/2008, 21h34
  5. Afficher une texture "pleine" sur un support non c
    Par Mastero dans le forum DirectX
    Réponses: 20
    Dernier message: 27/01/2005, 13h28

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