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 :

[Résolu] Trier chaine de caracteres alphanumerique d'un port serie rs232


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [Résolu] Trier chaine de caracteres alphanumerique d'un port serie rs232
    bonjour , j'ai besoin de votre aide

    mon projet est de recuperer des infos sur un port serie d'un controleur de batterie (BMV600S)

    j ai deja reussi a recuperer la chaine de charactere mais j arrive pas a trier cette chaine car le flux change a chaque redemmarage du script .

    voici le debut du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    # Script Phyton pour le BMV600S
     
    # recuperation du signal
    import serial      # Importation Module Serie RS232
    ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=1) #Param du port Serie
    ser.open()        # Ouverture du port Serie
    rawbmv600 = ser.read(390)  #Lecture 450 ms,Ecrire dans la var "rawbmv600"
    print rawbmv600       #Affiche le resultat
    ser.close()        #Ferme le port Serie
     
    #Traitement du signal
    le resultat est de la variable "rawbmv600" :

    V 24880

    I -788

    CE -2216

    SOC 995

    TTG 6513

    Alarm OFF

    Relay OFF

    AR 0

    BMV 600S

    FW 212

    Checksum Ç

    H1 -33161

    H2 -2216

    H3 0

    H4 0

    H5 0

    H6 -153497

    H7 24011

    H8 29441

    H9 11767

    H10 2

    H11 1

    H12 0

    Checksum 

    V 24882

    I -723

    CE -2216

    SOC 995

    TTG 6521

    Alarm OFF

    Relay OFF

    AR 0

    BMV 600S

    FW 212

    Checksum Ñ

    H1 -33161

    H2 -2216

    H3 0

    H4 0

    H5 0

    H6 -153498

    H7 24011

    H8 29

    ____________________

    je cherche a creer des variables avec le nom qui correspond a la valeur

    ex : la variable SOC = "995"

    merci de votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,
    open, read, write, close,... ces opérations ont un sens similaire pour les ports series, les sockets, ou plus simplement un fichier texte.
    Mettre les lignes lues d'un fichier texte dans un tableau est ce qu'on apprend au tout début. Juste après avoir pige la saisie de l'input clavier de l'utilisateur et qu'on se fait une idée de l'organisation d'une séquence d'instruction.

    Si vous allez lire un port série sans avoir acquis cela, vous ne prenez pas le chemin le plus facile. Enfin, la pente est un peu raide...

    Il faudrait commencer par écrire une boucle while, chaque ligne lue étant stocke dans la ligne suivante du tableau. La ligne lue est ce que retourne .read, "ligne suivante" sera gérée par un index.
    En Python, on pourrait écrire ça, genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    line = 0
    while True:
         tableau[line] =  ser.read(...)
         line += 1
    Si vous ne vous sentez pas de compléter le reste, ne vous décourager pas, pensez a regarder un tuto...

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

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour la reponse , et il est vrai que je debute sous Python.
    j aime bien ce language

    mais je cherche a extraire les valeurs avec leur resultats

    une fois les variables creer , je compte les utiliser pour la suite du programme

    je test actuellement une solution pour parcourir la sequence et creer les variables.

    en exemple , je cherche "SOC" et sa valeur 995 pour que :

    SOC = "995"
    et ainsi de suite pour les autre valeurs : V , I , TTG , etc...

    le probleme c est que je recois les valeurs dans le desordre , quand je capture
    la sequence , elle peut commencer a V ou SOC ou H1 , il faut donc que je parcours la sequence pour retrouver les valeurs.

    Merci beaucoup de votre aide

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Quand je dis "prenez le temps d'apprendre avec un tuto", c'est de l'"imperatif".
    Pourquoi passer du temps a répondre a des questions que vous ne poseriez pas si vous aviez pris le temps de potasser un peu les tutos?

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

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    ok merci...

    je continue a potasse les tutos .

    Merci quand meme pour la reponse.

    je clos comme resolu.

Discussions similaires

  1. trier un ensemble de chaine de caractere
    Par m0ul3sh0t dans le forum C
    Réponses: 10
    Dernier message: 01/12/2007, 15h27
  2. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  3. Réponses: 3
    Dernier message: 29/01/2007, 15h10
  4. [LG]comparaison de chaines de caracteres
    Par thesam dans le forum Langage
    Réponses: 6
    Dernier message: 20/05/2003, 22h41
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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