华为云建站怎么样,企业门户网站包括,小程序注册页面,企业网搭建是什么意思btstack协议栈---总目录-CSDN博客
目录 1.GAP 链接密钥逻辑 2.蓝牙逻辑 3.主应用程序设置 4.log信息 展示了如何遍历存储在 NVS 中的经典链接密钥#xff0c;链接密钥是每个设备-设备绑定的。如果蓝牙控制器可以交换#xff0c;例如在桌面系统上#xff0c;则每个控制器都需…btstack协议栈---总目录-CSDN博客
目录 1.GAP 链接密钥逻辑 2.蓝牙逻辑 3.主应用程序设置 4.log信息 展示了如何遍历存储在 NVS 中的经典链接密钥链接密钥是每个设备-设备绑定的。如果蓝牙控制器可以交换例如在桌面系统上则每个控制器都需要一个链接密钥数据库。我们需要等待直到蓝牙堆栈启动并根据控制器的 BD ADDR 选择正确的链接密钥数据库。 1.GAP 链接密钥逻辑 列出存储的链接密钥。 2.蓝牙逻辑 在列出存储的链接密钥之前等待蓝牙启动。 3.主应用程序设置 主应用程序代码注册 HCI 数据包处理器并启动蓝牙堆栈。
/* section GAP Link Key Logic ** text List stored link keys*/
static void list_link_keys(void){bd_addr_t addr;link_key_t link_key;link_key_type_t type;btstack_link_key_iterator_t it;int ok gap_link_key_iterator_init(it);if (!ok) {printf(Link key iterator not implemented\n);return;}printf(Stored link keys: \n);while (gap_link_key_iterator_get_next(it, addr, link_key, type)){printf(%s - type %u, key: , bd_addr_to_str(addr), (int) type);printf_hexdump(link_key, 16);}printf(.\n);gap_link_key_iterator_done(it);
}/* section Bluetooth Logic ** text Wait for Bluetooth startup before listing the stored link keys*/ static void packet_handler(uint8_t packet_type, uint16_t channel, uint8_t *packet, uint16_t size){UNUSED(channel);UNUSED(size);if (packet_type ! HCI_EVENT_PACKET) return;switch(hci_event_packet_get_type(packet)){case BTSTACK_EVENT_STATE:if (btstack_event_state_get_state(packet) HCI_STATE_WORKING){list_link_keys();break;}break;default:break;}
}/* section Main Application Setup** text Listing MainConfiguration shows main application code.* It registers the HCI packet handler and starts the Bluetooth stack.*//* LISTING_START(MainConfiguration): Setup packet handler for GAP inquiry */
int btstack_main(int argc, const char * argv[]);
int btstack_main(int argc, const char * argv[]) {(void)argc;(void)argv;hci_event_callback_registration.callback packet_handler;hci_add_event_handler(hci_event_callback_registration);// turn on!hci_power_control(HCI_POWER_ON);return 0;
}
/* LISTING_END */ 4.log信息