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