From 61e4487a24d3783187649b000730eb3093bf7729 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Anian=20B=C3=BChler?=
 <anian.buehler@reutlingen-university.de>
Date: Fri, 22 Jul 2022 10:35:26 +0200
Subject: [PATCH] adderd erroro-codes for getTopic and updated Readme

---
 README.md           | 12 ++++++++++++
 src/DidacticNet.cpp |  7 +++++--
 src/DidacticNet.h   |  1 +
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 77207b6..bfffaaa 100644
--- a/README.md
+++ b/README.md
@@ -59,6 +59,17 @@ int psnClient.subscribe(char* topic, int length);
 // return ERROR-Wert: DN_ERROR_NO_ERROR, 
 //                    DN_ERROR_TOPIC_LEN (Topic zu lang - wird abgeschnitten)
 
+#Anzahl der aboonierten Topics ausgeben
+int getMaxNrTopics();
+// return: Anzahl der abbonierten Topics
+
+#Bezeichnung eines abonnierten Topics ausgeben
+int getSubscribedTopic(char*, int);
+// param1: char-Array in das die Topic-Bezeichnung eingetragen wird
+// param2: Nummer welches Topic ausgegeben werden soll (0 - getMaxNrTopics())
+// return ERROR-WERT: DN_ERROR_NO_ERROR,
+//                    DN_ERROR_NO_TOPIC (Topic unter der angegebenen Nummer nicht verfügbar)
+
 #Topic eines anderen Clients entfernen
 bool psnClient.unsubscribe(char* topic);            
 // param: Topic String/char-Array
@@ -222,6 +233,7 @@ DN_PUBLISH_SUCCESSULL 1
 DN_ERROR_NO_ERROR     0
 DN_ERROR_TOPIC_LEN   -1
 DN_ERROR_PAYLOAD_LEN -2
+DN_ERROR_NO_TOPIC    -3
 
 #Frame
 MSG_PRELIMITER '<'
diff --git a/src/DidacticNet.cpp b/src/DidacticNet.cpp
index a61796c..361ab83 100644
--- a/src/DidacticNet.cpp
+++ b/src/DidacticNet.cpp
@@ -331,8 +331,11 @@ int DidacticPSNetClient::getFreeTopicNr() {
 }
 
 int DidacticPSNetClient::getSubscribedTopic(char* topic, int number){
-  strcpy(topic, _topic[number]);
-  return 1;
+  if(number > 0 && number < getMaxNrTopics()){
+    strcpy(topic, _topic[number]);
+    return DN_ERROR_NO_ERROR;
+  }
+  return DN_ERROR_NO_TOPIC;
 }
 
 int DidacticPSNetClient::getMaxNrTopics(){
diff --git a/src/DidacticNet.h b/src/DidacticNet.h
index fe9321d..3480fe8 100644
--- a/src/DidacticNet.h
+++ b/src/DidacticNet.h
@@ -49,6 +49,7 @@
 #define DN_ERROR_NO_ERROR     0
 #define DN_ERROR_TOPIC_LEN   -1
 #define DN_ERROR_PAYLOAD_LEN -2
+#define DN_ERROR_NO_TOPIC    -3
 
 
 //little helpers
-- 
GitLab