TELECOMMAND MANAGER V1

Dependencies:   mbed SLCD mbed-rtos

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?

UserRevisionLine numberNew 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 //};