我试图在C中创建一个允许我从tcp连接向某些串行设备发送和接收数据的服务器。 (Arduino开始,但后来的ATtiny')。
服务器将是Raspberry Pi,所以我使用Rasbian(Debian)作为服务器操作系统。
服务器应该在启动时打开串口,然后在tcp端口上侦听数据。 如果通过网络接收数据,则应将其发送到寻址的串行端口,并将任何串行数据发送回tcp端口。关闭服务器时应关闭串口。这个很重要。我希望服务器无限期地打开串口,因为当串口打开时Arduino会重置,我希望在网络消息之间保持引脚状态。
我查看了beej's guide to network programming,这有助于网络方面。分叉流程以处理与“俗气聊天程序”的每个连接。
我还设法在C中打开一个串口并将数据发送到串行设备。我现在需要做的是加入这两个程序。我想我需要在父进程中打开串口,然后派一个进程来处理每个网络连接。然后我会使用管道来允许父进程和子进程进行通信吗?
这听起来像是一种明智的做法吗? 如果是的话,是否有任何方法可以帮助我学习如何以这种方式使用叉子/管道。
如果没有,那会是一个好方法吗?
感谢。