LoRa_Node_STM32F103C8T6

Dependencies:   mbed mbed-STM32F103C8T6 OneWireCRC_LoRa_Node SX1276Lib_LoRa_Node

Revision:
5:6e899f5db65e
Parent:
4:a8853c148f2a
Child:
6:531b8dccca06
--- a/RFM95W.cpp	Mon Apr 23 21:28:49 2018 +0000
+++ b/RFM95W.cpp	Mon Apr 30 17:10:02 2018 +0000
@@ -58,25 +58,21 @@
 
 float RFM95W::CalculateRandomTime()
 {
-    uint8_t number;
-    while(number == 0) {number = rand() % 1200;}
-    return (timeOnAirSec * (number / 200.0));
+    uint8_t number = rand() % 1500;;
+    while(number == 0) {number = rand() % 1500;}
+    return (timeOnAirSec * (number / 150.0));
 };
 
 void RFM95W::OnCheckAck()
 {
     if((receivedAck == false) && (sendCounter < MAX_RESENDS))
+        sendTicker.attach(this,&RFM95W::OnSendAgain, CalculateRandomTime());
+    else if((receivedAck == false) && (sendCounter >= MAX_RESENDS))
     {
-        sendTicker.attach(this,&RFM95W::OnSendAgain, CalculateRandomTime());
-/*        NumberOfFailSends++;
-        if(NumberOfFailSends >=3 )
-        {
-//            MessageAlter = !MessageAlter;           // ????????????????????????????????????????????????????????????????????????????????????????????????????????
-           NumberOfFailSends = 0;
-           sampleTicker.detach();
-           sampleTicker.attach(&onSampleTick,15.0);          // kazdych 15s
-        }
-*/
+        PC.printf("Message number : %d \r\n", messageNumber);
+        messageNumber++;
+        if(messageNumber>255)
+            messageNumber = 0;
     }
     ackTicker.detach();
 };
@@ -141,12 +137,21 @@
 //        snprintf((char *)receivedMessage, BUFF_SIZE, "%d|%d|%s|\r\n", rssi, snr, payload);
         
 //        debug_if( DEBUG_MESSAGE, "> OnRxDone\n\r" );
+        ProcessReceivedMessage();
   
         return;
     }
     radio.Rx(0);                  // som zakomentil :P
 };
 
+void RFM95W::ProcessReceivedMessage()
+{
+    int time = atoi((const char*)receivedMessage);
+    thermometer.StopPeriodicMeassure();
+    thermometer.StartPeriodicMeassure(time);
+    PC.printf("Skonvertovane cislo : %d \r\n",time);    
+};
+
 void RFM95W::OnTxTimeout( void )
 {
     radio.Sleep();