From facb3f33e75a78a54092dc1f6b9e39d50b06ae21 Mon Sep 17 00:00:00 2001 From: Samuel Sadok Date: Sun, 25 Feb 2018 19:38:06 -0800 Subject: [PATCH] add support for bool to protocol --- Firmware/MotorControl/protocol.hpp | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/Firmware/MotorControl/protocol.hpp b/Firmware/MotorControl/protocol.hpp index cde1e2ab..8b2e1edd 100644 --- a/Firmware/MotorControl/protocol.hpp +++ b/Firmware/MotorControl/protocol.hpp @@ -33,10 +33,16 @@ inline size_t write_le(T value, uint8_t* buffer); template inline size_t read_le(T* value, const uint8_t* buffer); +template<> +inline size_t write_le(bool value, uint8_t* buffer) { + buffer[0] = value ? 1 : 0; + return 1; +} + template<> inline size_t write_le(uint8_t value, uint8_t* buffer) { buffer[0] = value; - return 2; + return 1; } template<> @@ -71,10 +77,16 @@ inline size_t write_le(float value, uint8_t* buffer) { return write_le(*reinterpret_cast(&value), buffer); } +template<> +inline size_t read_le(bool* value, const uint8_t* buffer) { + *value = buffer[0]; + return 1; +} + template<> inline size_t read_le(uint8_t* value, const uint8_t* buffer) { *value = buffer[0]; - return 2; + return 1; } template<> @@ -358,6 +370,14 @@ template<> inline const char* get_default_json_modifier() { return "\"type\":\"uint8\",\"access\":\"rw\""; } +template<> +inline const char* get_default_json_modifier() { + return "\"type\":\"bool\",\"access\":\"r\""; +} +template<> +inline const char* get_default_json_modifier() { + return "\"type\":\"bool\",\"access\":\"rw\""; +} class Endpoint { public: