1个月前
MultiRole示例发送数据
张贴了本杰德杜135分 12回复嗨对话框,
简而言之,我的问题是如何将数据发送到奴隶多尔例子。
让我解释一下我的问题:
我用da14531-da14585 586_multole_example与多奴(我使用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-> CURSOR = 0x0000;
//写入类型
WR_CHAR->操作= GATTC_WRITE;
//特征值属性句柄
WR_CHAR->手柄= 1;
//值长度
WR_CHAR->长度= 3;
//自动执行
wr_char-> auto_execute = true;
// 价值
INT8_T AA [2];
aa [0] = 9;
aa [1] = 5;
memcpy(&wr_char->值[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. |
4周前
嗨本杰明,
为延迟道歉。快速问题:您希望从间隙中央设备写入哪种服务?是定制服务吗?
您能分享user_ble_gatt_write()的调用方式吗?
谢谢,PM_DIALOG.
4周前
嗨对话框,
非常感谢您的回复。
我打了电话user_ble_gatt_write()在功能中user_catch_rest_hndl()。
以下是我用于执行调用的代码的一部分。
570.
571案例gattc_event_ind:
572 {
573.
574 //以下添加Benjamin
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结构gattc_event_ind const * msg_param =(struct gattc_event_ind const *)(param);
584 ARCH_PRINTF(“<%d> \ t”,msg_param->值[0]);
585 //上面由Benjamin添加
586.
587}休息;
588.
589案例GAPM_CMP_EVT:
590 {
谢谢
本杰明
3个星期前
嗨Benjamindu,
请从中央实施SW示例检查Handle_svc_ind()。当收到GattC_SDP_SVC_ind时,Handle_svc_ind(con_idx,disc_svc);在user_catch_rest_hndl()中调用。gattc_sdp_svc_ind意味着服务发现表示已找到服务,因此在找到新服务后,触发句柄_svc_ind()。如果在HANDER_SVC_IND()中检查代码,则会看到它发现BAS(ENABLE_BAS)和IAS服务(ENABLE_IAS)发现。服务发现后,您可以按中心设备上的按钮。这将写入警报服务,并开始在邻近记者上闪烁LED。如果正确发送,您还应该看到终端的写入。
因此,按下按钮时,将调用user_ble_gatt_write()以便写入IAS。
在自定义服务(SVC1_IDX_LED_STATE_VAL)的情况下,您应该按照相同的过程。在hange_svc_ind()中发现自定义服务,然后执行GATT写入正确的属性句柄。
谢谢,PM_DIALOG.
1个月前
嗨Benjamindu,
谢谢你的问题。您可以使用BLE通知。请检查一下DA14585 / DA14586 / DA14531中央实施这表明如何将GATT读取/写入中央。
在user_ble_gatt.c源文件中,您将找到user_ble_gatt_write()。该函数执行GATT写。您应该向堆栈发送一个gattc_write_cmd命令。
谢谢,PM_DIALOG.