hello 2
Fota/MulticastGroup/MulticastGroup.h@72:bb41d95791a4, 2020-01-06 (annotated)
- Committer:
- meachwill
- Date:
- Mon Jan 06 04:13:36 2020 +0000
- Revision:
- 72:bb41d95791a4
- Parent:
- 70:0c5b5b02d17b
hello
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 1 | /********************************************************************** |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 2 | * COPYRIGHT 2018 MULTI-TECH SYSTEMS, INC. |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 3 | * |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 4 | * ALL RIGHTS RESERVED BY AND FOR THE EXCLUSIVE BENEFIT OF |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 5 | * MULTI-TECH SYSTEMS, INC. |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 6 | * |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 7 | * MULTI-TECH SYSTEMS, INC. - CONFIDENTIAL AND PROPRIETARY |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 8 | * INFORMATION AND/OR TRADE SECRET. |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 9 | * |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 10 | * NOTICE: ALL CODE, PROGRAM, INFORMATION, SCRIPT, INSTRUCTION, |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 11 | * DATA, AND COMMENT HEREIN IS AND SHALL REMAIN THE CONFIDENTIAL |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 12 | * INFORMATION AND PROPERTY OF MULTI-TECH SYSTEMS, INC. |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 13 | * USE AND DISCLOSURE THEREOF, EXCEPT AS STRICTLY AUTHORIZED IN A |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 14 | * WRITTEN AGREEMENT SIGNED BY MULTI-TECH SYSTEMS, INC. IS PROHIBITED. |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 15 | * |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 16 | ***********************************************************************/ |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 17 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 18 | #ifndef MULTICASTGROUP_H |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 19 | #define MULTICASTGROUP_H |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 20 | #include "mDot.h" |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 21 | #include "mbed.h" |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 22 | #define GPS_EPOCH 315986400 |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 23 | #define MULTICAST_SESSIONS 3 |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 24 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 25 | class MulticastGroup { |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 26 | public: |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 27 | MulticastGroup(mDot* dot, std::vector<uint8_t>* ret, bool* filled); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 28 | ~MulticastGroup(); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 29 | void reset(); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 30 | //void newTime(); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 31 | void processCmd(uint8_t* payload, uint8_t size); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 32 | int32_t timeToStart(); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 33 | void fixEventQueue(); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 34 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 35 | private: |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 36 | enum McGroup { |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 37 | PACKAGE_VERSION_MC, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 38 | STATUS, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 39 | SETUP, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 40 | DELETE, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 41 | CLASS_C_SESSION, |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 42 | DATA_BLOCK_AUTH |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 43 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 44 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 45 | typedef struct { |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 46 | bool valid; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 47 | uint8_t dr; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 48 | uint8_t fragGroup; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 49 | uint16_t timeout; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 50 | uint32_t tme; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 51 | uint32_t freq; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 52 | uint32_t addr; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 53 | uint32_t max_frame_count; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 54 | int32_t timetostart; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 55 | int32_t class_c_end; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 56 | int32_t class_c_start; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 57 | time_t time_setup; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 58 | } mcgroup; |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 59 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 60 | bool* _filled; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 61 | uint8_t _groupId; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 62 | uint8_t _ans; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 63 | uint8_t _delay; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 64 | uint8_t _token; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 65 | uint8_t _dr; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 66 | uint32_t _freq; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 67 | uint32_t _frame_count; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 68 | time_t _now; |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 69 | |
Jenkins@KEILDM1.dc.multitech.prv | 70:0c5b5b02d17b | 70 | mDot* _dot; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 71 | Thread _event_thread; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 72 | EventQueue _switch_class_queue; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 73 | mcgroup _mcGroup[MULTICAST_SESSIONS]; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 74 | std::vector<uint8_t>* _ret; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 75 | std::string _org_class; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 76 | |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 77 | void setupClassC(uint8_t id); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 78 | static void switchClass(uint32_t freq, uint8_t dr, std::string newClass); |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 79 | }; |
Jenkins@KEILDM1.dc.multitech.prv | 66:baa0f3116f1d | 80 | #endif |