TELECOMMAND MANAGER V1
Dependencies: mbed SLCD mbed-rtos
Structures.h@15:cc266eccf327, 2015-09-17 (annotated)
- Committer:
- shreeshas95
- Date:
- Thu Sep 17 12:59:07 2015 +0000
- Revision:
- 15:cc266eccf327
- Parent:
- 13:7b27a8e9cbb4
Structures.h file upgraded - commented out
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shreeshas95 | 13:7b27a8e9cbb4 | 1 | // TELECOMMAND CLASS : |
shreeshas95 | 13:7b27a8e9cbb4 | 2 | |
shreeshas95 | 2:994e741028c7 | 3 | typedef struct TC_list{ |
shreeshas95 | 2:994e741028c7 | 4 | // received from the RCV_TC |
shreeshas95 | 2:994e741028c7 | 5 | unsigned char *TC_string; |
shreeshas95 | 2:994e741028c7 | 6 | bool short_or_long; //'true' for short |
shreeshas95 | 2:994e741028c7 | 7 | bool crc_pass; |
shreeshas95 | 13:7b27a8e9cbb4 | 8 | |
shreeshas95 | 2:994e741028c7 | 9 | // updated info - updated in MNG_TC |
shreeshas95 | 2:994e741028c7 | 10 | unsigned char packet_seq_count; |
shreeshas95 | 2:994e741028c7 | 11 | unsigned char apid; |
shreeshas95 | 2:994e741028c7 | 12 | bool abort_on_nack; |
shreeshas95 | 2:994e741028c7 | 13 | bool enabled; |
shreeshas95 | 13:7b27a8e9cbb4 | 14 | // bool valid_execution; |
shreeshas95 | 8:cb93c1d3209a | 15 | unsigned char exec_status; |
shreeshas95 | 13:7b27a8e9cbb4 | 16 | |
shreeshas95 | 2:994e741028c7 | 17 | struct TC_list *next_TC; |
shreeshas95 | 2:994e741028c7 | 18 | |
shreeshas95 | 2:994e741028c7 | 19 | ~TC_list(){} |
shreeshas95 | 2:994e741028c7 | 20 | }TC_list; |
shreeshas95 | 13:7b27a8e9cbb4 | 21 | |
shreeshas95 | 2:994e741028c7 | 22 | typedef struct TM_list{ |
shreeshas95 | 13:7b27a8e9cbb4 | 23 | |
shreeshas95 | 2:994e741028c7 | 24 | unsigned char *TM_string; |
shreeshas95 | 2:994e741028c7 | 25 | // bool short_or_long; // true for short |
shreeshas95 | 2:994e741028c7 | 26 | // pass while calling the function |
shreeshas95 | 2:994e741028c7 | 27 | unsigned char tmid; |
shreeshas95 | 2:994e741028c7 | 28 | struct TM_list *next_TM; |
shreeshas95 | 2:994e741028c7 | 29 | |
shreeshas95 | 2:994e741028c7 | 30 | ~TM_list(){} |
shreeshas95 | 13:7b27a8e9cbb4 | 31 | }TM_List; |
shreeshas95 | 13:7b27a8e9cbb4 | 32 | |
shreeshas95 | 15:cc266eccf327 | 33 | |
shreeshas95 | 15:cc266eccf327 | 34 | |
shreeshas95 | 15:cc266eccf327 | 35 | |
shreeshas95 | 15:cc266eccf327 | 36 | |
shreeshas95 | 15:cc266eccf327 | 37 | /*//NEW CODE: UNDER CONSTRUCTION |
shreeshas95 | 15:cc266eccf327 | 38 | //SIZE |
shreeshas95 | 15:cc266eccf327 | 39 | #define TC_SHORT_SIZE 11 |
shreeshas95 | 15:cc266eccf327 | 40 | #define TC_LONG_SIZE 135 |
shreeshas95 | 15:cc266eccf327 | 41 | #define TM_LONG_SIZE 134 |
shreeshas95 | 15:cc266eccf327 | 42 | #define TM_SHORT_SIZE 13 |
shreeshas95 | 15:cc266eccf327 | 43 | |
shreeshas95 | 15:cc266eccf327 | 44 | //TELECOMMAND CLASS: |
shreeshas95 | 15:cc266eccf327 | 45 | |
shreeshas95 | 13:7b27a8e9cbb4 | 46 | //MASKS |
shreeshas95 | 15:cc266eccf327 | 47 | #define SHORT_LONG_TC_MASK 0x4000 |
shreeshas95 | 13:7b27a8e9cbb4 | 48 | #define CRC_MASK 0x2000 |
shreeshas95 | 13:7b27a8e9cbb4 | 49 | #define ABORT_ON_NACK_MASK 0x1000 |
shreeshas95 | 13:7b27a8e9cbb4 | 50 | #define APID_MASK 0x0C00 |
shreeshas95 | 13:7b27a8e9cbb4 | 51 | #define EXEC_STATUS_MASK 0x0300 |
shreeshas95 | 13:7b27a8e9cbb4 | 52 | #define PACKET_SEQ_COUNT_MASK 0x00FF |
shreeshas95 | 13:7b27a8e9cbb4 | 53 | |
shreeshas95 | 15:cc266eccf327 | 54 | //x should be fields defined variable in the Base_tc |
shreeshas95 | 15:cc266eccf327 | 55 | #define GETshort_or_long(x) ((x & SHORT_LONG_TC_MASK) >> 14) |
shreeshas95 | 15:cc266eccf327 | 56 | #define GETcrc_pass(x) ((x & CRC_MASK) >> 13) |
shreeshas95 | 15:cc266eccf327 | 57 | #define GETabort_on_nack(x) ((x & ABORT_ON_NACK_MASK) >> 12) |
shreeshas95 | 15:cc266eccf327 | 58 | #define GETapid(x) ((x & APID_MASK) >> 10) |
shreeshas95 | 15:cc266eccf327 | 59 | #define GETexec_status(x) ((x & EXEC_STATUS_MASK) >> 8) |
shreeshas95 | 15:cc266eccf327 | 60 | #define GETpacket_seq_count(x) (x & PACKET_SEQ_COUNT_MASK) |
shreeshas95 | 15:cc266eccf327 | 61 | |
shreeshas95 | 15:cc266eccf327 | 62 | //x should be fields defined variable in the Base_tc |
shreeshas95 | 15:cc266eccf327 | 63 | //y should be a 16 bit number Eg: 0xFFFF, or 0x0000 |
shreeshas95 | 15:cc266eccf327 | 64 | //use in a seperate line |
shreeshas95 | 15:cc266eccf327 | 65 | #define PUTshort_or_long(x,y) fields = (fields & ~(SHORT_OR_LONG_MASK)) | (y & SHORT_OR_LONG_MASK) |
shreeshas95 | 15:cc266eccf327 | 66 | #define PUTcrc_pass(x,y) fields = (fields & ~(CRC_MASK)) | (y & CRC_MASK) |
shreeshas95 | 15:cc266eccf327 | 67 | #define PUTabort_on_nack(x,y) fields = (fields & ~(ABORT_ON_NACK_MASK)) | (y & ABORT_ON_NACK_MASK) |
shreeshas95 | 15:cc266eccf327 | 68 | #define PUTapid(x,y) fields = (fields & ~(APID_MASK)) | (y & APID_MASK) |
shreeshas95 | 15:cc266eccf327 | 69 | //#define PUTexec_status(x,y) fields = |
shreeshas95 | 15:cc266eccf327 | 70 | |
shreeshas95 | 13:7b27a8e9cbb4 | 71 | //PARENT CLASS |
shreeshas95 | 15:cc266eccf327 | 72 | class Base_tc{ |
shreeshas95 | 15:cc266eccf327 | 73 | public: |
shreeshas95 | 13:7b27a8e9cbb4 | 74 | uint16_t fields; |
shreeshas95 | 15:cc266eccf327 | 75 | uint8_t *TC_string; |
shreeshas95 | 13:7b27a8e9cbb4 | 76 | Base_tc *next_node; |
shreeshas95 | 13:7b27a8e9cbb4 | 77 | |
shreeshas95 | 13:7b27a8e9cbb4 | 78 | virtual ~Base_tc(){} |
shreeshas95 | 13:7b27a8e9cbb4 | 79 | }; |
shreeshas95 | 13:7b27a8e9cbb4 | 80 | |
shreeshas95 | 13:7b27a8e9cbb4 | 81 | //DERIVED CLASS - SHORT TC |
shreeshas95 | 13:7b27a8e9cbb4 | 82 | class Short_tc : public Base_tc{ |
shreeshas95 | 13:7b27a8e9cbb4 | 83 | private: |
shreeshas95 | 15:cc266eccf327 | 84 | uint8_t fix_str[TC_SHORT_SIZE]; |
shreeshas95 | 13:7b27a8e9cbb4 | 85 | public: |
shreeshas95 | 13:7b27a8e9cbb4 | 86 | Short_tc(){ |
shreeshas95 | 13:7b27a8e9cbb4 | 87 | TC_string = fix_str; |
shreeshas95 | 13:7b27a8e9cbb4 | 88 | fields = 0; |
shreeshas95 | 13:7b27a8e9cbb4 | 89 | } |
shreeshas95 | 13:7b27a8e9cbb4 | 90 | |
shreeshas95 | 13:7b27a8e9cbb4 | 91 | ~Short_tc(){} |
shreeshas95 | 13:7b27a8e9cbb4 | 92 | }; |
shreeshas95 | 13:7b27a8e9cbb4 | 93 | |
shreeshas95 | 13:7b27a8e9cbb4 | 94 | //DERIVED CLASS - LONG TC |
shreeshas95 | 13:7b27a8e9cbb4 | 95 | class Long_tc : public Base_tc{ |
shreeshas95 | 13:7b27a8e9cbb4 | 96 | private: |
shreeshas95 | 15:cc266eccf327 | 97 | uint8_t fix_str[TC_LONG_SIZE]; |
shreeshas95 | 13:7b27a8e9cbb4 | 98 | public: |
shreeshas95 | 13:7b27a8e9cbb4 | 99 | Long_tc(){ |
shreeshas95 | 13:7b27a8e9cbb4 | 100 | TC_string = fix_str; |
shreeshas95 | 13:7b27a8e9cbb4 | 101 | fields = 0; |
shreeshas95 | 13:7b27a8e9cbb4 | 102 | } |
shreeshas95 | 13:7b27a8e9cbb4 | 103 | |
shreeshas95 | 13:7b27a8e9cbb4 | 104 | ~Long_tc(){} |
shreeshas95 | 13:7b27a8e9cbb4 | 105 | }; |
shreeshas95 | 13:7b27a8e9cbb4 | 106 | |
shreeshas95 | 13:7b27a8e9cbb4 | 107 | // TELEMETRY CLASS : |
shreeshas95 | 13:7b27a8e9cbb4 | 108 | |
shreeshas95 | 13:7b27a8e9cbb4 | 109 | // MASKS |
shreeshas95 | 13:7b27a8e9cbb4 | 110 | #define SHORT_LONG_TM_MASK 0x10 |
shreeshas95 | 13:7b27a8e9cbb4 | 111 | #define TMID_MASK 0x0F |
shreeshas95 | 13:7b27a8e9cbb4 | 112 | |
shreeshas95 | 13:7b27a8e9cbb4 | 113 | // PARENT CLASS |
shreeshas95 | 13:7b27a8e9cbb4 | 114 | class Base_tm{ |
shreeshas95 | 13:7b27a8e9cbb4 | 115 | protected: |
shreeshas95 | 13:7b27a8e9cbb4 | 116 | uint8_t fields; |
shreeshas95 | 13:7b27a8e9cbb4 | 117 | public: |
shreeshas95 | 13:7b27a8e9cbb4 | 118 | uint8_t *TM_string; |
shreeshas95 | 13:7b27a8e9cbb4 | 119 | Base_tm *next_node; |
shreeshas95 | 13:7b27a8e9cbb4 | 120 | |
shreeshas95 | 13:7b27a8e9cbb4 | 121 | virtual ~Base_tm(){} |
shreeshas95 | 13:7b27a8e9cbb4 | 122 | }; |
shreeshas95 | 13:7b27a8e9cbb4 | 123 | |
shreeshas95 | 13:7b27a8e9cbb4 | 124 | // DERIVED CLASS : Long tc [type 0] |
shreeshas95 | 13:7b27a8e9cbb4 | 125 | // type 0 |
shreeshas95 | 13:7b27a8e9cbb4 | 126 | class Long_tm : public Base_tm{ |
shreeshas95 | 13:7b27a8e9cbb4 | 127 | private: |
shreeshas95 | 13:7b27a8e9cbb4 | 128 | uint8_t fix_str[TM_LONG_SIZE]; |
shreeshas95 | 13:7b27a8e9cbb4 | 129 | public: |
shreeshas95 | 13:7b27a8e9cbb4 | 130 | Long_tm(){ |
shreeshas95 | 13:7b27a8e9cbb4 | 131 | TM_string = fix_str; |
shreeshas95 | 13:7b27a8e9cbb4 | 132 | // type 0 |
shreeshas95 | 13:7b27a8e9cbb4 | 133 | fields = 0; |
shreeshas95 | 13:7b27a8e9cbb4 | 134 | } |
shreeshas95 | 13:7b27a8e9cbb4 | 135 | |
shreeshas95 | 13:7b27a8e9cbb4 | 136 | ~Long_tm(){} |
shreeshas95 | 13:7b27a8e9cbb4 | 137 | }; |
shreeshas95 | 13:7b27a8e9cbb4 | 138 | |
shreeshas95 | 13:7b27a8e9cbb4 | 139 | // DERIVED CLASS : Short tc [type 1] |
shreeshas95 | 13:7b27a8e9cbb4 | 140 | // type 1 |
shreeshas95 | 13:7b27a8e9cbb4 | 141 | class Short_tm : public Base_tm{ |
shreeshas95 | 13:7b27a8e9cbb4 | 142 | private: |
shreeshas95 | 13:7b27a8e9cbb4 | 143 | uint8_t fix_str[TM_SHORT_SIZE]; |
shreeshas95 | 13:7b27a8e9cbb4 | 144 | public: |
shreeshas95 | 13:7b27a8e9cbb4 | 145 | Short_tm(){ |
shreeshas95 | 13:7b27a8e9cbb4 | 146 | TM_string = fix_str; |
shreeshas95 | 13:7b27a8e9cbb4 | 147 | // type 1 |
shreeshas95 | 13:7b27a8e9cbb4 | 148 | fields = 0x10; |
shreeshas95 | 13:7b27a8e9cbb4 | 149 | } |
shreeshas95 | 13:7b27a8e9cbb4 | 150 | |
shreeshas95 | 13:7b27a8e9cbb4 | 151 | ~Short_tm(){} |
shreeshas95 | 15:cc266eccf327 | 152 | }; |
shreeshas95 | 15:cc266eccf327 | 153 | |
shreeshas95 | 15:cc266eccf327 | 154 | //END*/ |
shreeshas95 | 15:cc266eccf327 | 155 | |
shreeshas95 | 15:cc266eccf327 | 156 | |
shreeshas95 | 15:cc266eccf327 | 157 | |
shreeshas95 | 15:cc266eccf327 | 158 | |
shreeshas95 | 15:cc266eccf327 | 159 | |
shreeshas95 | 15:cc266eccf327 | 160 | |
shreeshas95 | 15:cc266eccf327 | 161 | |
shreeshas95 | 15:cc266eccf327 | 162 | |
shreeshas95 | 15:cc266eccf327 | 163 | |
shreeshas95 | 15:cc266eccf327 | 164 | |
shreeshas95 | 15:cc266eccf327 | 165 | |
shreeshas95 | 15:cc266eccf327 | 166 | |
shreeshas95 | 15:cc266eccf327 | 167 | |
shreeshas95 | 15:cc266eccf327 | 168 | |
shreeshas95 | 15:cc266eccf327 | 169 | |
shreeshas95 | 15:cc266eccf327 | 170 | |
shreeshas95 | 15:cc266eccf327 | 171 | |
shreeshas95 | 15:cc266eccf327 | 172 | |
shreeshas95 | 15:cc266eccf327 | 173 | |
shreeshas95 | 15:cc266eccf327 | 174 | |
shreeshas95 | 15:cc266eccf327 | 175 | |
shreeshas95 | 15:cc266eccf327 | 176 | |
shreeshas95 | 15:cc266eccf327 | 177 | |
shreeshas95 | 15:cc266eccf327 | 178 | |
shreeshas95 | 15:cc266eccf327 | 179 | |
shreeshas95 | 15:cc266eccf327 | 180 | ////PARENT CLASS |
shreeshas95 | 15:cc266eccf327 | 181 | //class Base_tc{ |
shreeshas95 | 15:cc266eccf327 | 182 | //public: |
shreeshas95 | 15:cc266eccf327 | 183 | // uint16_t fields; |
shreeshas95 | 15:cc266eccf327 | 184 | // uint8_t *TC_string; |
shreeshas95 | 15:cc266eccf327 | 185 | // Base_tc *next_node; |
shreeshas95 | 15:cc266eccf327 | 186 | |
shreeshas95 | 15:cc266eccf327 | 187 | // short = 0, long = 1 |
shreeshas95 | 15:cc266eccf327 | 188 | // bool GETshort_or_long(void){ |
shreeshas95 | 15:cc266eccf327 | 189 | // return (fields & SHORT_LONG_TC_MASK); |
shreeshas95 | 15:cc266eccf327 | 190 | // } |
shreeshas95 | 15:cc266eccf327 | 191 | // void PUTshort_or_long(bool input){ |
shreeshas95 | 15:cc266eccf327 | 192 | // if(input){ |
shreeshas95 | 15:cc266eccf327 | 193 | // fields |= SHORT_LONG_TC_MASK; |
shreeshas95 | 15:cc266eccf327 | 194 | // } |
shreeshas95 | 15:cc266eccf327 | 195 | // else{ |
shreeshas95 | 15:cc266eccf327 | 196 | // fields &= ~(SHORT_LONG_TC_MASK); |
shreeshas95 | 15:cc266eccf327 | 197 | // } |
shreeshas95 | 15:cc266eccf327 | 198 | // } |
shreeshas95 | 15:cc266eccf327 | 199 | // |
shreeshas95 | 15:cc266eccf327 | 200 | // bool inline GETcrc_pass(){ |
shreeshas95 | 15:cc266eccf327 | 201 | // return (fields & CRC_MASK); |
shreeshas95 | 15:cc266eccf327 | 202 | // } |
shreeshas95 | 15:cc266eccf327 | 203 | // void inline PUTcrc_pass(bool input){ |
shreeshas95 | 15:cc266eccf327 | 204 | // if(input){ |
shreeshas95 | 15:cc266eccf327 | 205 | // fields |= CRC_MASK; |
shreeshas95 | 15:cc266eccf327 | 206 | // } |
shreeshas95 | 15:cc266eccf327 | 207 | // else{ |
shreeshas95 | 15:cc266eccf327 | 208 | // fields &= ~(CRC_MASK); |
shreeshas95 | 15:cc266eccf327 | 209 | // } |
shreeshas95 | 15:cc266eccf327 | 210 | // } |
shreeshas95 | 15:cc266eccf327 | 211 | // |
shreeshas95 | 15:cc266eccf327 | 212 | // bool inline GETabort_on_nack(){ |
shreeshas95 | 15:cc266eccf327 | 213 | // return (fields & ABORT_ON_NACK_MASK); |
shreeshas95 | 15:cc266eccf327 | 214 | // } |
shreeshas95 | 15:cc266eccf327 | 215 | // void inline PUTabort_on_nack(bool input){ |
shreeshas95 | 15:cc266eccf327 | 216 | // if(input){ |
shreeshas95 | 15:cc266eccf327 | 217 | // fields |= ABORT_ON_NACK_MASK; |
shreeshas95 | 15:cc266eccf327 | 218 | // } |
shreeshas95 | 15:cc266eccf327 | 219 | // else{ |
shreeshas95 | 15:cc266eccf327 | 220 | // fields &= ~(ABORT_ON_NACK_MASK); |
shreeshas95 | 15:cc266eccf327 | 221 | // } |
shreeshas95 | 15:cc266eccf327 | 222 | // } |
shreeshas95 | 15:cc266eccf327 | 223 | // |
shreeshas95 | 15:cc266eccf327 | 224 | // uint8_t inline GETapid(){ |
shreeshas95 | 15:cc266eccf327 | 225 | // uint16_t temp = fields & APID_MASK; |
shreeshas95 | 15:cc266eccf327 | 226 | // temp = temp >> 10; |
shreeshas95 | 15:cc266eccf327 | 227 | // return (temp & 0xFF); |
shreeshas95 | 15:cc266eccf327 | 228 | // } |
shreeshas95 | 15:cc266eccf327 | 229 | // void inline PUTapid(uint8_t input){ |
shreeshas95 | 15:cc266eccf327 | 230 | // uint16_t temp = input; |
shreeshas95 | 15:cc266eccf327 | 231 | // temp = temp << 10; |
shreeshas95 | 15:cc266eccf327 | 232 | // fields &= ~(APID_MASK); |
shreeshas95 | 15:cc266eccf327 | 233 | // fields |= (temp & APID_MASK); |
shreeshas95 | 15:cc266eccf327 | 234 | // } |
shreeshas95 | 15:cc266eccf327 | 235 | // |
shreeshas95 | 15:cc266eccf327 | 236 | // uint8_t inline GETexec_status(){ |
shreeshas95 | 15:cc266eccf327 | 237 | // uint16_t temp = fields & EXEC_STATUS_MASK; |
shreeshas95 | 15:cc266eccf327 | 238 | // temp = temp >> 8; |
shreeshas95 | 15:cc266eccf327 | 239 | // return (temp & 0xFF); |
shreeshas95 | 15:cc266eccf327 | 240 | // } |
shreeshas95 | 15:cc266eccf327 | 241 | // void inline PUTexec_status(uint8_t input){ |
shreeshas95 | 15:cc266eccf327 | 242 | // uint16_t temp = input; |
shreeshas95 | 15:cc266eccf327 | 243 | // temp = temp << 8; |
shreeshas95 | 15:cc266eccf327 | 244 | // fields &= ~(EXEC_STATUS_MASK); |
shreeshas95 | 15:cc266eccf327 | 245 | // fields |= (temp & EXEC_STATUS_MASK); |
shreeshas95 | 15:cc266eccf327 | 246 | // } |
shreeshas95 | 15:cc266eccf327 | 247 | // |
shreeshas95 | 15:cc266eccf327 | 248 | // uint8_t inline GETpacket_seq_count(){ |
shreeshas95 | 15:cc266eccf327 | 249 | // uint16_t temp = fields & PACKET_SEQ_COUNT_MASK; |
shreeshas95 | 15:cc266eccf327 | 250 | // return (temp & 0xFF); |
shreeshas95 | 15:cc266eccf327 | 251 | // } |
shreeshas95 | 15:cc266eccf327 | 252 | // void inline PUTpacket_seq_count(uint8_t input){ |
shreeshas95 | 15:cc266eccf327 | 253 | // uint16_t temp = input; |
shreeshas95 | 15:cc266eccf327 | 254 | // fields &= ~(PACKET_SEQ_COUNT_MASK); |
shreeshas95 | 15:cc266eccf327 | 255 | // fields |= (temp & PACKET_SEQ_COUNT_MASK); |
shreeshas95 | 15:cc266eccf327 | 256 | // } |
shreeshas95 | 15:cc266eccf327 | 257 | // |
shreeshas95 | 15:cc266eccf327 | 258 | //// update everything other than short_or_long, and crc_pass from TC_string |
shreeshas95 | 15:cc266eccf327 | 259 | // void update_fields(){ |
shreeshas95 | 15:cc266eccf327 | 260 | //// abort on nack |
shreeshas95 | 15:cc266eccf327 | 261 | // uint8_t temp = TC_string[1]; |
shreeshas95 | 15:cc266eccf327 | 262 | // uint16_t t16 = 0; |
shreeshas95 | 15:cc266eccf327 | 263 | // if(temp & 0x10){ |
shreeshas95 | 15:cc266eccf327 | 264 | // fields |= ABORT_ON_NACK_MASK; |
shreeshas95 | 15:cc266eccf327 | 265 | // } |
shreeshas95 | 15:cc266eccf327 | 266 | // else{ |
shreeshas95 | 15:cc266eccf327 | 267 | // fields &= ~(ABORT_ON_NACK_MASK); |
shreeshas95 | 15:cc266eccf327 | 268 | // } |
shreeshas95 | 15:cc266eccf327 | 269 | // |
shreeshas95 | 15:cc266eccf327 | 270 | // // apid |
shreeshas95 | 15:cc266eccf327 | 271 | // t16 = temp; |
shreeshas95 | 15:cc266eccf327 | 272 | // t16 = t16 << 4; |
shreeshas95 | 15:cc266eccf327 | 273 | // fields &= ~(APID_MASK); |
shreeshas95 | 15:cc266eccf327 | 274 | // fields |= (t16 & APID_MASK); |
shreeshas95 | 15:cc266eccf327 | 275 | // |
shreeshas95 | 15:cc266eccf327 | 276 | // // exec_status : default value of exec status |
shreeshas95 | 15:cc266eccf327 | 277 | // fields &= ~(EXEC_STATUS_MASK); |
shreeshas95 | 15:cc266eccf327 | 278 | // |
shreeshas95 | 15:cc266eccf327 | 279 | // // packet seq count |
shreeshas95 | 15:cc266eccf327 | 280 | // temp = TC_string[0]; |
shreeshas95 | 15:cc266eccf327 | 281 | // t16 = temp; |
shreeshas95 | 15:cc266eccf327 | 282 | // fields &= ~(PACKET_SEQ_COUNT_MASK); |
shreeshas95 | 15:cc266eccf327 | 283 | // fields |= (t16 & PACKET_SEQ_COUNT_MASK); |
shreeshas95 | 15:cc266eccf327 | 284 | // } |
shreeshas95 | 15:cc266eccf327 | 285 | // |
shreeshas95 | 15:cc266eccf327 | 286 | // virtual ~Base_tc(){} |
shreeshas95 | 15:cc266eccf327 | 287 | //}; |
shreeshas95 | 15:cc266eccf327 | 288 | |
shreeshas95 | 15:cc266eccf327 | 289 | ////DERIVED CLASS - SHORT TC |
shreeshas95 | 15:cc266eccf327 | 290 | //class Short_tc : public Base_tc{ |
shreeshas95 | 15:cc266eccf327 | 291 | //private: |
shreeshas95 | 15:cc266eccf327 | 292 | // uint8_t fix_str[TC_SHORT_SIZE]; |
shreeshas95 | 15:cc266eccf327 | 293 | //public: |
shreeshas95 | 15:cc266eccf327 | 294 | // Short_tc(){ |
shreeshas95 | 15:cc266eccf327 | 295 | // TC_string = fix_str; |
shreeshas95 | 15:cc266eccf327 | 296 | // fields = 0; |
shreeshas95 | 15:cc266eccf327 | 297 | // } |
shreeshas95 | 15:cc266eccf327 | 298 | // |
shreeshas95 | 15:cc266eccf327 | 299 | // ~Short_tc(){} |
shreeshas95 | 15:cc266eccf327 | 300 | //}; |
shreeshas95 | 15:cc266eccf327 | 301 | // |
shreeshas95 | 15:cc266eccf327 | 302 | ////DERIVED CLASS - LONG TC |
shreeshas95 | 15:cc266eccf327 | 303 | //class Long_tc : public Base_tc{ |
shreeshas95 | 15:cc266eccf327 | 304 | //private: |
shreeshas95 | 15:cc266eccf327 | 305 | // uint8_t fix_str[TC_LONG_SIZE]; |
shreeshas95 | 15:cc266eccf327 | 306 | //public: |
shreeshas95 | 15:cc266eccf327 | 307 | // Long_tc(){ |
shreeshas95 | 15:cc266eccf327 | 308 | // TC_string = fix_str; |
shreeshas95 | 15:cc266eccf327 | 309 | // fields = 0; |
shreeshas95 | 15:cc266eccf327 | 310 | // } |
shreeshas95 | 15:cc266eccf327 | 311 | // |
shreeshas95 | 15:cc266eccf327 | 312 | // ~Long_tc(){} |
shreeshas95 | 15:cc266eccf327 | 313 | //}; |
shreeshas95 | 15:cc266eccf327 | 314 | |
shreeshas95 | 15:cc266eccf327 | 315 | //// TELEMETRY CLASS : |
shreeshas95 | 15:cc266eccf327 | 316 | // |
shreeshas95 | 15:cc266eccf327 | 317 | //// MASKS |
shreeshas95 | 15:cc266eccf327 | 318 | //#define SHORT_LONG_TM_MASK 0x10 |
shreeshas95 | 15:cc266eccf327 | 319 | //#define TMID_MASK 0x0F |
shreeshas95 | 15:cc266eccf327 | 320 | // |
shreeshas95 | 15:cc266eccf327 | 321 | //// PARENT CLASS |
shreeshas95 | 15:cc266eccf327 | 322 | //class Base_tm{ |
shreeshas95 | 15:cc266eccf327 | 323 | //protected: |
shreeshas95 | 15:cc266eccf327 | 324 | // uint8_t fields; |
shreeshas95 | 15:cc266eccf327 | 325 | //public: |
shreeshas95 | 15:cc266eccf327 | 326 | // uint8_t *TM_string; |
shreeshas95 | 15:cc266eccf327 | 327 | // Base_tm *next_node; |
shreeshas95 | 15:cc266eccf327 | 328 | // |
shreeshas95 | 15:cc266eccf327 | 329 | // short = 0, long = 1 |
shreeshas95 | 15:cc266eccf327 | 330 | // bool GETshort_or_long(){ |
shreeshas95 | 15:cc266eccf327 | 331 | // return (fields & SHORT_LONG_TM_MASK); |
shreeshas95 | 15:cc266eccf327 | 332 | // } |
shreeshas95 | 15:cc266eccf327 | 333 | // void PUTshort_or_long(bool input){ |
shreeshas95 | 15:cc266eccf327 | 334 | // if(input){ |
shreeshas95 | 15:cc266eccf327 | 335 | // fields |= SHORT_LONG_TM_MASK; |
shreeshas95 | 15:cc266eccf327 | 336 | // } |
shreeshas95 | 15:cc266eccf327 | 337 | // else{ |
shreeshas95 | 15:cc266eccf327 | 338 | // fields &= ~(SHORT_LONG_TM_MASK); |
shreeshas95 | 15:cc266eccf327 | 339 | // } |
shreeshas95 | 15:cc266eccf327 | 340 | // } |
shreeshas95 | 15:cc266eccf327 | 341 | // |
shreeshas95 | 15:cc266eccf327 | 342 | // uint8_t GETtmid(){ |
shreeshas95 | 15:cc266eccf327 | 343 | // return (fields & TMID_MASK); |
shreeshas95 | 15:cc266eccf327 | 344 | // } |
shreeshas95 | 15:cc266eccf327 | 345 | // void PUTtmid(uint8_t input){ |
shreeshas95 | 15:cc266eccf327 | 346 | // fields &= ~(TMID_MASK); |
shreeshas95 | 15:cc266eccf327 | 347 | // fields |= (input & TMID_MASK); |
shreeshas95 | 15:cc266eccf327 | 348 | // } |
shreeshas95 | 15:cc266eccf327 | 349 | // |
shreeshas95 | 15:cc266eccf327 | 350 | // virtual ~Base_tm(){} |
shreeshas95 | 15:cc266eccf327 | 351 | //}; |
shreeshas95 | 15:cc266eccf327 | 352 | |
shreeshas95 | 15:cc266eccf327 | 353 | |
shreeshas95 | 15:cc266eccf327 | 354 | //// DERIVED CLASS : Long tc [type 0] |
shreeshas95 | 15:cc266eccf327 | 355 | //// type 0 |
shreeshas95 | 15:cc266eccf327 | 356 | //class Long_tm : public Base_tm{ |
shreeshas95 | 15:cc266eccf327 | 357 | //private: |
shreeshas95 | 15:cc266eccf327 | 358 | // uint8_t fix_str[TM_LONG_SIZE]; |
shreeshas95 | 15:cc266eccf327 | 359 | //public: |
shreeshas95 | 15:cc266eccf327 | 360 | // Long_tm(){ |
shreeshas95 | 15:cc266eccf327 | 361 | // TM_string = fix_str; |
shreeshas95 | 15:cc266eccf327 | 362 | // // type 0 |
shreeshas95 | 15:cc266eccf327 | 363 | // fields = 0; |
shreeshas95 | 15:cc266eccf327 | 364 | // } |
shreeshas95 | 15:cc266eccf327 | 365 | // |
shreeshas95 | 15:cc266eccf327 | 366 | // ~Long_tm(){} |
shreeshas95 | 15:cc266eccf327 | 367 | //}; |
shreeshas95 | 15:cc266eccf327 | 368 | // |
shreeshas95 | 15:cc266eccf327 | 369 | //// DERIVED CLASS : Short tc [type 1] |
shreeshas95 | 15:cc266eccf327 | 370 | //// type 1 |
shreeshas95 | 15:cc266eccf327 | 371 | //class Short_tm : public Base_tm{ |
shreeshas95 | 15:cc266eccf327 | 372 | //private: |
shreeshas95 | 15:cc266eccf327 | 373 | // uint8_t fix_str[TM_SHORT_SIZE]; |
shreeshas95 | 15:cc266eccf327 | 374 | //public: |
shreeshas95 | 15:cc266eccf327 | 375 | // Short_tm(){ |
shreeshas95 | 15:cc266eccf327 | 376 | // TM_string = fix_str; |
shreeshas95 | 15:cc266eccf327 | 377 | // // type 1 |
shreeshas95 | 15:cc266eccf327 | 378 | // fields = 0x10; |
shreeshas95 | 15:cc266eccf327 | 379 | // } |
shreeshas95 | 15:cc266eccf327 | 380 | // |
shreeshas95 | 15:cc266eccf327 | 381 | // ~Short_tm(){} |
shreeshas95 | 15:cc266eccf327 | 382 | //}; |