自己的slam车关于ros和stm32控制板的通信部分,之前一直使用rosserial_python包,前段时间重新编写了上、下位机的通信程序,本篇只对数据的RingBuffer做点总结。
由于是用于串口的帧数据传输,为保证每帧数据完整性,采用字节入队和出队的方式实现,测试结果也比较稳定。
class RingBuffer {
public:
RingBuffer(int buff_size);
~RingBuffer();
public:
int RingBuff_Rx(char* buf, int buf_len);
int RingBuff_Tx(char* buf, int buf_len);
int RingBuff_Rx_Byte(char data); //按字节入队
int RingBuff_Tx_Byte(char* data); //按字节出队
private:
unsigned int Head; //队列出口