From e04a7083dd0f731473481dd788f76595a37f0f0b Mon Sep 17 00:00:00 2001 From: zhixuan <59254886+zhixuan2333@users.noreply.github.com> Date: Mon, 19 Feb 2024 12:02:42 +0900 Subject: [PATCH 1/7] Add support for setting temperature with float value --- src/ir_Bosch.cpp | 12 +++++++++ src/ir_Bosch.h | 66 +++++++++++++++++++++++++----------------------- 2 files changed, 47 insertions(+), 31 deletions(-) diff --git a/src/ir_Bosch.cpp b/src/ir_Bosch.cpp index 56e9d2b99..c4a96cbc0 100644 --- a/src/ir_Bosch.cpp +++ b/src/ir_Bosch.cpp @@ -106,6 +106,14 @@ void IRBosch144AC::setTemp(const uint8_t degrees) { setTempRaw(kBosch144TempMap[temp - kBosch144TempMin]); } +void IRBosch144AC::setTemp(const float degrees) +{ + uint8_t temp = static_cast(degrees); + setTemp(temp); + + _.TempS3 = (degrees - temp) >= 0.5; +} + uint8_t IRBosch144AC::getTemp(void) const { uint8_t temp = (_.TempS1 << 1) + _.TempS3; uint8_t retemp = 25; @@ -117,6 +125,10 @@ uint8_t IRBosch144AC::getTemp(void) const { return retemp; } +float IRBosch144AC::getTempFloat(void) const { + return getTemp() + (_.TempS3 ? 0.5 : 0); +} + /// Set the speed of the fan. /// @param[in] speed The desired setting. void IRBosch144AC::setFan(const uint16_t speed) { diff --git a/src/ir_Bosch.h b/src/ir_Bosch.h index 9ebee9854..4789964ad 100644 --- a/src/ir_Bosch.h +++ b/src/ir_Bosch.h @@ -100,37 +100,39 @@ const uint8_t kBosch144DefaultState[kBosch144StateLength] = { union Bosch144Protocol { uint8_t raw[kBosch144StateLength]; ///< The state in IR code form. struct { - uint8_t :8; // Fixed value 0b10110010 / 0xB2. ############ - uint8_t InnvertS1_1:8; // Invert byte 0b01001101 / 0x4D # - uint8_t :5; // not used (without timer use) # - uint8_t FanS1 :3; // Fan speed bits in Section 1 # - uint8_t InnvertS1_2:8; // Invert byte # Section 1 = - uint8_t :2; // not used (without timer use) # Sektion 2 - uint8_t ModeS1 :2; // Operation mode bits S1 # - uint8_t TempS1 :4; // Desired temperature (Celsius) S2 # - uint8_t InnvertS1_3:8; // Invert byte (without timer use) ############ - - uint8_t :8; // Fixed value 0b10110010 / 0xB2. ############ - uint8_t InnvertS2_1:8; // Invert byte 0b01001101 / 0x4D # - uint8_t :5; // not used (without timer use) # - uint8_t FanS2 :3; // Fan speed bits in Section 2 # - uint8_t InnvertS2_2:8; // Invert byte # Section 2 = - uint8_t :2; // not used (without timer use) # Sektion 1 - uint8_t ModeS2 :2; // Operation mode bits S2 # - uint8_t TempS2 :4; // Desired temperature (Celsius) S2 # - uint8_t InnvertS2_3:8; // Invert byte (without timer use) ########### - - uint8_t :8; // Fixed value 0b11010101 / 0xD5 ########### - uint8_t ModeS3 :1; // ModeBit in Section 3 # - uint8_t FanS3 :6; // Fan speed bits in Section 3 # - uint8_t :1; // Unknown # - uint8_t :7; // Unknown # - uint8_t Quiet :1; // Silent-Mode # Section 3 - uint8_t :4; // Unknown # - uint8_t TempS3 :1; // Desired temp. Bit in Section3 # - uint8_t :3; // Unknown # - uint8_t :8; // Unknown # - uint8_t ChecksumS3 :8; // Checksum from byte 13-17 ########### + uint8_t :8; // Fixed value 0b10110010 / 0xB2. ############ + uint8_t InnvertS1_1 :8; // Invert byte 0b01001101 / 0x4D # + uint8_t :5; // not used (without timer use) # + uint8_t FanS1 :3; // Fan speed bits in Section 1 # + uint8_t InnvertS1_2 :8; // Invert byte # Section 1 = + uint8_t :2; // not used (without timer use) # Sektion 2 + uint8_t ModeS1 :2; // Operation mode bits S1 # + uint8_t TempS1 :4; // Desired temperature (Celsius) S2 # + uint8_t InnvertS1_3 :8; // Invert byte (without timer use) ############ + + uint8_t :8; // Fixed value 0b10110010 / 0xB2. ############ + uint8_t InnvertS2_1 :8; // Invert byte 0b01001101 / 0x4D # + uint8_t :5; // not used (without timer use) # + uint8_t FanS2 :3; // Fan speed bits in Section 2 # + uint8_t InnvertS2_2 :8; // Invert byte # Section 2 = + uint8_t :2; // not used (without timer use) # Sektion 1 + uint8_t ModeS2 :2; // Operation mode bits S2 # + uint8_t TempS2 :4; // Desired temperature (Celsius) S2 # + uint8_t InnvertS2_3 :8; // Invert byte (without timer use) ########### + + uint8_t :8; // Fixed value 0b11010101 / 0xD5 ########### + uint8_t ModeS3 :1; // ModeBit in Section 3 # + uint8_t FanS3 :6; // Fan speed bits in Section 3 # + uint8_t :1; // Unknown # + uint8_t :5; // Unknown # + uint8_t TempDecimals:1; // Desired temp. Bit in Section3 # + uint8_t :1; // Unknown # + uint8_t Quiet :1; // Silent-Mode # Section 3 + uint8_t :4; // Unknown # + uint8_t TempS3 :1; // Desired temp. Bit in Section3 # + uint8_t :3; // Unknown # + uint8_t :8; // Unknown # + uint8_t ChecksumS3 :8; // Checksum from byte 13-17 ########### }; }; @@ -154,7 +156,9 @@ class IRBosch144AC { void setPower(const bool state); bool getPower(void) const; void setTemp(const uint8_t temp); + void setTemp(const float temp); uint8_t getTemp(void) const; + float getTempFloat(void) const; void setFan(const uint16_t speed); uint16_t getFan(void) const; void setMode(const uint8_t mode); From ea11467238dcbe6bb79dc96647d72ef1b6eec1c5 Mon Sep 17 00:00:00 2001 From: zhixuan <59254886+zhixuan2333@users.noreply.github.com> Date: Mon, 19 Feb 2024 14:03:28 +0900 Subject: [PATCH 2/7] fix linter errors --- src/ir_Bosch.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ir_Bosch.cpp b/src/ir_Bosch.cpp index c4a96cbc0..2dad4527e 100644 --- a/src/ir_Bosch.cpp +++ b/src/ir_Bosch.cpp @@ -106,8 +106,9 @@ void IRBosch144AC::setTemp(const uint8_t degrees) { setTempRaw(kBosch144TempMap[temp - kBosch144TempMin]); } -void IRBosch144AC::setTemp(const float degrees) -{ +/// Set the temperature. Allow 0.5 degree steps. +/// @param[in] degrees The temperature in degrees celsius. +void IRBosch144AC::setTemp(const float degrees) { uint8_t temp = static_cast(degrees); setTemp(temp); From b3d30e6ff736003660d19a30d4a73b4fa61c44f8 Mon Sep 17 00:00:00 2001 From: zhixuan <59254886+zhixuan2333@users.noreply.github.com> Date: Mon, 19 Feb 2024 14:13:38 +0900 Subject: [PATCH 3/7] Update temperature conversion in IRBosch144AC class --- src/ir_Bosch.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ir_Bosch.cpp b/src/ir_Bosch.cpp index 2dad4527e..f23a8a764 100644 --- a/src/ir_Bosch.cpp +++ b/src/ir_Bosch.cpp @@ -240,7 +240,7 @@ stdAc::state_t IRBosch144AC::toCommon(void) const { result.power = getPower(); result.mode = toCommonMode(getMode()); result.celsius = true; - result.degrees = getTemp(); + result.degrees = getTempFloat(); result.fanspeed = toCommonFanSpeed(getFan()); result.quiet = getQuiet(); // Not supported. @@ -273,7 +273,7 @@ String IRBosch144AC::toString(void) const { static_cast(stdAc::fanspeed_t::kAuto), static_cast(stdAc::fanspeed_t::kAuto), static_cast(stdAc::fanspeed_t::kMedium)); - result += addTempToString(getTemp()); + result += addTempToString(getTempFloat()); result += addBoolToString(_.Quiet, kQuietStr); return result; } From ef60cb447d269c56b3b9c9a82fcdf92d5ba14439 Mon Sep 17 00:00:00 2001 From: zhixuan <59254886+zhixuan2333@users.noreply.github.com> Date: Mon, 19 Feb 2024 18:00:22 +0900 Subject: [PATCH 4/7] Refactor temperature handling in IRBosch144AC class --- src/ir_Bosch.cpp | 32 +++++++++------------- src/ir_Bosch.h | 70 +++++++++++++++++++++++------------------------- 2 files changed, 46 insertions(+), 56 deletions(-) diff --git a/src/ir_Bosch.cpp b/src/ir_Bosch.cpp index f23a8a764..48d901424 100644 --- a/src/ir_Bosch.cpp +++ b/src/ir_Bosch.cpp @@ -94,28 +94,24 @@ bool IRBosch144AC::getPower(void) const { } void IRBosch144AC::setTempRaw(const uint8_t code) { - _.TempS1 = _.TempS2 = code >> 1; // save 4 bits in S1 and S2 - _.TempS3 = code & 1; // save 1 bit in Section3 -} - -/// Set the temperature. -/// @param[in] degrees The temperature in degrees celsius. -void IRBosch144AC::setTemp(const uint8_t degrees) { - uint8_t temp = max(kBosch144TempMin, degrees); - temp = min(kBosch144TempMax, temp); - setTempRaw(kBosch144TempMap[temp - kBosch144TempMin]); + _.TempS1 = _.TempS2 = code >> 1; // save 4 bits in S1 and S2 + _.TempS3 = code & 1; // save 1 bit in Section3 } /// Set the temperature. Allow 0.5 degree steps. /// @param[in] degrees The temperature in degrees celsius. void IRBosch144AC::setTemp(const float degrees) { uint8_t temp = static_cast(degrees); - setTemp(temp); + temp = max(kBosch144TempMin, temp); + temp = min(kBosch144TempMax, temp); + setTempRaw(kBosch144TempMap[temp - kBosch144TempMin]); - _.TempS3 = (degrees - temp) >= 0.5; + _.TempHalfDegree = (degrees - temp) >= 0.5; } -uint8_t IRBosch144AC::getTemp(void) const { +/// Get the temperature with 0.5 degree steps. +/// @return The temperature in degrees celsius. +float IRBosch144AC::getTemp(void) const { uint8_t temp = (_.TempS1 << 1) + _.TempS3; uint8_t retemp = 25; for (uint8_t i = 0; i < kBosch144TempRange; i++) { @@ -123,11 +119,7 @@ uint8_t IRBosch144AC::getTemp(void) const { retemp = kBosch144TempMin + i; } } - return retemp; -} - -float IRBosch144AC::getTempFloat(void) const { - return getTemp() + (_.TempS3 ? 0.5 : 0); + return (float)retemp + (_.TempHalfDegree ? 0.5f : 0.0f); } /// Set the speed of the fan. @@ -240,7 +232,7 @@ stdAc::state_t IRBosch144AC::toCommon(void) const { result.power = getPower(); result.mode = toCommonMode(getMode()); result.celsius = true; - result.degrees = getTempFloat(); + result.degrees = getTemp(); result.fanspeed = toCommonFanSpeed(getFan()); result.quiet = getQuiet(); // Not supported. @@ -273,7 +265,7 @@ String IRBosch144AC::toString(void) const { static_cast(stdAc::fanspeed_t::kAuto), static_cast(stdAc::fanspeed_t::kAuto), static_cast(stdAc::fanspeed_t::kMedium)); - result += addTempToString(getTempFloat()); + result += addTempToString(getTemp()); result += addBoolToString(_.Quiet, kQuietStr); return result; } diff --git a/src/ir_Bosch.h b/src/ir_Bosch.h index 4789964ad..300771e94 100644 --- a/src/ir_Bosch.h +++ b/src/ir_Bosch.h @@ -100,39 +100,39 @@ const uint8_t kBosch144DefaultState[kBosch144StateLength] = { union Bosch144Protocol { uint8_t raw[kBosch144StateLength]; ///< The state in IR code form. struct { - uint8_t :8; // Fixed value 0b10110010 / 0xB2. ############ - uint8_t InnvertS1_1 :8; // Invert byte 0b01001101 / 0x4D # - uint8_t :5; // not used (without timer use) # - uint8_t FanS1 :3; // Fan speed bits in Section 1 # - uint8_t InnvertS1_2 :8; // Invert byte # Section 1 = - uint8_t :2; // not used (without timer use) # Sektion 2 - uint8_t ModeS1 :2; // Operation mode bits S1 # - uint8_t TempS1 :4; // Desired temperature (Celsius) S2 # - uint8_t InnvertS1_3 :8; // Invert byte (without timer use) ############ - - uint8_t :8; // Fixed value 0b10110010 / 0xB2. ############ - uint8_t InnvertS2_1 :8; // Invert byte 0b01001101 / 0x4D # - uint8_t :5; // not used (without timer use) # - uint8_t FanS2 :3; // Fan speed bits in Section 2 # - uint8_t InnvertS2_2 :8; // Invert byte # Section 2 = - uint8_t :2; // not used (without timer use) # Sektion 1 - uint8_t ModeS2 :2; // Operation mode bits S2 # - uint8_t TempS2 :4; // Desired temperature (Celsius) S2 # - uint8_t InnvertS2_3 :8; // Invert byte (without timer use) ########### - - uint8_t :8; // Fixed value 0b11010101 / 0xD5 ########### - uint8_t ModeS3 :1; // ModeBit in Section 3 # - uint8_t FanS3 :6; // Fan speed bits in Section 3 # - uint8_t :1; // Unknown # - uint8_t :5; // Unknown # - uint8_t TempDecimals:1; // Desired temp. Bit in Section3 # - uint8_t :1; // Unknown # - uint8_t Quiet :1; // Silent-Mode # Section 3 - uint8_t :4; // Unknown # - uint8_t TempS3 :1; // Desired temp. Bit in Section3 # - uint8_t :3; // Unknown # - uint8_t :8; // Unknown # - uint8_t ChecksumS3 :8; // Checksum from byte 13-17 ########### + uint8_t :8; // Fixed value 0b10110010 / 0xB2. ############ + uint8_t InnvertS1_1 :8; // Invert byte 0b01001101 / 0x4D # + uint8_t :5; // not used (without timer use) # + uint8_t FanS1 :3; // Fan speed bits in Section 1 # + uint8_t InnvertS1_2 :8; // Invert byte # Section 1 = + uint8_t :2; // not used (without timer use) # Sektion 2 + uint8_t ModeS1 :2; // Operation mode bits S1 # + uint8_t TempS1 :4; // Desired temperature (Celsius) S2 # + uint8_t InnvertS1_3 :8; // Invert byte (without timer use) ############ + + uint8_t :8; // Fixed value 0b10110010 / 0xB2. ############ + uint8_t InnvertS2_1 :8; // Invert byte 0b01001101 / 0x4D # + uint8_t :5; // not used (without timer use) # + uint8_t FanS2 :3; // Fan speed bits in Section 2 # + uint8_t InnvertS2_2 :8; // Invert byte # Section 2 = + uint8_t :2; // not used (without timer use) # Sektion 1 + uint8_t ModeS2 :2; // Operation mode bits S2 # + uint8_t TempS2 :4; // Desired temperature (Celsius) S2 # + uint8_t InnvertS2_3 :8; // Invert byte (without timer use) ########### + + uint8_t :8; // Fixed value 0b11010101 / 0xD5 ########### + uint8_t ModeS3 :1; // ModeBit in Section 3 # + uint8_t FanS3 :6; // Fan speed bits in Section 3 # + uint8_t :1; // Unknown # + uint8_t :5; // Unknown # + uint8_t TempHalfDegree :1; // Desired temp. Half degree bit # + uint8_t :1; // Unknown # + uint8_t Quiet :1; // Silent-Mode # Section 3 + uint8_t :4; // Unknown # + uint8_t TempS3 :1; // Desired temp. Bit in Section3 # + uint8_t :3; // Unknown # + uint8_t :8; // Unknown # + uint8_t ChecksumS3 :8; // Checksum from byte 13-17 ########### }; }; @@ -155,10 +155,8 @@ class IRBosch144AC { void begin(); void setPower(const bool state); bool getPower(void) const; - void setTemp(const uint8_t temp); void setTemp(const float temp); - uint8_t getTemp(void) const; - float getTempFloat(void) const; + float getTemp(void) const; void setFan(const uint16_t speed); uint16_t getFan(void) const; void setMode(const uint8_t mode); From 3c89258729c662e72a367466540daa09e1a09b6d Mon Sep 17 00:00:00 2001 From: zhixuan <59254886+zhixuan2333@users.noreply.github.com> Date: Mon, 19 Feb 2024 18:06:05 +0900 Subject: [PATCH 5/7] fix lint --- src/ir_Bosch.h | 66 +++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/src/ir_Bosch.h b/src/ir_Bosch.h index 300771e94..6376a3df9 100644 --- a/src/ir_Bosch.h +++ b/src/ir_Bosch.h @@ -100,39 +100,39 @@ const uint8_t kBosch144DefaultState[kBosch144StateLength] = { union Bosch144Protocol { uint8_t raw[kBosch144StateLength]; ///< The state in IR code form. struct { - uint8_t :8; // Fixed value 0b10110010 / 0xB2. ############ - uint8_t InnvertS1_1 :8; // Invert byte 0b01001101 / 0x4D # - uint8_t :5; // not used (without timer use) # - uint8_t FanS1 :3; // Fan speed bits in Section 1 # - uint8_t InnvertS1_2 :8; // Invert byte # Section 1 = - uint8_t :2; // not used (without timer use) # Sektion 2 - uint8_t ModeS1 :2; // Operation mode bits S1 # - uint8_t TempS1 :4; // Desired temperature (Celsius) S2 # - uint8_t InnvertS1_3 :8; // Invert byte (without timer use) ############ - - uint8_t :8; // Fixed value 0b10110010 / 0xB2. ############ - uint8_t InnvertS2_1 :8; // Invert byte 0b01001101 / 0x4D # - uint8_t :5; // not used (without timer use) # - uint8_t FanS2 :3; // Fan speed bits in Section 2 # - uint8_t InnvertS2_2 :8; // Invert byte # Section 2 = - uint8_t :2; // not used (without timer use) # Sektion 1 - uint8_t ModeS2 :2; // Operation mode bits S2 # - uint8_t TempS2 :4; // Desired temperature (Celsius) S2 # - uint8_t InnvertS2_3 :8; // Invert byte (without timer use) ########### - - uint8_t :8; // Fixed value 0b11010101 / 0xD5 ########### - uint8_t ModeS3 :1; // ModeBit in Section 3 # - uint8_t FanS3 :6; // Fan speed bits in Section 3 # - uint8_t :1; // Unknown # - uint8_t :5; // Unknown # - uint8_t TempHalfDegree :1; // Desired temp. Half degree bit # - uint8_t :1; // Unknown # - uint8_t Quiet :1; // Silent-Mode # Section 3 - uint8_t :4; // Unknown # - uint8_t TempS3 :1; // Desired temp. Bit in Section3 # - uint8_t :3; // Unknown # - uint8_t :8; // Unknown # - uint8_t ChecksumS3 :8; // Checksum from byte 13-17 ########### + uint8_t :8; // Fixed value 0b10110010 / 0xB2. ########## + uint8_t InnvertS1_1 :8; // Invert byte 0b01001101 / 0x4D # + uint8_t :5; // not used (without timer use) # + uint8_t FanS1 :3; // Fan speed bits in Section 1 # + uint8_t InnvertS1_2 :8; // Invert byte # Section 1 = + uint8_t :2; // not used (without timer use) # Sektion 2 + uint8_t ModeS1 :2; // Operation mode bits S1 # + uint8_t TempS1 :4; // Desired temperature (Celsius) S2 # + uint8_t InnvertS1_3 :8; // Invert byte (without timer use) ########## + + uint8_t :8; // Fixed value 0b10110010 / 0xB2. ########## + uint8_t InnvertS2_1 :8; // Invert byte 0b01001101 / 0x4D # + uint8_t :5; // not used (without timer use) # + uint8_t FanS2 :3; // Fan speed bits in Section 2 # + uint8_t InnvertS2_2 :8; // Invert byte # Section 2 = + uint8_t :2; // not used (without timer use) # Sektion 1 + uint8_t ModeS2 :2; // Operation mode bits S2 # + uint8_t TempS2 :4; // Desired temperature (Celsius) S2 # + uint8_t InnvertS2_3 :8; // Invert byte (without timer use) ########## + + uint8_t :8; // Fixed value 0b11010101 / 0xD5 ########## + uint8_t ModeS3 :1; // ModeBit in Section 3 # + uint8_t FanS3 :6; // Fan speed bits in Section 3 # + uint8_t :1; // Unknown # + uint8_t :5; // Unknown # + uint8_t TempHalfDegree:1; // Desired temp. Half degree bit # + uint8_t :1; // Unknown # Section 3 + uint8_t Quiet :1; // Silent-Mode # + uint8_t :4; // Unknown # + uint8_t TempS3 :1; // Desired temp. Bit in Section3 # + uint8_t :3; // Unknown # + uint8_t :8; // Unknown # + uint8_t ChecksumS3 :8; // Checksum from byte 13-17 ########## }; }; From 032be85ec53af0c77612baed2babf17e5504a2a2 Mon Sep 17 00:00:00 2001 From: zhixuan <59254886+zhixuan2333@users.noreply.github.com> Date: Mon, 19 Feb 2024 18:13:32 +0900 Subject: [PATCH 6/7] fix lint --- src/ir_Bosch.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ir_Bosch.cpp b/src/ir_Bosch.cpp index 48d901424..6fda3c4d8 100644 --- a/src/ir_Bosch.cpp +++ b/src/ir_Bosch.cpp @@ -94,8 +94,8 @@ bool IRBosch144AC::getPower(void) const { } void IRBosch144AC::setTempRaw(const uint8_t code) { - _.TempS1 = _.TempS2 = code >> 1; // save 4 bits in S1 and S2 - _.TempS3 = code & 1; // save 1 bit in Section3 + _.TempS1 = _.TempS2 = code >> 1; // save 4 bits in S1 and S2 + _.TempS3 = code & 1; // save 1 bit in Section3 } /// Set the temperature. Allow 0.5 degree steps. @@ -119,7 +119,7 @@ float IRBosch144AC::getTemp(void) const { retemp = kBosch144TempMin + i; } } - return (float)retemp + (_.TempHalfDegree ? 0.5f : 0.0f); + return static_cast(retemp) + (_.TempHalfDegree ? 0.5f : 0.0f); } /// Set the speed of the fan. From 57f84671f5a0a3702d0f85dbe71912b0e81022c0 Mon Sep 17 00:00:00 2001 From: zhixuan <59254886+zhixuan2333@users.noreply.github.com> Date: Mon, 19 Feb 2024 18:24:18 +0900 Subject: [PATCH 7/7] Update temperature conversion method in ir_Bosch.cpp and ir_Bosch.h --- src/ir_Bosch.cpp | 2 +- src/ir_Bosch.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ir_Bosch.cpp b/src/ir_Bosch.cpp index 6fda3c4d8..31753520f 100644 --- a/src/ir_Bosch.cpp +++ b/src/ir_Bosch.cpp @@ -265,7 +265,7 @@ String IRBosch144AC::toString(void) const { static_cast(stdAc::fanspeed_t::kAuto), static_cast(stdAc::fanspeed_t::kAuto), static_cast(stdAc::fanspeed_t::kMedium)); - result += addTempToString(getTemp()); + result += addTempFloatToString(getTemp()); result += addBoolToString(_.Quiet, kQuietStr); return result; } diff --git a/src/ir_Bosch.h b/src/ir_Bosch.h index 6376a3df9..0864433d4 100644 --- a/src/ir_Bosch.h +++ b/src/ir_Bosch.h @@ -41,7 +41,7 @@ const uint16_t kBosch144BytesPerSection = 6; using irutils::addBoolToString; using irutils::addModeToString; using irutils::addFanToString; -using irutils::addTempToString; +using irutils::addTempFloatToString; using std::min; using std::max; using std::memcpy;