From cd6b1151a3137aa133e18684d76035888a5ee16d Mon Sep 17 00:00:00 2001 From: tomoaki Date: Mon, 17 May 2021 09:50:30 +0900 Subject: [PATCH] Add Test fucntions Signed-off-by: tomoaki --- .../GatewayTester/samples/mainTest.cpp | 44 ++++++++++++++++--- MQTTSNGateway/GatewayTester/src/LGwProxy.cpp | 5 +++ MQTTSNGateway/GatewayTester/src/LGwProxy.h | 11 ++--- .../GatewayTester/src/LMqttsnClientApp.h | 2 +- 4 files changed, 50 insertions(+), 12 deletions(-) diff --git a/MQTTSNGateway/GatewayTester/samples/mainTest.cpp b/MQTTSNGateway/GatewayTester/samples/mainTest.cpp index 8aaa641..6d0c426 100644 --- a/MQTTSNGateway/GatewayTester/samples/mainTest.cpp +++ b/MQTTSNGateway/GatewayTester/samples/mainTest.cpp @@ -78,6 +78,7 @@ const char* topic1 = "ty4tw/topic1"; const char* topic2 = "ty4tw/topic2"; const char* topic3 = "ty4tw/topic3"; const char* topic4 = "ty4tw/topic4"; +const char* topic40 = "ty4tw/#"; const char* topic51 = "ty4tw/topic5/1"; const char* topic52 = "ty4tw/topic5/2"; const char* topic53 = "ty4tw/topic5/3"; @@ -111,6 +112,14 @@ int on_Topic03(uint8_t* pload, uint16_t ploadlen) return 0; } +int on_TopicWildcard(uint8_t* pload, uint16_t ploadlen) +{ + DISPLAY("\n\nNew callback recv TopicWildcard\n"); + pload[ploadlen - 1] = 0; // set null terminator + DISPLAY("Payload -->%s <--\n\n", pload); + return 0; +} + /*------------------------------------------------------ * A Link list of Callback routines and Topics *------------------------------------------------------*/ @@ -137,11 +146,6 @@ void publishTopic1(void) PUBLISH(topic1, (uint8_t* )payload, strlen(payload), QoS0); } -void subscribeTopic10(void) -{ - SUBSCRIBE(10, on_Topic02, QoS1); -} - void publishTopic2(void) { char payload[300]; @@ -149,6 +153,24 @@ void publishTopic2(void) PUBLISH(topic2, (uint8_t* )payload, strlen(payload), QoS1); } +void publishTopic4(void) +{ + char payload[300]; + sprintf(payload, "publish \"ty4tw/topic40\" \n"); + PUBLISH(topic4, (uint8_t* )payload, strlen(payload), QoS1); +} + +void subscribeTopic10(void) +{ + SUBSCRIBE(10, on_Topic02, QoS1); +} + +void subscribeWildcardTopic(void) +{ + SUBSCRIBE(topic40, on_Topic04, QoS1); +} + + void unsubscribe(void) { UNSUBSCRIBE(topic2); @@ -187,12 +209,16 @@ void connect(void) CONNECT(); } - void DisableAutoPingreq(void) { SetAutoPingReqMode(false); } +void CleanSessionOff(void) +{ + SetCleanSession(false); +} + /*------------------------------------------------------ * A List of Test functions is valid in case of * line 23 of LMqttsnClientApp.h is commented out. @@ -212,6 +238,12 @@ TEST_LIST = TEST("Step8:Publish topic2", publishTopic2), TEST("Step9:subscribe again", subscribechangeCallback), TEST("Step10:Publish topic2", publishTopic2), + + TEST("Step10:Reset Clean Session", CleanSessionOff), + + // SUBSCRIBE wildcard topic topic4 + TEST("Step9:subscribe wildcard topic", subscribechangeCallback), + TEST("Step11:Sleep ", asleep), TEST("Step12:Publish topic1", publishTopic1), TEST("Step13:Disconnect", disconnect), diff --git a/MQTTSNGateway/GatewayTester/src/LGwProxy.cpp b/MQTTSNGateway/GatewayTester/src/LGwProxy.cpp index 3b5c89d..9ff58ae 100644 --- a/MQTTSNGateway/GatewayTester/src/LGwProxy.cpp +++ b/MQTTSNGateway/GatewayTester/src/LGwProxy.cpp @@ -687,6 +687,11 @@ void LGwProxy::setAutoConnectMode(bool valid) _isAutoConnectMode = valid; } +void LGwProxy::setCleanSession(bool valid) +{ + _cleanSession = valid; +} + uint8_t LGwProxy::getStatus(void) { return _status; diff --git a/MQTTSNGateway/GatewayTester/src/LGwProxy.h b/MQTTSNGateway/GatewayTester/src/LGwProxy.h index 4a3b8fb..dcd8415 100644 --- a/MQTTSNGateway/GatewayTester/src/LGwProxy.h +++ b/MQTTSNGateway/GatewayTester/src/LGwProxy.h @@ -68,7 +68,8 @@ public: void setForwarderMode(bool valid); void setQoSMinus1Mode(bool valid); void setPingReqMode(bool valid); - void setAutoConnectMode(bool valid); + void setAutoConnectMode(bool valid); + void setCleanSession(bool valid); void reconnect(void); int writeMsg(const uint8_t* msg); void setPingReqTimer(void); @@ -112,10 +113,10 @@ private: LTimer _keepAliveTimer; uint16_t _tSleep; uint16_t _tWake; - bool _isForwarderMode; - bool _isQoSMinus1Mode; - bool _isPingReqMode; - bool _isAutoConnectMode; + bool _isForwarderMode; + bool _isQoSMinus1Mode; + bool _isPingReqMode; + bool _isAutoConnectMode; char _msg[MQTTSN_MAX_MSG_LENGTH + 1]; }; diff --git a/MQTTSNGateway/GatewayTester/src/LMqttsnClientApp.h b/MQTTSNGateway/GatewayTester/src/LMqttsnClientApp.h index 947c5d5..54d216b 100644 --- a/MQTTSNGateway/GatewayTester/src/LMqttsnClientApp.h +++ b/MQTTSNGateway/GatewayTester/src/LMqttsnClientApp.h @@ -110,7 +110,7 @@ typedef enum #define SetQoSMinus1Mode(...) theClient->getGwProxy()->setQoSMinus1Mode(__VA_ARGS__) #define SetAutoConnectMode(...) theClient->setAutoConnectMode(__VA_ARGS__) #define SetAutoPingReqMode(...) theClient->getGwProxy()->setPingReqMode(__VA_ARGS__) - +#define SetCleanSessionMode(...) theClient->getGwProxy()->setCleanSession(__VA_ARGS__) #ifdef CLIENT_MODE #define DISPLAY(...) #define PROMPT(...)