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