需求

数据处理的程序是多进程的,那么如何让多进程的处理程序使用硬件上的单个的串口呢?

解决

  1. 最适合的方法还是,把串口部分的程序独立出来,做成一个服务程序。
  2. 这个服务,对下是一条一条的把数据帧通过硬件串口进行收发。
  3. 这个服务,自身需要对数据进行一定的加工处理,比如按照指定的协议对数据帧进行编解码。
  4. 这个服务,对上可以使用队列,管道等进程间通讯的方式,把相关数据送到不同的进程中去。
  5. 当然如果多进程的处理功能特别简单,也可以考虑把这个处理的功能和串口二合一,然后通过多线程的方式去做。

参考

这个很有必要讨论讨论,我搞过一小段时间售货机,串口通信

多个进程间如何实现串口控制共享

linux两个进程同时打开串口,linux串口操作及设置详解