自定义SPP(可视化)
📎 原始文档:https://www.kdocs.cn/l/ccaGqE6p479F 自定义SPP(可视化)
- 添加自定义SPP UUID

- 开RCSP的情况下,自定义SPP收发流程如下:

- 没开RCSP的情况下,添加自定义SPP流程如下: 修改点一:
修改点二:
自定义SPP初始化的代码:
static void *user_app_spp_hdl0 = NULL;
static void *user_app_spp_hdla = NULL;
static void user_spp_state_cbk(void *hdl, void *remote_addr, u8 state)
{
switch (state) {
case SPP_USER_ST_CONNECT:
log_info("SPP_USER_ST_CONNECT ~~~\n");
break;
case SPP_USER_ST_DISCONN:
log_info("SPP_USER_ST_DISCONN ~~~\n");
break;
default:
break;
}
}
static void user_spp_send_wakeup(void)
{
log_info("user_spp_send_wakeup\n");
}
static void user_spp_recieve_cbk(void *hdl, void *remote_addr, u8 *buf, u16 len)
{
log_info("user_spp_recieve_cbk\n");
log_info("spp_api_rx(%d) \n", len);
log_info_hexdump(buf, len);
// 发送测试
app_spp_data_send(hdl, buf, len);
}
extern void origin_spp_state_cbk(void *hdl, void *remote_addr, u8 state);
extern void origin_spp_send_wakeup(void);
extern void origin_spp_recieve_cbk(void *hdl, void *remote_addr, u8 *buf, u16 len);
void user_spp_init(void)
{
app_spp_init();
if (user_app_spp_hdl0 == NULL) {
user_app_spp_hdl0 = app_spp_hdl_alloc(0);
log_info("user_app_spp_hdl0 = %x\n",user_app_spp_hdl0);
if (user_app_spp_hdl0 == NULL) {
log_info("user_app_spp_hdl0 alloc err !!\n");
return;
}
}
app_spp_recieve_callback_register(user_app_spp_hdl0, origin_spp_recieve_cbk);
app_spp_state_callback_register(user_app_spp_hdl0, origin_spp_state_cbk);
app_spp_wakeup_callback_register(user_app_spp_hdl0, origin_spp_send_wakeup);
if (user_app_spp_hdla == NULL) {
user_app_spp_hdla = app_spp_hdl_alloc(0x0a);
log_info("user_app_spp_hdla = %x\n",user_app_spp_hdla);
if (user_app_spp_hdla == NULL) {
log_info("user_app_spp_hdla alloc err !!\n");
return;
}
}
app_spp_recieve_callback_register(user_app_spp_hdla, user_spp_recieve_cbk);
app_spp_state_callback_register(user_app_spp_hdla, user_spp_state_cbk);
app_spp_wakeup_callback_register(user_app_spp_hdla, user_spp_send_wakeup);
}
// 自定义SPP的发送函数
void user_spp_data_send(u8 *buf, u16 len)
{
if(user_app_spp_hdla){
app_spp_data_send(user_app_spp_hdla, buf, len);
}
}
// 默认SPP的发送函数
void origin_spp_data_send(u8 *buf, u16 len)
{
if(user_app_spp_hdl0){
app_spp_data_send(user_app_spp_hdl0, buf, len);
}
}