From 2447af6a4d675898a77086380f47218318cf7686 Mon Sep 17 00:00:00 2001 From: Max93 Date: Thu, 6 Jun 2024 17:50:37 +0200 Subject: [PATCH] Fix Error in converting EddystoneTLM negative temperatures to float | resolves h2zero/NimBLE-Arduino#675 --- src/NimBLEEddystoneTLM.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/NimBLEEddystoneTLM.cpp b/src/NimBLEEddystoneTLM.cpp index 7a9c510..1f48a16 100644 --- a/src/NimBLEEddystoneTLM.cpp +++ b/src/NimBLEEddystoneTLM.cpp @@ -81,7 +81,7 @@ uint16_t NimBLEEddystoneTLM::getVolt() { * @return The temperature value. */ float NimBLEEddystoneTLM::getTemp() { - return ENDIAN_CHANGE_U16(m_eddystoneData.temp) / 256.0f; + return (int16_t)ENDIAN_CHANGE_U16(m_eddystoneData.temp) / 256.0f; } // getTemp /** @@ -203,7 +203,7 @@ void NimBLEEddystoneTLM::setVolt(uint16_t volt) { * @param [in] temp The temperature value. */ void NimBLEEddystoneTLM::setTemp(float temp) { - m_eddystoneData.temp = (uint16_t)temp; + m_eddystoneData.temp = ENDIAN_CHANGE_U16((int16_t)(temp * 256.0f)); } // setTemp