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 :

Interpreter de bit de données.


Sujet :

Python

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Par défaut Interpreter de bit de données.
    Bonjour,

    Je cherche à interpréter des données en Python reçues par le bus RS232.

    L'octet envoyé est de cette forme en c:

    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef struct __attribute__((__packed__)) {
        unsigned data1:2;
        unsigned data2:1;
        unsigned data3:4;
        unsigned reserved:1;
    }

    Y-a-t-il un moyen d'interpréter directement cela en python sans avoir à faire des masques ?

    J'ai cherché avec struct en Python mais j'ai pas l'impression qu'il gère les bits ?

    https://docs.python.org/3/library/struct.html


    D'avance merci.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 683
    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 683
    Par défaut
    Salut,
    Citation Envoyé par black_hole Voir le message
    Y-a-t-il un moyen d'interpréter directement cela en python sans avoir à faire des masques ?
    Et ce qu'on peut le faire en langage machine? Et sinon, pourquoi Python (une abstraction de haut niveau de la machine) devrait avoir le faire?


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

  3. #3
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    Citation Envoyé par black_hole Voir le message
    Y-a-t-il un moyen d'interpréter directement cela en python sans avoir à faire des masques ?

    J'ai cherché avec struct en python mais j'ai pas l'impression qu'il gére les bit ?
    le module struct ne le permet pas, la granularité minimale est l'octet, en revanche il semble y avoir un module bitstruct pour répondre à ce type de besoin

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 811
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par black_hole Voir le message
    Y-a-t-il un moyen d'interpréter directement cela en python sans avoir à faire des masques ?
    Non. Enfin je ne connais pas tout en Python mais vu que les masques existent et peuvent faire le job je ne vois pas pourquoi qqun aurait créé une lib spécifique (*).
    La vraie question c'est pourquoi toi tu ne veux pas faire de masque...?
    def extract_bit(v, b): return (v >> (b-1)) & 0x01.
    "v" c'est la valeur et "b" c'est le numéro du bit à extraire, numéro qui part de la droite et commence à 1 => extract_bit(5, 3) => 1

    [edit](*) Ah ben si, j'ai répondu en même temps que BufferBob et en fait je viens de voir son post qui dit que cette lib existe
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 560
    Par défaut
    ok super merci pour vos messages. Je pense que j'ai les réponses que j'attendais.

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

Discussions similaires

  1. [Débutant] Ecrire bit à bit des données de taille variable dans un byte[] ?
    Par StringBuilder dans le forum C#
    Réponses: 2
    Dernier message: 20/07/2016, 17h37
  2. IBM réduit 1 bit de donnée à 12 atomes
    Par Gecko dans le forum Actualités
    Réponses: 27
    Dernier message: 19/01/2012, 08h32
  3. Utilisation des types de données bit dans SQL Server
    Par yanal dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 08/05/2008, 14h19
  4. Image de données codé en 16 bit
    Par kevinl dans le forum Images
    Réponses: 19
    Dernier message: 18/04/2007, 12h31
  5. Réponses: 3
    Dernier message: 28/07/2006, 10h16

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