mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	| @@ -34,7 +34,7 @@ ESPBTUUID ESPBTUUID::from_raw(const uint8_t *data) { | ||||
| ESPBTUUID ESPBTUUID::from_raw_reversed(const uint8_t *data) { | ||||
|   ESPBTUUID ret; | ||||
|   ret.uuid_.len = ESP_UUID_LEN_128; | ||||
|   for (int i = 0; i < ESP_UUID_LEN_128; i++) | ||||
|   for (uint8_t i = 0; i < ESP_UUID_LEN_128; i++) | ||||
|     ret.uuid_.uuid.uuid128[ESP_UUID_LEN_128 - 1 - i] = data[i]; | ||||
|   return ret; | ||||
| } | ||||
| @@ -43,30 +43,30 @@ ESPBTUUID ESPBTUUID::from_raw(const std::string &data) { | ||||
|   if (data.length() == 4) { | ||||
|     ret.uuid_.len = ESP_UUID_LEN_16; | ||||
|     ret.uuid_.uuid.uuid16 = 0; | ||||
|     for (int i = 0; i < data.length();) { | ||||
|     for (uint i = 0; i < data.length(); i += 2) { | ||||
|       uint8_t msb = data.c_str()[i]; | ||||
|       uint8_t lsb = data.c_str()[i + 1]; | ||||
|       uint8_t lsb_shift = i <= 2 ? (2 - i) * 4 : 0; | ||||
|  | ||||
|       if (msb > '9') | ||||
|         msb -= 7; | ||||
|       if (lsb > '9') | ||||
|         lsb -= 7; | ||||
|       ret.uuid_.uuid.uuid16 += (((msb & 0x0F) << 4) | (lsb & 0x0F)) << (2 - i) * 4; | ||||
|       i += 2; | ||||
|       ret.uuid_.uuid.uuid16 += (((msb & 0x0F) << 4) | (lsb & 0x0F)) << lsb_shift; | ||||
|     } | ||||
|   } else if (data.length() == 8) { | ||||
|     ret.uuid_.len = ESP_UUID_LEN_32; | ||||
|     ret.uuid_.uuid.uuid32 = 0; | ||||
|     for (int i = 0; i < data.length();) { | ||||
|     for (uint i = 0; i < data.length(); i += 2) { | ||||
|       uint8_t msb = data.c_str()[i]; | ||||
|       uint8_t lsb = data.c_str()[i + 1]; | ||||
|       uint8_t lsb_shift = i <= 6 ? (6 - i) * 4 : 0; | ||||
|  | ||||
|       if (msb > '9') | ||||
|         msb -= 7; | ||||
|       if (lsb > '9') | ||||
|         lsb -= 7; | ||||
|       ret.uuid_.uuid.uuid32 += (((msb & 0x0F) << 4) | (lsb & 0x0F)) << (6 - i) * 4; | ||||
|       i += 2; | ||||
|       ret.uuid_.uuid.uuid32 += (((msb & 0x0F) << 4) | (lsb & 0x0F)) << lsb_shift; | ||||
|     } | ||||
|   } else if (data.length() == 16) {  // how we can have 16 byte length string reprezenting 128 bit uuid??? needs to be | ||||
|                                      // investigated (lack of time) | ||||
| @@ -77,7 +77,7 @@ ESPBTUUID ESPBTUUID::from_raw(const std::string &data) { | ||||
|     // UUID format. | ||||
|     ret.uuid_.len = ESP_UUID_LEN_128; | ||||
|     int n = 0; | ||||
|     for (int i = 0; i < data.length();) { | ||||
|     for (uint i = 0; i < data.length(); i += 2) { | ||||
|       if (data.c_str()[i] == '-') | ||||
|         i++; | ||||
|       uint8_t msb = data.c_str()[i]; | ||||
| @@ -88,7 +88,6 @@ ESPBTUUID ESPBTUUID::from_raw(const std::string &data) { | ||||
|       if (lsb > '9') | ||||
|         lsb -= 7; | ||||
|       ret.uuid_.uuid.uuid128[15 - n++] = ((msb & 0x0F) << 4) | (lsb & 0x0F); | ||||
|       i += 2; | ||||
|     } | ||||
|   } else { | ||||
|     ESP_LOGE(TAG, "ERROR: UUID value not 2, 4, 16 or 36 bytes - %s", data.c_str()); | ||||
| @@ -155,7 +154,7 @@ bool ESPBTUUID::operator==(const ESPBTUUID &uuid) const { | ||||
|         } | ||||
|         break; | ||||
|       case ESP_UUID_LEN_128: | ||||
|         for (int i = 0; i < ESP_UUID_LEN_128; i++) { | ||||
|         for (uint8_t i = 0; i < ESP_UUID_LEN_128; i++) { | ||||
|           if (uuid.uuid_.uuid.uuid128[i] != this->uuid_.uuid.uuid128[i]) { | ||||
|             return false; | ||||
|           } | ||||
|   | ||||
| @@ -432,7 +432,7 @@ void ESPBTDevice::parse_scan_rst(const esp_ble_gap_cb_param_t::ble_scan_result_e | ||||
|  | ||||
| #ifdef ESPHOME_LOG_HAS_VERY_VERBOSE | ||||
|   ESP_LOGVV(TAG, "Parse Result:"); | ||||
|   const char *address_type = ""; | ||||
|   const char *address_type; | ||||
|   switch (this->address_type_) { | ||||
|     case BLE_ADDR_TYPE_PUBLIC: | ||||
|       address_type = "PUBLIC"; | ||||
| @@ -446,6 +446,9 @@ void ESPBTDevice::parse_scan_rst(const esp_ble_gap_cb_param_t::ble_scan_result_e | ||||
|     case BLE_ADDR_TYPE_RPA_RANDOM: | ||||
|       address_type = "RPA_RANDOM"; | ||||
|       break; | ||||
|     default: | ||||
|       address_type = "UNKNOWN"; | ||||
|       break; | ||||
|   } | ||||
|   ESP_LOGVV(TAG, "  Address: %02X:%02X:%02X:%02X:%02X:%02X (%s)", this->address_[0], this->address_[1], | ||||
|             this->address_[2], this->address_[3], this->address_[4], this->address_[5], address_type); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user