你好,
我有一个读/通知模式可用的BLE特性。
我正在使用BLE_PERITELAL_APP的自定义基础进行测试。
//特征
ble_uuid_from_string(xxx_uuid,&uuid);
BLE_GATTS_ADD_CHAROURATIC(&UUID,GATT_PROP_NOTIFY | GATT_PROP_READ,ATT_PERM_READ,
xxx_size,0,null和服务 - > xxx);
//描述符
ble_uuid_create16(UUID_Gatt_Client_Char_Char_Configuration,&UUID);
ble_gatts_add_descriptor(&uuid,att_perm_rw,sizeof(uint16_t),0,
&service-> xxx_desc);
定期我正在更新这个值
if(m_conn_idx!= ble_conn_idx_invalid){
ble_gatts_send_event(m_conn_idx,type,gatt_event_notification,
xxx_size和数据);
}
通知和读取的前30秒工作良好,然后我的Android应用程序已断开连接。
我正在使用类似于BLE配置的WRBL项目的设置
#define ble_adv_interval(320)
#define ble_conn_fast_intv_max(15)
#define ble_conn_fast_intv_min(15)
#define ble_conn_slow_intv_max(520)
#define ble_conn_slow_intv_min(480)
#define ble_mtu_size(131)
我需要修改哪些设置的任何想法,以确保我可以超过30秒阅读我的通知?
非常感谢,
嗨bvr,
如果您的Android设备断开连接,那么您必须检查断开连接的原因,对于启动器,您必须检查设备是否仍然可操作时仍然在断开连接。您是否能够在从设备断开连接后看到设备广告?如果设备仍然运行,则必须检查断开连接的原因,因此当断开连接时,您应该得到一个BLE_EVT_GAP_DISCONCONCONCONCONCONCE此事件来触摸断开的原因,因此检查原因是启动它。
谢谢mt_dialog.
感谢您的回复。
基于以下测试:
- 来自da1468x_da15xxx_sdk_1.0.12.1078.zip的BLE_PERITELAL项目
- DA14681开发套件 - PRO
- 在BLE_PERITALAL_TASK.C中更新(请参阅附件)。自定义部分位于#if cfg_user_service部分,以简化调试+ handle_evt_gap_connected方法
- 通知阅读器应用:B-BLE Android(https://play.google.com/store/apps/details?id=com.billy.billyLizeBlue.)用于测试我的特征(也用我们自己的软件测试)。
- 我没有WRBL固件的通知没有问题。
我仍然有断开问题0x13:
名称:EVT.
详细信息:0x7FD36F0.
十六进制:0x7FD36F0.
名称:HDR.
详细信息:{EVT_CODE = 258,长度= 10}
名称:EVT_CODE.
细节:258
十六进制:0x102
名称:长度
细节:10
十六进制:0xA.
名称:conn_idx.
细节:0
十六进制:0x0.
名称:地址
详细信息:{addr_type = private_address,addr =“çh\ 217xkr”}
名称:addr_type.
详情:private_address.
十六进制:0x1.
名称:addr.
细节:“Çh\ 217xkr”
十六进制:0x7FD36F7.
名称:原因
详情:19'\ 023'
十六进制:0x13
当然,该设备仍然是可操作的,可以直接连接。
谢谢你的支持。
我刚刚忘记了最后的描述符的handle_write_request。
一切都很好。
添加最终的示例文件可能很有用:)
嗨bvr,
谢谢您的指示,您也可能希望查看681的教程部分,有一个关于68x系列的自定义配置文件的教程。
谢谢mt_dialog.