From 11ac166f3476116b08eeaffc25d80b163573089b Mon Sep 17 00:00:00 2001 From: Mike Fiore Date: Tue, 17 Nov 2015 13:04:00 -0600 Subject: join works, but only once - added object for running LoRa operations in a thread, lots of misc updates --- LoRaHandler/LoRaHandler.h | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 LoRaHandler/LoRaHandler.h (limited to 'LoRaHandler/LoRaHandler.h') diff --git a/LoRaHandler/LoRaHandler.h b/LoRaHandler/LoRaHandler.h new file mode 100644 index 0000000..20f9d6f --- /dev/null +++ b/LoRaHandler/LoRaHandler.h @@ -0,0 +1,50 @@ +#ifndef __LORAHANDLER_H__ +#define __LORAHANDLER_H__ + +#include "mDot.h" + +#define loraSignal (int32_t)0x02 + +class LoRaHandler { + public: + typedef enum { + none = 0, + busy, + ping_success, + send_success, + join_success, + ping_failure, + send_failure, + join_failure + } LoRaStatus; + + typedef struct { + bool status; + mDot::ping_response up; + mDot::ping_response down; + } LoRaPing; + + LoRaHandler(osThreadId main); + ~LoRaHandler(); + + bool setDataRate(uint8_t rate); + bool setPower(uint32_t power); + bool ping(); + bool send(std::vector data); + bool join(); + bool action(uint8_t cmd); + LoRaStatus getStatus(); + LoRaPing getPingResults(); + uint32_t getNextTx(); + + + osThreadId _main; + Thread _thread; + LoRaStatus _status; + LoRaPing _ping; + mDot* _dot; + Mutex _mutex; +}; + +#endif + -- cgit v1.2.3