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
main.cpp@9:c7c39e01bda1, 2016-10-10 (annotated)
- Committer:
- KosTee
- Date:
- Mon Oct 10 09:53:50 2016 +0000
- Revision:
- 9:c7c39e01bda1
- Parent:
- 7:3d16d6fe3b12
- Child:
- 10:ceaf618066ca
Small fix
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| mleksio | 1:2be292bd43f9 | 1 | /* |
| Pasi | 5:be347c6040c1 | 2 | |
| Pasi | 5:be347c6040c1 | 3 | _______ ______ ______ _______ _______ _______ _ |
| Pasi | 5:be347c6040c1 | 4 | (_______)/ _____|_____ (_______|_______|_______|_) |
| Pasi | 5:be347c6040c1 | 5 | _____ ( (____ _____) ) _ _ _____ _ |
| Pasi | 5:be347c6040c1 | 6 | | ___) \____ \| ____/ | | | | | | ___) | | |
| Pasi | 5:be347c6040c1 | 7 | | |_____ _____) ) | | |___| | | | | |_____| |_____ |
| Pasi | 5:be347c6040c1 | 8 | |_______|______/|_| \_____/ |_| |_______)_______) |
| Pasi | 5:be347c6040c1 | 9 | |
| Pasi | 5:be347c6040c1 | 10 | (C)2016 Espotel Oy/Etteplan Oyj |
| Pasi | 5:be347c6040c1 | 11 | Description: Main code for LORA radio code template |
| mleksio | 0:c58229885f95 | 12 | License: Revised BSD License, see LICENSE.TXT file include in the project |
| Pasi | 5:be347c6040c1 | 13 | Maintainer: Pasi Pulkkinen |
| Pasi | 5:be347c6040c1 | 14 | Version 1.0 |
| mleksio | 0:c58229885f95 | 15 | */ |
| mleksio | 0:c58229885f95 | 16 | |
| Pasi | 5:be347c6040c1 | 17 | #include "mbed.h" |
| Pasi | 5:be347c6040c1 | 18 | #include "RadioHandler.h" |
| KosTee | 7:3d16d6fe3b12 | 19 | #include "Comissioning.h" |
| KosTee | 7:3d16d6fe3b12 | 20 | |
| Pasi | 5:be347c6040c1 | 21 | // --- Important notes! --- |
| Pasi | 5:be347c6040c1 | 22 | // USE_BAND_868 has been defined in LoRaMac-board.h |
| Pasi | 5:be347c6040c1 | 23 | // OVER_THE_AIR_ACTIVATION at Comissioning.h is enabled |
| Pasi | 5:be347c6040c1 | 24 | // LORAWAN_PUBLIC_NETWORK at Comissioning.h is true |
| Pasi | 5:be347c6040c1 | 25 | // LORAWAN_DEVICE_EUI at Comissioning.h should be unique for each board |
| Pasi | 5:be347c6040c1 | 26 | // LORAWAN_APPLICATION_EUI at Comissioning.h should be unique for each conduit. Copy this to conduit network ID EUI |
| Pasi | 5:be347c6040c1 | 27 | // LORAWAN_APPLICATION_KEY at Comissioning.h ensures secure end to end communication. Copy this to conduit network key |
| Pasi | 5:be347c6040c1 | 28 | // dConduitBugs at LoRaMac.cpp patches a bug in Multitech Conduit Firmware 1.1.2 2016-01-13T09:59:04 |
| mleksio | 0:c58229885f95 | 29 | |
| mleksio | 1:2be292bd43f9 | 30 | DigitalOut Led1(LED1); |
| Pasi | 5:be347c6040c1 | 31 | static bool ButtonPressed = false; |
| mleksio | 0:c58229885f95 | 32 | |
| KosTee | 7:3d16d6fe3b12 | 33 | //ELMO Pushbutton interrupt |
| Pasi | 5:be347c6040c1 | 34 | void ButtonHandler( void ) |
| mleksio | 0:c58229885f95 | 35 | { |
| Pasi | 5:be347c6040c1 | 36 | ButtonPressed = true; |
| mleksio | 0:c58229885f95 | 37 | } |
| mleksio | 0:c58229885f95 | 38 | |
| KosTee | 7:3d16d6fe3b12 | 39 | //Main application entry point. |
| mleksio | 0:c58229885f95 | 40 | int main( void ) |
| mleksio | 0:c58229885f95 | 41 | { |
| Pasi | 5:be347c6040c1 | 42 | char XmitBuffer[100]; // Max 16 bytes in LoRa packet! |
| KosTee | 7:3d16d6fe3b12 | 43 | char data[100]; |
| KosTee | 7:3d16d6fe3b12 | 44 | uint16_t index = 0; |
| Pasi | 5:be347c6040c1 | 45 | InterruptIn pushButton(USER_BUTTON); |
| Pasi | 5:be347c6040c1 | 46 | Serial debugPort(SERIAL_TX, SERIAL_RX); |
| Pasi | 5:be347c6040c1 | 47 | debugPort.baud(9600); |
| Pasi | 6:71b489e70063 | 48 | debugPort.printf("\r\n\r\nELMO Debug Screen\r\n"); |
| Pasi | 5:be347c6040c1 | 49 | pushButton.rise(&ButtonHandler); |
| Pasi | 5:be347c6040c1 | 50 | pushButton.enable_irq(); |
| Pasi | 5:be347c6040c1 | 51 | RadioInit(); |
| mleksio | 0:c58229885f95 | 52 | |
| mleksio | 0:c58229885f95 | 53 | while( 1 ) |
| mleksio | 0:c58229885f95 | 54 | { |
| KosTee | 7:3d16d6fe3b12 | 55 | // Show some debug stuff in case Elmo button is pressed. Request packet transmission |
| KosTee | 7:3d16d6fe3b12 | 56 | if (debugPort.readable()) { |
| KosTee | 7:3d16d6fe3b12 | 57 | data[index]=debugPort.getc(); |
| KosTee | 7:3d16d6fe3b12 | 58 | |
| KosTee | 7:3d16d6fe3b12 | 59 | if (data[index]=='\n'){ |
| KosTee | 7:3d16d6fe3b12 | 60 | debugPort.printf("Your input was: %s\r\n", data); |
| KosTee | 7:3d16d6fe3b12 | 61 | sprintf(XmitBuffer, "%s\r\n", data); |
| KosTee | 7:3d16d6fe3b12 | 62 | Led1 = !Led1; |
| KosTee | 7:3d16d6fe3b12 | 63 | RequestPacketTx(XmitBuffer, false); |
| KosTee | 7:3d16d6fe3b12 | 64 | memset(data,' ', sizeof(data)); |
| KosTee | 7:3d16d6fe3b12 | 65 | index=0; |
| KosTee | 7:3d16d6fe3b12 | 66 | } |
| KosTee | 7:3d16d6fe3b12 | 67 | index++; |
| KosTee | 7:3d16d6fe3b12 | 68 | if (index>100) { |
| KosTee | 7:3d16d6fe3b12 | 69 | index=0; |
| KosTee | 7:3d16d6fe3b12 | 70 | } |
| KosTee | 7:3d16d6fe3b12 | 71 | } |
| KosTee | 7:3d16d6fe3b12 | 72 | |
| KosTee | 7:3d16d6fe3b12 | 73 | |
| KosTee | 7:3d16d6fe3b12 | 74 | |
| KosTee | 7:3d16d6fe3b12 | 75 | |
| KosTee | 7:3d16d6fe3b12 | 76 | |
| KosTee | 7:3d16d6fe3b12 | 77 | |
| Pasi | 5:be347c6040c1 | 78 | if (ButtonPressed) |
| KosTee | 7:3d16d6fe3b12 | 79 | { |
| Pasi | 5:be347c6040c1 | 80 | debugPort.printf("\r\nButton was pressed\r\n"); |
| KosTee | 7:3d16d6fe3b12 | 81 | RadioSetup(); |
| KosTee | 7:3d16d6fe3b12 | 82 | debugPort.printf("JOB DONE\r\n"); |
| Pasi | 5:be347c6040c1 | 83 | Led1 = !Led1; |
| KosTee | 7:3d16d6fe3b12 | 84 | //State/Status resets for next time |
| Pasi | 5:be347c6040c1 | 85 | ButtonPressed = false; |
| Pasi | 5:be347c6040c1 | 86 | } |
| KosTee | 7:3d16d6fe3b12 | 87 | |
| Pasi | 5:be347c6040c1 | 88 | RadioHandler(); |
| mleksio | 0:c58229885f95 | 89 | } |
| mleksio | 1:2be292bd43f9 | 90 | } |
