From 13b1cff3156e7a3770c7eb73b48e4969cc50165a Mon Sep 17 00:00:00 2001 From: Thomas Kunze Date: Mon, 15 Jul 2019 22:53:21 +0200 Subject: [PATCH] fix dpt9 for small values --- knx-linux/knx-linux-Debug.vgdbsettings | 11 +- knx-linux/knx-linux-Release.vgdbsettings | 160 ----------------------- knx-linux/knx-linux.vcxproj | 1 - knx-linux/knx-linux.vcxproj.filters | 3 - src/knx/dptconvert.cpp | 6 +- 5 files changed, 10 insertions(+), 171 deletions(-) delete mode 100644 knx-linux/knx-linux-Release.vgdbsettings diff --git a/knx-linux/knx-linux-Debug.vgdbsettings b/knx-linux/knx-linux-Debug.vgdbsettings index 39c0381..dd1cd88 100644 --- a/knx-linux/knx-linux-Debug.vgdbsettings +++ b/knx-linux/knx-linux-Debug.vgdbsettings @@ -7,9 +7,9 @@ RemoteUnix - localhost - LinuxSubsystem - Linux + Suzail + SSH + tkunze false @@ -34,15 +34,14 @@ CMakeLists.txt *.cmake - true + false true - true true Outgoing false - LocalCache + Always false diff --git a/knx-linux/knx-linux-Release.vgdbsettings b/knx-linux/knx-linux-Release.vgdbsettings deleted file mode 100644 index 3fbda9e..0000000 --- a/knx-linux/knx-linux-Release.vgdbsettings +++ /dev/null @@ -1,160 +0,0 @@ - - - Release - - - - RemoteUnix - - - Suzail - SSH - tkunze - - - false - - Suzail - SSH - tkunze - - $(ProjectDir) - /home/tkunze/vgdb - - *.cpp - *.h - *.hpp - *.c - *.cc - *.cxx - *.mak - Makefile - *.txt - *.cmake - CMakeLists.txt - *.cmake - - true - true - true - true - - false - false - false - false - false - $(ProjectDir) - - - - com.sysprogs.toolchain.default-gcc - - 0 - - - - RELWITHDEBINFO - Release - - false - - BuildMachine - BuiltinShortcut - - $(ToolchainMake) - $(ToolchainMakeArgs) - $(BuildDir) - - - - false - - BuildMachine - BuiltinShortcut - - $(ToolchainCMake) - - - true - false - false - false - b - - - - - - - - - - - - - Default - - - - true - - - - Unknown - - true - true - true - - - - false - - - - - - - false - false - false - false - false - false - false - false - false - - false - false - false - false - false - false - true - false - None - false - false - main - true - false - false - false - 0 - - - $(TargetPath) - 2000 - - - false - Local - false - false - Auto - true - false - - \ No newline at end of file diff --git a/knx-linux/knx-linux.vcxproj b/knx-linux/knx-linux.vcxproj index a636ac1..928a1c1 100644 --- a/knx-linux/knx-linux.vcxproj +++ b/knx-linux/knx-linux.vcxproj @@ -112,7 +112,6 @@ - diff --git a/knx-linux/knx-linux.vcxproj.filters b/knx-linux/knx-linux.vcxproj.filters index 62ef53f..f4fef6b 100644 --- a/knx-linux/knx-linux.vcxproj.filters +++ b/knx-linux/knx-linux.vcxproj.filters @@ -30,9 +30,6 @@ VisualGDB settings - - VisualGDB settings - diff --git a/src/knx/dptconvert.cpp b/src/knx/dptconvert.cpp index e000c9a..f499585 100644 --- a/src/knx/dptconvert.cpp +++ b/src/knx/dptconvert.cpp @@ -1794,7 +1794,11 @@ void float16ToPayload(uint8_t* payload, int payload_length, int index, double va } value *= 100.0; - unsigned short exponent = ceil(log2(value) - 11.0); + unsigned short exponent = 0; + + if(value > 2048) + exponent = ceil(log2(value) - 11.0); + short mantissa = roundf(value / (1 << exponent)); if (wasNegative)