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