需求:生产过程中需要对不同版本的耳机编号,修改部分参数,查询相关信息。
这需要用盒子转发耳机串口的信息(你不能每个耳机都飞线,用盒子是最好的),对于信息还需要自定义一份协议,同时耳机程序对收发的数据做出反应。
如何接收数据:
数据帧
typedef struct {
uint8_t frame_head;
uint8_t cmd;
uint8_t data_len;
uint8_t *p_data;
uint16_t crc16;
} box_frame;//收到的数据
自定义协议表示左右耳收发
typedef enum {
BOX_FRAME_HEAD_RX_L = 0x10,
BOX_FRAME_HEAD_RX_R = 0x11,
BOX_FRAME_HEAD_TX_L = 0x30,
BOX_FRAME_HEAD_TX_R = 0x31,
} box_frame_head;
直接用api取数据,分析数据头区分左右耳,核算CRC,然后转发给box_cmd_find_manage_handle去执行操作
static void box_manage_analyze_recv_data{
uint8_t *p_data;
uint16_t data_len;
hal_box_rx_get(p_data ,data_len );
if(p_data == NULL) {
X2BM_TRACE(0, "data == NULL");
return;
}
if(data_len == 0) {
X2BM_TRACE(