你好,
我有一个BLE特性,可在READ / NOTIFY模式。
我正在使用一个自定义的ble_peripheral_app为我的测试基础。
/ /特征
ble_uuid_from_string (xxx_UUID uuid);
ble_gatt_add_characteristic (&uuid, GATT_PROP_NOTIFY | GATT_PROP_READ, ATT_PERM_READ,
xxx_SIZE, 0, NULL, &service->xxx);
/ /描述符
ble_uuid_create16 (UUID_GATT_CLIENT_CHAR_CONFIGURATION uuid);
ble_gatts_add_descriptor(&uuid, ATT_PERM_RW, sizeof(uint16_t), 0,
技术服务- > xxx_desc);
我定期更新这个值
if (m_conn_idx != BLE_CONN_IDX_INVALID){/ /创建连接
ble_gatts_send_event (m_conn_idx类型、GATT_EVENT_NOTIFICATION
xxx_SIZE、平差);
}
通知和读取工作良好的前30秒,然后我的android应用程序断开连接。
我在BLE配置中使用类似于wrbl项目的设置
#定义BLE_ADV_INTERVAL (320)
#定义BLE_CONN_FAST_INTV_MAX (15)
#定义BLE_CONN_FAST_INTV_MIN (15)
#定义BLE_CONN_SLOW_INTV_MAX (520)
#定义BLE_CONN_SLOW_INTV_MIN (480)
#定义BLE_MTU_SIZE (131)
我需要修改哪些设置,以确保我可以阅读我的通知超过30秒?
非常感谢,
嗨BVR,
如果你的android设备断开了连接,那么你必须检查断开的原因,首先,你必须检查当你断开连接时设备是否仍在运行。您是否能够在设备断开连接后立即看到设备广告?如果设备仍然在运行,你必须检查断开的原因,所以当断开发生时,你应该得到一个BLE_EVT_GAP_DISCONNECTED事件,该事件带有断开的原因,所以检查原因是调试的开始。
由于MT_dialog
谢谢你的回复。
基于以下测试:
- ble_peripheral project from DA1468x_DA15xxx_SDK_1.0.12.1078.zip
- DA14681开发工具包- Pro
-更新ble_peripheral_task.c(见附件)。自定义部分在#if CFG_USER_SERVICE部分中,以简化调试+ handle_evt_gap_connected方法
-通知阅读器应用:B-BLE android (https://play.google.com/store/apps/details?id=com.billy.billylightblue)来测试我的特性(也用我们自己的软件测试)。
-我没有问题的通知从wrbl固件。
我仍然有断开连接的问题0x13:
名称:evt
细节:0 x7fd36f0
十六进制:0 x7fd36f0
名称:hdr
详细信息:{evt_code = 258, length = 10}
名称:evt_code
细节:258
十六进制:0 x102
名称:长度
细节:10
十六进制:0 xa
名称:conn_idx
细节:0
十六进制:0 x0
名称:地址
详细信息:{addr_type = PRIVATE_ADDRESS, addr = "çH\217xkr"}
名称:addr_type
细节:PRIVATE_ADDRESS
十六进制:0 x1
名称:addr
细节:“cH \ 217着”
十六进制:0 x7fd36f7
名称:原因
细节:19 \ 023的
十六进制:0 * 13
当然,设备在使用后仍可继续使用,可以直接重新连接。
谢谢你的支持。
我只是忘记了结尾描述符的handle_write_request。
现在一切都好。
添加最终的示例文件可能会有用:)
嗨BVR,
谢谢您的提示,您可能还想看看681的教程部分,那里有一个关于68x系列的自定义配置文件的教程。
由于MT_dialog