From 6760319959a2c887ac4c4294f635b091133b9879 Mon Sep 17 00:00:00 2001 From: Adrian Scillato <35405447+ascillato@users.noreply.github.com> Date: Mon, 16 Nov 2020 16:33:07 -0300 Subject: [PATCH 1/4] Fix Float Conversion --- esp-knx-ip-send.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/esp-knx-ip-send.cpp b/esp-knx-ip-send.cpp index e3e74ea..ea8382f 100644 --- a/esp-knx-ip-send.cpp +++ b/esp-knx-ip-send.cpp @@ -174,7 +174,13 @@ void ESPKNXIP::send_4byte_uint(address_t const &receiver, knx_command_type_t ct, void ESPKNXIP::send_4byte_float(address_t const &receiver, knx_command_type_t ct, float val) { - uint8_t buf[] = {0x00, ((uint8_t *)&val)[3], ((uint8_t *)&val)[2], ((uint8_t *)&val)[1], ((uint8_t *)&val)[0]}; + union { float f; uint32_t i; } num; + num.f = val; + uint8_t buf[] = {0x00, + (uint8_t)((num.i & 0xFF000000) >> 24), + (uint8_t)((num.i & 0x00FF0000) >> 16), + (uint8_t)((num.i & 0x0000FF00) >> 8), + (uint8_t)((num.i & 0x000000FF) >> 0)}; send(receiver, ct, 5, buf); } From ae478d945780b19e99cec9911e4e4ad8e321ef79 Mon Sep 17 00:00:00 2001 From: Adrian Scillato <35405447+ascillato@users.noreply.github.com> Date: Mon, 16 Nov 2020 16:35:35 -0300 Subject: [PATCH 2/4] Fix Float Conversion --- esp-knx-ip-conversion.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/esp-knx-ip-conversion.cpp b/esp-knx-ip-conversion.cpp index 9dc2fd5..5f75b68 100644 --- a/esp-knx-ip-conversion.cpp +++ b/esp-knx-ip-conversion.cpp @@ -83,5 +83,7 @@ uint32_t ESPKNXIP::data_to_4byte_uint(uint8_t *data) float ESPKNXIP::data_to_4byte_float(uint8_t *data) { - return (float)((data[1] << 24) | (data[2] << 16) | (data[3] << 8) |data[4]); -} \ No newline at end of file + union { float f; uint32_t i; } num; + num.i = (uint32_t)((data[1] << 24) | (data[2] << 16) | (data[3] << 8) | (data[4] << 0)); + return num.f; +} From a13b911625e91b57a70a5fd8324ea064e29d47a2 Mon Sep 17 00:00:00 2001 From: Adrian Scillato <35405447+ascillato@users.noreply.github.com> Date: Mon, 16 Nov 2020 16:36:58 -0300 Subject: [PATCH 3/4] Fix identation --- esp-knx-ip-conversion.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esp-knx-ip-conversion.cpp b/esp-knx-ip-conversion.cpp index 5f75b68..c260e05 100644 --- a/esp-knx-ip-conversion.cpp +++ b/esp-knx-ip-conversion.cpp @@ -84,6 +84,6 @@ uint32_t ESPKNXIP::data_to_4byte_uint(uint8_t *data) float ESPKNXIP::data_to_4byte_float(uint8_t *data) { union { float f; uint32_t i; } num; - num.i = (uint32_t)((data[1] << 24) | (data[2] << 16) | (data[3] << 8) | (data[4] << 0)); + num.i = (uint32_t)((data[1] << 24) | (data[2] << 16) | (data[3] << 8) | (data[4] << 0)); return num.f; } From 29524489640287cf79cd77802def8bbc928c02bf Mon Sep 17 00:00:00 2001 From: Adrian Scillato <35405447+ascillato@users.noreply.github.com> Date: Mon, 16 Nov 2020 16:37:47 -0300 Subject: [PATCH 4/4] Fix identation --- esp-knx-ip-send.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/esp-knx-ip-send.cpp b/esp-knx-ip-send.cpp index ea8382f..23e3c77 100644 --- a/esp-knx-ip-send.cpp +++ b/esp-knx-ip-send.cpp @@ -175,7 +175,7 @@ void ESPKNXIP::send_4byte_uint(address_t const &receiver, knx_command_type_t ct, void ESPKNXIP::send_4byte_float(address_t const &receiver, knx_command_type_t ct, float val) { union { float f; uint32_t i; } num; - num.f = val; + num.f = val; uint8_t buf[] = {0x00, (uint8_t)((num.i & 0xFF000000) >> 24), (uint8_t)((num.i & 0x00FF0000) >> 16),