1个月前
多机示例发送数据
发表本杰明图135分 12个答复嗨对话,
简而言之,我的问题是如何将数据发送到奴隶多机例子。
让我解释一下我的问题:
我用DA14531-DA14585 586_Multirole_例示例与多奴隶连接(我使用ble_app_profile示例),我可以连接多个奴隶和主人(多机)可以接收从从属的数据,但我不知道如何将数据发送到从属,我使用iPad连接从属(ble_app_profile示例),从属可以接收数据。
我测试了以下内容USER_CATCH_REST_HNDL回调,我希望如果收到数据,那么我会将数据发送到从属,但是我可以从从服务器那里收到数据,而从属无法接收数据。
struct gattc_write_cmd *wr_char = ke_msg_alloc_dyn(gattc_write_cmd,
dest_id,src_id,
gattc_write_cmd,sizeof(struct gattc_write_cmd));
// 抵消
wr_char-> offset = 0x0000;
//光标总是0
wr_char->光标= 0x0000;
//写类型
wr_char->操作= gattc_write;
//特征值属性句柄
wr_char-> handle = 1;
//值长度
wr_char->长度= 3;
//自动执行
wr_char-> auto_execute = true;
// 价值
int8_t aa [2];
AA [0] = 9;
AA [1] = 5;
memcpy(&wr_char-> value [0],aa,2);
//发送消息
ke_msg_send(wr_char);
谢谢
本杰明
1个月前
嗨对话,
非常感谢您的快速回答。
我发现user_ble_gatt_write()无论如何,与上述功能相似,我用不同的参数测试了该函数,但仍然无法在从属中接收数据。
您可以帮助提供有关如何使用此功能的参数的示例?从图片显示的情况下,从灯蓝色可以接收数据,如果该功能可以发送与图片显示的数据相同的数据,我相信这可能是一个很好的起点,我将能够使用此功能。
再次感谢。
本杰明
附件 | 尺寸 |
---|---|
1.JPG | 157.96 kb |
2.JPG | 159.6 kb |
3.JPG | 168.29 kb |
1个月前
嗨,本杰明,
为延迟道歉。快速问题:您想在Gap Central设备上写哪种服务?是自定义服务吗?
您能否分享如何调用user_ble_gatt_write()?
谢谢,pm_dialog
1个月前
嗨对话,
非常感谢您的回复。
我打了电话user_ble_gatt_write()在功能中user_catch_rest_hndl()。
以下是我用来进行调用的代码的一部分。
570
571案例gattc_event_ind:
572 {
573
574 //以下由本杰明添加
575 int8_t aa [2];
576 AA [0] = 9;
577 AA [1] = 5;
578
579 user_ble_gatt_write(gattc_write_cmd,conn_idx,svc1_idx_led_state_val,aa,sizeof(aa));
580
581
582 //以下两行输出接收数据。
583 struct gattc_event_ind const *msg_param =(struct gattc_event_ind const *)(param);
584 Arch_printf(“ <%d> \ t”,msg_param-> value [0]);
585 //上面由本杰明添加
586
587}休息;
588
589案例GAPM_CMP_EVT:
590 {
谢谢
本杰明
1个月前
嗨,本杰明图,
请从中央实施SW示例中检查handle_svc_ind()。当收到gattc_sdp_svc_ind时,handle_svc_ind(con_idx,disc_svc);在user_catch_rest_hndl()中称为。gattc_sdp_svc_ind表示服务发现表明已经找到了服务,因此一旦找到新服务,就会触发handle_svc_ind()。如果您在handle_svc_ind()中检查代码,您会发现它发现了为BAS(enable_bas)和IAS服务(enable_ias)发现的代码。服务发现后,您可以按中央设备上的按钮。这将写入警报服务,并开始眨眼在接近记者上的LED。如果正确发送,您还应该在终端上看到写入。
因此,按下按钮时,请调用User_ble_gatt_write()以写入IAS。
对于自定义服务(SVC1_IDX_LED_STATE_VAL),您应该遵循相同的过程。在handle_svc_ind()中发现自定义服务,然后执行GATT写入正确的属性句柄。
谢谢,pm_dialog
1个月前
嗨,本杰明图,
感谢您的问题。您可以使用BLE通知。请检查DA14585/DA14586/DA14531中央实施这说明了如何执行Gatt读/写作作为中心。
在user_ble_gatt.c源文件中,您可以找到user_ble_gatt_write()。该功能执行GATT写入。您应该将gattc_write_cmd命令发送到堆栈。
谢谢,pm_dialog