Fork of Semtech LoRaWAN stack

Fork of LoRaWAN-lib by canuck lehead

Branch:
v4.2.0
Revision:
30:0926a366a2c5
Parent:
29:c7583fcfad8c
Child:
31:930f949fdd9e
diff -r c7583fcfad8c -r 0926a366a2c5 LoRaMac.cpp
--- a/LoRaMac.cpp	Thu Nov 17 14:12:24 2016 +0000
+++ b/LoRaMac.cpp	Tue Dec 13 21:44:00 2016 +0000
@@ -1548,7 +1548,7 @@
             if( ( AckTimeoutRetriesCounter < AckTimeoutRetries ) && ( AckTimeoutRetriesCounter <= MAX_ACK_RETRIES ) )
             {
                 AckTimeoutRetriesCounter++;
-
+                
                 if( ( AckTimeoutRetriesCounter % 2 ) == 1 )
                 {
                     ChannelsDatarate = MAX( ChannelsDatarate - 1, LORAMAC_TX_MIN_DATARATE );
@@ -1683,36 +1683,36 @@
         datarate = DR_0;
     }
     // For higher datarates, we increase the number of symbols generating a Rx Timeout
-    switch( datarate )
+
+
+	symbTimeout = 10;
+	// For low SF, we increase the number of symbols generating a Rx Timeout
+    switch ( datarate )
     {
-        case DR_0:       // SF10 - BW125
-            symbTimeout = 5;
-            break;
-
-        case DR_1:       // SF9  - BW125
-        case DR_2:       // SF8  - BW125
-        case DR_8:       // SF12 - BW500
-        case DR_9:       // SF11 - BW500
-        case DR_10:      // SF10 - BW500
-            symbTimeout = 8;
+        case DR_0:
+        case DR_8:
+        case DR_9:
+        case DR_10:
+            symbTimeout += 5;
+        	break;
+        case DR_1:
+        case DR_11: 
+            symbTimeout += 8;
             break;
-
-        case DR_3:       // SF7  - BW125
-        case DR_11:      // SF9  - BW500
-            symbTimeout = 10;
+        case DR_2:
+        case DR_4:
+        case DR_12: 
+            symbTimeout += 9;
             break;
-
-        case DR_4:       // SF8  - BW500
-        case DR_12:      // SF8  - BW500
-            symbTimeout = 14;
-            break;
-
-        case DR_13:      // SF7  - BW500
-            symbTimeout = 16;
+        case DR_3:
+        case DR_13: 
+            symbTimeout += 10;
             break;
         default:
-            break;
+        	symbTimeout += 5;
+           break;
     }
+
     if( datarate >= DR_4 )
     {// LoRa 500 kHz
         bandwidth  = 2;