bugfix: 支援不同的 addree type 連線

1. Public address (cc2650 目前使用, 需向 ieee 註冊)
2. Random static address (bmd380 目前使用)
3. Resolvable random private address (未使用)
4. Non-resolvable random private address (未使用)
This commit is contained in:
chain40
2024-01-31 23:14:06 +08:00
parent 7fc5b54c47
commit 32f5fee764
+17 -1
View File
@@ -139,13 +139,29 @@ static void on_ins_scan(ins_scan_t *p_ins)
static void on_ins_connect(ins_connect_t *p_ins)
{
ble_gap_addr_t peer_addr;
memset(&peer_addr, 0x00, sizeof(peer_addr));
peer_addr.addr_id_peer = 0;
peer_addr.addr[0] = p_ins->addr[5];
peer_addr.addr[1] = p_ins->addr[4];
peer_addr.addr[2] = p_ins->addr[3];
peer_addr.addr[3] = p_ins->addr[2];
peer_addr.addr[4] = p_ins->addr[1];
peer_addr.addr[5] = p_ins->addr[0];
switch (peer_addr.addr[5] & 0b11000000)
{
case 0b00000000:
peer_addr.addr_type = BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_NON_RESOLVABLE;
break;
case 0b11000000:
peer_addr.addr_type = BLE_GAP_ADDR_TYPE_RANDOM_STATIC;
break;
case 0b01000000:
peer_addr.addr_type = BLE_GAP_ADDR_TYPE_RANDOM_PRIVATE_RESOLVABLE;
break;
case 0b10000000:
peer_addr.addr_type = BLE_GAP_ADDR_TYPE_PUBLIC;
break;
}
extern void le_scan_stop(void);
le_scan_stop();