LoRa Access Point 1.5.2018

Dependencies:   mbed ds3231 SX1276Lib_LoRa_Access_Point

Revision:
3:7a3ddda464bf
Parent:
2:0499e1d037a5
Child:
4:e20eb5efd859
diff -r 0499e1d037a5 -r 7a3ddda464bf RFM95W.h
--- a/RFM95W.h	Mon Apr 23 10:30:01 2018 +0000
+++ b/RFM95W.h	Mon Apr 23 21:28:36 2018 +0000
@@ -56,6 +56,7 @@
 #define RX_TIMEOUT_VALUE                                2500000     // in us                          // 3500000
 #define BUFF_SIZE                                       255          // Define the payload size here   // 32
 #define MAX_DEVICES                                     255
+#define MAX_RESENDS                                     5
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 
@@ -65,15 +66,29 @@
     RadioEvents_t radioEvents;                /**< Radio events function pointer   */
     SX1276MB1xAS radio;                       /**< Radiovy modul   */
     DigitalOut indicationLed;                 /**< Indikacna led   */
+    AnalogIn noise;                       
     Ticker ledTicker;
-//     uint8_t receivedMessage[BUFF_SIZE];
+    Ticker sendTicker;
+    Ticker ackTicker;
+
     uint8_t receivedMessage[BUFF_SIZE];
+    uint8_t sendBuffer[BUFF_SIZE];
+    uint8_t ack[3];
     volatile uint8_t messageNumbers[MAX_DEVICES];
+    volatile uint8_t messageNumber;            /**< My message number   */
     volatile uint8_t ledState;
     volatile float timeOnAirSec;
+    volatile bool receivedAck;
+    volatile bool sendingAck;
+    volatile uint8_t sendCounter;
     
+    float CalculateRandomTime();
+    void InitRandom();
     void OnLedTick();
+    void SendMessage();
     void SendAck(uint8_t addr, uint8_t messageNumber);
+    void OnCheckAck();
+    void OnSendAgain();
 public:
     RFM95W();
     void Init();
@@ -82,7 +97,8 @@
     void OnTxTimeout( void );
     void OnRxTimeout( void );
     void OnRxError( void );
-    void OnCadDone( bool channelActivityDetected );
+    void OnCadDone( bool channelActivityDetected );  
+    void SendValue(uint8_t addr, float value);
 };
 extern RFM95W rfm;