mirror of
https://github.com/esphome/esphome.git
synced 2026-06-24 14:55:05 +00:00
[kamstrup_kmp][toshiba] Fix signed/unsigned comparisons against sizeof (#16135)
This commit is contained in:
@@ -139,12 +139,12 @@ void KamstrupKMPComponent::clear_uart_rx_buffer_() {
|
||||
|
||||
void KamstrupKMPComponent::read_command_(uint16_t command) {
|
||||
uint8_t buffer[20] = {0};
|
||||
int buffer_len = 0;
|
||||
size_t buffer_len = 0;
|
||||
int data;
|
||||
int timeout = 250; // ms
|
||||
|
||||
// Read the data from the UART
|
||||
while (timeout > 0 && buffer_len < static_cast<int>(sizeof(buffer))) {
|
||||
while (timeout > 0 && buffer_len < sizeof(buffer)) {
|
||||
if (this->available()) {
|
||||
data = this->read();
|
||||
if (data > -1) {
|
||||
@@ -183,7 +183,7 @@ void KamstrupKMPComponent::read_command_(uint16_t command) {
|
||||
// Decode
|
||||
uint8_t msg[20] = {0};
|
||||
int msg_len = 0;
|
||||
for (int i = 1; i < buffer_len - 1; i++) {
|
||||
for (size_t i = 1; i < buffer_len - 1; i++) {
|
||||
if (buffer[i] == 0x1B) {
|
||||
msg[msg_len++] = buffer[i + 1] ^ 0xFF;
|
||||
i++;
|
||||
|
||||
@@ -275,7 +275,7 @@ static Ras2819tSecondPacketCodes get_ras_2819t_second_packet_codes(climate::Clim
|
||||
*/
|
||||
static uint8_t get_ras_2819t_temp_code(float temperature) {
|
||||
int temp_index = static_cast<int>(temperature) - 18;
|
||||
if (temp_index < 0 || temp_index >= static_cast<int>(sizeof(RAS_2819T_TEMP_CODES))) {
|
||||
if (temp_index < 0 || static_cast<size_t>(temp_index) >= sizeof(RAS_2819T_TEMP_CODES)) {
|
||||
ESP_LOGW(TAG, "Temperature %.1f°C out of range [18-30°C], defaulting to 24°C", temperature);
|
||||
return 0x40; // Default to 24°C
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user