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 :

self BYTE SIZES


Sujet :

Python

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut self BYTE SIZES
    Bonjour , je suis entrain de develloper un programme pour l'acquisition du poids via une balance

    Voila le 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    import serial
    import time
     
    var={}
    path = open('serie_poid.conf' , 'rb')
    lignes=path.readlines()
     
    for ligne in lignes:
        sp=ligne.split('#')[0]
        sp=sp.split('=')
        if len(sp)==2:
            var[sp[0].strip()]=sp[1].strip()
    path.close()
     
     
    se=serial.Serial()
    se.baudrate=var['baudrate']
    se.bytesize=['bytesize']
    se.parities=var[n]
    se.stopbits=var[1]
    se.rtscts=0
    se.timeout=1
    se.port=var[0]
     
     
    se.open()
    se.write("IP\r\n")
    i= True
     
     
    while i:
        if(se.inWaiting()>0):
            x=se.readline()
            se.readline()
            i=false
            se.close()
     
     
     
    poids=string.replace(a,"?","")
    poids=string.replace(poids," ","")
     
     
     
    fichier=open("/tmp/test.txt",'w')
    fichier.write(poids)
    fichier.close()
     
    log=open("var/local/logpesee.txt" , "a")
    log.write(time.strftime('%d/%m/%y %H:%', time.localtime())+" " +poids+"/r/n")
    log.close()
    Ainsi qu'un fichier de configuration , pour pouvoir changer les parametres de la balance , si on doit la changer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #Fichier de configuration
     
    #Vitesse de transmission
    baudrate=9600
    #Nombre de bits de données
    bytesize=7
    #Parité
    parity=n
    #Bit de stop
    stopbits=1
    #Port
    port=0
    j'obtient cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "/home/administrateur/workspace/serie_poid/src/serie_poid.py", line 19, in <module>
        se.bytesize=['bytesize']
      File "/usr/lib/python2.5/site-packages/serial/serialutil.py", line 227, in setByteSize
        if bytesize not in self.BYTESIZES: raise ValueError("Not a valid byte size: %r" % bytesize)
    ValueError: Not a valid byte size: ['bytesize']
    mais je trouve pas la solution , aidez moi SVP.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    se.bytesize=['bytesize']
    Il manque un var à mon avis...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    se.bytesize=var['bytesize']

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Plop , Merci de répondre

    en effet j'ai oublié de mettre le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    se=serial.Serial()
    se.baudrate=var['baudrate']
    se.bytesize=var['bytesize']
    se.parities=var['parity']
    se.stopbits=var['stopbits']
    se.rtscts=0
    se.timeout=1
    se.port=var['port']
    dans le code , mais dans l'original il y est , et j'ai toujours les meme erreurs... : /

  4. #4
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2003
    Messages : 127
    Points : 149
    Points
    149
    Par défaut
    D'aprés ton erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        if bytesize not in self.BYTESIZES: raise ValueError("Not a valid byte size: %r" % bytesize)
    il ne trouve pas la valeur de ton paramétre dans la liste contante dans le fichier du module on trouve ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      BYTESIZES = (FIVEBITS, SIXBITS, SEVENBITS, EIGHTBITS)
    qui correspond à ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FIVEBITS, SIXBITS, SEVENBITS, EIGHTBITS = (5,6,7,8)
    d'aprés ton fichier de configuration on a bien bytesize = 7 qui est bien dans la liste
    Donc je suppose qu'il doit avoir une erreur dans la récupération des valeurs dans le fichier de configuration

    Rajoute cette ligne
    juste avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    se.bytesize=var['bytesize']

    Ah aussi n'oublie pas de transformer ton string le 7 que tu récupére c'est ça:
    "7" donc je pense que pour faire fonctionner ton code rajoute ça avant la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    se.bytesize=var['bytesize']
    ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var['bytesize'] = int(var['bytesize'])

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Et bien , ca marche , le probleme semble etre passé.

    Par contre , j'ai encore un probleme ... à cet endroit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    se.open()
    se.write("IP\r\n")
    i= True
    Normalement cette partie sert a communiquer avec la balance , ouverture de la voie , envoie de la commande de pesée à la balance.

    Message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "/home/administrateur/workspace/serie_poid/src/serie_poid.py", line 31, in <module>
        se.open()
      File "/usr/lib/python2.5/site-packages/serial/serialposix.py", line 141, in open
        raise SerialException("Could not open port: %s" % msg)
    serial.serialutil.SerialException: Could not open port: [Errno 2] No such file or directory: '0'
    Je tient a préciser que ce code source m'a etait donné par une connaissaice malheuresement injoinable , et comme je commence vraiment dans le python ...
    cela serait vraiment plaisant que tout ce programme marche , car cela pourrait m'aider moi et mes compagnons qui travaillent avec moi , on gagnerait un gain de temps considerable et de l'energie.

    En attente d'une reponse , cordialemment

  6. #6
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2003
    Messages : 127
    Points : 149
    Points
    149
    Par défaut
    Même prb port "0" alors que c'est 0
    donc
    mais il faut mieux faire ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    se.setPort(var['port'])

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    la partie du port n'a aucun probleme , du moins , rien n'est afficher

    par contre c'est le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    se.open()
    se.write("IP\r\n")
    i= True
    j'ai tout de meme essayé ce que tu m'a ecrit , mais si je met ton code , il m'affiche a ce moment une erreur , donc je pense que celui que j'avais etait bon

  8. #8
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    je tient a rajouter que ce programme doit:
    lire les parametres de la balance , du fichier.conf
    définir les parametres
    receptionner la trame
    traiter la chaine
    enregistrer dans un fichier , qui sera ensuite utiliser par une autre personne pour mettre les données dans une base de données.

    j'espere que vous pourrez m'aider , j'en ai vraiment besoin

    ca bug ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    se.open()
    se.write("IP\r\n")
    i= True
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "/home/administrateur/workspace/serie_poid/src/serie_poid.py", line 31, in <module>
        se.open()
      File "/usr/lib/python2.5/site-packages/serial/serialposix.py", line 141, in open
        raise SerialException("Could not open port: %s" % msg)
    serial.serialutil.SerialException: Could not open port: [Errno 2] No such file or directory: '0'
    Merci

  9. #9
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2003
    Messages : 127
    Points : 149
    Points
    149
    Par défaut
    Même prb port "0" alors que c'est 0
    donc
    mais il faut mieux faire ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    se.setPort(var['port'])

  10. #10
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Plop,

    j'ai test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    se=serial.Serial()
    se.baudrate=var['baudrate']
    print var['bytesize']
    var['bytesize'] = int(var['bytesize'])
    se.bytesize=var['bytesize']
    se.parities=var['parity']
    print var['stopbits']
    var['stopbits'] = int(var['stopbits'])
    se.stopbits=var['stopbits']
    se.rtscts=0
    se.timeout=1
    print var['port']
    se.port= int(var[0])
    meme fait un print var['port'] pour voir ce qu'il me sort , ca a l'air bon , mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Traceback (most recent call last):
      File "/home/administrateur/workspace/serie_poid/src/serie_poid.py", line 30, in <module>
        se.port= int(var[0])
    KeyError: 0
    7
    1
    0

  11. #11
    Membre habitué
    Inscrit en
    Mars 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2003
    Messages : 127
    Points : 149
    Points
    149
    Par défaut
    Tu a essayé avec le set il est conseillé d'utiliser les set et les get quand il existe il y a souvent des vérifications

  12. #12
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2004
    Messages
    723
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 723
    Points : 923
    Points
    923
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    se.port= int(var['port'])
    Plutôt comme ça, non ?

Discussions similaires

  1. byte size of HTMLElement
    Par F.Saad dans le forum C#
    Réponses: 21
    Dernier message: 27/09/2009, 18h32
  2. [PEAR][Mail] Fatal Error : Allowed memory size of 8388608 bytes exhausted
    Par bigben89 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 20/10/2008, 18h01
  3. [12.5 ]Row size (2058 bytes) could exceed row size limit, which is 1962 bytes.
    Par dngaya dans le forum Adaptive Server Enterprise
    Réponses: 1
    Dernier message: 04/12/2007, 13h51
  4. Réponses: 3
    Dernier message: 08/08/2007, 19h08
  5. [Librairies] zip.lib.php Fatal error: Allowed memory size of 8388608 bytes exhausted
    Par manaboko dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 22/05/2006, 10h42

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