Bonjour à tous,
Mon problème concerne l'utilisation du port série. J'utilise le module serial pour effectuer les échanges. Tout fonctionne parfaitement jusqu'a ce que je veuille envoyer via l' instruction write() une valeur calculé précedement.
Je m'explique : j'ai remarquer que l'instruction read() renvoyait une chaine de caractère du type "\x0F" si l'on recoit 128 en décimal par exemple. De plus la fonction write() demande en paramètre le même formatage de chaîne si l'on ne veut pas envoyer un code ASCII à la place d'une valeure.
J'en ai donc conclu que le caractère anti-slash etait un caractère spécial qui faisait comprendre a la réception qu'il s'agissait d'une valeure et non pas d'une chaîne.A l'inverse, si l'on envoie en faisant : write("0x0F") on envoi en réalité les code ASCI de 0,x,0 et F.
Mon soucis vient du fait que je doit envoyer une valeure calculée : de manière simplifiée je peut résumer le problème par ceci :
hex() me renvoi la chaîne '0x2a' que je ne peut pas passer directement en paramètre a write() car je n'enverais pas la valeure 2A.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >>> a=42 >>> a=hex(a) >>> a '0x2a'
J'ai essayer plusieurs tecniques de découpage de la chaine en essayant de remplacer 0x par \x mais ce caractère etant spécial je n'y arrive pas.
J'aimerai eviter de passer par une liste de traduction de tous les caractères qui m'obligerai a créer une liste de 256 valeures
d'avance merci
Partager