你好团队对话框中,
我写了一个程序基于ble_central项目,发现BLE设备与一个特殊的名字或MAC地址。
如果找到一个设备,我连接到它,然后我写为特点。
我的问题是:
每次我试着写外围,状态是3 Write-Completed-Event (ATT_ERROR_WRITE_NOT_PERMITTED)。
当我试着用我的手机通过nRF连接应用程序,我可以读和写,没有任何问题。
尝试了作为外围覆盆子π,14680我的手机和一个对话框。
每一次状态是3。
printf("开始写\ r \ n ");uint16_t * mtu = 0;ble_gattc_get_mtu (evt - > conn_idx、mtu);printf (" MTU率:% u \ r \ n”, * MTU);uint8_t测试= 0 x00;printf (" uuid: % s \ r \ n”, format_uuid(生产[0].uuid));printf(“写\ r \ n”);ble_gattc_write (evt - > conn_idx,生产[0]。处理错误,sizeof(测试),测试);
生产[0]包含了处理器的特点。
提前谢谢你的努力。
致以最亲切的问候
HDR
设备:
嗨hdr,
谢谢你的问题在我们的公共祝福论坛。你能请注明外围是什么?是另一个DA14682吗?
谢谢,PM_Dialog
我使用一个覆盆子π与PyBluez外围,我的手机14680年上述应用程序和一个对话框。我现在尝试一种达14682 14680我不能访问,因为设备是盆栽。
嗨hdr
我有同样的请求
你能告诉我什么是Write-Completed-Event以及如何使用? ?
谢谢
如果我理解正确的话,Write_Completed_Event叫做当我叫ble_gattc_write和执行。如果我回来conn_idx、处理程序和一个状态码。在我的情况下,状态代码是3,代表ATT_ERROR_WRITE_NOT_PERMITTED。
描述如何使用事件,我会参考ble_central示例项目。
嗨hdr
我也使用ble_gattc_write添加Write_Completed_Event app_task。c如下,这是当ble_gattc_write完成吗? ?
静态常量struct ke_msg_handler app_gap_process_handlers [] =
{
(ke_msg_func_t) gapm_device_ready_ind_handler}, {GAPM_DEVICE_READY_IND
(ke_msg_func_t) gapm_cmp_evt_handler}, {GAPM_CMP_EVT
(ke_msg_func_t) gapc_cmp_evt_handler}, {GAPC_CMP_EVT
(ke_msg_func_t) gapc_connection_req_ind_handler}, {GAPC_CONNECTION_REQ_IND
(ke_msg_func_t) gapc_disconnect_ind_handler}, {GAPC_DISCONNECT_IND
(ke_msg_func_t) gapc_get_dev_info_req_ind_handler}, {GAPC_GET_DEV_INFO_REQ_IND
(ke_msg_func_t) gapc_set_dev_info_req_ind_handler}, {GAPC_SET_DEV_INFO_REQ_IND
(ke_msg_func_t) gapm_profile_added_ind_handler}, {GAPM_PROFILE_ADDED_IND
(ke_msg_func_t) gapm_adv_report_ind_handler}, {GAPM_ADV_REPORT_IND
(ke_msg_func_t) gapc_param_update_req_ind_handler}, {GAPC_PARAM_UPDATE_REQ_IND
(ke_msg_func_t) gapc_le_pkt_size_ind_handler}, {GAPC_LE_PKT_SIZE_IND
(ke_msg_func_t) gapc_get_con_rssi_ind_handler}, {GAPC_CON_RSSI_IND / /亚历克斯加20191030
(ke_msg_func_t) app_read_ind_handler}, {GATTC_READ_IND / /亚历克斯测试2020 0710
(ke_msg_func_t) app_disc_all_svc}, {GATTC_SDP_SVC_IND / /亚历克斯测试2020 0710
(ke_msg_func_t) alex_gattc_cmp_evt_handler}, {GATTC_CMP_EVT / /亚历克斯测试2020 0716
/ / {GAPC_PEER_ATT_INFO_IND (ke_msg_func_t) app_read_dev_ver_ind_handler}, / /亚历克斯测试2020 0710
#如果(BLE_APP_SEC)
(ke_msg_func_t) gapc_security_ind_handler}, {GAPC_SECURITY_IND
# endif
};
我认为你使用另一个SDK和Dialog-Chip。
嗨hdr,
谢谢你的详细回复。根据蓝牙LE规格:
“如果属性值不能写由于权限那么一个错误响应应发送错误代码«写不允许»。”
请你检查是否特征(边缘侧)写权限吗?如果是的,那么我建议仔细检查如果中央(DA14682)写入正确的处理程序(生产[0].handle)。
此外,这将是非常有用的BLE嗅探器日志,这样我们可以了解到发生了什么事在空气中。
谢谢,PM_Dialog
你好,
周边有权限的特点编写和处理程序应该是正确的。
这是我的代码与对话框14682外围(相同的结果状态3):
与我的手机我可以写的特点。
嗨,亚历克斯,
谢谢你的评论,但请举起另一个论坛线程。具体的论坛主题和DA14682 SDK1.0.14有关。据我所知,你在设计、使用DA14585和SDK6所以请创建另一个机票和你的问题。
谢谢,PM_Dialog
嗨hdr,
Thansk来回gettign回来。你能提供一个祝福嗅探器捕获/吗
谢谢,PM_Dialog
你好,
不幸的是我们没有可能bie嗅探。
我们将继续寻找错误和联系你如果我们发现任何新的信息。
嗨hdr,
是的,请再输入将会非常有帮助。
谢谢,PM_Dialog
你好,
非常感谢你的帮助。我发现我的错误。
我的处理确实是错误的。我应该分配evt - > value_handle handle_evt_gattc_discover_char中的处理方法。
非常感谢你
hdr
嗨hdr,
高兴你算出来,谢谢你的提示。
谢谢,PM_Dialog