From 9e929f4247382d010ec6cf36b1cffa48ee9001a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=B8rch?= Date: Sat, 19 Dec 2015 10:33:43 +0100 Subject: [PATCH 1/3] Added set(bool), to avoid typecasting on samd arch --- libraries/MySensors/core/MyMessage.cpp | 7 +++++++ libraries/MySensors/core/MyMessage.h | 1 + 2 files changed, 8 insertions(+) diff --git a/libraries/MySensors/core/MyMessage.cpp b/libraries/MySensors/core/MyMessage.cpp index 8c9f04f..e168a2b 100644 --- a/libraries/MySensors/core/MyMessage.cpp +++ b/libraries/MySensors/core/MyMessage.cpp @@ -210,6 +210,13 @@ MyMessage& MyMessage::set(const char* value) { return *this; } +MyMessage& MyMessage::set(bool value) { + miSetLength(1); + miSetPayloadType(P_BYTE); + data[0] = value; + return *this; +} + MyMessage& MyMessage::set(uint8_t value) { miSetLength(1); miSetPayloadType(P_BYTE); diff --git a/libraries/MySensors/core/MyMessage.h b/libraries/MySensors/core/MyMessage.h index 31afa70..c40f995 100644 --- a/libraries/MySensors/core/MyMessage.h +++ b/libraries/MySensors/core/MyMessage.h @@ -283,6 +283,7 @@ public: MyMessage& set(void* payload, uint8_t length); MyMessage& set(const char* value); MyMessage& set(float value, uint8_t decimals); + MyMessage& set(bool value); MyMessage& set(uint8_t value); MyMessage& set(uint32_t value); MyMessage& set(int32_t value); From 148dd78ca790bc48478c10a2e2ad312d07d1485e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=B8rch?= Date: Sat, 19 Dec 2015 10:33:43 +0100 Subject: [PATCH 2/3] Added set(bool), to avoid typecasting on samd arch --- libraries/MySensors/core/MyMessage.cpp | 7 +++++++ libraries/MySensors/core/MyMessage.h | 1 + 2 files changed, 8 insertions(+) diff --git a/libraries/MySensors/core/MyMessage.cpp b/libraries/MySensors/core/MyMessage.cpp index 8c9f04f..e168a2b 100644 --- a/libraries/MySensors/core/MyMessage.cpp +++ b/libraries/MySensors/core/MyMessage.cpp @@ -210,6 +210,13 @@ MyMessage& MyMessage::set(const char* value) { return *this; } +MyMessage& MyMessage::set(bool value) { + miSetLength(1); + miSetPayloadType(P_BYTE); + data[0] = value; + return *this; +} + MyMessage& MyMessage::set(uint8_t value) { miSetLength(1); miSetPayloadType(P_BYTE); diff --git a/libraries/MySensors/core/MyMessage.h b/libraries/MySensors/core/MyMessage.h index 31afa70..c40f995 100644 --- a/libraries/MySensors/core/MyMessage.h +++ b/libraries/MySensors/core/MyMessage.h @@ -283,6 +283,7 @@ public: MyMessage& set(void* payload, uint8_t length); MyMessage& set(const char* value); MyMessage& set(float value, uint8_t decimals); + MyMessage& set(bool value); MyMessage& set(uint8_t value); MyMessage& set(uint32_t value); MyMessage& set(int32_t value); From 726ee7d5ffc3631650b7c6194899ba9ae686d36c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=B8rch?= Date: Sat, 19 Dec 2015 11:41:14 +0100 Subject: [PATCH 3/3] Unified bool "return" type (set/get) to use "byte" (uint8_t) --- libraries/MySensors/core/MyMessage.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/MySensors/core/MyMessage.cpp b/libraries/MySensors/core/MyMessage.cpp index e168a2b..f9cb1b9 100644 --- a/libraries/MySensors/core/MyMessage.cpp +++ b/libraries/MySensors/core/MyMessage.cpp @@ -111,7 +111,7 @@ char* MyMessage::getString(char *buffer) const { } bool MyMessage::getBool() const { - return getInt(); + return getByte(); } uint8_t MyMessage::getByte() const {