AC700N可视化同时开启在线调试(ANC、EQ等)和自定义SPP UUID
📎 原始文档:https://www.kdocs.cn/l/cqYEknrHWiSm AC700N可视化同时开启在线调试(ANC、EQ等)和自定义SPP UUID
1、修改默认SPP初始化流程,以及修改注册回调的参数列表
void *app_online_spp_hdl = NULL;
static void online_spp_state_cbk(void *hdl, void *remote_addr, u8 state)
{
spp_state = state;
switch (state) {
case SPP_USER_ST_CONNECT:
log_info("SPP_USER_ST_CONNECT ~~~\n");
tws_online_spp_send(ONLINE_SPP_CONNECT, &state, 1, 1);
break;
case SPP_USER_ST_DISCONN:
log_info("SPP_USER_ST_DISCONN ~~~\n");
tws_online_spp_send(ONLINE_SPP_DISCONNECT, &state, 1, 1);
break;
default:
break;
}
}
static void online_spp_send_wakeup(void *hdl)
{
/* putchar('W'); */
db_api->send_wake_up();
}
static void online_spp_recieve_cbk(void *priv, void *remote_addr, u8 *buf, u16 len)
{
log_info("spp_api_rx(%d) \n", len);
log_info_hexdump(buf, len);
app_spp_data_send(app_online_spp_hdl, buf, len); //数据发送接口
}
void online_spp_init(void)
{
log_info("spp_file: %s", __FILE__);
spp_state = 0;
#if 1
if (app_online_spp_hdl == NULL) {
app_online_spp_hdl = app_spp_hdl_alloc(0x0); //默认UUID
if (app_online_spp_hdl == NULL) {
printf("online_debug_spp_hdl alloc err !!\n");
return;
}
}
app_spp_recieve_callback_register(app_online_spp_hdl, online_spp_recieve_cbk);
app_spp_state_callback_register(app_online_spp_hdl, online_spp_state_cbk);
app_spp_wakeup_callback_register(app_online_spp_hdl, online_spp_send_wakeup);
#else
spp_get_operation_table(&spp_api);
spp_api->regist_recieve_cbk(0, online_spp_recieve_cbk);
spp_api->regist_state_cbk(0, online_spp_state_cbk);
spp_api->regist_wakeup_send(NULL, online_spp_send_wakeup);
#endif
db_api = app_online_get_api_table();
}
2、新增自定义的SPP初始化,以及定义UUID

void *multi_protocol_spp_hdl = NULL;
void app_spp_recieve_callback(void *hdl, void *remote_addr, u8 *buf, u16 len)
{
log_info("%s %x\n", __func__, (u32)hdl);
put_buf(buf, len);
app_spp_data_send(multi_protocol_spp_hdl, buf, len); //数据发送接口
}
void app_spp_state_callback(void *hdl, void *remote_addr, u8 state)
{
log_info("%s %x state %d\n", __func__, (u32)hdl, state);
switch (state) {
case SPP_USER_ST_CONNECT:
log_info("SPP_USER_ST_CONNECT ~~~\n");
tws_online_spp_send(ONLINE_SPP_CONNECT, &state, 1, 1);
break;
case SPP_USER_ST_DISCONN:
log_info("SPP_USER_ST_DISCONN ~~~\n");
tws_online_spp_send(ONLINE_SPP_DISCONNECT, &state, 1, 1);
break;
default:
break;
}
}
void app_spp_send_wakeup_callback(void *hdl)
{
log_info("%s %x\n", __func__, (u32)hdl);
online_spp_send_wakeup(hdl);
}
void app_user_spp_init(void)
{
if (multi_protocol_spp_hdl == NULL) {
multi_protocol_spp_hdl = app_spp_hdl_alloc(0xa); //0xa自定义UUID
if (multi_protocol_spp_hdl == NULL) {
log_info("multi_protocol_spp_hdl alloc err !!\n");
return;
}
}
app_spp_recieve_callback_register(multi_protocol_spp_hdl, app_spp_recieve_callback);
app_spp_state_callback_register(multi_protocol_spp_hdl, app_spp_state_callback);
app_spp_wakeup_callback_register(multi_protocol_spp_hdl, app_spp_send_wakeup_callback);
}
3、调用SPP初始化
