使用BTU tuya os开发mesh灯, 现在加入一个beacon遥控器转发功能,即收到beacon遥控信息,再通过beacon转播出去, 就相当于实现一个beacon遥控器的中继功能, 请问有没有相关例程或者支持?
【求助】BTU mesh灯如何支持beacon遥控中继功能
Re: 【求助】BTU mesh灯如何支持beacon遥控中继功能
可以使用 void tuya_ble_advertise_send_cb_init(app_ble_adv_send_cb_t cb) 设置发送回调函数, INT32_T app_ble_data_adv_send(rf_packet_adv_t *par) 返回 1 为发送,返回 0 为结束发送。以下代码供参考。
Code: Select all
OPERATE_RET tuya_init_last(VOID_T)
{
...
tuya_ble_advertise_send_cb_init(app_ble_data_adv_send);
...
return OPRT_OK;
}
INT32_T app_ble_data_adv_send(rf_packet_adv_t *par){
if(__adv_data_send_start == 1){
for(UINT8_T i=0;i<6;i++){
par->advA[i] = adv_mac[5-i];
}
memcpy(par->data, __adv_data, __adv_data_len);
par->header.type = 2;//LL_TYPE_ADV_NONCONN_IND;
par->rf_len = __adv_data_len + 6;
par->dma_len = par->rf_len + 2;
__adv_data_send_start = 0;
return 1;
}else{
return 0;
}
}
Re: 【求助】BTU mesh灯如何支持beacon遥控中继功能
__adv_data_send_start 此标志位何时,在哪里置1
Re: 【求助】BTU mesh灯如何支持beacon遥控中继功能
在接收到遥控器指令(保证遥控器指令已过滤,相同遥控器数据包不需要重复转发),将原始遥控器数据复制到缓存,__adv_data_send_start 发送标志位置1,在 app_ble_data_adv_send 里将缓存数据复制到发送缓存中,底层就可自行发送了。
Re: 【求助】BTU mesh灯如何支持beacon遥控中继功能
按上述处理,会发现转播丢包错包多帧等情况。
Re: 【求助】BTU mesh灯如何支持beacon遥控中继功能
有无实现的具体实例
Re: 【求助】BTU mesh灯如何支持beacon遥控中继功能
目前没有具体实现,请问丢包错包是什么个现象?