Fork from LoRa Alliance program. available here: https://developer.mbed.org/users/Alliance/code/LoRaWAN/

Dependencies:   LoRaMacLib SX1276Lib mbed Chainable_RGB_LED DigitDisplay

Fork of LoRaWAN by LoRa All

Revision:
3:db6ad4aa790d
Parent:
1:1ef4f6cd800c
Child:
4:0c164d628006
--- a/main.cpp	Tue Sep 22 19:36:27 2015 +0000
+++ b/main.cpp	Wed Sep 23 08:11:40 2015 +0000
@@ -23,14 +23,14 @@
  * When set to 1 the application uses the Over-the-Air activation procedure
  * When set to 0 the application uses the Personalization activation procedure
  */
-#define OVER_THE_AIR_ACTIVATION                     0
+#define OVER_THE_AIR_ACTIVATION                     1
 
 /*!
  * Mote device IEEE EUI
  */
 static uint8_t DevEui[] =
 {
-    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+    0x06, 0x06, 0x06, 0x06, 0x00, 0x00, 0x00, 0x00
 };
 
 #if( OVER_THE_AIR_ACTIVATION != 0 )
@@ -50,8 +50,8 @@
  */
 static uint8_t AppKey[] = 
 { 
-    0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
-    0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x19
 };
 
 #else
@@ -61,8 +61,8 @@
  */
 static uint8_t NwkSKey[] = 
 { 
-    0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
-    0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x19
 };
 
 /*!
@@ -70,8 +70,8 @@
  */
 static uint8_t AppSKey[] = 
 { 
-    0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6,
-    0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x19
 };
 
 /*!
@@ -89,8 +89,8 @@
 /*!
  * Defines the application data transmission duty cycle
  */
-#define APP_TX_DUTYCYCLE                            5000000  // 5 [s] value in us
-#define APP_TX_DUTYCYCLE_RND                        1000000  // 1 [s] value in us
+#define APP_TX_DUTYCYCLE                            10000000  // 10 [s] value in us
+#define APP_TX_DUTYCYCLE_RND                         2000000  // 2 [s] value in us
 
 /*!
  * User application data buffer size
@@ -124,11 +124,9 @@
 static bool TxNextPacket = true;
 static bool TxDone = false;
 
-static uint8_t AppPort = 1;
+static uint8_t AppPort = 3;
 static uint8_t AppDataSize = APP_DATA_SIZE;
 
-static bool AppLedStateOn = false;
-
 static LoRaMacEvent_t LoRaMacEvents;
 
 Ticker Led1Timer;
@@ -137,6 +135,7 @@
 
 #define NUM_LED 3
 
+
 // ChainableLED(clk, data, number_of_leds)
 ChainableLED color_led(D8, D9, NUM_LED);
 
@@ -144,6 +143,7 @@
 
 DigitalOut buzzer(A2);
 
+
 static void OnBuzTimerEvent( void )
 {
     buzzer = 0;
@@ -155,14 +155,14 @@
  */
 static void PrepareTxFrame( uint8_t port )
 {
-    AppData[0] = 0x01;
-    AppData[1] = 0x77;
-    AppData[2] = 0x77;
-    AppData[3] = 0x77;
-    AppData[4] = 0x77;
-    AppData[5] = 0x77;
-    AppData[6] = 0x77;
-    AppData[7] = 0x77;
+    AppData[0] = 0x99;
+    AppData[1] = 0x99;
+    AppData[2] = 0x99;
+    AppData[3] = 0x99;
+    AppData[4] = 0x99;
+    AppData[5] = 0x99;
+    AppData[6] = 0x99;
+    AppData[7] = 0x99;
 }
 
 static void ProcessRxFrame( LoRaMacEventFlags_t *flags, LoRaMacEventInfo_t *info )
@@ -170,14 +170,14 @@
     switch( info->RxPort ) // Check Rx port number
     {
         case 10: 
-            display.write( 0, info->RxBuffer[0] );
+   /*         display.write( 0, info->RxBuffer[0] );
             display.write( 1, info->RxBuffer[1] );
             display.write( 2, info->RxBuffer[2] );
-            display.write( 3, info->RxBuffer[3] );
+            display.write( 3, info->RxBuffer[3] ); */
             break;
             
         case 20:
-            color_led.setColorRGB(0, info->RxBuffer[0], info->RxBuffer[0], info->RxBuffer[0] );
+   //         color_led.setColorRGB(0, info->RxBuffer[0], info->RxBuffer[0], info->RxBuffer[0] );
             break;
             
         case 30:
@@ -268,7 +268,6 @@
 #endif
     bool trySendingFrameAgain = false;
 
-
     buzzer = 0;
 
     debug( "\n\n\r    LoRaWAN Class A Demo code  \n\n\r" );
@@ -277,8 +276,8 @@
     BoardInitPeriph( );
 
     // Initialize LoRaMac device unique ID
-    BoardGetUniqueId( DevEui );
-
+    // BoardGetUniqueId( DevEui );
+    
     LoRaMacEvents.MacEvent = OnMacEvent;
     LoRaMacInit( &LoRaMacEvents );
 
@@ -291,7 +290,7 @@
     // NwkID = 0
     // NwkAddr rand [0, 33554431]
     DevAddr = randr( 0, 0x01FFFFFF );
-
+        
     LoRaMacInitNwkIds( 0x000000, DevAddr, NwkSKey, AppSKey );
     IsNetworkJoined = true;
 #endif
@@ -312,6 +311,7 @@
                 TxNextPacket = false;
                 
                 sendFrameStatus = LoRaMacJoinReq( DevEui, AppEui, AppKey );
+                debug("Req Sent\n\r");
                 switch( sendFrameStatus )
                 {
                 case 1: // BUSY