본문으로 바로가기

[ESP-IDF] [1] 프로그래밍 유의사항 esp_ble_get_bond_device_list()

category ESP32 2023. 11. 20. 17:24

 : ble 프로그램 작성시 bonding 정보를 얻기위해 esp_ble_get_bond_device_list() 함수를 사용할경우 주의사항 입니다.   bond_dev_list 변수를 초기화 하지 않을 경우 잘못된 데이타를 읽어 옵니다.

  

 ▶ 소스코드는 아래 내용 참고하세요.

    uint8_t dev_count=0;
    esp_ble_bond_dev_t bond_dev_list[8];
    memset(bond_dev_list,0,sizeof(bond_dev_list));    <---- 요기 라인 없을 경우 데이타 잘못됨.
    dev_count =esp_ble_get_bond_device_num();
    iRet = esp_ble_get_bond_device_list(&dev_count ,bond_dev_list);
    if(iRet == ESP_OK){
        ESP_LOGI(HID_DEMO_TAG,"Number of bonded devices : %d",dev_count );
        for(i=0;i<dev_count;i++){
            ESP_LOGI(HID_DEMO_TAG,"Device %d -Addr : %02X:%02X:%02X:%02X:%02X:%02X",
                    i, bond_dev_list[i].bd_addr[0],bond_dev_list[i].bd_addr[1],
                    bond_dev_list[i].bd_addr[2], bond_dev_list[i].bd_addr[3],
                    bond_dev_list[i].bd_addr[4],bond_dev_list[i].bd_addr[5]);
        }

    }

 

 

▼  memset(bond_dev_list,0,sizeof(bond_dev_list));   주석처리시 로그

I (6275) HID_DEMO: Number of bonded devices : 2
I (6275) HID_DEMO: Device 0 -Addr : A5:A5:A5:A5:A5:A5
I (6275) HID_DEMO: Device 1 -Addr : A5:A5:A5:A5:A5:A5

 

▼ memset(bond_dev_list,0,sizeof(bond_dev_list));   추가된 상태 로그

I (4695) HID_DEMO: Number of bonded devices : 2
I (4695) HID_DEMO: Device 0 -Addr : 73:62:98:D4:B0:3A
I (4695) HID_DEMO: Device 1 -Addr : 6A:8E:A3:4A:01:39

 

< 기타 >

 ▶ esp_ble_get_bond_device_list() 함수 선언

 

함수 사용시 참고하세요.

반응형