Hello Team Dialog,
我已经写了一个基于BLE_Central项目的程序,该项目找到具有特殊名称或MAC地址的BLE设备。
如果找到设备,则我连接到它,然后我写入特征。
My problem is:
每次尝试写入外设时,状态为3(ATT_ERROR_WRITE_NOT_PERMITTE)在写完成-Fift中。
当我尝试通过NRF Connect应用程序使用我的手机进行操作时,我可以在没有任何问题的情况下读写。
尝试作为覆盆子PI,我的手机以及对话框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 test = 0x00;printf(“uuid:%s \ r \ n”,format_uuid(&charact [0] .uuuid));printf(“写\ r \ n”);BLE_GATTC_WRITE(EVT-> CONN_IDX,FALICLE [0] .HANDLE,FALSE,SIZEOF(测试)和测试);
faract [0]包含来自特性的处理程序。
非常感谢提前努力。
Best Regards
HDR
Device:
嗨HDR,
感谢您在公共BLE论坛上的问题。您能否说明外围是什么?是另一个da14682吗?
谢谢,PM_DIALOG.
我使用带有PyBluez的Raspberry Pi作为外设,我的手机与上述应用程序和一个对话框14680.我现在正在尝试一个DA 14682,因为我无法访问14680,因为设备被培养。
HI hdr
我有同样的要求
你能告诉我什么是书写完成的活动以及如何使用?
谢谢
如果我正确理解这一点,请在调用BLE_GATTC_WRITE时调用WRITE_COMPLETED_EVENT,并且已执行它。在事件中,我收到CONN_IDX,处理程序和状态代码。在我的情况下,状态代码为3,它代表了ATT_ERROR_WRITE_NOT_PERMITTED。
To describe how to use the event, I would refer to the ble_central example project.
HI hdr
我也使用ble_gattc_write,我将write_completed_event添加到app_task.c中如下,是它在ble_gattc_write完成的时候?
static const struct ke_msg_handler app_gap_process_handlers[]=
{
{gapm_device_ready_ind,(ke_msg_func_t)gapm_device_ready_ind_handler},
{gapm_cmp_evt,(ke_msg_func_t)gapm_cmp_evt_handler},
{gapc_cmp_evt,(ke_msg_func_t)gapc_cmp_evt_handler},
{gapc_connection_req_ind,(ke_msg_func_t)gapc_connection_req_ind_handler},
{gapc_disconnect_ind,(ke_msg_func_t)gapc_disconnect_ind_handler},
{GAPC_GET_DEV_INFO_REQ_IND, (ke_msg_func_t)gapc_get_dev_info_req_ind_handler},
{gapc_set_dev_info_req_ind,(ke_msg_func_t)gapc_set_dev_info_req_ind_handler},
{gapm_profile_added_ind,(ke_msg_func_t)gapm_profile_added_ind_handler},
{GAPM_ADV_REPORT_IND, (ke_msg_func_t)gapm_adv_report_ind_handler},
{GAPC_PARAM_UPDATE_REQ_IND, (ke_msg_func_t)gapc_param_update_req_ind_handler},
{GAPC_LE_PKT_SIZE_IND, (ke_msg_func_t)gapc_le_pkt_size_ind_handler},
{GAPC_CON_RSSI_IND, (ke_msg_func_t)gapc_get_con_rssi_ind_handler}, //Alex Add 20191030
{gattc_read_ind,(ke_msg_func_t)app_read_ind_handler},// Alex Test 2020 0710
{gattc_sdp_svc_ind,(ke_msg_func_t)app_disc_all_svc},// axx test 2020 0710
{GATTC_CMP_EVT, (ke_msg_func_t)alex_gattc_cmp_evt_handler},//alex test 2020 0716
// {gapc_peer_att_info_ind,(ke_msg_func_t)app_read_dev_ver_ind_handler},// Alex Test 2020 0710
#if(ble_app_sec)
{gapc_security_ind,(ke_msg_func_t)gapc_security_ind_handler},
#万一
};
我想你使用另一个SDKand Dialog-Chip.
嗨HDR,
Thanks for your detailed responses. According to Bluetooth LE specifications:
“If the attribute value cannot be written due to permissions then an Error Response shall be sent with the error code «Write Not Permitted». “
您能否检查特色是否(在外围方面)有写入权限吗?如果是,那么我建议仔细检查中央(DA14682)写入正确的处理程序(FALACT [0] .HANDLE)。
此外,有一个BLE嗅探器日志将非常有帮助,这样我们就可以了解在空中发生的事情。
谢谢,PM_DIALOG.
你好,
The characteristic in the peripheral has the permission write and the handler should be the right one.
以下是对话框14682外设(相同的结果状态为3):
使用我的手机,我可以在特征中写入。
Hi Alex,
Thanks for you comments but please raise another forum thread. The specific forum topic is related with DA14682 and SDK1.0.14. As far as I know, you are using DA14585 and SDK6 in your design, so please create another ticket with your issue.
谢谢,PM_DIALOG.
嗨HDR,
桑克斯克来了。请您提供BLE Sniffer Capture /
谢谢,PM_DIALOG.
你好,
unfortunately we have no possibility for BLE sniffing.
如果我们找到任何新信息,我们将继续搜索错误并与您联系。
嗨HDR,
是的,任何进一步的投入都会非常有帮助。
谢谢,PM_DIALOG.
你好,
非常感谢您的帮助。我发现了我的错误。
My handle was indeed wrong. I should have assigned evt->value_handle to the handle in the handle_evt_gattc_discover_char method.
非常感谢
hdr
嗨HDR,
很高兴你认为这出了,感谢你的迹象。
谢谢,PM_DIALOG.