LoRa_Node_STM32F103C8T6
Dependencies: mbed mbed-STM32F103C8T6 OneWireCRC_LoRa_Node SX1276Lib_LoRa_Node
Diff: RFM95W.cpp
- 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();