Ho un programma che utilizza pyserial e voglio testarlo senza usare un vero dispositivo con porta seriale.come usare/dev/ptmx per creare una porta seriale virtuale?
In Windows, utilizzo com0com e, in linux, so che esiste un metodo per creare una coppia di porte seriali virtuali senza utilizzare un programma aggiuntivo.
quindi guardo il manuale e ho trovato pts,/dev/ptmx, ma non so come creare un paio seguendo il manuale, qualcuno può darmi un esempio?
ho provato (in python):
f = open("/dev/ptmx", "r")
e funziona,/dev/pts/4 è stato creato.
e ho provato:
f = open("/dev/4", "w")
e il risultato è:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 5] Input/output error: '/dev/pts/4'
edit: ho trovato una soluzione (workround), utilizzando socat.
socat PTY,link=COM8 PTY,link=COM9
quindi COM8 COM9 vengono creati come coppie di porte seriali virtuali.
c'è qualche esempio? C/Python/C++? – linjunhalida
Ho trovato un lungo esempio C, http://www.developerweb.net/forum/showthread.php?t=5623, ma nessun esempio di Python. –
Gli esempi di Python sono nascosti nel modulo 'pty', sebbene lasci che' os.openpty' faccia il lavoro effettivo quando può :) –