Library for LoRa communication using MultiTech MDOT.

Dependents:   mDot_test_rx adc_sensor_lora mDotEVBM2X mDot_AT_firmware ... more

Function documentation is in mDot.h

Warning

Using libmDot 2.0.3 and above with an existing application may require a change in the MacEvent handler!
Compile applications with mbed v121 and mbed-rtos v116 libraries.

In AT Command Firmware remove line 803.

CommandTerminal/CommandTerminal.cpp

        delete[] info->RxBuffer;

Likewise, if your application is handling events from the library asynchronously.

Revision:
15:b50f92f1c6ff
Parent:
14:121e4c454964
Child:
16:e4f80db195b6
--- a/LoRaMac/LoRaMacEvent.h	Mon Apr 04 09:58:34 2016 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
- / _____)             _              | |
- ( (____  _____ ____ _| |_ _____  ____| |__
- \____ \| ___ |    (_   _) ___ |/ ___)  _ \
- _____) ) ____| | | || |_| ____( (___| | | |
- (______/|_____)_|_|_| \__)_____)\____)_| |_|
- (C)2013 Semtech
-
- Description: Generic radio driver definition
-
- License: Revised BSD License, see LICENSE.TXT file include in the project
-
- Maintainer: Miguel Luis and Gregory Cristian
- */
-#ifndef __LORAMACEVENT_H__
-#define __LORAMACEVENT_H__
-
-/*!
- * LoRaMAC event flags
- */
-typedef union {
-        uint8_t Value;
-        struct {
-                uint8_t :1;
-                uint8_t Tx :1;
-                uint8_t Rx :1;
-                uint8_t RxData :1;
-                uint8_t RxSlot :2;
-                uint8_t LinkCheck :1;
-                uint8_t JoinAccept :1;
-        } Bits;
-} LoRaMacEventFlags;
-
-typedef enum {
-    LORAMAC_EVENT_INFO_STATUS_OK = 0,
-    LORAMAC_EVENT_INFO_STATUS_ERROR,
-    LORAMAC_EVENT_INFO_STATUS_TX_TIMEOUT,
-    LORAMAC_EVENT_INFO_STATUS_RX_TIMEOUT,
-    LORAMAC_EVENT_INFO_STATUS_RX_ERROR,
-    LORAMAC_EVENT_INFO_STATUS_JOIN_FAIL,
-    LORAMAC_EVENT_INFO_STATUS_DOWNLINK_FAIL,
-    LORAMAC_EVENT_INFO_STATUS_ADDRESS_FAIL,
-    LORAMAC_EVENT_INFO_STATUS_MIC_FAIL,
-} LoRaMacEventInfoStatus;
-
-/*!
- * LoRaMAC event information
- */
-typedef struct {
-        LoRaMacEventInfoStatus Status;
-        bool TxAckReceived;
-        uint8_t TxNbRetries;
-        uint8_t TxDatarate;
-        uint8_t RxPort;
-        uint8_t *RxBuffer;
-        uint8_t RxBufferSize;
-        int16_t RxRssi;
-        uint8_t RxSnr;
-        uint16_t Energy;
-        uint8_t DemodMargin;
-        uint8_t NbGateways;
-} LoRaMacEventInfo;
-
-/*!
- * LoRaMAC events structure
- * Used to notify upper layers of MAC events
- */
-class LoRaMacEvent {
-    public:
-
-        virtual ~LoRaMacEvent() {}
-
-        /*!
-         * MAC layer event callback prototype.
-         *
-         * \param [IN] flags Bit field indicating the MAC events occurred
-         * \param [IN] info  Details about MAC events occurred
-         */
-        virtual void MacEvent(LoRaMacEventFlags *flags, LoRaMacEventInfo *info) {
-
-            if (flags->Bits.Rx) {
-                delete[] info->RxBuffer;
-            }
-        }
-
-        virtual uint8_t MeasureBattery(void) {
-            return 255;
-        }
-};
-
-#endif // __LORAMACEVENT_H__