BLE FR801XH(从机)与手机(主机)配对、绑定后,绑定信息被存于 flash 中(起始地址 0x7d000),当手机再次连接时,BLE便可识别该手机已绑定。问题:如何确定当前连接的手机对应保存在flash中的绑定信息中的device_idx?
toya 发布的帖子
-
FR801XH如何获取当前连接的手机身份问题?
-
ota gatt通信问题
用二个FR8016H Dongle,分别用作主从AT,能正常执行AT命令及透传等功能,希望能通过主机对从机进行代码更新等工作。
已在user_entry_after_ble_init(void)中均添加 ota_gatt_add_service(); 能通过手机与从机进行可选择的AT或ota服务进行数据交换。
想通过Dongle主机与发信息给从机进行OTA服务,将根据 at_spsc_send_data()修改并增加 void ota_gatt_send_data(uint8_t conidx,uint8_t *data, uint8_t len) 如下:
void ota_gatt_send_data(uint8_t conidx,uint8_t *data, uint8_t len)
{
//if(l2cm_get_nb_buffer_available() > 0)
{
gatt_client_write_t write;
write.conidx = conidx;
write.client_id = ota_svc_id;
// write.att_idx = 1; //TX
write.att_idx = OTA_ATT_IDX_CHAR_VALUE_TX; //TX
write.p_data = data;
write.data_len = MIN(len,gatt_get_mtu(conidx) - 3);
// gatt_client_write_cmd(write);
gatt_client_write_req(write);
}
}
在 at_task_func()的AT_RECV_TRANSPARENT_DATA 事件中将at_spsc_send_data()替换为ota_gatt_send_data():
#if 0
if(gAT_buff_env.peer_param[gAT_ctrl_env.transparent_conidx].link_mode == SLAVE_ROLE)
at_spss_send_data(gAT_ctrl_env.transparent_conidx, gAT_env.at_recv_buffer,gAT_env.at_recv_index);
else if(gAT_buff_env.peer_param[gAT_ctrl_env.transparent_conidx].link_mode == MASTER_ROLE) //master
at_spsc_send_data(gAT_ctrl_env.transparent_conidx, gAT_env.at_recv_buffer,gAT_env.at_recv_index);
#else
co_printf("\r\n transparent_conidx:%d ota_gatt_send_data:",gAT_ctrl_env.transparent_conidx);
show_reg(gAT_env.at_recv_buffer,gAT_env.at_recv_index,1);
co_printf("\r\n");
ota_gatt_send_data(gAT_ctrl_env.transparent_conidx,gAT_env.at_recv_buffer,gAT_env.at_recv_index);
// ota_gatt_report_notify(gAT_ctrl_env.transparent_conidx,gAT_env.at_recv_buffer,gAT_env.at_recv_index);
#endif
本希望能在从机 OTA_gatt服务端的到来自主机的信息,但实际却是在从机AT GATT服务端(SPSS)收到数据,请教问题出在哪? 急!!!- 列表