idx_found在比较irk或mac_addr匹配时不是-1,但是当idx_emtpy_slot_found == -1时更新idx_found,所以在这里为什么不只是替换exsisted绑定信息如果idx_found!= -1?
if(-1!= idx_emtpy_slot_found){idx_found = idx_emtpy_slot_found;}否则{如果(idx_found!= -1){//我应该在这里添加这条行吗?//找不到空插槽 - 删除最旧的键数据插槽idx_found = bdb.next_slot ++;bdb.next_slot = bdb.next_slot%app_bond_db_max_bonded_peers;}}
设备:
嗨cgha,
我假设您正在研究SDK5.0.4的BLE_APP_SLEEPMODE示例。我的理解是否正确?如果是,根据邦德_DB_Store API的实现,如果没有足够的插槽级别以添加新的主站的绑定信息,则将删除最旧的绑定数据。从函数过程中,如果有一个空插槽(由idx_emtpy_slot_found表示),无论有一个地址匹配的情况,邦界info将始终放在新插槽中。
谢谢,PM_DIALOG.
你的意思是与irk和mac_addr的比较是冗余吗?由于IDX_FOUND将始终重新分配,而不管IRK或MAC_ADDR匹配。
嗨cgha,
如果没有足够的插槽级别以添加新的主站的绑定信息,则将删除最旧的绑定数据。在idx_emtpy_slot_found的情况下,无论有地址匹配的情况,邦界概要将纳入新插槽。
谢谢,PM_DIALOG.