Espotel
/
LoRaWAN_ELMO_TxRx_Template
Example Tx Rx LoRa code for Multitech Conduit. Based on Semtech stack for ELMO - ver. 4.1.0.
main.cpp
- Committer:
- Pasi
- Date:
- 2016-04-19
- Revision:
- 6:71b489e70063
- Parent:
- 5:be347c6040c1
File content as of revision 6:71b489e70063:
/* _______ ______ ______ _______ _______ _______ _ (_______)/ _____|_____ (_______|_______|_______|_) _____ ( (____ _____) ) _ _ _____ _ | ___) \____ \| ____/ | | | | | | ___) | | | |_____ _____) ) | | |___| | | | | |_____| |_____ |_______|______/|_| \_____/ |_| |_______)_______) (C)2016 Espotel Oy/Etteplan Oyj 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 */ #include "mbed.h" #include "RadioHandler.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 DigitalOut Led1(LED1); /* * True if ELMO button was pressed */ static bool ButtonPressed = false; /* ELMO Pushbutton interrupt */ void ButtonHandler( void ) { ButtonPressed = true; } /** * Main application entry point. */ int main( void ) { char XmitBuffer[100]; // Max 16 bytes in LoRa packet! uint16_t PacketCount = 0; InterruptIn pushButton(USER_BUTTON); Serial debugPort(SERIAL_TX, SERIAL_RX); debugPort.baud(9600); debugPort.printf("\r\n\r\nELMO Debug Screen\r\n"); pushButton.rise(&ButtonHandler); pushButton.enable_irq(); RadioInit(); while( 1 ) { // Show some debug stuff in case Elmo button is pressed. Request packet transmission if (ButtonPressed) { debugPort.printf("\r\nButton was pressed\r\n"); Led1 = !Led1; sprintf(XmitBuffer, "Elmo calling %d", PacketCount); RequestPacketTx(XmitBuffer, true); // true = enable periodic transmissions. False = send just one packet if(PacketCount < 99) { PacketCount++; } else { // Start from 1 when 99 is reached PacketCount = 1; } ButtonPressed = false; } RadioHandler(); } }