fota lib for mdot

Dependents:   UQ_LoraWAN

Committer:
rklaassen
Date:
Tue Jan 15 09:25:58 2019 -0600
Revision:
8:7ba1f2abb8c0
Parent:
0:e1b89c6c6dd5
README test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 1 #ifndef MULTICASTGROUP_H
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 2 #define MULTICASTGROUP_H
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 3 #include "mDot.h"
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 4 #include "mbed.h"
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 5 #define GPS_EPOCH 315986400
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 6 #define MULTICAST_SESSIONS 3
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 7
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 8 class MulticastGroup {
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 9 public:
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 10 MulticastGroup(mDot* dot, std::vector<uint8_t>* ret, bool* filled);
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 11 ~MulticastGroup();
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 12 void reset();
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 13 //void newTime();
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 14 void processCmd(uint8_t* payload, uint8_t size);
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 15 int32_t timeToStart();
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 16 void fixEventQueue();
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 17
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 18 private:
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 19 enum McGroup {
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 20 PACKAGE_VERSION_MC,
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 21 STATUS,
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 22 SETUP,
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 23 DELETE,
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 24 CLASS_C_SESSION,
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 25 DATA_BLOCK_AUTH
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 26 };
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 27
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 28 typedef struct {
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 29 bool valid;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 30 uint8_t dr;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 31 uint8_t fragGroup;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 32 uint16_t timeout;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 33 uint32_t tme;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 34 uint32_t freq;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 35 uint32_t addr;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 36 uint32_t max_frame_count;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 37 int32_t timetostart;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 38 int32_t class_c_end;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 39 int32_t class_c_start;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 40 time_t time_setup;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 41 } mcgroup;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 42
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 43 bool* _filled;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 44 uint8_t _groupId;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 45 uint8_t _ans;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 46 uint8_t _delay;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 47 uint8_t _token;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 48 uint8_t _dr;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 49 uint32_t _freq;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 50 uint32_t _frame_count;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 51 time_t _now;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 52
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 53 mDot* _dot;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 54 Thread _event_thread;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 55 EventQueue _switch_class_queue;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 56 mcgroup _mcGroup[MULTICAST_SESSIONS];
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 57 std::vector<uint8_t>* _ret;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 58 std::string _org_class;
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 59
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 60 void setupClassC(uint8_t id);
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 61 static void switchClass(uint32_t freq, uint8_t dr, std::string newClass);
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 62 };
Jenkins@KEILDM1.dc.multitech.prv 0:e1b89c6c6dd5 63 #endif