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
Diff: main.cpp
- 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