hello 2

Dependents:   ncu_project

Committer:
Jenkins@KEILDM1.dc.multitech.prv
Date:
Thu Aug 29 08:32:27 2019 -0500
Revision:
68:5f787643e7d7
Parent:
66:baa0f3116f1d
Child:
69:e22889c7eaa9
mdot-library revision 3.2.2-19-g285e497 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 68:5f787643e7d7 1 /**********************************************************************
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 2 * COPYRIGHT 2018 MULTI-TECH SYSTEMS, INC.
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 3 *
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 4 * ALL RIGHTS RESERVED BY AND FOR THE EXCLUSIVE BENEFIT OF
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 5 * MULTI-TECH SYSTEMS, INC.
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 6 *
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 7 * MULTI-TECH SYSTEMS, INC. - CONFIDENTIAL AND PROPRIETARY
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 8 * INFORMATION AND/OR TRADE SECRET.
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 9 *
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 10 * NOTICE: ALL CODE, PROGRAM, INFORMATION, SCRIPT, INSTRUCTION,
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 11 * DATA, AND COMMENT HEREIN IS AND SHALL REMAIN THE CONFIDENTIAL
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 12 * INFORMATION AND PROPERTY OF MULTI-TECH SYSTEMS, INC.
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 13 * USE AND DISCLOSURE THEREOF, EXCEPT AS STRICTLY AUTHORIZED IN A
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 14 * WRITTEN AGREEMENT SIGNED BY MULTI-TECH SYSTEMS, INC. IS PROHIBITED.
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 15 *
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 16 ***********************************************************************/
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 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 68:5f787643e7d7 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 68:5f787643e7d7 69
Jenkins@KEILDM1.dc.multitech.prv 68:5f787643e7d7 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