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 :

Créer des "ieeb blocks "?


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut Créer des "ieeb blocks "?
    Bonjour à tous !
    J'ai actuellement un petit soucis avec un appareil que je devrais contrôler en lui envoyant des données sous forme d'entiers 16 bits signés réunis en "ieeb blocks".
    Le seul soucis, c'est que je n'arrive pas à trouver les spécificités de ces blocs : je me doute que c'est binaire et signé, mais y a-t-il d'autres subtilités? (je pense vu qu'actuellement ça ne marche pas du tout...)
    Merci beaucoup pour votre aide

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

    Citation Envoyé par Afanthommme Voir le message
    J'ai actuellement un petit soucis avec un appareil que je devrais contrôler en lui envoyant des données sous forme d'entiers 16 bits signés réunis en "ieeb blocks".
    Le seul soucis, c'est que je n'arrive pas à trouver les spécificités de ces blocs : je me doute que c'est binaire et signé, mais y a-t-il d'autres subtilités? (je pense vu qu'actuellement ça ne marche pas du tout...)
    Si vous cherchez "ieeb blocks" au lieu de "IEEE-488.2 Binary Block", vous ne trouverez pas grand chose...

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

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut
    J'aurais pu le préciser, mais marquer "IEEE-488.2 Binary Block" ne change rien au problème : j'avais évidemment cherché cela au départ.
    Mais du coup vu que tu as l'air de savoir de quoi il retourne tu pourrais peut-être m'aider : il s'agit bien de coder des entiers sous la forme de deux caractères ascii (le quotient et le modulo par 256 convertis avec chr())?
    Si c'est le cas, comment s'y prend on pour les négatifs?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 699
    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 699
    Par défaut
    Citation Envoyé par Afanthommme Voir le message
    J'aurais pu le préciser, mais marquer "IEEE-488.2 Binary Block" ne change rien au problème : j'avais évidemment cherché cela au départ.
    Mais du coup vu que tu as l'air de savoir de quoi il retourne tu pourrais peut-être m'aider : il s'agit bien de coder des entiers sous la forme de deux caractères ascii (le quotient et le modulo par 256 convertis avec chr())?
    Si c'est le cas, comment s'y prend on pour les négatifs?
    Votre moteur de recherche favori devrait vous permettre de trouver une bibliothèque externe Python qui fasse déjà le boulot.
    Mais si vous voulez codez cela vous même pour la beauté de l'exercice, postez du code et l'URL du standard.

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

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut
    J'avais hésité à préciser "une aide (autre que me dire de chercher sur google...)", mais je m'étais dit que vous n'alliez quand même pas me répondre ça.
    Du coup j'aimerais beaucoup que vous m'éclairiez en me disant sur lequel de ces résultats vous trouvez la "bibliothèque qui fait déjà le boulot", je suis débutant et honnêtement je n'ai pas l'impression de la trouver:
    https://www.google.fr/search?q=%22IE...lock%22+python

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 699
    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 699
    Par défaut
    Faites une recherche avec les mots clés "python IEEE-488.2" çà ira sans doute mieux.
    Après à vous de faire votre marché dans les quelques bibliothèques qui font çà.
    note: çà veut dire lire la documentation, récupérer les sources, voir comment sont testées les fonctionnalités qui vous intéressent, les tester chez vous,...
    personnellement, lorsque j'ai besoin de ce type de fonctionnalités, je pioche dans pyVISA mais c'est un peu lourd pour juste encoder des paquets.

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

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut
    Je suis vraiment désolé d'avoir à redemander, mais malheureusement je ne comprends pas du tout comment faire.
    C'est sans doute très facile quand on a l'habitude, mais quand on débute c'est vraiment difficile de s'y retrouver et là je suis complètement perdu avec des outils comme Pyvisa, je ne sais même pas quoi faire avec...

    Tout ce que je veux c'est transformer un nombre entre 2047 et -2047 en bloc binaire ascii, pour l'instant j'ai une procédure qui marche pour les entiers positifs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i in range(len(Data)):
                Data2=Data2+chr(Data[i]//256)+chr(Data[i]%256)
    Je veux juste étendre ça aux négatifs et ça sera fini, savez-vous comment faire?
    Même si ce n'est pas la solution optimale, je veux juste quelque chose qui marche

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

    Citation Envoyé par Afanthommme Voir le message
    Je veux juste étendre ça aux négatifs et ça sera fini, savez-vous comment faire?
    Même si ce n'est pas la solution optimale, je veux juste quelque chose qui marche
    Prenez la bibliothèque struct qui est faite pour çà:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> from struct import pack
    >>> pack('h', 1256)
    b'\xe8\x04'
    >>> pack('h', -1256)
    b'\x18\xfb'
    >>>
    mais pas dit que l'endianess, par défaut, soit celle du standard IEEE.
    (ni que transférer en "binaire" vous permette d'aller "plus vite" - puisque vous ne savez pas pourquoi c'est lent cf. discusssion -).

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

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut
    Ah oui en effet je n'ai pas tenu cette discussion à jour, mais j'ai bien pu corriger l'erreur (une fonction que j'appellais à la dernière ligne juste au moment de l'envoi et qui faisait n'importe quoi), et en testant avec les entiers positifs il est très net que l'on gagne du temps (facteur 3 par rapport au max atteint avec les données en entier dans -2047,2047.

  10. #10
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 699
    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 699
    Par défaut
    Citation Envoyé par Afanthommme Voir le message
    Ah oui en effet je n'ai pas tenu cette discussion à jour, mais j'ai bien pu corriger l'erreur (une fonction que j'appellais à la dernière ligne juste au moment de l'envoi et qui faisait n'importe quoi), et en testant avec les entiers positifs il est très net que l'on gagne du temps (facteur 3 par rapport au max atteint avec les données en entier dans -2047,2047.
    C'est sympa pour ceux qui ont essayé de vous aider.
    Surtout qu'on vous avait demandé de poster le code... çà aurait évité de se prendre le chou.

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

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2015
    Messages : 14
    Par défaut
    Merci beaucoup pour ton conseil sur la méthode pack, effectivement le endian n'était pas le bon mais c'est facile à régler et ça marche parfaitement une fois fait!
    Encore désolé pour le dérangement

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

Discussions similaires

  1. Réponses: 14
    Dernier message: 30/11/2007, 11h58
  2. [VB.NET]créer des block
    Par Emcy dans le forum Windows Forms
    Réponses: 43
    Dernier message: 08/04/2006, 02h52
  3. [VB.Net] "Impossible de créer le handle de fenêtre"
    Par cedric_g dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/04/2006, 12h49

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