关于一个串口类定义两个子串口类对象,和两个通信协议的问题.
[复制链接]
问题描述:
一个串口类,采用线程,然后定义两个类对象,分别用于两个通信协议,
RS485的MODBUS通信协议(假设为A协议)和用于GPRS上的通信协议(假设为B协议),
那么我原本是在串口类中采用回调函数来处理接收到的数据,
但是由于,底层的驱动是是每接收到8个字节的数据就往应用层发送,
那么如果一串数据是20个,那么就要调用多次回调函数,
而我原先是在回调函数进行数据接收,校验错误,然后直接回发数据的.
(1)那么,我就想在串口类里,直接将20个数据接收完,然后传给全局变量,再调用回调函数处理,接收到的数据,
但是这样就引起了数据交叉问题.
(2)或者,我将两个协议处理成两个类,然后(A协议类和B协议类,在串口类中作为子类)
串口类中有数据的时候,就调用A,B两个协议类,的接收处理数据方法来处理接收到的数据.
请问,这个问题应该如何处理巧妙一些.
|