Lora_with_GPS integration code - program hangs after a few transmissions

Dependencies:   mbed LoRaWAN-lib SingleFrequencyLora

Fork of simple-demo-76_revised_20171113 by Christopher De Bank

Revision:
11:32323f490d9e
Parent:
10:9364ab3a08eb
Child:
12:7debb1c79a06
diff -r 9364ab3a08eb -r 32323f490d9e app/main.cpp
--- a/app/main.cpp	Mon Oct 30 10:51:44 2017 +0000
+++ b/app/main.cpp	Thu Nov 16 14:30:39 2017 +0000
@@ -18,7 +18,7 @@
 #include "LoRaMac.h"
 
 
-#define APPDATA_SIZE 4
+#define APPDATA_SIZE 7
 #define LORAWAN_DEFAULT_DATARATE DR_0
 #define LORAWAN_DEVICE_ADDRESS                      ( uint32_t )0x01234567
 #define LORAWAN_NWKSKEY                             { 0x11, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 }
@@ -56,13 +56,13 @@
 //    LoRaMacPrimitives.MacMlmeConfirm = McpsConfirm;
     LoRaMacInitialization( &LoRaMacPrimitives, &LoRaMacCallbacks );
 
-    LoRaMacChannelAdd( 3, ( ChannelParams_t ){ 867100000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } );
-    LoRaMacChannelAdd( 4, ( ChannelParams_t ){ 867300000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 });
-    LoRaMacChannelAdd( 5, ( ChannelParams_t ){ 867500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } );
-    LoRaMacChannelAdd( 6, ( ChannelParams_t ){ 867700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } );
-    LoRaMacChannelAdd( 7, ( ChannelParams_t ){ 867900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } );
-    LoRaMacChannelAdd( 8, ( ChannelParams_t ){ 868800000, { ( ( DR_7 << 4 ) | DR_7 ) }, 2 } );
-    LoRaMacChannelAdd( 9, ( ChannelParams_t ){ 868300000, { ( ( DR_6 << 4 ) | DR_6 ) }, 1 } );
+    LoRaMacChannelAdd( 3, ( ChannelParams_t ){ 869400000, { ( ( DR_5 << 4 ) | DR_5 ) }, 3 } );
+    //LoRaMacChannelAdd( 4, ( ChannelParams_t ){ 867300000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } );
+    //LoRaMacChannelAdd( 5, ( ChannelParams_t ){ 867500000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } );
+    //LoRaMacChannelAdd( 6, ( ChannelParams_t ){ 867700000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } );
+    //LoRaMacChannelAdd( 7, ( ChannelParams_t ){ 867900000, { ( ( DR_5 << 4 ) | DR_0 ) }, 0 } );
+    //LoRaMacChannelAdd( 8, ( ChannelParams_t ){ 868800000, { ( ( DR_7 << 4 ) | DR_7 ) }, 2 } );
+    //LoRaMacChannelAdd( 9, ( ChannelParams_t ){ 868300000, { ( ( DR_6 << 4 ) | DR_6 ) }, 1 } );
 
     //Join ABP
 
@@ -96,24 +96,30 @@
 
     //Prepareframe
 
-    AppData[0] = 0xFF;
-    AppData[1] = 0xFF;
-    AppData[2] = 0xFF;
-    AppData[3] = 0xFF;
+    AppData[0] = 0x43;
+    AppData[1] = 0x68;
+    AppData[2] = 0x72;
+    AppData[3] = 0x69;
+    AppData[4] = 0x73;
+    AppData[5] = 0x21;
+    AppData[6] = 0x21;
     
     //Sendframe
     
     McpsReq_t mcpsReq;
     
     uint8_t AppPort = 3;
-    mcpsReq.Type = MCPS_CONFIRMED;
-    mcpsReq.Req.Confirmed.fPort = AppPort;
-    mcpsReq.Req.Confirmed.fBuffer = AppData;
-    mcpsReq.Req.Confirmed.fBufferSize = APPDATA_SIZE;
-    mcpsReq.Req.Confirmed.Datarate = LORAWAN_DEFAULT_DATARATE;
+    mcpsReq.Type = MCPS_UNCONFIRMED;
+    mcpsReq.Req.Unconfirmed.fPort = AppPort;
+    mcpsReq.Req.Unconfirmed.fBuffer = AppData;
+    mcpsReq.Req.Unconfirmed.fBufferSize = APPDATA_SIZE;
+    mcpsReq.Req.Unconfirmed.Datarate = DR_5;
         
     LoRaMacMcpsRequest( &mcpsReq );
     
-    while(1);
+    while(1){
+        wait(1);
+        LoRaMacMcpsRequest( &mcpsReq );
+        }
 }