fota lib for mdot
mdot/MulticastGroup.h@8:7ba1f2abb8c0, 2019-01-15 (annotated)
- 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?
User | Revision | Line number | New 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 |