diff --git a/keywords.txt b/keywords.txt index d90141a8a832b5cad938e8f0f5a059364f9aa9c3..53a494adf0d5591800287e427a948ec8a05c727a 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 fed141f8ed3b7f38c048226a31234e2558cd2c32..564e379653fa2cca303dcb762bbfb2d50d5ee6b1 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 08c21c69262088ce44d9c28b59d73c325e73d3e0..e039169f248201ed7d543e5a0b2d062a9c4de863 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);