我在API模式下使用XBee Digimesh模块在不同的工业机器之间发送数据,允许它们共享数据,信息和命令。为XBee开发通信协议
的API模式提供了一些基本的命令,主要执行寻址和为了做配置与所述的XBee模块本身交谈,等等
发送用户数据经由相应的XBee API-命令,它允许进行发送最大有效载荷为72字节的用户定义数据。
因为我想扩大这种沟通以允许整合更多的机器等。我正在考虑如何实现一个基本的通信系统,它完全适合于72字节的超小型有效载荷。
来自网络,我通常会在这里使用某种JSON,但这会很快填满有效载荷。
另外它不可能发送很多信息的帧,因为这也会很快填满有效载荷。
所以我想出了一种不同的沟通方式。相反发射挤满了信息帧,何谈发送某种消息这样的:
- 机-A广播:谁在那儿?
- 机-B回答:这是我,我是一个XXX-机
- 机-C回答:这是我,我是一个XXX-机
机-A现在计算的答复,并决定一起工作Machine-B(因为Machine-C与As接口不匹配):
- Machine-A to B:Hello B,请给我一些价值,请!
- 机B到A:你去那里:2.349590
这可以扩展到不同的短消息。在每条消息之后,发件人将消息的类型保存在一个状态中,并且将根据状态/上下文评估回复。
我试图避免的是定义一个基于位的协议(如MIDI),它将所有事件定义为基于位的标志。由于我们现在不会在未来添加什么类型的硬件,我想要一个非常灵活的通信协议,并且不需要协调器或消息代理等。
但是由于这是我第一次思考关于通信协议我很想知道是否有一些现有的框架可以处理轻载荷上的复杂通信。