mirror of
				https://github.com/esphome/esphome.git
				synced 2025-11-04 00:51:49 +00:00 
			
		
		
		
	Fixes BLE remote address type when connecting (#3702)
This commit is contained in:
		@@ -54,6 +54,7 @@ bool BLEClient::parse_device(const espbt::ESPBTDevice &device) {
 | 
				
			|||||||
  this->remote_bda[3] = (addr >> 16) & 0xFF;
 | 
					  this->remote_bda[3] = (addr >> 16) & 0xFF;
 | 
				
			||||||
  this->remote_bda[4] = (addr >> 8) & 0xFF;
 | 
					  this->remote_bda[4] = (addr >> 8) & 0xFF;
 | 
				
			||||||
  this->remote_bda[5] = (addr >> 0) & 0xFF;
 | 
					  this->remote_bda[5] = (addr >> 0) & 0xFF;
 | 
				
			||||||
 | 
					  this->remote_addr_type = device.get_address_type();
 | 
				
			||||||
  return true;
 | 
					  return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -83,7 +84,7 @@ void BLEClient::set_enabled(bool enabled) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void BLEClient::connect() {
 | 
					void BLEClient::connect() {
 | 
				
			||||||
  ESP_LOGI(TAG, "Attempting BLE connection to %s", this->address_str().c_str());
 | 
					  ESP_LOGI(TAG, "Attempting BLE connection to %s", this->address_str().c_str());
 | 
				
			||||||
  auto ret = esp_ble_gattc_open(this->gattc_if, this->remote_bda, BLE_ADDR_TYPE_PUBLIC, true);
 | 
					  auto ret = esp_ble_gattc_open(this->gattc_if, this->remote_bda, this->remote_addr_type, true);
 | 
				
			||||||
  if (ret) {
 | 
					  if (ret) {
 | 
				
			||||||
    ESP_LOGW(TAG, "esp_ble_gattc_open error, address=%s status=%d", this->address_str().c_str(), ret);
 | 
					    ESP_LOGW(TAG, "esp_ble_gattc_open error, address=%s status=%d", this->address_str().c_str(), ret);
 | 
				
			||||||
    this->set_states_(espbt::ClientState::IDLE);
 | 
					    this->set_states_(espbt::ClientState::IDLE);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -115,6 +115,7 @@ class BLEClient : public espbt::ESPBTClient, public Component {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  int gattc_if;
 | 
					  int gattc_if;
 | 
				
			||||||
  esp_bd_addr_t remote_bda;
 | 
					  esp_bd_addr_t remote_bda;
 | 
				
			||||||
 | 
					  esp_ble_addr_type_t remote_addr_type;
 | 
				
			||||||
  uint16_t conn_id;
 | 
					  uint16_t conn_id;
 | 
				
			||||||
  uint64_t address;
 | 
					  uint64_t address;
 | 
				
			||||||
  bool enabled;
 | 
					  bool enabled;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user