J'essaie actuellement d'envoyer des données binaires via pexpect. Pour une raison quelconque, les données passent à travers juste trouver, sauf pour un 0x04, qui est simplement ignoré. J'ai suivi l'appel pexpect pour déterminer que tout ce qui se passe est un appel os.write() à un descripteur de fichier ouvert à partir d'une commande pty.fork().Caractères ne passant pas d'un pseudo-terminal maître à un esclave
Des idées?
(code exemple qui illustre le problème)
import os, pty, sys
pid, child_fd = pty.fork()
if pid: # Parent
os.write(child_fd, b"'\x04hmm\x04'\n")
buf = os.read(child_fd, 100)
print buf
else: # Child
text = sys.stdin.readline()
print ''.join(["%02X " % ord(x) for x in text])
de résultats:
$ python test.py
'hmm'
27 68 6D 6D 27 0A
En outre, le pilote pty fait l'écho local pour vous comme en témoigne le '' hmm' 'avant tout le reste. – Omnifarious