From 952fd952a566770210905f2695f00fa4ee257862 Mon Sep 17 00:00:00 2001 From: Thulinma Date: Thu, 1 Nov 2018 21:25:06 +0100 Subject: [PATCH] Fix for packing JSON with double/float values. --- lib/json.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/json.cpp b/lib/json.cpp index 28cc543c..4b742906 100644 --- a/lib/json.cpp +++ b/lib/json.cpp @@ -991,6 +991,20 @@ std::string JSON::Value::toPacked() const { r += (char)0x0; r += (char)0xEE; } + // Note: Will output integers for doubles. + // This is intentional, as DTSC packets cannot contain doubles. + if (isDouble()){ + r += 0x01; + uint64_t numval = intVal; + r += *(((char *)&numval) + 7); + r += *(((char *)&numval) + 6); + r += *(((char *)&numval) + 5); + r += *(((char *)&numval) + 4); + r += *(((char *)&numval) + 3); + r += *(((char *)&numval) + 2); + r += *(((char *)&numval) + 1); + r += *(((char *)&numval)); + } return r; } //toPacked