work1

Dependencies:   mbed MAX44009 mbed-os Si7021

Committer:
danaeb
Date:
Thu May 28 07:31:51 2020 +0000
Revision:
2:25f27478fdf9
Parent:
1:3656b45f17a8
work

Who changed what in which revision?

UserRevisionLine numberNew contents of line
danaeb 0:d3e390d62607 1 #ifndef TASK_LORA_H
danaeb 0:d3e390d62607 2 #define TASK_LORA_H
danaeb 0:d3e390d62607 3
danaeb 0:d3e390d62607 4 #include "mbed.h"
danaeb 0:d3e390d62607 5 #include "liboo/types.h"
danaeb 0:d3e390d62607 6 #include "tools.h"
danaeb 0:d3e390d62607 7 #include "lorawan/system/lorawan_data_structures.h"
danaeb 0:d3e390d62607 8
danaeb 0:d3e390d62607 9 class AppLora{
danaeb 0:d3e390d62607 10 public:
danaeb 0:d3e390d62607 11 typedef enum{
danaeb 0:d3e390d62607 12 EVENT_DISCONNECTED,
danaeb 0:d3e390d62607 13 EVENT_CONNECTED,
danaeb 0:d3e390d62607 14 EVENT_TX_DONE,
danaeb 0:d3e390d62607 15 EVENT_RX_DONE,
danaeb 0:d3e390d62607 16 EVENT_UPLINK_REQUIERED,
danaeb 0:d3e390d62607 17 EVENT_TX_ERROR,
danaeb 0:d3e390d62607 18 EVENT_RX_ERROR,
danaeb 0:d3e390d62607 19 EVENT_CONNECTION_ERROR, // not network
danaeb 0:d3e390d62607 20 EVENT_JOIN_FAILURE // wrong OTAA keys
danaeb 0:d3e390d62607 21 }EVENT;
danaeb 0:d3e390d62607 22 static void initialize(EventQueue *queue);
danaeb 0:d3e390d62607 23 static s16 get_rx_message(u8 *data, u16 data_size, u8 &app_port);
danaeb 0:d3e390d62607 24 static s16 send_message(u8 *data, u8 data_size, u8 app_port, bool confirmed);
danaeb 0:d3e390d62607 25 static void set_lora_callback(Callback<void(EVENT)> lora_callback);
danaeb 0:d3e390d62607 26 static void connect(void);
danaeb 0:d3e390d62607 27 static void disconnect(void);
danaeb 0:d3e390d62607 28 static u32 get_random(void);
danaeb 0:d3e390d62607 29 static u8 get_next_transmission_max_size(void);
danaeb 0:d3e390d62607 30
danaeb 0:d3e390d62607 31
danaeb 0:d3e390d62607 32 private:
danaeb 0:d3e390d62607 33 AppLora(){}; // private constructor that prevent anyone from
danaeb 0:d3e390d62607 34 // creating the instance
danaeb 0:d3e390d62607 35 static void _send_empty_uplink(void);
danaeb 0:d3e390d62607 36 static void _enter_active_mode(void);
danaeb 0:d3e390d62607 37 static void _enter_lowpower_mode(void);
danaeb 0:d3e390d62607 38 static void _pin_active_mode(void);
danaeb 0:d3e390d62607 39 static void _pin_lowpower_mode(void);
danaeb 0:d3e390d62607 40 static void _lora_event_handler(lorawan_event_t event);
danaeb 0:d3e390d62607 41 static void _call_callback(EVENT lora_event);
danaeb 0:d3e390d62607 42
danaeb 0:d3e390d62607 43 static Callback<void(EVENT)> _lora_callback;
danaeb 0:d3e390d62607 44 static events::EventQueue *_queue;
danaeb 0:d3e390d62607 45 static lorawan_app_callbacks_t _callbacks;
danaeb 0:d3e390d62607 46 static DigitalInOut _txco;
danaeb 0:d3e390d62607 47 };
danaeb 0:d3e390d62607 48
danaeb 0:d3e390d62607 49 #endif
danaeb 0:d3e390d62607 50