等待串行端口上的数据并合并结果

时间:2019-07-18 03:59:49

标签: c++ boost serial-port asio

我有多个Victron Energy设备,它们通过串行端口进行通信,每秒吐出信息。 (每个Victron设备都在单独的串行端口上通信)

我想做的是从每个设备中获取数据,并将所有数据组合成一个json字符串(我有一个库)

我想到的唯一方法是在类中设置一个变量,说何时完成,然后检查所有对象是否都具有完成标志,然后执行某些操作。

1 个答案:

答案 0 :(得分:0)

您可能需要为每个要读取数据的串行端口创建单独的线程,然后:

  • 或者只是设置标志您有数据,如果您不在乎此数据可以被处理之前从端口进行的后续读取覆盖
  • 或将数据添加到此端口队列

在主线程中,您要么等待所有标志被设置,要么等待所有队列为非空然后处理数据。