杰理蓝牙耳机软件开发-TWS主从数据同步

在一些UI场景中需要引用到tws主从数据同步的情况,防止TWS对耳中两边的数据不一致

demo


//TWS主从数据同步
#define USER_TWS_SYNC_DEMO

#ifdef USER_TWS_SYNC_DEMO

enum {
    USER_TWS_DATA_SYNC_ID_1 = 1,
    //...code
};

//ID名称可以任意修改
#define TWS_FUNC_ID_USER_SYNC    TWS_FUNC_ID('U', 'T', 'W', 'S')
static void bt_tws_user_tws_sync(void *_data, u16 len, bool rx)
{
    
    if (rx) {
        u8 *data = (u8 *)_data;
        //在这里获取到由对耳发送过来数据,存储在data
        switch (data[0])
        {
        case USER_TWS_DATA_SYNC_ID_1:
            printf("USER TWS SYNC data  %d\n",data[1]);
            //tws接收到数据可以在这里打印出来,在这里取用处理
            break;
        // case ..
        
        default:
            break;
        }
    }
}

REGISTER_TWS_FUNC_STUB(app_user_tws_sync_stub) = {
    .func_id = TWS_FUNC_ID_USER_SYNC,
    .func    = bt_tws_user_tws_sync,
};

/**
 * @brief 自定义tws主从数据同步demo
 *
 * @param [in] sync_id 自定义区分的ID号
 * @param [in] my_data 需要同步的数据
 * @param [in] len 数据长度(这里只写了个两位的数组)
 *
 * @return VOID
 */
void bt_tws_sync_user_deal(u8 sync_id,u8 my_data,u8 len)
{
    u8 data[2];
    data[0] = sync_id;
    data[1] = my_data;
	//调用这个接口将需要同步的数据发送到对耳
    tws_api_send_data_to_sibling(data, len, TWS_FUNC_ID_USER_SYNC);
}

#else
void bt_tws_sync_user_deal(u8 sync_id,u8 my_data,u8 len)
{
    printf("Not TWS DATA SYNC DEMO  !!!\n");
}
#endif

用例:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值