LoRa_Node_STM32F103C8T6

Dependencies:   mbed mbed-STM32F103C8T6 OneWireCRC_LoRa_Node SX1276Lib_LoRa_Node

Revision:
3:369546c57dc7
Parent:
2:8bd9ce0ae2df
Child:
4:a8853c148f2a
--- a/RFM95W.cpp	Sun Apr 22 15:09:23 2018 +0000
+++ b/RFM95W.cpp	Mon Apr 23 10:30:21 2018 +0000
@@ -26,6 +26,8 @@
     timeOnAirSec = 0.3;
     indicationLed = 1;
     messageNumber = NODE_ID;
+    sendCounter = 0;
+    receivedAck = false;
 };
 
 void RFM95W::OnLedTick()
@@ -65,7 +67,7 @@
 {
     if((receivedAck == false) && (sendCounter < MAX_RESENDS))
     {
-        sendTicker.attach(callback(this,&RFM95W::OnSendAgain), CalculateRandomTime());
+        sendTicker.attach(this,&RFM95W::OnSendAgain, CalculateRandomTime());
 /*        NumberOfFailSends++;
         if(NumberOfFailSends >=3 )
         {
@@ -90,7 +92,7 @@
 {
     radio.Sleep();
     receivedAck = false;
-    ackTicker.attach(callback(this,&RFM95W::OnCheckAck),timeOnAirSec*3);
+    ackTicker.attach(this,&RFM95W::OnCheckAck,timeOnAirSec*3);
     radio.Rx(0);
 };
 
@@ -99,10 +101,11 @@
     radio.Sleep();
 //    debug("%d \r\n", payload[0]-'0');
     if(payload[0]-'0' == NODE_ID) {
-        if( strncmp( ( const char* )payload, ( const char* )ack, 3 ) == 0 ) 
+        if((size == 3) && (strncmp( ( const char* )payload, ( const char* )ack, 3 ) == 0) ) 
         {
+            receivedAck = true;
             PC.printf("Received Ack : %s \r\n",ack);
-            ledTicker.attach(callback(this,&RFM95W::OnLedTick), LED_BLIK_PERIOD);    
+            ledTicker.attach(this,&RFM95W::OnLedTick, LED_BLIK_PERIOD);    
             indicationLed=0;
             messageNumber++;
             if(messageNumber>255)
@@ -117,7 +120,7 @@
         if(payload[2] == messageNumbers[MsgFrom])
         {
             PC.printf("--------------------- Ta ista sprava -------------------- \r\n");
-            radio.Rx(0);
+ //           radio.Rx(0);
             return;
         }
         messageNumbers[MsgFrom] = payload[2];
@@ -231,7 +234,7 @@
     InitRandom();
     messageNumber = rand();
     for(uint16_t i = 0; i < MAX_DEVICES;i++)
-        messageNumbers[i]=rand();
+        messageNumbers[i]=rand() % 256;
     radio.Rx(0);
 };