我想创建一个显示为串行端口的 linux 应用程序(例如/dev/ttyTEST)。此应用程序将监听发送到端口的命令,并做出响应。
这可能使用 Qt/C++ 吗?我没有做过内核编程,所以我希望这在用户空间中是可能的。
最佳答案
一切都取决于使用此类设备的应用程序的期望。
如果 /dev/ttyTEST
的行为像一个真正的串行设备,并正确响应所有设置其速度的 ioctl,那么这不能从用户空间完成。不过,在内核空间中实现起来并不难。
如果/dev/ttyTEST
只需要是一个tty,那么provide a pseudo tty .
如果 /dev/ttyTEST
仅仅是另一个应用程序可以写入和读取的内容,那么 socketpair()
does it .
如果您可以控制应用程序的代码,那么您可以让它检查设备是套接字对还是真正的字符设备,并忽略套接字上串行端口特定 API 的失败。
关于c++ - Qt/C++中创建虚拟串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529037/