Committer:
Jenkins@KEILDM1.dc.multitech.prv
Date:
Fri Nov 08 09:35:40 2019 -0600
Revision:
22:f062567a28ae
Parent:
21:bc12c888e7dc
xdot-library revision 3.2.5 and mbed-os revision mbed-os-5.13.4

Who changed what in which revision?

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