From d0fa96528eb6fb6deee4d78a0aa62d2d69ab3245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anian=20B=C3=BChler?= <anian.buehler@reutlingen-university.de> Date: Fri, 19 Jan 2024 12:18:56 +0100 Subject: [PATCH] added readBooleanPayload & readIntegerPayload --- keywords.txt | 2 ++ src/DidacticNet.cpp | 16 ++++++++++++++++ src/DidacticNet.h | 2 ++ 3 files changed, 20 insertions(+) diff --git a/keywords.txt b/keywords.txt index d90141a..53a494a 100644 --- a/keywords.txt +++ b/keywords.txt @@ -27,6 +27,8 @@ available KEYWORD2 readLatestTopicNr KEYWORD2 readTopic KEYWORD2 readPayload KEYWORD2 +readBooleanPayload KEYWORD2 +readIntegerPayload KEYWORD2 publish KEYWORD2 publishOnChange KEYWORD2 diff --git a/src/DidacticNet.cpp b/src/DidacticNet.cpp index fed141f..564e379 100644 --- a/src/DidacticNet.cpp +++ b/src/DidacticNet.cpp @@ -222,8 +222,24 @@ void DidacticPSNetClient::readPayload(char *payload) void DidacticPSNetClient::readPayload(char *topic, char *payload) { int topicNr = getTopicNr(topic); + if (topicNr == _newMessageTopicNr) + { + _newMessageAvailable = false; + } readPayload(topicNr, payload); } + +bool DidacticPSNetClient::readBooleanPayload() +{ + _newMessageAvailable = false; + return _payload[_newMessageTopicNr][0] == '1'; +} + +int DidacticPSNetClient::readIntegerPayload() +{ + _newMessageAvailable = false; + return atoi(_payload[_newMessageTopicNr]); +} // ########################################## DidacticPSNetClient::DidacticPSNetClient() diff --git a/src/DidacticNet.h b/src/DidacticNet.h index 08c21c6..e039169 100644 --- a/src/DidacticNet.h +++ b/src/DidacticNet.h @@ -201,6 +201,8 @@ public: void readPayload(char *); // new void readPayload(int, char *); // new void readPayload(char *, char *); // new + bool readBooleanPayload(); // new + int readIntegerPayload(); // new int getMaxNrTopics(); int getSubscribedTopic(char *, int); -- GitLab