Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: NCP5623B GpsParser ISL29011 libmDot-mbed5 MTS-Serial MMA845x DOGS102 MPL3115A2
Diff: LoRaHandler/LoRaHandler.cpp
- Revision:
- 12:05435282f899
- Parent:
- 7:a31236c2e75c
--- a/LoRaHandler/LoRaHandler.cpp Thu Nov 10 22:10:58 2016 +0000 +++ b/LoRaHandler/LoRaHandler.cpp Tue Oct 09 13:49:30 2018 -0500 @@ -34,7 +34,6 @@ LoRaHandler* l = (LoRaHandler*)argument; osEvent e; - l->_dot = mDot::getInstance(); int32_t ret; mDot::link_check lc; mDot::rssi_stats rs; @@ -66,13 +65,15 @@ l->_tick.detach(); l->_activity_led = LoRaHandler::green; break; - + case l_send: l->_mutex.lock(); ret = l->_dot->send(send_data); l->_mutex.unlock(); if (ret == mDot::MDOT_OK) l->_status = LoRaHandler::send_success; + else if(ret == mDot::MDOT_MAX_PAYLOAD_EXCEEDED) + l->_status = LoRaHandler::send_failure_payload; else l->_status = LoRaHandler::send_failure; osSignalSet(l->_main, loraSignal); @@ -86,6 +87,15 @@ l->_join_attempts++; l->_mutex.unlock(); if (ret == mDot::MDOT_OK) { + send_data.clear(); + l->_mutex.lock(); + l->_dot->send(send_data); + l->_dot->send(send_data); + while(l->_dot->getDataPending()) { + l->_dot->send(send_data); + } + l->_dot->send(send_data); + l->_mutex.unlock(); l->_status = LoRaHandler::join_success; osSignalSet(l->_main, loraSignal); l->_tick.detach(); @@ -96,7 +106,7 @@ l->_tick.detach(); l->_activity_led = LoRaHandler::red; } - + break; default: @@ -107,12 +117,13 @@ } } -LoRaHandler::LoRaHandler(osThreadId main) - : _main(main), +LoRaHandler::LoRaHandler(osThreadId main, mDot* dot) + : _main(main), _thread(l_worker, (void*)this), _status(none), _join_attempts(1), - _activity_led(XBEE_DIO1, PIN_OUTPUT, PullNone, red) + _activity_led(XBEE_DIO1, PIN_OUTPUT, PullNone, red), + _dot(dot) { _link.status = false; _activity_led = red; @@ -128,7 +139,7 @@ } bool LoRaHandler::join() { - return action(l_join); + return action(l_join); } bool LoRaHandler::action(uint8_t c) {