Fake serial communication under Linux
Posted
by kigurai
on Stack Overflow
See other posts from Stack Overflow
or by kigurai
Published on 2010-03-23T13:55:58Z
Indexed on
2010/03/23
15:23 UTC
Read the original article
Hit count: 254
I have an application where I want to simulate the connection between a device and a "modem". The device will be connected to a serial port and will talk to the software modem through that.
For testing purposes I want to be able to use a mock software device to test send and receive data.
Example Python code
device = Device()
modem = Modem()
device.connect(modem)
device.write("Hello")
modem_reply = device.read()
Now, in my final app I will just pass /dev/ttyS1 or COM1 or whatever for the application to use. But how can I do this in software? I am running Linux and application is written in Python.
I have tried making a FIFO (mkfifo ~/my_fifo
) and that does work, but then I'll need one FIFO for writing and one for reading. What I want is to open ~/my_fake_serial_port
and read and write to that.
I have also lpayed with the pty
module, but can't get that to work either. I can get a master and slave file descriptor from pty.openpty()
but trying to read or write to them only causes IOError Bad File Descriptor
error message.
© Stack Overflow or respective owner