jl701n_soundbox_release_v1.4.2 主从机模式发送自定义命令失败问题解决
📎 原始文档:https://www.kdocs.cn/l/csKZjNZ1rTm4 jl701n_soundbox_release_v1.4.2 主从机模式发送自定义命令失败问题解决
- 需要增加解析命令回调
static void identification_cmd_handler(u16 acl_hdl, u8 arg_num, int *argv)
{
u8 i, j;
int trans_role = argv[0];
u8 *data = (u8 *)argv[1];
int len = argv[2];
if (trans_role == CONNECTED_SYNC_CALL_RX) {
for (i = 0; i < CIG_MAX_NUMS; i++) {
for (j = 0; j < CIG_MAX_CIS_NUMS; j++) {
if (app_cig_conn_info[i].cis_conn_info[j].acl_hdl == acl_hdl) {
put_buf(data, len);
break;
}
}
}
}
/* 由于转发流程中申请了内存,因此执行完毕后必须释放 */
if (data) {
free(data);
}
}
CONN_DATA_TRANS_STUB_REGISTER(identification_cmd) = {
.uuid = CONNECTED_UCMD_SYNC_FUNC_ID,
.task_name = "app_core",
.func = identification_cmd_handler,
};

#define CONNECTED_UCMD_SYNC_FUNC_ID CIG_FUNC_ID('U', 'C', 'M', 'D')
2. 发送命令demo,自行根据主从机角色调用不同接口去收发命令
case KEY_MASTER_SEND_TO_SLAVE :
u_data++;
printf(" KEY_MASTER_SEND_TO_SLAVE u_data is %d \n", u_data);
connected_send_data_to_sibling(CONNECTED_UCMD_SYNC_FUNC_ID, &u_data, sizeof(u_data), CONNECTED_DEVICE_IDENTIFICATION_L);
break;
case KEY_SLAVE_SEND_TO_MASTER :
u_data++;
printf(" KEY_SLAVE_SEND_TO_MASTER u_data is %d \n", u_data);
connected_send_data_to_sibling(CONNECTED_UCMD_SYNC_FUNC_ID, &u_data, sizeof(u_data), CONNECTED_DEVICE_IDENTIFICATION_M);
break;
