mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 15:12:06 +00:00 
			
		
		
		
	Bump improv library version (#3072)
This commit is contained in:
		| @@ -56,7 +56,7 @@ async def to_code(config): | |||||||
|     cg.add(ble_server.register_service_component(var)) |     cg.add(ble_server.register_service_component(var)) | ||||||
|  |  | ||||||
|     cg.add_define("USE_IMPROV") |     cg.add_define("USE_IMPROV") | ||||||
|     cg.add_library("esphome/Improv", "1.0.0") |     cg.add_library("esphome/Improv", "1.1.0") | ||||||
|  |  | ||||||
|     cg.add(var.set_identify_duration(config[CONF_IDENTIFY_DURATION])) |     cg.add(var.set_identify_duration(config[CONF_IDENTIFY_DURATION])) | ||||||
|     cg.add(var.set_authorized_duration(config[CONF_AUTHORIZED_DURATION])) |     cg.add(var.set_authorized_duration(config[CONF_AUTHORIZED_DURATION])) | ||||||
|   | |||||||
| @@ -30,4 +30,4 @@ FINAL_VALIDATE_SCHEMA = validate_logger_baud_rate | |||||||
| async def to_code(config): | async def to_code(config): | ||||||
|     var = cg.new_Pvariable(config[CONF_ID]) |     var = cg.new_Pvariable(config[CONF_ID]) | ||||||
|     await cg.register_component(var, config) |     await cg.register_component(var, config) | ||||||
|     cg.add_library("esphome/Improv", "1.0.0") |     cg.add_library("esphome/Improv", "1.1.0") | ||||||
|   | |||||||
| @@ -111,58 +111,15 @@ std::vector<uint8_t> ImprovSerialComponent::build_version_info_() { | |||||||
| bool ImprovSerialComponent::parse_improv_serial_byte_(uint8_t byte) { | bool ImprovSerialComponent::parse_improv_serial_byte_(uint8_t byte) { | ||||||
|   size_t at = this->rx_buffer_.size(); |   size_t at = this->rx_buffer_.size(); | ||||||
|   this->rx_buffer_.push_back(byte); |   this->rx_buffer_.push_back(byte); | ||||||
|   ESP_LOGD(TAG, "Improv Serial byte: 0x%02X", byte); |   ESP_LOGV(TAG, "Improv Serial byte: 0x%02X", byte); | ||||||
|   const uint8_t *raw = &this->rx_buffer_[0]; |   const uint8_t *raw = &this->rx_buffer_[0]; | ||||||
|   if (at == 0) |  | ||||||
|     return byte == 'I'; |  | ||||||
|   if (at == 1) |  | ||||||
|     return byte == 'M'; |  | ||||||
|   if (at == 2) |  | ||||||
|     return byte == 'P'; |  | ||||||
|   if (at == 3) |  | ||||||
|     return byte == 'R'; |  | ||||||
|   if (at == 4) |  | ||||||
|     return byte == 'O'; |  | ||||||
|   if (at == 5) |  | ||||||
|     return byte == 'V'; |  | ||||||
|  |  | ||||||
|   if (at == 6) |   return improv::parse_improv_serial_byte( | ||||||
|     return byte == IMPROV_SERIAL_VERSION; |       at, byte, raw, [this](improv::ImprovCommand command) -> bool { return this->parse_improv_payload_(command); }, | ||||||
|  |       [this](improv::Error error) -> void { | ||||||
|   if (at == 7) |  | ||||||
|     return true; |  | ||||||
|   uint8_t type = raw[7]; |  | ||||||
|  |  | ||||||
|   if (at == 8) |  | ||||||
|     return true; |  | ||||||
|   uint8_t data_len = raw[8]; |  | ||||||
|  |  | ||||||
|   if (at < 8 + data_len) |  | ||||||
|     return true; |  | ||||||
|  |  | ||||||
|   if (at == 8 + data_len) |  | ||||||
|     return true; |  | ||||||
|  |  | ||||||
|   if (at == 8 + data_len + 1) { |  | ||||||
|     uint8_t checksum = 0x00; |  | ||||||
|     for (size_t i = 0; i < at; i++) |  | ||||||
|       checksum += raw[i]; |  | ||||||
|  |  | ||||||
|     if (checksum != byte) { |  | ||||||
|         ESP_LOGW(TAG, "Error decoding Improv payload"); |         ESP_LOGW(TAG, "Error decoding Improv payload"); | ||||||
|       this->set_error_(improv::ERROR_INVALID_RPC); |         this->set_error_(error); | ||||||
|       return false; |       }); | ||||||
|     } |  | ||||||
|  |  | ||||||
|     if (type == TYPE_RPC) { |  | ||||||
|       this->set_error_(improv::ERROR_NONE); |  | ||||||
|       auto command = improv::parse_improv_data(&raw[9], data_len, false); |  | ||||||
|       return this->parse_improv_payload_(command); |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   // If we got here then the command coming is is improv, but not an RPC command |  | ||||||
|   return false; |  | ||||||
| } | } | ||||||
|  |  | ||||||
| bool ImprovSerialComponent::parse_improv_payload_(improv::ImprovCommand &command) { | bool ImprovSerialComponent::parse_improv_payload_(improv::ImprovCommand &command) { | ||||||
|   | |||||||
| @@ -35,7 +35,7 @@ build_flags = | |||||||
| lib_deps = | lib_deps = | ||||||
|     esphome/noise-c@0.1.4         ; api |     esphome/noise-c@0.1.4         ; api | ||||||
|     makuna/NeoPixelBus@2.6.9      ; neopixelbus |     makuna/NeoPixelBus@2.6.9      ; neopixelbus | ||||||
|     esphome/Improv@1.0.0          ; improv_serial / esp32_improv |     esphome/Improv@1.1.0          ; improv_serial / esp32_improv | ||||||
|     bblanchon/ArduinoJson@6.18.5  ; json |     bblanchon/ArduinoJson@6.18.5  ; json | ||||||
| build_flags = | build_flags = | ||||||
|     -DESPHOME_LOG_LEVEL=ESPHOME_LOG_LEVEL_VERY_VERBOSE |     -DESPHOME_LOG_LEVEL=ESPHOME_LOG_LEVEL_VERY_VERBOSE | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user