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

Interfaçage autre langage Python Discussion :

remplir un tableau de valeurs hexadécimales


Sujet :

Interfaçage autre langage Python

  1. #1
    Membre actif
    remplir un tableau de valeurs hexadécimales
    Bonjour,
    J'utilise python pour lancer des tests unitaires.
    j'ai une application client/serveur écrit en C/C++ et j'utilise swig pour génerer l'interface.
    j'ai une fonction py_send( con_num, data ) qui permet d'envoyer data.
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    data = "Hello"
    marche bien. je recois bien "Hello" des deux cotés.
    Maintenant j'aimerais envoyer un tableau contenant des valeurs hexadécimal ( pris à partir d'une capture wireshark ).
    Ma question :
    comment écrire un tableau ou une chaine contenant ces valeurs héxadécimales ?
    j'ai fait :
    dataTosend = [0x66, 0x00, 0x00, 0x39] mais mon programme dit qu'il y a une erreur quand ma fonction de chiffrement essaie chiffrer dataTosend avant de l'envoyer. Je ne sais donc pa si la facon dont j'envoie les données hexadécimale est correcte ou pas.

    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Bonjour,
    d abord, je pense qu il est preferable d utiliser un tuple ( ca fait plus tableau C) et a defaut, faire
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    hex(nombre)
    si c est un nombre, ou concatener les differentes valeurs dans une chaine et puis tranmettre la chaine resultante.
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  3. #3
    Membre actif
    J'aurai également envoyé cela sous forme d'un string puis récupéré le tableau:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string = str(dataTosend)
    ..
    ..
    dataRecup = eval(string)

  4. #4
    Membre actif
    Est ce que tu peux me montrer un exemple très simple avec 0x66, 0x00, 0x00, 0x39 ?

  5. #5
    Membre éprouvé
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    val = int("0x39",16)
    val2 = eval("0x39")
    print val, val2


    avec <int> par example, il faut fournir la base dans laquelle se trouvent la chaine passe en parametre (facultatif pour la base 10). <eval> quant a lui est un genie.
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

###raw>template_hook.ano_emploi###