From 9a56f5ae0c165f1385e693dedb576b7a25f1bd90 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Anian=20B=C3=BChler?=
 <anian.buehler@reutlingen-university.de>
Date: Fri, 15 Nov 2024 12:15:43 +0100
Subject: [PATCH] removed defines from header files

---
 src/DidacticNet.h           | 10 ++----
 src/DidacticNetPSN.cpp      | 47 +++++++++++++-----------
 src/DidacticNetPSN.h        | 72 +++++++++++++++----------------------
 src/DidacticNetTransmit.cpp | 20 +++--------
 src/DidacticNetTransmit.h   | 26 ++++----------
 src/SerialUI.cpp            |  6 ++--
 src/SerialUI.h              |  9 +----
 src/UnblockingTimer.cpp     |  2 +-
 8 files changed, 73 insertions(+), 119 deletions(-)

diff --git a/src/DidacticNet.h b/src/DidacticNet.h
index 2b6458a..13c54cd 100644
--- a/src/DidacticNet.h
+++ b/src/DidacticNet.h
@@ -8,13 +8,7 @@
 
 #include "Arduino.h"
 
-#define DN_MSG_PRELIMITER '<'
-#define DN_MSG_DELIMITER '>'
-#define DN_MSG_SEPARATOR '|'
-
-//<@topic|payload>
-#define DN_LEN_OVERHEAD 4
-#define DN_MAX_LEN_TELEGRAM 40
-
 #include "DidacticNetTransmit.h"
 #include "DidacticNetPSN.h"
+
+#endif
\ No newline at end of file
diff --git a/src/DidacticNetPSN.cpp b/src/DidacticNetPSN.cpp
index 64c1f39..736c01d 100644
--- a/src/DidacticNetPSN.cpp
+++ b/src/DidacticNetPSN.cpp
@@ -6,7 +6,7 @@
 /**************************************************************************/
 
 #include "Arduino.h"
-
+#include "DidacticNetPSN.h"
 //**************************************************************************
 // CLIENT
 //**************************************************************************
@@ -16,13 +16,20 @@ DidacticNetPSNClient::~DidacticNetPSNClient() {}
 // ##########################################
 void DidacticNetPSNClient::begin(Stream &_port) // TODO: check if CLientMode is necessary or an unset callback ist not a problem
 {
-    DidacticNetTransmit::begin(_port);
-    _clientMode = CLIENT_MODE_BASIC;
+    DidacticNetPSNClient::begin(_port);
+    _clientMode = PS_CLIENT_MODE_BASIC;
 }
 
 void DidacticNetPSNClient::begin(Stream &_port, PSNET_CALLBACK_SIGNATURE)
 {
-    DidacticNetTransmit::begin(_port, callback);
+    setStream(_port);
+    setCallback(callback);
+}
+
+DidacticNetPSNClient &DidacticNetPSNClient::setCallback(PSNET_CALLBACK_SIGNATURE)
+{
+    this->callback = callback;
+    return *this;
 }
 
 bool DidacticNetPSNClient::available()
@@ -95,7 +102,7 @@ int DidacticNetPSNClient::publish(char *topic, char *payload)
 
 int DidacticNetPSNClient::publish(char *topic, int topicLength, char *payload, int payloadLength)
 {
-    int error = DN_PUBLISH_SUCCESSULL;
+    int error = PS_PUBLISH_SUCCESSULL;
 
     _sendBufferMessage[0] = DN_MSG_PRELIMITER;
     _sendBufferMessage[1] = PS_MSG_PUBLISH;
@@ -104,14 +111,14 @@ int DidacticNetPSNClient::publish(char *topic, int topicLength, char *payload, i
     _sendBufferMessage[2 + topicLength + 1 + payloadLength + 1] = '\0';
 
     // TODO: check
-    if (topicLength > MAX_LEN_TOPICS)
+    if (topicLength > PS_MAX_LEN_TOPICS)
     {
-        topicLength = MAX_LEN_TOPICS;
+        topicLength = PS_MAX_LEN_TOPICS;
         error += PS_ERROR_TOPIC_LEN;
     }
-    if (payloadLength > MAX_LEN_PAYLOAD)
+    if (payloadLength > PS_MAX_LEN_PAYLOAD)
     {
-        payloadLength = MAX_LEN_PAYLOAD;
+        payloadLength = PS_MAX_LEN_PAYLOAD;
         error += PS_ERROR_PAYLOAD_LEN;
     }
 
@@ -130,7 +137,7 @@ int DidacticNetPSNClient::publish(char *topic, int topicLength, char *payload, i
 
 int DidacticNetPSNClient::publish(char *topic, int data)
 {
-    char sendPayload[MAX_LEN_PAYLOAD];
+    char sendPayload[PS_MAX_LEN_PAYLOAD];
     itoa(data, sendPayload, 10);
 
     return publish(topic, sendPayload);
@@ -177,9 +184,9 @@ int DidacticNetPSNClient::subscribe(char *topic, int topicLength)
 {
     int error = PS_ERROR_NO_ERROR;
 
-    if (topicLength > MAX_LEN_TOPICS)
+    if (topicLength > PS_MAX_LEN_TOPICS)
     {
-        topicLength = MAX_LEN_TOPICS;
+        topicLength = PS_MAX_LEN_TOPICS;
         error = PS_ERROR_TOPIC_LEN;
     }
 
@@ -253,18 +260,18 @@ bool DidacticNetPSNClient::handleData()
     int currentTopicNr = 0;
     int topicLength = 0;
     int payloadLength = 0;
-    topicLength = extractData(2, MAX_LEN_TOPICS, _bufferTopic, DN_MSG_SEPARATOR);
+    topicLength = extractData(2, PS_MAX_LEN_TOPICS, _bufferTopic, DN_MSG_SEPARATOR);
     if (topicLength > 0)
     {
         currentTopicNr = getTopicNr(_bufferTopic);
-        payloadLength = extractData(topicLength + 3, MAX_LEN_PAYLOAD, _bufferPayload, DN_MSG_DELIMITER);
+        payloadLength = extractData(topicLength + 3, PS_MAX_LEN_PAYLOAD, _bufferPayload, DN_MSG_DELIMITER);
         if (currentTopicNr >= 0)
         {
             savePayload(_bufferPayload, currentTopicNr);
             _newMessageAvailable = true;
             _newMessageTopicNr = currentTopicNr;
 
-            if (_clientMode == CLIENT_MODE_ADVANCED)
+            if (_clientMode == PS_CLIENT_MODE_ADVANCED)
             {
 #ifdef CALLBACK_W_LENGTH
                 callback(_bufferTopic, topicLength, _bufferPayload, payloadLength);
@@ -356,11 +363,11 @@ bool DidacticNetPSNBroker::handleData()
 
     if (_readBufferMessage[1] == PS_MSG_PUBLISH)
     {
-        topicLength = extractData(2, MAX_LEN_TOPICS, _bufferTopic, DN_MSG_SEPARATOR);
+        topicLength = extractData(2, PS_MAX_LEN_TOPICS, _bufferTopic, DN_MSG_SEPARATOR);
         if (topicLength > 0)
         {
             currentTopicNr = getTopicNr(_bufferTopic);
-            dataLength = extractData(topicLength + 3, MAX_LEN_PAYLOAD, _bufferPayload, DN_MSG_DELIMITER);
+            dataLength = extractData(topicLength + 3, PS_MAX_LEN_PAYLOAD, _bufferPayload, DN_MSG_DELIMITER);
             if (currentTopicNr >= 0)
             {
                 writeDataToTopic(currentTopicNr, _bufferTopic, _bufferPayload);
@@ -370,7 +377,7 @@ bool DidacticNetPSNBroker::handleData()
     }
     else if (_readBufferMessage[1] == PS_MSG_SUBSCRIBE)
     {
-        topicLength = extractData(2, MAX_LEN_TOPICS, _bufferTopic, DN_MSG_DELIMITER);
+        topicLength = extractData(2, PS_MAX_LEN_TOPICS, _bufferTopic, DN_MSG_DELIMITER);
         if (topicLength > 0)
         {
             currentTopicNr = getTopicNr(_bufferTopic);
@@ -391,7 +398,7 @@ bool DidacticNetPSNBroker::update(char *topic, int topicLength, char *data, int
     _sendBufferMessage[2 + topicLength + 1 + dataLength] = DN_MSG_DELIMITER;
     _sendBufferMessage[2 + topicLength + 1 + dataLength + 1] = '\0';
 
-    if (topicLength <= MAX_LEN_TOPICS)
+    if (topicLength <= PS_MAX_LEN_TOPICS)
     {
         for (int i = 0; i < topicLength; i++)
         {
@@ -403,7 +410,7 @@ bool DidacticNetPSNBroker::update(char *topic, int topicLength, char *data, int
         _dataToSend = false;
         return false;
     }
-    if (dataLength <= MAX_LEN_PAYLOAD)
+    if (dataLength <= PS_MAX_LEN_PAYLOAD)
     {
         for (int i = 0; i < dataLength; i++)
         {
diff --git a/src/DidacticNetPSN.h b/src/DidacticNetPSN.h
index 726bef7..56c6c0e 100644
--- a/src/DidacticNetPSN.h
+++ b/src/DidacticNetPSN.h
@@ -3,56 +3,33 @@
     @author   anian buehler @ letsgoING
 **************************************************************************/
 
-#include "Detector.h"
-
-// PubSub
-#ifdef CALLBACK_W_LENGTH
-// callback(topic, topicLength, payload, payloadLength)
-#define PSNET_CALLBACK_SIGNATURE void (*callback)(char *, int, char *, int)
-#else
-// callback(topic, payload)
-#define PSNET_CALLBACK_SIGNATURE void (*callback)(char *, char *)
-#endif
-
-#define PS_CLIENT_MODE_BASIC false
-#define PS_CLIENT_MODE_ADVANCED true
-
-//@ publish   → on publish check topic, then send topic-update
-//? subscribe → subscribe starts update, topic filter @client
-// # update    → update to specific topic Broker to client
-#define PS_MSG_PUBLISH '@'
-#define PS_MSG_SUBSCRIBE '?'
-#define PS_MSG_UPDATE '#'
-#define PS_MSG_TOPIC_MULTI '*'
-
-#define PS_MAX_NR_TOPICS_CLIENT 10
-#define PS_MAX_NR_TOPICS_BROKER 20
-#define PS_MAX_LEN_TOPICS 10
-#define PS_MAX_LEN_PAYLOAD 20
-
-#define PS_PUBLISH_SUCCESSULL 1
-#define PS_ERROR_NO_ERROR 0
-#define PS_ERROR_TOPIC_LEN -1
-#define PS_ERROR_PAYLOAD_LEN -2
-#define PS_ERROR_NO_TOPIC -3
+#ifndef _DIDACTICNET_PSN_
+#define _DIDACTICNET_PSN_
 
-#define PS_INTERVAL_CLIENT 500L
-#define PS_INTERVAL_BROKER 0L
+#include "Arduino.h"
+#include "Config.h"
+#include "DidacticNetTransmit.h"
+#include "Detector.h"
 
-class DidacticPSNetClient : public DidacticNetTransmit
+class DidacticNetPSNClient : public DidacticNetTransmit
 {
 private:
     EdgeDetector eDetector;
     ChangeDetector cDetector;
 
+    PSNET_CALLBACK_SIGNATURE;
+
     char _topic[PS_MAX_NR_TOPICS_CLIENT][PS_MAX_LEN_TOPICS + 1] = {{0}};
     char _payload[PS_MAX_NR_TOPICS_CLIENT][PS_MAX_LEN_PAYLOAD + 1] = {{0}};
 
+    char _bufferTopic[PS_MAX_LEN_TOPICS + 1] = {0};
+    char _bufferPayload[PS_MAX_LEN_TOPICS + 1] = {0};
+
     bool _clientMode = PS_CLIENT_MODE_ADVANCED;
     bool _newMessageAvailable = false;
     int _newMessageTopicNr = 0;
-    char _currentTopic[MAX_LEN_TOPICS + 1] = {0};
-    char _currentPayload[MAX_LEN_PAYLOAD + 1] = {0};
+    char _currentTopic[PS_MAX_LEN_TOPICS + 1] = {0};
+    char _currentPayload[PS_MAX_LEN_PAYLOAD + 1] = {0};
 
     bool savePayload(char *, int);
     bool getMessageFilter(char);
@@ -63,13 +40,17 @@ private:
     int edgeDetected(bool);
     bool valueChanged(int, int);
 
+    DidacticNetPSNClient &setCallback(PSNET_CALLBACK_SIGNATURE);
+
 public:
-    DidacticPSNetClient();
-    ~DidacticPSNetClient();
+    DidacticNetPSNClient();
+    ~DidacticNetPSNClient();
 
     void begin(Stream &_port);
     void begin(Stream &_port, PSNET_CALLBACK_SIGNATURE);
 
+    DidacticNetPSNClient setCallback();
+
     bool available();
     int readLatestTopicNr();
     void readTopic(char *);
@@ -95,12 +76,15 @@ public:
     bool unsubscribe(char *, int);
 };
 
-class DidacticPSNetBroker : public DidacticNetTransmit
+class DidacticNetPSNBroker : public DidacticNetTransmit
 {
 private:
     Stream *_verbosePort;
-    char _topic[MAX_NR_TOPICS_BROKER][MAX_LEN_TOPICS + 1] = {{0}};
-    char _data[MAX_NR_TOPICS_BROKER][MAX_LEN_PAYLOAD + 1] = {{0}};
+    char _topic[PS_MAX_NR_TOPICS_BROKER][PS_MAX_LEN_TOPICS + 1] = {{0}};
+    char _data[PS_MAX_NR_TOPICS_BROKER][PS_MAX_LEN_PAYLOAD + 1] = {{0}};
+
+    char _bufferTopic[PS_MAX_LEN_TOPICS + 1] = {0};
+    char _bufferPayload[PS_MAX_LEN_TOPICS + 1] = {0};
 
     bool _isVerbose = false;
 
@@ -114,8 +98,8 @@ private:
     bool printVerbose(char *);
 
 public:
-    DidacticPSNetBroker();
-    ~DidacticPSNetBroker();
+    DidacticNetPSNBroker();
+    ~DidacticNetPSNBroker();
 
     void setVerbose(Stream &_port);
     void setNoneVerbose();
diff --git a/src/DidacticNetTransmit.cpp b/src/DidacticNetTransmit.cpp
index d5b7747..7a31523 100644
--- a/src/DidacticNetTransmit.cpp
+++ b/src/DidacticNetTransmit.cpp
@@ -15,18 +15,6 @@ void DidacticNetTransmit::begin(Stream &_port)
     setStream(_port);
 }
 
-void DidacticNetTransmit::begin(Stream &_port, PSNET_CALLBACK_SIGNATURE)
-{
-    setStream(_port);
-    setCallback(callback);
-}
-
-DidacticNetTransmit &DidacticNetTransmit::setCallback(PSNET_CALLBACK_SIGNATURE)
-{
-    this->callback = callback;
-    return *this;
-}
-
 void DidacticNetTransmit::setStream(Stream &stream)
 {
     _port = &stream;
@@ -43,13 +31,13 @@ bool DidacticNetTransmit::handleNetwork()
                 handleData();
             }
         }
-        _waitingTimeCSMA = millis() + random(CSMA_MIN_DELAY_MS, CSMA_MAX_DELAY_MS);
+        _waitingTimeCSMA = millis() + random(DNT_CSMA_MIN_DELAY_MS, DNT_CSMA_MAX_DELAY_MS);
     }
     if (_dataToSend && _waitingTimeSend <= millis() && _waitingTimeCSMA <= millis())
     {
         // send data to network
         unsigned long delayStartTime = micros();
-        while (micros() < delayStartTime + CSMA_CHECK_DELAY_US)
+        while (micros() < delayStartTime + DNT_CSMA_CHECK_DELAY_US)
             ;
         if (!dataAvailable())
         {
@@ -74,7 +62,7 @@ bool DidacticNetTransmit::sendData()
     bool messageSent = false;
     while (!messageSent)
     {
-        if (counter >= DN_MAX_LEN_TELEGRAM - 1)
+        if (counter >= DNT_MAX_LEN_TELEGRAM - 1)
         {
             _sendBufferMessage[counter] = DN_MSG_DELIMITER; // cut message and stop sending
             messageSent = true;
@@ -146,7 +134,7 @@ bool DidacticNetTransmit::recieveData()
         }
         else if (_readBufferMessage[0] == DN_MSG_PRELIMITER && localBuffer != DN_MSG_DELIMITER)
         {
-            if (msgCounter > DN_MAX_LEN_TELEGRAM)
+            if (msgCounter > DNT_MAX_LEN_TELEGRAM)
             {
                 msgCounter == 0;
                 _readBufferMessage[0] = '\0';
diff --git a/src/DidacticNetTransmit.h b/src/DidacticNetTransmit.h
index 6abbce5..560c608 100644
--- a/src/DidacticNetTransmit.h
+++ b/src/DidacticNetTransmit.h
@@ -3,29 +3,19 @@
     @author   anian buehler @ letsgoING
 **************************************************************************/
 
-#ifndef _DIDACTICNETTRANSMIT_
-#define _DIDACTICNETTRANSMIT_
+#ifndef _DIDACTICNET_TRANSMIT_
+#define _DIDACTICNET_TRANSMIT_
 
 #include "Arduino.h"
-
-#define DN_LEN_OVERHEAD 4
-
-#define DNT_CSMA_CHECK_DELAY_US 400
-#define DNT_CSMA_MIN_DELAY_MS 10
-#define DNT_CSMA_MID_DELAY_MS 20
-#define DNT_CSMA_MAX_DELAY_MS 30
+#include "Config.h"
 
 class DidacticNetTransmit
 {
 protected:
     Stream *_port;
 
-    PSNET_CALLBACK_SIGNATURE;
-
-    char _bufferTopic[MAX_LEN_TOPICS + 1] = {0};
-    char _bufferPayload[MAX_LEN_PAYLOAD + 1] = {0};
-    char _readBufferMessage[DN_MAX_LEN_TELEGRAM + 1];
-    char _sendBufferMessage[DN_MAX_LEN_TELEGRAM + 1];
+    char _readBufferMessage[DNT_MAX_LEN_TELEGRAM + 1];
+    char _sendBufferMessage[DNT_MAX_LEN_TELEGRAM + 1];
 
     bool _dataToSend = false; // int Data to send for queue?
     unsigned long _waitingTimeSend = 0L;
@@ -34,11 +24,9 @@ protected:
     int _currentTopicLength = 0;
     int _currentPayloadLength = 0;
 
-    DidacticNetTransmit &setCallback(PSNET_CALLBACK_SIGNATURE);
-
     void setStream(Stream &_port);
 
-    int checkData();
+    int dataAvailable();
     bool recieveData();
     bool sendData();
     int extractData(int, int, char *, char);
@@ -54,7 +42,7 @@ public:
     ~DidacticNetTransmit();
 
     void begin(Stream &_port);
-    void begin(Stream &_port, PSNET_CALLBACK_SIGNATURE);
+    // void begin(Stream &_port, PSNET_CALLBACK_SIGNATURE);
 
     bool handleNetwork();
     bool isDataToSend();
diff --git a/src/SerialUI.cpp b/src/SerialUI.cpp
index 5365fe8..a3233c4 100644
--- a/src/SerialUI.cpp
+++ b/src/SerialUI.cpp
@@ -5,7 +5,7 @@
 */
 /**************************************************************************/
 
-#include SerialUI.h
+#include "SerialUI.h"
 
 SerialReader::SerialReader() {}
 SerialReader::~SerialReader() {}
@@ -49,12 +49,12 @@ char serialMonitorUI::extractCommand(char *userInput)
         strcpy(userInput, &userInput[1]);
         return command;
     }
-    return DN_ASCII_EOS;
+    return SUI_ASCII_EOS;
 }
 
 bool serialMonitorUI::available()
 {
-    if (SerialReader::readSerialData(_currentInput, DN_ASCII_CR) > 0)
+    if (SerialReader::readSerialData(_currentInput, SUI_ASCII_CR) > 0)
     {
         _currentCommand = extractCommand(_currentInput);
         return true;
diff --git a/src/SerialUI.h b/src/SerialUI.h
index 0b26e49..e6fda2e 100644
--- a/src/SerialUI.h
+++ b/src/SerialUI.h
@@ -7,14 +7,7 @@
 #define _LGI_SERIALUI_
 
 #include "Arduino.h"
-
-#define SUI_MAX_LEN_USERINPUT 41
-
-// little helpers
-#define SUI_ASCII_EOS 0
-#define SUI_ASCII_CR 13
-#define SUI_ASCII_NL 10
-#define SUI_ASCII_DEL 127
+#include "Config.h"
 
 class SerialReader
 {
diff --git a/src/UnblockingTimer.cpp b/src/UnblockingTimer.cpp
index 2685229..ed8bf56 100644
--- a/src/UnblockingTimer.cpp
+++ b/src/UnblockingTimer.cpp
@@ -5,7 +5,7 @@
 */
 /**************************************************************************/
 
-#include UnblockingTimer.h
+#include "UnblockingTimer.h"
 
 UnblockingTimer::UnblockingTimer() {}
 UnblockingTimer::~UnblockingTimer() {}
-- 
GitLab