Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SX1272lib-PABOOST-HW-Modification mbed
Fork of LoRaWAN_ELMO_TxRx_Template by
Revision 10:ceaf618066ca, committed 2016-10-10
- Comitter:
- KosTee
- Date:
- Mon Oct 10 12:00:53 2016 +0000
- Parent:
- 9:c7c39e01bda1
- Commit message:
- Comments and documentation added
Changed in this revision
--- a/RadioHandler.cpp Mon Oct 10 09:53:50 2016 +0000 +++ b/RadioHandler.cpp Mon Oct 10 12:00:53 2016 +0000 @@ -8,6 +8,7 @@ Description: LoRaMac classA device implementation License: Revised BSD License, see LICENSE.TXT file include in the project Maintainer: Miguel Luis and Gregory Cristian +Latest modifier: Teemu Koskinen */ /*! \file classA/LoRaMote/main.c */ @@ -23,6 +24,19 @@ #include "RadioHandler.h" #include <stdlib.h> +/* -- Latest updates -- */ +//Version 1.0b +/* RadioHandler contains new funtions */ +//void RadioSetup( void ); +//void SetRadioValues(void); +//void SetDevEui(void); +//void SetAppEui(void); +//void SetAppKey(void); +/* Some of these functions should not be here cause they are not about radio handling. Refactoring is recommended if this branch is continued */ + + + + DigitalOut Led2(LED2); @@ -105,6 +119,7 @@ //static uint8_t AppEui[] = LORAWAN_APPLICATION_EUI; //static uint8_t AppKey[] = LORAWAN_APPLICATION_KEY; +//Setting the default values uint8_t DevEui[8] = LORAWAN_DEVICE_EUI; uint8_t AppEui[8] = LORAWAN_APPLICATION_EUI; uint8_t AppKey[16] = LORAWAN_APPLICATION_KEY; @@ -815,6 +830,7 @@ Serial port(SERIAL_TX, SERIAL_RX); port.baud(9600); + /* Read answer to entering the configuration mode */ while( 1 ) { if (port.readable()) @@ -829,6 +845,7 @@ port.printf("%d\r\n",strncmp( answer, answer_yes, 3)); if (strncmp( answer, answer_yes, 3) == 0 ) { + /* Setting the new values function*/ SetRadioValues(); } memset(answer,' ', sizeof(answer)); @@ -845,6 +862,7 @@ } +/* Function for setting new values */ void SetRadioValues(void) { Serial port(SERIAL_TX, SERIAL_RX); @@ -854,6 +872,7 @@ uint16_t index = 0; printf("\r\nWelcome configuration. Please enter your selection:\r\n\t1: SetDevEui\r\n\t2: SetAppEui\r\n\t3: SetAppKey\r\n"); + /* Read answer which item is goin to be updated */ while( 1 ) { if (port.readable()) @@ -868,6 +887,7 @@ port.printf("%d\r\n",strncmp( answer, answer_yes, 3)); if (strncmp( answer, answer_yes, 1) == 0 ) { + /* Setting new DevEui */ SetDevEui(); } strcpy(answer_yes,"2\n"); @@ -875,6 +895,7 @@ port.printf("%d\r\n",strncmp( answer, answer_yes, 3)); if (strncmp( answer, answer_yes, 1) == 0 ) { + /* Setting new AppEui */ SetAppEui(); } strcpy(answer_yes,"3\n"); @@ -882,6 +903,7 @@ port.printf("%d\r\n",strncmp( answer, answer_yes, 3)); if (strncmp( answer, answer_yes, 1) == 0 ) { + /* Setting new AppKey */ SetAppKey(); } memset(answer,' ', sizeof(answer)); @@ -896,11 +918,13 @@ } } port.printf("Returning to setup\r\n"); + /* Init Radio with new values */ RadioInit(); + /* Print current values, configure more or exit menu */ RadioSetup(); } -/* Set new RadioHandler values */ +/* Set new DevEui values one by one */ void SetDevEui(void) { char answer[100]; @@ -943,6 +967,7 @@ } } +/* Set new AppEui values one by one */ void SetAppEui(void) { char answer[100]; @@ -986,6 +1011,7 @@ } +/* Set new AppKey values one by one */ void SetAppKey(void) { char answer[100]; @@ -1028,5 +1054,3 @@ } - -
--- a/RadioHandler.h Mon Oct 10 09:53:50 2016 +0000 +++ b/RadioHandler.h Mon Oct 10 12:00:53 2016 +0000 @@ -12,7 +12,6 @@ #ifndef __RADIOHANDLER_H__ #define __RADIOHANDLER_H__ - void RadioInit( void ); void RequestPacketTx( char *DataString, bool PeriodicRequested ); void RadioHandler( void ); @@ -22,11 +21,8 @@ void SetAppEui(void); void SetAppKey(void); -//#if( OVER_THE_AIR_ACTIVATION != 0 ) -/* Copied these values to .h for easier handling. TK */ extern uint8_t DevEui[8]; extern uint8_t AppEui[8]; extern uint8_t AppKey[16]; - #endif // __RADIOHANDLER_H__
--- a/main.cpp Mon Oct 10 09:53:50 2016 +0000 +++ b/main.cpp Mon Oct 10 12:00:53 2016 +0000 @@ -11,21 +11,37 @@ Description: Main code for LORA radio code template License: Revised BSD License, see LICENSE.TXT file include in the project Maintainer: Pasi Pulkkinen -Version 1.0 +Latest modifier: Teemu Koskinen +Version 1.0b (b represents Serial port driven branch/fork) */ #include "mbed.h" #include "RadioHandler.h" #include "Comissioning.h" -// --- Important notes! --- -// USE_BAND_868 has been defined in LoRaMac-board.h -// OVER_THE_AIR_ACTIVATION at Comissioning.h is enabled -// LORAWAN_PUBLIC_NETWORK at Comissioning.h is true -// LORAWAN_DEVICE_EUI at Comissioning.h should be unique for each board -// LORAWAN_APPLICATION_EUI at Comissioning.h should be unique for each conduit. Copy this to conduit network ID EUI -// LORAWAN_APPLICATION_KEY at Comissioning.h ensures secure end to end communication. Copy this to conduit network key -// dConduitBugs at LoRaMac.cpp patches a bug in Multitech Conduit Firmware 1.1.2 2016-01-13T09:59:04 +/* --- Important notes! --- */ +/* Original comments */ +// 1: USE_BAND_868 has been defined in LoRaMac-board.h +// 2: OVER_THE_AIR_ACTIVATION at Comissioning.h is enabled +// 3: LORAWAN_PUBLIC_NETWORK at Comissioning.h is true + +/* Configurable parameters through serial port after ButtonPressed */ +// 4: LORAWAN_DEVICE_EUI at Comissioning.h should be unique for each board +// 5: LORAWAN_APPLICATION_EUI at Comissioning.h should be unique for each conduit. Copy this to conduit network ID EUI +// 6: LORAWAN_APPLICATION_KEY at Comissioning.h ensures secure end to end communication. Copy this to conduit network key + +/* I am currently using Conduit 1.2.2 and this bugfix is not necessary anymore */ +// 7: dConduitBugs at LoRaMac.cpp patches a bug in Multitech Conduit Firmware 1.1.2 2016-01-13T09:59:04 + +/* Serial port communication expanded */ +// 8: Up to 100 characters from Serial port are sent to gateway by presseing enter (\n) +// 9: Button pressed prints current setup values and possibility to congigure them. + +/* -- Latest updates -- */ +//Version 1.0b +//RadioHandler contains lot of new funtions +/* Some of these functions should not be here cause they are not about radio handling. Refactoring is recommended if this branch is continued */ + DigitalOut Led1(LED1); static bool ButtonPressed = false; @@ -52,7 +68,8 @@ while( 1 ) { - // Show some debug stuff in case Elmo button is pressed. Request packet transmission + /* Device waits for ButtongPressed or readable input */ + /* If readable and enter (\n) given device will send given message */ if (debugPort.readable()) { data[index]=debugPort.getc(); @@ -69,12 +86,7 @@ index=0; } } - - - - - - + /* ButtonPressed enters the config menu */ if (ButtonPressed) { debugPort.printf("\r\nButton was pressed\r\n"); @@ -84,7 +96,7 @@ //State/Status resets for next time ButtonPressed = false; } - + /* Scheduled communication */ RadioHandler(); } } \ No newline at end of file