From e0f046ad4385bce8034dc1c85a9a8a2a7c2c3369 Mon Sep 17 00:00:00 2001 From: kamilksiazek Date: Wed, 16 Oct 2019 11:28:21 +0200 Subject: [PATCH 1/2] Update SimpleLoraApp.cc Update the implementation of ADR according to LoRaWAN specification v1.1: https://lora-alliance.org/sites/default/files/2018-04/lorawantm_specification_-v1.1.pdf (firstly increase the transmission power, then increase spreading factor) --- src/LoRaApp/SimpleLoRaApp.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/LoRaApp/SimpleLoRaApp.cc b/src/LoRaApp/SimpleLoRaApp.cc index 70fb51e..e7f2fca 100644 --- a/src/LoRaApp/SimpleLoRaApp.cc +++ b/src/LoRaApp/SimpleLoRaApp.cc @@ -195,15 +195,22 @@ void SimpleLoRaApp::sendJoinRequest() if(ADR_ACK_CNT >= ADR_ACK_LIMIT + ADR_ACK_DELAY) { ADR_ACK_CNT = 0; - increaseSFIfPossible(); + increaseTPOrSFIfPossible(); } } emit(LoRa_AppPacketSent, loRaSF); } -void SimpleLoRaApp::increaseSFIfPossible() +void SimpleLoRaApp::increaseTPOrSFIfPossible() { - if(loRaSF < 12) loRaSF++; + if(loRaTP < 14) + { + loRaTP += 3; // at the beginning increase the Transmission Power + } + else if(loRaSF < 12) + { + loRaSF++; // secondly increase Spreading Factor + } } } //end namespace inet From 85a6dc04a14ce4f0d23230b391b9ed37b551735a Mon Sep 17 00:00:00 2001 From: kamilksiazek Date: Wed, 16 Oct 2019 11:28:55 +0200 Subject: [PATCH 2/2] Update SimpleLoraApp.h Rename the function connected with ADR --- src/LoRaApp/SimpleLoRaApp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LoRaApp/SimpleLoRaApp.h b/src/LoRaApp/SimpleLoRaApp.h index f039ac7..4bde377 100644 --- a/src/LoRaApp/SimpleLoRaApp.h +++ b/src/LoRaApp/SimpleLoRaApp.h @@ -67,7 +67,7 @@ class INET_API SimpleLoRaApp : public cSimpleModule, public ILifecycle int ADR_ACK_LIMIT = 64; //64; int ADR_ACK_DELAY = 32; //32; bool sendNextPacketWithADRACKReq = false; - void increaseSFIfPossible(); + void increaseTPOrSFIfPossible(); public: SimpleLoRaApp() {}