Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FreescaleIAP SimpleDMA mbed-rtos mbed
Fork of CDMS_CODE by
Structures.h@161:a63672bf4423, 2016-04-14 (annotated)
- Committer:
- ee12b079
- Date:
- Thu Apr 14 04:14:21 2016 +0000
- Revision:
- 161:a63672bf4423
- Parent:
- 103:b55559925dc1
- Child:
- 180:ccc21cc163f8
merged OBSRS TM and I2C_PL_working
Who changed what in which revision?
| User | Revision | Line number | New contents of line | 
|---|---|---|---|
| shreeshas95 | 0:f016e9e8d48b | 1 | // TC TM | 
| shreeshas95 | 0:f016e9e8d48b | 2 | #define TC_SHORT_SIZE 11 | 
| shreeshas95 | 0:f016e9e8d48b | 3 | #define TC_LONG_SIZE 135 | 
| shreeshas95 | 0:f016e9e8d48b | 4 | #define TM_LONG_SIZE 134 | 
| shreeshas95 | 0:f016e9e8d48b | 5 | #define TM_SHORT_SIZE 13 | 
| shreeshas95 | 0:f016e9e8d48b | 6 | |
| shreeshas95 | 4:104dd82c99b8 | 7 | #define SHORT_TC_CODE 0 | 
| shreeshas95 | 4:104dd82c99b8 | 8 | #define LONG_TC_CODE 1 | 
| shreeshas95 | 4:104dd82c99b8 | 9 | |
| shreeshas95 | 4:104dd82c99b8 | 10 | #define SHORT_TM_CODE 1 | 
| shreeshas95 | 4:104dd82c99b8 | 11 | #define LONG_TM_CODE 0 | 
| shreeshas95 | 4:104dd82c99b8 | 12 | |
| shreeshas95 | 0:f016e9e8d48b | 13 | // COM_RX | 
| shreeshas95 | 0:f016e9e8d48b | 14 | #define RX_BUFFER_LENGTH 60 | 
| shreeshas95 | 0:f016e9e8d48b | 15 | // 60+4 = 64 | 
| shreeshas95 | 0:f016e9e8d48b | 16 | |
| shreeshas95 | 0:f016e9e8d48b | 17 | struct data_node{ | 
| shreeshas95 | 0:f016e9e8d48b | 18 | uint8_t values[RX_BUFFER_LENGTH]; | 
| shreeshas95 | 0:f016e9e8d48b | 19 | struct data_node* next_node; | 
| shreeshas95 | 0:f016e9e8d48b | 20 | }; | 
| shreeshas95 | 0:f016e9e8d48b | 21 | typedef struct data_node COM_RX_DATA_NODE; | 
| shreeshas95 | 0:f016e9e8d48b | 22 | |
| shreeshas95 | 0:f016e9e8d48b | 23 | //TELECOMMAND: | 
| shreeshas95 | 0:f016e9e8d48b | 24 | |
| shreeshas95 | 0:f016e9e8d48b | 25 | /* | 
| shreeshas95 | 0:f016e9e8d48b | 26 | exec_status: | 
| shreeshas95 | 0:f016e9e8d48b | 27 | 0: unexecuted | 
| shreeshas95 | 0:f016e9e8d48b | 28 | 1: successfully executed | 
| shreeshas95 | 0:f016e9e8d48b | 29 | 2: Execution Failed | 
| shreeshas95 | 0:f016e9e8d48b | 30 | 3: Disabled | 
| shreeshas95 | 0:f016e9e8d48b | 31 | 4: Marked For retry | 
| shreeshas95 | 0:f016e9e8d48b | 32 | */ | 
| shreeshas95 | 0:f016e9e8d48b | 33 | #define TC_STATE_UNEXECUTED 0x00 | 
| shreeshas95 | 0:f016e9e8d48b | 34 | #define TC_STATE_SUCCESSFULLY_EXECUTED 0x01 | 
| shreeshas95 | 0:f016e9e8d48b | 35 | #define TC_STATE_EXECUTION_FAILED 0x02 | 
| rohit3342 | 23:c89376564196 | 36 | #define TC_STATE_DISABLED 0x04 | 
| rohit3342 | 23:c89376564196 | 37 | #define TC_STATE_MARKED_RETRY 0x05 | 
| shreeshas95 | 0:f016e9e8d48b | 38 | |
| shreeshas95 | 0:f016e9e8d48b | 39 | //MASKS | 
| shreeshas95 | 0:f016e9e8d48b | 40 | #define SHORT_LONG_TC_MASK 0x10 | 
| shreeshas95 | 0:f016e9e8d48b | 41 | #define CRC_MASK 0x08 | 
| shreeshas95 | 0:f016e9e8d48b | 42 | #define EXEC_STATUS_MASK 0x07 | 
| shreeshas95 | 0:f016e9e8d48b | 43 | |
| shreeshas95 | 0:f016e9e8d48b | 44 | //USE ONLY THE BELOW MACROS TO MODIFY 'flags' VARIABLE | 
| shreeshas95 | 0:f016e9e8d48b | 45 | //x should be a Base_tc pointer | 
| shreeshas95 | 0:f016e9e8d48b | 46 | #define GETshort_or_long_tc(x) ( ( (x->flags) & SHORT_LONG_TC_MASK ) >> 4 ) | 
| shreeshas95 | 0:f016e9e8d48b | 47 | #define GETcrc_pass(x) ( ( (x->flags) & CRC_MASK ) >> 3 ) | 
| shreeshas95 | 0:f016e9e8d48b | 48 | #define GETabort_on_nack(x) ( ( (x->TC_string[1]) & 0x08 ) >> 3 ) | 
| ee12b079 | 161:a63672bf4423 | 49 | #define GETapid(x) ( ( (x->TC_string[1]) & 0xC0 ) >> 6 ) | 
| shreeshas95 | 0:f016e9e8d48b | 50 | #define GETexec_status(x) ( (x->flags) & EXEC_STATUS_MASK ) | 
| shreeshas95 | 0:f016e9e8d48b | 51 | #define GETpacket_seq_count(x) (x->TC_string[0]) | 
| aniruddhv | 52:0bd68655c651 | 52 | #define GETservice_type(x) ( (x->TC_string[2]) & 0xF0 ) | 
| aniruddhv | 52:0bd68655c651 | 53 | #define GETservice_subtype(x) ( (x->TC_string[2]) & 0x0F ) | 
| aniruddhv | 52:0bd68655c651 | 54 | #define GETpid(x) (x->TC_string[3]) | 
| shreeshas95 | 0:f016e9e8d48b | 55 | |
| shreeshas95 | 0:f016e9e8d48b | 56 | //x should be a Base_tc pointer | 
| shreeshas95 | 6:79d422d1ed42 | 57 | //y should be a 8-bit number with relevant data in LSB | 
| shreeshas95 | 0:f016e9e8d48b | 58 | //use in a seperate line with ; at the end: similar to a function | 
| shreeshas95 | 0:f016e9e8d48b | 59 | #define PUTshort_or_long(x,y) x->flags = ( (x->flags) & ~(SHORT_LONG_TC_MASK)) | ( (y << 4) & SHORT_LONG_TC_MASK ) | 
| shreeshas95 | 0:f016e9e8d48b | 60 | #define PUTcrc_pass(x,y) x->flags = ( (x->flags) & ~(CRC_MASK)) | ( (y << 3) & CRC_MASK) | 
| shreeshas95 | 0:f016e9e8d48b | 61 | #define PUTexec_status(x,y) x->flags = ( (x->flags) & ~(EXEC_STATUS_MASK)) | ( y & EXEC_STATUS_MASK) | 
| shreeshas95 | 0:f016e9e8d48b | 62 | |
| shreeshas95 | 0:f016e9e8d48b | 63 | //PARENT TELECOMMAND CLASS | 
| shreeshas95 | 0:f016e9e8d48b | 64 | class Base_tc{ | 
| shreeshas95 | 0:f016e9e8d48b | 65 | public: | 
| shreeshas95 | 0:f016e9e8d48b | 66 | uint8_t flags; | 
| shreeshas95 | 0:f016e9e8d48b | 67 | uint8_t *TC_string; | 
| shreeshas95 | 0:f016e9e8d48b | 68 | Base_tc *next_TC; | 
| shreeshas95 | 0:f016e9e8d48b | 69 | |
| shreeshas95 | 0:f016e9e8d48b | 70 | virtual ~Base_tc(){} | 
| shreeshas95 | 0:f016e9e8d48b | 71 | }; | 
| shreeshas95 | 0:f016e9e8d48b | 72 | |
| shreeshas95 | 0:f016e9e8d48b | 73 | //DERIVED CLASS - SHORT TC | 
| shreeshas95 | 0:f016e9e8d48b | 74 | class Short_tc : public Base_tc{ | 
| shreeshas95 | 0:f016e9e8d48b | 75 | private: | 
| shreeshas95 | 0:f016e9e8d48b | 76 | uint8_t fix_str[TC_SHORT_SIZE]; | 
| shreeshas95 | 0:f016e9e8d48b | 77 | public: | 
| shreeshas95 | 0:f016e9e8d48b | 78 | Short_tc(){ | 
| shreeshas95 | 0:f016e9e8d48b | 79 | TC_string = fix_str; | 
| shreeshas95 | 0:f016e9e8d48b | 80 | flags = 0; | 
| shreeshas95 | 0:f016e9e8d48b | 81 | } | 
| shreeshas95 | 0:f016e9e8d48b | 82 | |
| shreeshas95 | 0:f016e9e8d48b | 83 | ~Short_tc(){} | 
| shreeshas95 | 0:f016e9e8d48b | 84 | }; | 
| shreeshas95 | 0:f016e9e8d48b | 85 | |
| shreeshas95 | 0:f016e9e8d48b | 86 | //DERIVED CLASS - LONG TC | 
| shreeshas95 | 0:f016e9e8d48b | 87 | class Long_tc : public Base_tc{ | 
| shreeshas95 | 0:f016e9e8d48b | 88 | private: | 
| shreeshas95 | 0:f016e9e8d48b | 89 | uint8_t fix_str[TC_LONG_SIZE]; | 
| shreeshas95 | 0:f016e9e8d48b | 90 | public: | 
| shreeshas95 | 0:f016e9e8d48b | 91 | Long_tc(){ | 
| shreeshas95 | 0:f016e9e8d48b | 92 | TC_string = fix_str; | 
| shreeshas95 | 0:f016e9e8d48b | 93 | flags = 0; | 
| shreeshas95 | 0:f016e9e8d48b | 94 | } | 
| shreeshas95 | 0:f016e9e8d48b | 95 | |
| shreeshas95 | 0:f016e9e8d48b | 96 | ~Long_tc(){} | 
| shreeshas95 | 0:f016e9e8d48b | 97 | }; | 
| shreeshas95 | 0:f016e9e8d48b | 98 | |
| shreeshas95 | 0:f016e9e8d48b | 99 | // TELEMETRY: | 
| shreeshas95 | 102:80c911a6e736 | 100 | // MASK | 
| shreeshas95 | 102:80c911a6e736 | 101 | #define SHORT_LONG_TM_MASK 0x80 | 
| shreeshas95 | 0:f016e9e8d48b | 102 | |
| shreeshas95 | 102:80c911a6e736 | 103 | //x should be 'Base tm' pointer | 
| shreeshas95 | 102:80c911a6e736 | 104 | #define GETshort_or_long_tm(x) ((x->TM_string[0] & SHORT_LONG_TM_MASK) >> 7) | 
| shreeshas95 | 0:f016e9e8d48b | 105 | |
| shreeshas95 | 0:f016e9e8d48b | 106 | // PARENT TELEMETRY CLASS | 
| shreeshas95 | 0:f016e9e8d48b | 107 | class Base_tm{ | 
| shreeshas95 | 0:f016e9e8d48b | 108 | public: | 
| shreeshas95 | 0:f016e9e8d48b | 109 | uint8_t *TM_string; | 
| shreeshas95 | 0:f016e9e8d48b | 110 | Base_tm *next_TM; | 
| shreeshas95 | 0:f016e9e8d48b | 111 | |
| shreeshas95 | 0:f016e9e8d48b | 112 | virtual ~Base_tm(){} | 
| shreeshas95 | 0:f016e9e8d48b | 113 | }; | 
| shreeshas95 | 0:f016e9e8d48b | 114 | |
| shreeshas95 | 0:f016e9e8d48b | 115 | // DERIVED CLASS : Long tm [type 0] | 
| shreeshas95 | 0:f016e9e8d48b | 116 | // type 0 | 
| shreeshas95 | 0:f016e9e8d48b | 117 | class Long_tm : public Base_tm{ | 
| shreeshas95 | 0:f016e9e8d48b | 118 | private: | 
| shreeshas95 | 0:f016e9e8d48b | 119 | uint8_t fix_str[TM_LONG_SIZE]; | 
| shreeshas95 | 0:f016e9e8d48b | 120 | public: | 
| shreeshas95 | 0:f016e9e8d48b | 121 | Long_tm(){ | 
| shreeshas95 | 0:f016e9e8d48b | 122 | TM_string = fix_str; | 
| shreeshas95 | 0:f016e9e8d48b | 123 | // type 0 | 
| shreeshas95 | 0:f016e9e8d48b | 124 | } | 
| shreeshas95 | 0:f016e9e8d48b | 125 | |
| shreeshas95 | 0:f016e9e8d48b | 126 | ~Long_tm(){} | 
| shreeshas95 | 0:f016e9e8d48b | 127 | }; | 
| shreeshas95 | 0:f016e9e8d48b | 128 | |
| shreeshas95 | 0:f016e9e8d48b | 129 | // DERIVED CLASS : Short tm [type 1] | 
| shreeshas95 | 0:f016e9e8d48b | 130 | // type 1 | 
| shreeshas95 | 0:f016e9e8d48b | 131 | class Short_tm : public Base_tm{ | 
| shreeshas95 | 0:f016e9e8d48b | 132 | private: | 
| shreeshas95 | 0:f016e9e8d48b | 133 | uint8_t fix_str[TM_SHORT_SIZE]; | 
| shreeshas95 | 0:f016e9e8d48b | 134 | public: | 
| shreeshas95 | 0:f016e9e8d48b | 135 | Short_tm(){ | 
| shreeshas95 | 0:f016e9e8d48b | 136 | TM_string = fix_str; | 
| shreeshas95 | 0:f016e9e8d48b | 137 | // type 1 | 
| shreeshas95 | 0:f016e9e8d48b | 138 | } | 
| shreeshas95 | 0:f016e9e8d48b | 139 | |
| shreeshas95 | 0:f016e9e8d48b | 140 | ~Short_tm(){} | 
| shreeshas95 | 103:b55559925dc1 | 141 | }; | 
| shreeshas95 | 103:b55559925dc1 | 142 | |
| shreeshas95 | 103:b55559925dc1 | 143 | |
| shreeshas95 | 103:b55559925dc1 | 144 | // CDMS HK | 
| shreeshas95 | 103:b55559925dc1 | 145 | |
| shreeshas95 | 103:b55559925dc1 | 146 | #define tstart -40 | 
| shreeshas95 | 103:b55559925dc1 | 147 | #define tstep 8 //to be finalized by thermal team | 
| shreeshas95 | 103:b55559925dc1 | 148 | #define tstart_thermistor -40 | 
| shreeshas95 | 103:b55559925dc1 | 149 | #define tstep_thermistor 8 | 
| shreeshas95 | 103:b55559925dc1 | 150 | |
| shreeshas95 | 103:b55559925dc1 | 151 | typedef struct CDMS_HK_actual | 
| shreeshas95 | 103:b55559925dc1 | 152 | { | 
| shreeshas95 | 103:b55559925dc1 | 153 | float temp_actual[16]; | 
| shreeshas95 | 103:b55559925dc1 | 154 | float CDMS_temp_actual; | 
| shreeshas95 | 103:b55559925dc1 | 155 | |
| shreeshas95 | 103:b55559925dc1 | 156 | }CDMS_HK_actual; | 
| shreeshas95 | 103:b55559925dc1 | 157 | |
| shreeshas95 | 103:b55559925dc1 | 158 | typedef struct CDMS_HK_quant | 
| shreeshas95 | 103:b55559925dc1 | 159 | { | 
| shreeshas95 | 103:b55559925dc1 | 160 | char temp_quant[16]; | 
| shreeshas95 | 103:b55559925dc1 | 161 | char CDMS_temp_quant; | 
| shreeshas95 | 103:b55559925dc1 | 162 | |
| shreeshas95 | 103:b55559925dc1 | 163 | }CDMS_HK_quant; | 
| shreeshas95 | 103:b55559925dc1 | 164 | |
| shreeshas95 | 103:b55559925dc1 | 165 | typedef struct CDMS_HK_min_max | 
| shreeshas95 | 103:b55559925dc1 | 166 | { | 
| shreeshas95 | 103:b55559925dc1 | 167 | char temp_max[16]; | 
| shreeshas95 | 103:b55559925dc1 | 168 | char temp_min[16]; | 
| shreeshas95 | 103:b55559925dc1 | 169 | char CDMS_temp_min; | 
| shreeshas95 | 103:b55559925dc1 | 170 | char CDMS_temp_max; | 
| shreeshas95 | 103:b55559925dc1 | 171 | }CDMS_HK_min_max; | 
