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 :

Pb de port série


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 Pb de port série
    Bonsoir à tous,
    Je poste ici car je séche un peu.
    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
    23
    24
    25
    26
    27
    28
    29
    #!/usr/bin/env python
    #
    print ("Starting program")
    import serial
    #import MAX3100 as COM
    import time
    # import string
    #
    count = 1
    myin = "1"
    test=serial.Serial("COM6",9600,timeout=5)
    test.close()
    test.open()
    teststring = "5"
    #
    try:
        while True:
                    print (count, teststring)
    	   test.write(int(myin))<-----pb
                    print ("Waiting 5 second")
                    time.sleep(5)
                    #myin = test.readline()
                    #print("recieved :"+myin)
                    count = count + 1
    #
    except KeyboardInterrupt:
        pass # do cleanup here
    #
    test.close()
    mon programme boucle bien mais je n'ai pas de données transmise sur le port serie.
    J'ai lu qu'il fallait que les données soit transmise en ascii.
    Grace au code string.encode('ascii') mais je ne sais pas comment l'utiliser.
    si quelqu'un pouvais m'aider, ce serais sympas.
    merci d'avance
    Stéphane

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Si c'est la conversion qui te pose soucis, tu as le module unicodedata[1]

    Valable Python 2 et 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    >>> import unicodedata
    >>> t = u"aéiàèï"
    >>> unicodedata.normalize('NFKD', t).encode('ascii', 'ignore')
    'aeiaei'
    Il y a plusieurs normes possibles mais je ne pense pas que cela importe dans ton cas.


    [1] http://docs.python.org/2/library/uni...data.normalize

  3. #3
    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 l'utilise comment s'il te plait car quand je vois cette fonction,
    je suis un peu perdu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #
    try:
        while True:
                    print (count, teststring)
    	   t = u"2"
    	   test.write(unicodedata.normalize('NFKD', t).encode('ascii', 'ignore'))
                    print ("Waiting 5 second")
                    time.sleep(5)
                    #myin = test.readline()
                    #print("recieved :"+myin)
                    count = count + 1
    #
    Voici mon code, mais il plante lamentablement et il me dit qu j'utilise des tab.
    Il est gentil.
    Merci encore

  4. #4
    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, pour ceux que celà intéresse.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #
    try:
        while True:
            print (count, teststring)
            t = u"4"
            test.write(unicodedata.normalize('NFKD', t).encode('ascii', 'ignore'))
            print ("Waiting 5 second")
            time.sleep(10)
            #myin = test.readline()
            #print("recieved :"+myin)
            count = count + 1
    #
    Ici j'envoie le nombre 4 et j'ai la bonne réaction sur ma board.
    Sais tu ou je peux trouver l'explication sur unicodata et sur encode s'il te plait vinss.
    Que veux dire ce u devant le 4 dans t = u"4".
    Je compte utiliser pyfirmata pour commander une board arduino, le connais tu?
    Merci pour ton aide
    A+ Stéphane

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    ben, la doc est dans le lien que je t'ai mis.

    Le u devant le texte désigne pour Python 2 une chaîne de texte unicode, inutile avec Python 3 et, d'ailleurs, dans les premières releases cela lève une erreur.

  6. #6
    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 n'avais pas vu ton lien, excuse moi.
    Je regarde pour faire fonctionner une arduino avec un programme python.
    Et je pense me diriger vers firmata.
    Qu'en dis tu? Est ce un bon choix?
    Je ne tiens pas à tous réinventer, je ne suis pas de taille.
    Merci pour ton aide.
    A+ Stéphane

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

Discussions similaires

  1. [Série] Accès au port série sous linux
    Par ghost dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 10/10/2007, 10h43
  2. Réception sur le port série sous DOS avec Borland V3.0
    Par jackyjacky dans le forum Autres éditeurs
    Réponses: 24
    Dernier message: 19/03/2004, 23h18
  3. probleme de communication port série
    Par ben23 dans le forum MFC
    Réponses: 8
    Dernier message: 06/02/2004, 15h12
  4. Recherche de l'adresse du port série
    Par StephCal dans le forum Langage
    Réponses: 8
    Dernier message: 07/01/2004, 11h23
  5. Problème avec le port série sous Windows XP
    Par didou2dek dans le forum Composants VCL
    Réponses: 6
    Dernier message: 02/09/2003, 19h50

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