mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	[nextion] Fix command spacing double timing and response blocking issues (#9134)
This commit is contained in:
		| @@ -33,6 +33,7 @@ bool Nextion::send_command_(const std::string &command) { | |||||||
|  |  | ||||||
| #ifdef USE_NEXTION_COMMAND_SPACING | #ifdef USE_NEXTION_COMMAND_SPACING | ||||||
|   if (!this->ignore_is_setup_ && !this->command_pacer_.can_send()) { |   if (!this->ignore_is_setup_ && !this->command_pacer_.can_send()) { | ||||||
|  |     ESP_LOGN(TAG, "Command spacing: delaying command '%s'", command.c_str()); | ||||||
|     return false; |     return false; | ||||||
|   } |   } | ||||||
| #endif  // USE_NEXTION_COMMAND_SPACING | #endif  // USE_NEXTION_COMMAND_SPACING | ||||||
| @@ -43,10 +44,6 @@ bool Nextion::send_command_(const std::string &command) { | |||||||
|   const uint8_t to_send[3] = {0xFF, 0xFF, 0xFF}; |   const uint8_t to_send[3] = {0xFF, 0xFF, 0xFF}; | ||||||
|   this->write_array(to_send, sizeof(to_send)); |   this->write_array(to_send, sizeof(to_send)); | ||||||
|  |  | ||||||
| #ifdef USE_NEXTION_COMMAND_SPACING |  | ||||||
|   this->command_pacer_.mark_sent(); |  | ||||||
| #endif  // USE_NEXTION_COMMAND_SPACING |  | ||||||
|  |  | ||||||
|   return true; |   return true; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -377,12 +374,6 @@ void Nextion::process_nextion_commands_() { | |||||||
|   size_t commands_processed = 0; |   size_t commands_processed = 0; | ||||||
| #endif  // USE_NEXTION_MAX_COMMANDS_PER_LOOP | #endif  // USE_NEXTION_MAX_COMMANDS_PER_LOOP | ||||||
|  |  | ||||||
| #ifdef USE_NEXTION_COMMAND_SPACING |  | ||||||
|   if (!this->command_pacer_.can_send()) { |  | ||||||
|     return;  // Will try again in next loop iteration |  | ||||||
|   } |  | ||||||
| #endif |  | ||||||
|  |  | ||||||
|   size_t to_process_length = 0; |   size_t to_process_length = 0; | ||||||
|   std::string to_process; |   std::string to_process; | ||||||
|  |  | ||||||
| @@ -430,6 +421,7 @@ void Nextion::process_nextion_commands_() { | |||||||
|         } |         } | ||||||
| #ifdef USE_NEXTION_COMMAND_SPACING | #ifdef USE_NEXTION_COMMAND_SPACING | ||||||
|         this->command_pacer_.mark_sent();  // Here is where we should mark the command as sent |         this->command_pacer_.mark_sent();  // Here is where we should mark the command as sent | ||||||
|  |         ESP_LOGN(TAG, "Command spacing: marked command sent at %u ms", millis()); | ||||||
| #endif | #endif | ||||||
|         break; |         break; | ||||||
|       case 0x02:  // invalid Component ID or name was used |       case 0x02:  // invalid Component ID or name was used | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user