
Repository for CDMS code
Dependencies: SimpleDMA mbed-rtos mbed eeprom
Fork of COM_MNG_TMTC_SIMPLE by
TEST_PL.h@301:701ac67649b7, 2016-09-04 (annotated)
- Committer:
- ee12b079
- Date:
- Sun Sep 04 11:12:00 2016 +0000
- Revision:
- 301:701ac67649b7
- Parent:
- 290:3159ff1081a2
Correcting CDMS_HK
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ee12b079 | 209:63e9c8f8b5d2 | 1 | //F11 to exit full screen mode |
ee12b079 | 209:63e9c8f8b5d2 | 2 | /*--------------------------------------------------------------------------- |
ee12b079 | 209:63e9c8f8b5d2 | 3 | Testing PL_MAIN |
ee12b079 | 209:63e9c8f8b5d2 | 4 | ----------------------------------------------------------------------------*/ |
ee12b079 | 209:63e9c8f8b5d2 | 5 | |
ee12b079 | 209:63e9c8f8b5d2 | 6 | |
ee12b079 | 209:63e9c8f8b5d2 | 7 | /* Testing as per the flow chart */ |
ee12b079 | 209:63e9c8f8b5d2 | 8 | /* columns of the array schedule1[][] correspond to Year,Month,Day,Hours,Minutes,Seconds,SID and EXEC_STATUS in integer formats*/ |
ee12b079 | 209:63e9c8f8b5d2 | 9 | Base_tm* FCTN_CDMS_RLY_TMTC(Base_tc *tc_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 10 | |
ee12b079 | 209:63e9c8f8b5d2 | 11 | extern uint8_t schedule1[32][8]= |
ee12b079 | 209:63e9c8f8b5d2 | 12 | { |
ee12b079 | 209:63e9c8f8b5d2 | 13 | {0,1,1,0,0,15,3,3}, |
ee12b079 | 209:63e9c8f8b5d2 | 14 | {0,1,1,0,0,45,2,3}, |
ee12b079 | 245:da9d1bd999da | 15 | {0,1,1,0,1,0,1,3}, |
ee12b079 | 209:63e9c8f8b5d2 | 16 | {0,1,1,0,1,25,0,3}, |
ee12b079 | 245:da9d1bd999da | 17 | {0,1,1,0,1,50,3,3}, |
ee12b079 | 209:63e9c8f8b5d2 | 18 | {0,1,1,0,2,10,2,3}, |
ee12b079 | 245:da9d1bd999da | 19 | {0,1,1,0,1,40,2,3}, |
ee12b079 | 245:da9d1bd999da | 20 | {0,1,1,0,1,10,2,3}, |
ee12b079 | 245:da9d1bd999da | 21 | {0,1,1,0,3,40,2,0}, |
ee12b079 | 245:da9d1bd999da | 22 | {0,1,1,0,4,10,2,3}, |
ee12b079 | 209:63e9c8f8b5d2 | 23 | |
ee12b079 | 245:da9d1bd999da | 24 | {0,1,1,0,4,40,0,1}, |
ee12b079 | 245:da9d1bd999da | 25 | {0,1,1,0,5,10,3,3}, |
ee12b079 | 245:da9d1bd999da | 26 | {0,1,1,0,5,40,3,3}, |
ee12b079 | 245:da9d1bd999da | 27 | {0,1,1,0,6,10,2,3}, |
ee12b079 | 245:da9d1bd999da | 28 | {0,1,1,0,6,40,1,0}, |
ee12b079 | 245:da9d1bd999da | 29 | {0,1,1,0,7,10,2,3}, |
ee12b079 | 245:da9d1bd999da | 30 | {0,1,1,0,7,40,3,3}, |
ee12b079 | 245:da9d1bd999da | 31 | {0,1,1,0,8,10,0,3}, |
ee12b079 | 245:da9d1bd999da | 32 | {0,1,1,0,8,40,1,3}, |
ee12b079 | 245:da9d1bd999da | 33 | {0,1,1,0,9,10,1,2}, |
ee12b079 | 209:63e9c8f8b5d2 | 34 | |
ee12b079 | 245:da9d1bd999da | 35 | {0,1,1,0,9,40,2,3}, |
ee12b079 | 245:da9d1bd999da | 36 | {0,1,1,0,10,10,3,1}, |
ee12b079 | 245:da9d1bd999da | 37 | {0,1,1,0,10,40,3,3}, |
ee12b079 | 245:da9d1bd999da | 38 | {0,1,1,0,11,10,2,1}, |
ee12b079 | 245:da9d1bd999da | 39 | {0,0,0,0,11,40,0,0}, |
ee12b079 | 245:da9d1bd999da | 40 | {0,1,1,0,12,10,0,0}, |
ee12b079 | 245:da9d1bd999da | 41 | {0,1,1,0,12,40,0,0}, |
ee12b079 | 245:da9d1bd999da | 42 | {0,1,1,0,13, 0,0,0}, |
ee12b079 | 209:63e9c8f8b5d2 | 43 | {0,1,1,0,0, 0,0,0}, |
ee12b079 | 209:63e9c8f8b5d2 | 44 | {0,1,1,0,0, 0,0,0}, |
ee12b079 | 209:63e9c8f8b5d2 | 45 | |
ee12b079 | 209:63e9c8f8b5d2 | 46 | {0,1,1,0,0, 0,0,0}, |
ee12b079 | 209:63e9c8f8b5d2 | 47 | {0,1,1,0,0, 0,0,0}, |
ee12b079 | 209:63e9c8f8b5d2 | 48 | }; |
ee12b079 | 209:63e9c8f8b5d2 | 49 | |
ee12b079 | 209:63e9c8f8b5d2 | 50 | void convert(Base_tc* test_tc) |
ee12b079 | 209:63e9c8f8b5d2 | 51 | { |
ee12b079 | 209:63e9c8f8b5d2 | 52 | for(uint8_t k=3;k<=127;k+=4) |
ee12b079 | 209:63e9c8f8b5d2 | 53 | { |
ee12b079 | 209:63e9c8f8b5d2 | 54 | /*-----------1st byte of a block----------*/ |
ee12b079 | 209:63e9c8f8b5d2 | 55 | test_tc->TC_string[k] &= 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 56 | //setting Year (2 bits) |
ee12b079 | 209:63e9c8f8b5d2 | 57 | //test_tc->TC_string[k] &= (~0xC0); |
ee12b079 | 209:63e9c8f8b5d2 | 58 | test_tc->TC_string[k] |= ((schedule1[(k-3)/4][0] & 0x03)<<6); |
ee12b079 | 209:63e9c8f8b5d2 | 59 | |
ee12b079 | 209:63e9c8f8b5d2 | 60 | //setting Month (4 bits) |
ee12b079 | 209:63e9c8f8b5d2 | 61 | //test_tc->TC_string[k] &= (~0x3C); |
ee12b079 | 209:63e9c8f8b5d2 | 62 | test_tc->TC_string[k] |= ((schedule1[(k-3)/4][1] & 0x0F)<<2); |
ee12b079 | 209:63e9c8f8b5d2 | 63 | |
ee12b079 | 209:63e9c8f8b5d2 | 64 | //setting first two bits(MSB) of Day |
ee12b079 | 209:63e9c8f8b5d2 | 65 | //test_tc->TC_string[k] &= (~0x03); |
ee12b079 | 209:63e9c8f8b5d2 | 66 | test_tc->TC_string[k] |= ((schedule1[(k-3)/4][2] & 0x18)>>3); |
ee12b079 | 209:63e9c8f8b5d2 | 67 | /*------------end of 1st byte-------------*/ |
ee12b079 | 209:63e9c8f8b5d2 | 68 | |
ee12b079 | 209:63e9c8f8b5d2 | 69 | /*-----------2nd byte of a block----------*/ |
ee12b079 | 209:63e9c8f8b5d2 | 70 | test_tc->TC_string[k+1] &= 0x00000000; |
ee12b079 | 209:63e9c8f8b5d2 | 71 | //setting remaining 3 bits of Day |
ee12b079 | 209:63e9c8f8b5d2 | 72 | //test_tc->TC_string[k+1] &= (~0xE0); |
ee12b079 | 209:63e9c8f8b5d2 | 73 | test_tc->TC_string[k+1] |= ((schedule1[(k-3)/4][2] & 0x07)<<5); |
ee12b079 | 209:63e9c8f8b5d2 | 74 | |
ee12b079 | 209:63e9c8f8b5d2 | 75 | //setting Hours (5 bits) |
ee12b079 | 209:63e9c8f8b5d2 | 76 | //test_tc->TC_string[k+1] &= (~0x1F); |
ee12b079 | 209:63e9c8f8b5d2 | 77 | test_tc->TC_string[k+1] |= ((schedule1[(k-3)/4][3] & 0x1F)); |
ee12b079 | 209:63e9c8f8b5d2 | 78 | /*------------end of 2nd byte-------------*/ |
ee12b079 | 209:63e9c8f8b5d2 | 79 | |
ee12b079 | 209:63e9c8f8b5d2 | 80 | /*-----------3rd byte of a block----------*/ |
ee12b079 | 209:63e9c8f8b5d2 | 81 | test_tc->TC_string[k+2] &= 0x00000000; |
ee12b079 | 209:63e9c8f8b5d2 | 82 | //setting Minutes (6 bits) |
ee12b079 | 209:63e9c8f8b5d2 | 83 | //test_tc->TC_string[k+2] &= (~0xFC); |
ee12b079 | 209:63e9c8f8b5d2 | 84 | test_tc->TC_string[k+2] |= ((schedule1[(k-3)/4][4] & 0x3F)<<2); |
ee12b079 | 209:63e9c8f8b5d2 | 85 | |
ee12b079 | 209:63e9c8f8b5d2 | 86 | //setting first 2 bits(MSB) of Seconds |
ee12b079 | 209:63e9c8f8b5d2 | 87 | //test_tc->TC_string[k+2] &= (~0x03); |
ee12b079 | 209:63e9c8f8b5d2 | 88 | test_tc->TC_string[k+2] |= ((schedule1[(k-3)/4][5] & 0x30)>>4); |
ee12b079 | 209:63e9c8f8b5d2 | 89 | /*------------end of 3rd byte-------------*/ |
ee12b079 | 209:63e9c8f8b5d2 | 90 | |
ee12b079 | 209:63e9c8f8b5d2 | 91 | /*-----------4th byte of a block----------*/ |
ee12b079 | 209:63e9c8f8b5d2 | 92 | test_tc->TC_string[k+3] &= 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 93 | //setting remaining 4 bits of Seconds |
ee12b079 | 209:63e9c8f8b5d2 | 94 | //test_tc->TC_string[k+3] &= (~0xF0); |
ee12b079 | 209:63e9c8f8b5d2 | 95 | test_tc->TC_string[k+3] |= ((schedule1[(k-3)/4][5] & 0x0F)<<4); |
ee12b079 | 209:63e9c8f8b5d2 | 96 | |
ee12b079 | 209:63e9c8f8b5d2 | 97 | //setting STATE_ID (2 bits) |
ee12b079 | 209:63e9c8f8b5d2 | 98 | //test_tc->TC_string[k+3] &= (~0x0C); |
ee12b079 | 209:63e9c8f8b5d2 | 99 | test_tc->TC_string[k+3] |= ((schedule1[(k-3)/4][6] & 0x03)<<2); |
ee12b079 | 209:63e9c8f8b5d2 | 100 | |
ee12b079 | 209:63e9c8f8b5d2 | 101 | //setting EXEC_STATUS (2 bits) |
ee12b079 | 209:63e9c8f8b5d2 | 102 | //test_tc->TC_string[k+3] &= (~0x03); |
ee12b079 | 209:63e9c8f8b5d2 | 103 | test_tc->TC_string[k+3] |= ((schedule1[(k-3)/4][7] & 0x03)); |
ee12b079 | 209:63e9c8f8b5d2 | 104 | /*------------end of 4th byte-------------*/ |
ee12b079 | 209:63e9c8f8b5d2 | 105 | } |
ee12b079 | 209:63e9c8f8b5d2 | 106 | } |
ee12b079 | 209:63e9c8f8b5d2 | 107 | /*void test_schedule_1(Base_tm *test_tm_ptr) |
ee12b079 | 209:63e9c8f8b5d2 | 108 | { |
ee12b079 | 209:63e9c8f8b5d2 | 109 | Base_tc *test_tc = new Long_tc; |
ee12b079 | 209:63e9c8f8b5d2 | 110 | test_tc->next_TC = NULL; |
ee12b079 | 209:63e9c8f8b5d2 | 111 | test_tc->TC_string[0] = 0x01; |
ee12b079 | 209:63e9c8f8b5d2 | 112 | test_tc->TC_string[1] = 0xB2; |
ee12b079 | 209:63e9c8f8b5d2 | 113 | test_tc->TC_string[2] = 0x71; |
ee12b079 | 209:63e9c8f8b5d2 | 114 | convert(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 115 | test_tc->TC_string[131] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 116 | test_tc->TC_string[132] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 117 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133); |
ee12b079 | 209:63e9c8f8b5d2 | 118 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8; |
ee12b079 | 209:63e9c8f8b5d2 | 119 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF); |
ee12b079 | 209:63e9c8f8b5d2 | 120 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 121 | } |
ee12b079 | 209:63e9c8f8b5d2 | 122 | |
ee12b079 | 209:63e9c8f8b5d2 | 123 | void test_schedule_2(Base_tm *test_tm_ptr) |
ee12b079 | 209:63e9c8f8b5d2 | 124 | { |
ee12b079 | 209:63e9c8f8b5d2 | 125 | Base_tc *test_tc = new Long_tc; |
ee12b079 | 209:63e9c8f8b5d2 | 126 | test_tc->next_TC = NULL; |
ee12b079 | 209:63e9c8f8b5d2 | 127 | test_tc->TC_string[0] = 0x01; |
ee12b079 | 209:63e9c8f8b5d2 | 128 | test_tc->TC_string[1] = 0xB2; |
ee12b079 | 209:63e9c8f8b5d2 | 129 | test_tc->TC_string[2] = 0x72; |
ee12b079 | 209:63e9c8f8b5d2 | 130 | convert(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 131 | test_tc->TC_string[131] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 132 | test_tc->TC_string[132] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 133 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133); |
ee12b079 | 209:63e9c8f8b5d2 | 134 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8; |
ee12b079 | 209:63e9c8f8b5d2 | 135 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF); |
ee12b079 | 209:63e9c8f8b5d2 | 136 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 137 | } |
ee12b079 | 209:63e9c8f8b5d2 | 138 | |
ee12b079 | 209:63e9c8f8b5d2 | 139 | void test_schedule_3(Base_tm *test_tm_ptr) |
ee12b079 | 209:63e9c8f8b5d2 | 140 | { |
ee12b079 | 209:63e9c8f8b5d2 | 141 | Base_tc *test_tc = new Long_tc; |
ee12b079 | 209:63e9c8f8b5d2 | 142 | test_tc->next_TC = NULL; |
ee12b079 | 209:63e9c8f8b5d2 | 143 | test_tc->TC_string[0] = 0x01; |
ee12b079 | 209:63e9c8f8b5d2 | 144 | test_tc->TC_string[1] = 0xB2; |
ee12b079 | 209:63e9c8f8b5d2 | 145 | test_tc->TC_string[2] = 0x73; |
ee12b079 | 209:63e9c8f8b5d2 | 146 | convert(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 147 | test_tc->TC_string[131] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 148 | test_tc->TC_string[132] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 149 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133); |
ee12b079 | 209:63e9c8f8b5d2 | 150 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8; |
ee12b079 | 209:63e9c8f8b5d2 | 151 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF); |
ee12b079 | 209:63e9c8f8b5d2 | 152 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 153 | } |
ee12b079 | 209:63e9c8f8b5d2 | 154 | |
ee12b079 | 209:63e9c8f8b5d2 | 155 | void test_schedule_4(Base_tm *test_tm_ptr) |
ee12b079 | 209:63e9c8f8b5d2 | 156 | { |
ee12b079 | 209:63e9c8f8b5d2 | 157 | Base_tc *test_tc = new Long_tc; |
ee12b079 | 209:63e9c8f8b5d2 | 158 | test_tc->next_TC = NULL; |
ee12b079 | 209:63e9c8f8b5d2 | 159 | test_tc->TC_string[0] = 0x01; |
ee12b079 | 209:63e9c8f8b5d2 | 160 | test_tc->TC_string[1] = 0xB2; |
ee12b079 | 209:63e9c8f8b5d2 | 161 | test_tc->TC_string[2] = 0x74; |
ee12b079 | 209:63e9c8f8b5d2 | 162 | convert(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 163 | test_tc->TC_string[131] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 164 | test_tc->TC_string[132] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 165 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133); |
ee12b079 | 209:63e9c8f8b5d2 | 166 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8; |
ee12b079 | 209:63e9c8f8b5d2 | 167 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF); |
ee12b079 | 209:63e9c8f8b5d2 | 168 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 169 | } |
ee12b079 | 209:63e9c8f8b5d2 | 170 | |
ee12b079 | 209:63e9c8f8b5d2 | 171 | void test_schedule_5(Base_tm *test_tm_ptr) |
ee12b079 | 209:63e9c8f8b5d2 | 172 | { |
ee12b079 | 209:63e9c8f8b5d2 | 173 | Base_tc *test_tc = new Long_tc; |
ee12b079 | 209:63e9c8f8b5d2 | 174 | test_tc->next_TC = NULL; |
ee12b079 | 209:63e9c8f8b5d2 | 175 | test_tc->TC_string[0] = 0x01; |
ee12b079 | 209:63e9c8f8b5d2 | 176 | test_tc->TC_string[1] = 0xB2; |
ee12b079 | 209:63e9c8f8b5d2 | 177 | test_tc->TC_string[2] = 0x75; |
ee12b079 | 209:63e9c8f8b5d2 | 178 | convert(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 179 | test_tc->TC_string[131] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 180 | test_tc->TC_string[132] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 181 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133); |
ee12b079 | 209:63e9c8f8b5d2 | 182 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8; |
ee12b079 | 209:63e9c8f8b5d2 | 183 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF); |
ee12b079 | 209:63e9c8f8b5d2 | 184 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 185 | } |
ee12b079 | 209:63e9c8f8b5d2 | 186 | |
ee12b079 | 209:63e9c8f8b5d2 | 187 | void test_schedule_6(Base_tm *test_tm_ptr) |
ee12b079 | 209:63e9c8f8b5d2 | 188 | { |
ee12b079 | 209:63e9c8f8b5d2 | 189 | Base_tc *test_tc = new Long_tc; |
ee12b079 | 209:63e9c8f8b5d2 | 190 | test_tc->next_TC = NULL; |
ee12b079 | 209:63e9c8f8b5d2 | 191 | test_tc->TC_string[0] = 0x01; |
ee12b079 | 209:63e9c8f8b5d2 | 192 | test_tc->TC_string[1] = 0xB2; |
ee12b079 | 209:63e9c8f8b5d2 | 193 | test_tc->TC_string[2] = 0x76; |
ee12b079 | 209:63e9c8f8b5d2 | 194 | convert(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 195 | test_tc->TC_string[131] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 196 | test_tc->TC_string[132] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 197 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133); |
ee12b079 | 209:63e9c8f8b5d2 | 198 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8; |
ee12b079 | 209:63e9c8f8b5d2 | 199 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF); |
ee12b079 | 209:63e9c8f8b5d2 | 200 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 201 | } |
ee12b079 | 209:63e9c8f8b5d2 | 202 | |
ee12b079 | 209:63e9c8f8b5d2 | 203 | void test_schedule_F(Base_tm *test_tm_ptr) |
ee12b079 | 209:63e9c8f8b5d2 | 204 | { |
ee12b079 | 209:63e9c8f8b5d2 | 205 | Base_tc *test_tc = new Long_tc; |
ee12b079 | 209:63e9c8f8b5d2 | 206 | test_tc->next_TC = NULL; |
ee12b079 | 209:63e9c8f8b5d2 | 207 | test_tc->TC_string[0] = 0x01; |
ee12b079 | 209:63e9c8f8b5d2 | 208 | test_tc->TC_string[1] = 0xB2; |
ee12b079 | 209:63e9c8f8b5d2 | 209 | test_tc->TC_string[2] = 0x7F; |
ee12b079 | 209:63e9c8f8b5d2 | 210 | convert(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 211 | test_tc->TC_string[131] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 212 | test_tc->TC_string[132] = 0x00; |
ee12b079 | 209:63e9c8f8b5d2 | 213 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133); |
ee12b079 | 209:63e9c8f8b5d2 | 214 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8; |
ee12b079 | 209:63e9c8f8b5d2 | 215 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF); |
ee12b079 | 209:63e9c8f8b5d2 | 216 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc); |
ee12b079 | 209:63e9c8f8b5d2 | 217 | }*/ |
ee12b079 | 209:63e9c8f8b5d2 | 218 | #define test_schedule_1(test_tm_ptr) {\ |
ee12b079 | 209:63e9c8f8b5d2 | 219 | Base_tc *test_tc = NULL;\ |
ee12b079 | 209:63e9c8f8b5d2 | 220 | if(!(test_tc = new Long_tc))\ |
ee12b079 | 209:63e9c8f8b5d2 | 221 | {\ |
ee12b079 | 209:63e9c8f8b5d2 | 222 | gPC.printf("\n\rError: out of memory");\ |
ee12b079 | 209:63e9c8f8b5d2 | 223 | return;\ |
ee12b079 | 209:63e9c8f8b5d2 | 224 | }\ |
ee12b079 | 209:63e9c8f8b5d2 | 225 | test_tc->next_TC = NULL;\ |
ee12b079 | 209:63e9c8f8b5d2 | 226 | test_tc->TC_string[0] = 0x01;\ |
ee12b079 | 209:63e9c8f8b5d2 | 227 | test_tc->TC_string[1] = 0xB2;\ |
ee12b079 | 209:63e9c8f8b5d2 | 228 | test_tc->TC_string[2] = 0x71;\ |
ee12b079 | 209:63e9c8f8b5d2 | 229 | convert(test_tc);\ |
ee12b079 | 209:63e9c8f8b5d2 | 230 | test_tc->TC_string[131] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 231 | test_tc->TC_string[132] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 232 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133);\ |
ee12b079 | 209:63e9c8f8b5d2 | 233 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8;\ |
ee12b079 | 209:63e9c8f8b5d2 | 234 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF);\ |
ee12b079 | 209:63e9c8f8b5d2 | 235 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc);\ |
ee12b079 | 245:da9d1bd999da | 236 | delete test_tc;\ |
ee12b079 | 245:da9d1bd999da | 237 | Base_tm *temp;\ |
ee12b079 | 245:da9d1bd999da | 238 | temp = test_tm_ptr;\ |
ee12b079 | 245:da9d1bd999da | 239 | while(test_tm_ptr!=NULL)\ |
ee12b079 | 245:da9d1bd999da | 240 | {\ |
ee12b079 | 245:da9d1bd999da | 241 | temp = temp->next_TM;\ |
ee12b079 | 245:da9d1bd999da | 242 | delete test_tm_ptr;\ |
prasanthbj05 | 266:ae588e75cfa4 | 243 | test_tm_ptr = temp;\ |
ee12b079 | 245:da9d1bd999da | 244 | }\ |
ee12b079 | 209:63e9c8f8b5d2 | 245 | } |
ee12b079 | 209:63e9c8f8b5d2 | 246 | #define test_schedule_2(test_tm_ptr) {\ |
ee12b079 | 209:63e9c8f8b5d2 | 247 | Base_tc *test_tc = new Long_tc;\ |
ee12b079 | 209:63e9c8f8b5d2 | 248 | test_tc->next_TC = NULL;\ |
ee12b079 | 209:63e9c8f8b5d2 | 249 | test_tc->TC_string[0] = 0x01;\ |
ee12b079 | 209:63e9c8f8b5d2 | 250 | test_tc->TC_string[1] = 0xB2;\ |
ee12b079 | 209:63e9c8f8b5d2 | 251 | test_tc->TC_string[2] = 0x72;\ |
ee12b079 | 209:63e9c8f8b5d2 | 252 | convert(test_tc);\ |
ee12b079 | 209:63e9c8f8b5d2 | 253 | test_tc->TC_string[131] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 254 | test_tc->TC_string[132] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 255 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133);\ |
ee12b079 | 209:63e9c8f8b5d2 | 256 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8;\ |
ee12b079 | 209:63e9c8f8b5d2 | 257 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF);\ |
ee12b079 | 209:63e9c8f8b5d2 | 258 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc);\ |
ee12b079 | 245:da9d1bd999da | 259 | delete test_tc;\ |
ee12b079 | 245:da9d1bd999da | 260 | Base_tm *temp;\ |
ee12b079 | 245:da9d1bd999da | 261 | temp = test_tm_ptr;\ |
ee12b079 | 245:da9d1bd999da | 262 | while(test_tm_ptr!=NULL)\ |
ee12b079 | 245:da9d1bd999da | 263 | {\ |
ee12b079 | 245:da9d1bd999da | 264 | temp = temp->next_TM;\ |
ee12b079 | 245:da9d1bd999da | 265 | delete test_tm_ptr;\ |
prasanthbj05 | 266:ae588e75cfa4 | 266 | test_tm_ptr = temp;\ |
ee12b079 | 245:da9d1bd999da | 267 | }\ |
ee12b079 | 209:63e9c8f8b5d2 | 268 | } |
ee12b079 | 209:63e9c8f8b5d2 | 269 | #define test_schedule_3(test_tm_ptr) {\ |
ee12b079 | 209:63e9c8f8b5d2 | 270 | Base_tc *test_tc = new Long_tc;\ |
ee12b079 | 209:63e9c8f8b5d2 | 271 | test_tc->next_TC = NULL;\ |
ee12b079 | 209:63e9c8f8b5d2 | 272 | test_tc->TC_string[0] = 0x01;\ |
ee12b079 | 209:63e9c8f8b5d2 | 273 | test_tc->TC_string[1] = 0xB2;\ |
ee12b079 | 209:63e9c8f8b5d2 | 274 | test_tc->TC_string[2] = 0x73;\ |
ee12b079 | 209:63e9c8f8b5d2 | 275 | convert(test_tc);\ |
ee12b079 | 209:63e9c8f8b5d2 | 276 | test_tc->TC_string[131] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 277 | test_tc->TC_string[132] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 278 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133);\ |
ee12b079 | 209:63e9c8f8b5d2 | 279 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8;\ |
ee12b079 | 209:63e9c8f8b5d2 | 280 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF);\ |
ee12b079 | 209:63e9c8f8b5d2 | 281 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc);\ |
ee12b079 | 245:da9d1bd999da | 282 | delete test_tc;\ |
ee12b079 | 245:da9d1bd999da | 283 | Base_tm *temp;\ |
ee12b079 | 245:da9d1bd999da | 284 | temp = test_tm_ptr;\ |
ee12b079 | 245:da9d1bd999da | 285 | while(test_tm_ptr!=NULL)\ |
ee12b079 | 245:da9d1bd999da | 286 | {\ |
ee12b079 | 245:da9d1bd999da | 287 | temp = temp->next_TM;\ |
ee12b079 | 245:da9d1bd999da | 288 | delete test_tm_ptr;\ |
prasanthbj05 | 266:ae588e75cfa4 | 289 | test_tm_ptr = temp;\ |
ee12b079 | 245:da9d1bd999da | 290 | }\ |
ee12b079 | 209:63e9c8f8b5d2 | 291 | } |
ee12b079 | 209:63e9c8f8b5d2 | 292 | #define test_schedule_4(test_tm_ptr) {\ |
ee12b079 | 209:63e9c8f8b5d2 | 293 | Base_tc *test_tc = new Long_tc;\ |
ee12b079 | 209:63e9c8f8b5d2 | 294 | test_tc->next_TC = NULL;\ |
ee12b079 | 209:63e9c8f8b5d2 | 295 | test_tc->TC_string[0] = 0x01;\ |
ee12b079 | 209:63e9c8f8b5d2 | 296 | test_tc->TC_string[1] = 0xB2;\ |
ee12b079 | 209:63e9c8f8b5d2 | 297 | test_tc->TC_string[2] = 0x74;\ |
ee12b079 | 209:63e9c8f8b5d2 | 298 | convert(test_tc);\ |
ee12b079 | 209:63e9c8f8b5d2 | 299 | test_tc->TC_string[131] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 300 | test_tc->TC_string[132] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 301 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133);\ |
ee12b079 | 209:63e9c8f8b5d2 | 302 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8;\ |
ee12b079 | 209:63e9c8f8b5d2 | 303 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF);\ |
ee12b079 | 209:63e9c8f8b5d2 | 304 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc);\ |
ee12b079 | 245:da9d1bd999da | 305 | delete test_tc;\ |
ee12b079 | 245:da9d1bd999da | 306 | Base_tm *temp;\ |
ee12b079 | 245:da9d1bd999da | 307 | temp = test_tm_ptr;\ |
ee12b079 | 245:da9d1bd999da | 308 | while(test_tm_ptr!=NULL)\ |
ee12b079 | 245:da9d1bd999da | 309 | {\ |
ee12b079 | 245:da9d1bd999da | 310 | temp = temp->next_TM;\ |
ee12b079 | 245:da9d1bd999da | 311 | delete test_tm_ptr;\ |
prasanthbj05 | 266:ae588e75cfa4 | 312 | test_tm_ptr = temp;\ |
ee12b079 | 245:da9d1bd999da | 313 | }\ |
ee12b079 | 209:63e9c8f8b5d2 | 314 | } |
ee12b079 | 209:63e9c8f8b5d2 | 315 | #define test_schedule_5(test_tm_ptr) {\ |
ee12b079 | 209:63e9c8f8b5d2 | 316 | Base_tc *test_tc = new Long_tc;\ |
ee12b079 | 209:63e9c8f8b5d2 | 317 | test_tc->next_TC = NULL;\ |
ee12b079 | 209:63e9c8f8b5d2 | 318 | test_tc->TC_string[0] = 0x01;\ |
ee12b079 | 209:63e9c8f8b5d2 | 319 | test_tc->TC_string[1] = 0xB2;\ |
ee12b079 | 209:63e9c8f8b5d2 | 320 | test_tc->TC_string[2] = 0x75;\ |
ee12b079 | 209:63e9c8f8b5d2 | 321 | convert(test_tc);\ |
ee12b079 | 209:63e9c8f8b5d2 | 322 | test_tc->TC_string[131] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 323 | test_tc->TC_string[132] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 324 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133);\ |
ee12b079 | 209:63e9c8f8b5d2 | 325 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8;\ |
ee12b079 | 209:63e9c8f8b5d2 | 326 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF);\ |
ee12b079 | 209:63e9c8f8b5d2 | 327 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc);\ |
ee12b079 | 245:da9d1bd999da | 328 | delete test_tc;\ |
ee12b079 | 245:da9d1bd999da | 329 | Base_tm *temp;\ |
ee12b079 | 245:da9d1bd999da | 330 | temp = test_tm_ptr;\ |
ee12b079 | 245:da9d1bd999da | 331 | while(test_tm_ptr!=NULL)\ |
ee12b079 | 245:da9d1bd999da | 332 | {\ |
ee12b079 | 245:da9d1bd999da | 333 | temp = temp->next_TM;\ |
ee12b079 | 245:da9d1bd999da | 334 | delete test_tm_ptr;\ |
prasanthbj05 | 266:ae588e75cfa4 | 335 | test_tm_ptr = temp;\ |
ee12b079 | 245:da9d1bd999da | 336 | }\ |
ee12b079 | 209:63e9c8f8b5d2 | 337 | } |
ee12b079 | 209:63e9c8f8b5d2 | 338 | #define test_schedule_6(test_tm_ptr) {\ |
ee12b079 | 209:63e9c8f8b5d2 | 339 | Base_tc *test_tc = new Long_tc;\ |
ee12b079 | 209:63e9c8f8b5d2 | 340 | test_tc->next_TC = NULL;\ |
ee12b079 | 209:63e9c8f8b5d2 | 341 | test_tc->TC_string[0] = 0x01;\ |
ee12b079 | 209:63e9c8f8b5d2 | 342 | test_tc->TC_string[1] = 0xB2;\ |
ee12b079 | 209:63e9c8f8b5d2 | 343 | test_tc->TC_string[2] = 0x76;\ |
ee12b079 | 209:63e9c8f8b5d2 | 344 | convert(test_tc);\ |
ee12b079 | 209:63e9c8f8b5d2 | 345 | test_tc->TC_string[131] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 346 | test_tc->TC_string[132] = 0x00;\ |
ee12b079 | 209:63e9c8f8b5d2 | 347 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133);\ |
ee12b079 | 209:63e9c8f8b5d2 | 348 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8;\ |
ee12b079 | 209:63e9c8f8b5d2 | 349 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF);\ |
ee12b079 | 209:63e9c8f8b5d2 | 350 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc);\ |
ee12b079 | 245:da9d1bd999da | 351 | delete test_tc;\ |
ee12b079 | 245:da9d1bd999da | 352 | Base_tm *temp;\ |
ee12b079 | 245:da9d1bd999da | 353 | temp = test_tm_ptr;\ |
ee12b079 | 245:da9d1bd999da | 354 | while(test_tm_ptr!=NULL)\ |
ee12b079 | 245:da9d1bd999da | 355 | {\ |
ee12b079 | 245:da9d1bd999da | 356 | temp = temp->next_TM;\ |
ee12b079 | 245:da9d1bd999da | 357 | delete test_tm_ptr;\ |
prasanthbj05 | 266:ae588e75cfa4 | 358 | test_tm_ptr = temp;\ |
ee12b079 | 245:da9d1bd999da | 359 | }\ |
ee12b079 | 209:63e9c8f8b5d2 | 360 | } |
ee12b079 | 209:63e9c8f8b5d2 | 361 | #define test_schedule_F(test_tm_ptr) {\ |
ee12b079 | 209:63e9c8f8b5d2 | 362 | Base_tc *test_tc = NULL;\ |
ee12b079 | 209:63e9c8f8b5d2 | 363 | if(!(test_tc = new Long_tc))\ |
ee12b079 | 209:63e9c8f8b5d2 | 364 | {\ |
ee12b079 | 209:63e9c8f8b5d2 | 365 | gPC.printf("\n\rError: out of memory");\ |
ee12b079 | 209:63e9c8f8b5d2 | 366 | return;\ |
ee12b079 | 209:63e9c8f8b5d2 | 367 | }\ |
ee12b079 | 209:63e9c8f8b5d2 | 368 | test_tc->next_TC = NULL;\ |
ee12b079 | 209:63e9c8f8b5d2 | 369 | test_tc->TC_string[0] = 0x01;\ |
ee12b079 | 209:63e9c8f8b5d2 | 370 | test_tc->TC_string[1] = 0xB2;\ |
ee12b079 | 209:63e9c8f8b5d2 | 371 | test_tc->TC_string[2] = 0x7F;\ |
ee12b079 | 209:63e9c8f8b5d2 | 372 | for(uint8_t i=3;i<133;i++)\ |
ee12b079 | 209:63e9c8f8b5d2 | 373 | {\ |
ee12b079 | 209:63e9c8f8b5d2 | 374 | test_tc->TC_string[i] = 0;\ |
ee12b079 | 209:63e9c8f8b5d2 | 375 | }\ |
ee12b079 | 209:63e9c8f8b5d2 | 376 | uint16_t crc16 = crc16_gen(test_tc->TC_string,133);\ |
ee12b079 | 209:63e9c8f8b5d2 | 377 | test_tc->TC_string[133] = (uint8_t)(crc16 & 0xFF00)>>8;\ |
ee12b079 | 209:63e9c8f8b5d2 | 378 | test_tc->TC_string[134] = (uint8_t)(crc16 & 0x00FF);\ |
ee12b079 | 209:63e9c8f8b5d2 | 379 | test_tm_ptr = FCTN_CDMS_RLY_TMTC(test_tc);\ |
ee12b079 | 245:da9d1bd999da | 380 | delete test_tc;\ |
ee12b079 | 209:63e9c8f8b5d2 | 381 | } |
ee12b079 | 209:63e9c8f8b5d2 | 382 | void send_verify_0xF(Base_tm* test_tm_ptr) |
ee12b079 | 209:63e9c8f8b5d2 | 383 | { |
ee12b079 | 209:63e9c8f8b5d2 | 384 | uint32_t temp_blk[4] = {0}; |
ee12b079 | 209:63e9c8f8b5d2 | 385 | uint8_t j=0,tm_data_err_count=0; |
ee12b079 | 209:63e9c8f8b5d2 | 386 | Base_tm* temp_ptr; |
ee12b079 | 209:63e9c8f8b5d2 | 387 | test_schedule_F(test_tm_ptr); |
ee12b079 | 245:da9d1bd999da | 388 | gPC.printf("\n\r----------------------------------------------------------------------------------"); |
ee12b079 | 245:da9d1bd999da | 389 | gPC.printf("\n\rTC_Schedule_Report(0xF):\n"); |
ee12b079 | 209:63e9c8f8b5d2 | 390 | temp_ptr=test_tm_ptr; |
ee12b079 | 209:63e9c8f8b5d2 | 391 | while(temp_ptr!=NULL) |
ee12b079 | 209:63e9c8f8b5d2 | 392 | { |
ee12b079 | 209:63e9c8f8b5d2 | 393 | /*gPC.printf("\n\rTM[0] = %02X",temp_ptr->TM_string[0]); |
ee12b079 | 209:63e9c8f8b5d2 | 394 | gPC.printf("\tTM[1] = %02X",temp_ptr->TM_string[1]); |
ee12b079 | 209:63e9c8f8b5d2 | 395 | gPC.printf("\tTM[2] = %02X",temp_ptr->TM_string[2]); |
ee12b079 | 209:63e9c8f8b5d2 | 396 | gPC.printf("\tTM[3] = %02X",temp_ptr->TM_string[3]);*/ |
ee12b079 | 209:63e9c8f8b5d2 | 397 | for(uint8_t i=0;i<=112;i+=16) |
ee12b079 | 209:63e9c8f8b5d2 | 398 | { |
ee12b079 | 209:63e9c8f8b5d2 | 399 | temp_blk[0] &= 0x00000000; |
ee12b079 | 209:63e9c8f8b5d2 | 400 | temp_blk[0] |= (((uint32_t)(temp_ptr->TM_string[i+4]))&0x000000FF)<<24; |
ee12b079 | 209:63e9c8f8b5d2 | 401 | temp_blk[0] |= (((uint32_t)(temp_ptr->TM_string[i+5]))&0x000000FF)<<16; |
ee12b079 | 209:63e9c8f8b5d2 | 402 | temp_blk[0] |= (((uint32_t)(temp_ptr->TM_string[i+6]))&0x000000FF)<<8; |
ee12b079 | 209:63e9c8f8b5d2 | 403 | temp_blk[0] |= (((uint32_t)(temp_ptr->TM_string[i+7]))&0x000000FF); |
ee12b079 | 209:63e9c8f8b5d2 | 404 | |
ee12b079 | 209:63e9c8f8b5d2 | 405 | temp_blk[1] &= 0x00000000; |
ee12b079 | 209:63e9c8f8b5d2 | 406 | temp_blk[1] |= (((uint32_t)(temp_ptr->TM_string[i+8]))&0x000000FF)<<24; |
ee12b079 | 209:63e9c8f8b5d2 | 407 | temp_blk[1] |= (((uint32_t)(temp_ptr->TM_string[i+9]))&0x000000FF)<<16; |
ee12b079 | 209:63e9c8f8b5d2 | 408 | temp_blk[1] |= (((uint32_t)(temp_ptr->TM_string[i+10]))&0x000000FF)<<8; |
ee12b079 | 209:63e9c8f8b5d2 | 409 | temp_blk[1] |= (((uint32_t)(temp_ptr->TM_string[i+11]))&0x000000FF); |
ee12b079 | 209:63e9c8f8b5d2 | 410 | |
ee12b079 | 209:63e9c8f8b5d2 | 411 | temp_blk[2] &= 0x00000000; |
ee12b079 | 209:63e9c8f8b5d2 | 412 | temp_blk[2] |= (((uint32_t)(temp_ptr->TM_string[i+12]))&0x000000FF)<<24; |
ee12b079 | 209:63e9c8f8b5d2 | 413 | temp_blk[2] |= (((uint32_t)(temp_ptr->TM_string[i+13]))&0x000000FF)<<16; |
ee12b079 | 209:63e9c8f8b5d2 | 414 | temp_blk[2] |= (((uint32_t)(temp_ptr->TM_string[i+14]))&0x000000FF)<<8; |
ee12b079 | 209:63e9c8f8b5d2 | 415 | temp_blk[2] |= (((uint32_t)(temp_ptr->TM_string[i+15]))&0x000000FF); |
ee12b079 | 209:63e9c8f8b5d2 | 416 | |
ee12b079 | 209:63e9c8f8b5d2 | 417 | temp_blk[3] &= 0x00000000; |
ee12b079 | 209:63e9c8f8b5d2 | 418 | temp_blk[3] |= (((uint32_t)(temp_ptr->TM_string[i+16]))&0x000000FF)<<24; |
ee12b079 | 209:63e9c8f8b5d2 | 419 | temp_blk[3] |= (((uint32_t)(temp_ptr->TM_string[i+17]))&0x000000FF)<<16; |
ee12b079 | 209:63e9c8f8b5d2 | 420 | temp_blk[3] |= (((uint32_t)(temp_ptr->TM_string[i+18]))&0x000000FF)<<8; |
ee12b079 | 209:63e9c8f8b5d2 | 421 | temp_blk[3] |= (((uint32_t)(temp_ptr->TM_string[i+19]))&0x000000FF); |
ee12b079 | 209:63e9c8f8b5d2 | 422 | |
ee12b079 | 209:63e9c8f8b5d2 | 423 | if(temp_blk[0]!=pl_block[(i/4)+j]) |
ee12b079 | 209:63e9c8f8b5d2 | 424 | tm_data_err_count++; |
ee12b079 | 209:63e9c8f8b5d2 | 425 | if(temp_blk[1]!=pl_block[(i/4)+j+1]) |
ee12b079 | 209:63e9c8f8b5d2 | 426 | tm_data_err_count++; |
ee12b079 | 209:63e9c8f8b5d2 | 427 | if(temp_blk[2]!=pl_block[(i/4)+j+2]) |
ee12b079 | 209:63e9c8f8b5d2 | 428 | tm_data_err_count++; |
ee12b079 | 209:63e9c8f8b5d2 | 429 | if(temp_blk[3]!=pl_block[(i/4)+j+3]) |
ee12b079 | 209:63e9c8f8b5d2 | 430 | tm_data_err_count++; |
ee12b079 | 209:63e9c8f8b5d2 | 431 | //gPC.printf("\n\r%03d-0x%08X\t%03d-0x%08X",(i/4)+j,temp_blk[0],(i/4)+1+j,temp_blk[1]); |
ee12b079 | 209:63e9c8f8b5d2 | 432 | //gPC.printf("\t%03d-0x%08X\t%03d-0x%08X\n",(i/4)+2+j,temp_blk[2],(i/4)+3+j,temp_blk[3]); |
ee12b079 | 209:63e9c8f8b5d2 | 433 | } |
ee12b079 | 209:63e9c8f8b5d2 | 434 | j+=32; |
ee12b079 | 209:63e9c8f8b5d2 | 435 | //gPC.printf("\n"); |
ee12b079 | 209:63e9c8f8b5d2 | 436 | temp_ptr = temp_ptr->next_TM; |
ee12b079 | 209:63e9c8f8b5d2 | 437 | } |
ee12b079 | 209:63e9c8f8b5d2 | 438 | if(tm_data_err_count!=0) |
ee12b079 | 209:63e9c8f8b5d2 | 439 | { |
ee12b079 | 209:63e9c8f8b5d2 | 440 | gPC.printf("\n\rTM Data(0xF) not matching pl_block!!!"); |
ee12b079 | 209:63e9c8f8b5d2 | 441 | gPC.printf("\n\rNumber of mismatches = %d",tm_data_err_count); |
ee12b079 | 209:63e9c8f8b5d2 | 442 | } |
ee12b079 | 209:63e9c8f8b5d2 | 443 | else if(tm_data_err_count==0) |
ee12b079 | 209:63e9c8f8b5d2 | 444 | { |
ee12b079 | 209:63e9c8f8b5d2 | 445 | gPC.printf("\n\rNo errors in TM Data(0xF)"); |
ee12b079 | 209:63e9c8f8b5d2 | 446 | } |
ee12b079 | 245:da9d1bd999da | 447 | gPC.printf("\n\r----------------------------------------------------------------------------------"); |
ee12b079 | 245:da9d1bd999da | 448 | Base_tm *temp;\ |
ee12b079 | 245:da9d1bd999da | 449 | temp = test_tm_ptr;\ |
ee12b079 | 245:da9d1bd999da | 450 | while(test_tm_ptr!=NULL)\ |
ee12b079 | 245:da9d1bd999da | 451 | {\ |
ee12b079 | 245:da9d1bd999da | 452 | temp = temp->next_TM;\ |
ee12b079 | 245:da9d1bd999da | 453 | delete test_tm_ptr;\ |
prasanthbj05 | 266:ae588e75cfa4 | 454 | test_tm_ptr = temp;\ |
ee12b079 | 245:da9d1bd999da | 455 | }\ |
ee12b079 | 209:63e9c8f8b5d2 | 456 | } |
ee12b079 | 209:63e9c8f8b5d2 | 457 | void verify_extracted(uint8_t c) |
ee12b079 | 209:63e9c8f8b5d2 | 458 | { |
ee12b079 | 209:63e9c8f8b5d2 | 459 | uint8_t wrong_extracted=0; |
ee12b079 | 209:63e9c8f8b5d2 | 460 | uint8_t temp_extracted[8] = {0}; |
ee12b079 | 209:63e9c8f8b5d2 | 461 | for(uint8_t z=(32*(c-1));z<(32*c);z++) |
ee12b079 | 209:63e9c8f8b5d2 | 462 | { |
ee12b079 | 209:63e9c8f8b5d2 | 463 | temp_extracted[0] = (uint8_t)((pl_block[z]&0xC0000000)>>30); |
ee12b079 | 209:63e9c8f8b5d2 | 464 | temp_extracted[1] = (uint8_t)((pl_block[z]&0x3C000000)>>26); |
ee12b079 | 209:63e9c8f8b5d2 | 465 | temp_extracted[2] = (uint8_t)((pl_block[z]&0x03E00000)>>21); |
ee12b079 | 209:63e9c8f8b5d2 | 466 | temp_extracted[3] = (uint8_t)((pl_block[z]&0x001F0000)>>16); |
ee12b079 | 209:63e9c8f8b5d2 | 467 | temp_extracted[4] = (uint8_t)((pl_block[z]&0x0000FC00)>>10); |
ee12b079 | 209:63e9c8f8b5d2 | 468 | temp_extracted[5] = (uint8_t)((pl_block[z]&0x000003F0)>>4); |
ee12b079 | 209:63e9c8f8b5d2 | 469 | temp_extracted[6] = (uint8_t)((pl_block[z]&0x0000000C)>>2); |
ee12b079 | 209:63e9c8f8b5d2 | 470 | temp_extracted[7] = (uint8_t)((pl_block[z]&0x00000003)); |
ee12b079 | 209:63e9c8f8b5d2 | 471 | |
ee12b079 | 209:63e9c8f8b5d2 | 472 | for(uint8_t y=0;y<8;y++) |
ee12b079 | 209:63e9c8f8b5d2 | 473 | { |
ee12b079 | 209:63e9c8f8b5d2 | 474 | if(temp_extracted[y]!=schedule1[z-(32*(c-1))][y]) |
ee12b079 | 209:63e9c8f8b5d2 | 475 | wrong_extracted++; |
ee12b079 | 209:63e9c8f8b5d2 | 476 | } |
ee12b079 | 209:63e9c8f8b5d2 | 477 | } |
ee12b079 | 209:63e9c8f8b5d2 | 478 | if(wrong_extracted!=0) |
ee12b079 | 209:63e9c8f8b5d2 | 479 | { |
ee12b079 | 209:63e9c8f8b5d2 | 480 | gPC.printf("\n\rExtracted values do not match input values!!!"); |
ee12b079 | 209:63e9c8f8b5d2 | 481 | gPC.printf("\n\rNumber of wrong extracted values = %d",wrong_extracted); |
ee12b079 | 209:63e9c8f8b5d2 | 482 | wrong_extracted = 0; |
ee12b079 | 209:63e9c8f8b5d2 | 483 | } |
ee12b079 | 209:63e9c8f8b5d2 | 484 | else if(wrong_extracted==0) |
ee12b079 | 209:63e9c8f8b5d2 | 485 | gPC.printf("\n\rExtracted values are correct(0x%d)",c); |
ee12b079 | 209:63e9c8f8b5d2 | 486 | } |
ee12b079 | 209:63e9c8f8b5d2 | 487 | void test_pl_main() |
ee12b079 | 209:63e9c8f8b5d2 | 488 | { |
ee12b079 | 245:da9d1bd999da | 489 | uint32_t temp_pl_block[192] = {0}; |
ee12b079 | 209:63e9c8f8b5d2 | 490 | uint8_t wrong_modify=0,z; |
ee12b079 | 209:63e9c8f8b5d2 | 491 | Base_tm* test_tm_ptr; |
ee12b079 | 245:da9d1bd999da | 492 | for(z=0;z<192;z++) |
ee12b079 | 245:da9d1bd999da | 493 | pl_block[z] = 0xFFFFFFFF; |
ee12b079 | 245:da9d1bd999da | 494 | // testing 0xF |
ee12b079 | 209:63e9c8f8b5d2 | 495 | send_verify_0xF(test_tm_ptr); |
ee12b079 | 245:da9d1bd999da | 496 | for(z=0;z<192;z++) |
ee12b079 | 245:da9d1bd999da | 497 | temp_pl_block[z] = pl_block[z]; |
ee12b079 | 209:63e9c8f8b5d2 | 498 | |
ee12b079 | 209:63e9c8f8b5d2 | 499 | //testing TC = 0x1,0x2...0x6 |
ee12b079 | 245:da9d1bd999da | 500 | int w =1; |
chaithanyarss | 290:3159ff1081a2 | 501 | for(uint8_t v=1;v<7;v++) |
ee12b079 | 209:63e9c8f8b5d2 | 502 | { |
chaithanyarss | 290:3159ff1081a2 | 503 | switch(v) |
ee12b079 | 209:63e9c8f8b5d2 | 504 | { |
ee12b079 | 209:63e9c8f8b5d2 | 505 | case 1: test_schedule_1(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 506 | break; |
ee12b079 | 209:63e9c8f8b5d2 | 507 | case 2: test_schedule_2(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 508 | break; |
ee12b079 | 209:63e9c8f8b5d2 | 509 | case 3: test_schedule_3(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 510 | break; |
ee12b079 | 209:63e9c8f8b5d2 | 511 | case 4: test_schedule_4(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 512 | break; |
ee12b079 | 209:63e9c8f8b5d2 | 513 | case 5: test_schedule_5(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 514 | break; |
ee12b079 | 209:63e9c8f8b5d2 | 515 | case 6: test_schedule_6(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 516 | break; |
chaithanyarss | 290:3159ff1081a2 | 517 | } |
chaithanyarss | 290:3159ff1081a2 | 518 | //gPC.printf("\n\rIndex:%d",w); |
ee12b079 | 209:63e9c8f8b5d2 | 519 | if(v==1) |
ee12b079 | 209:63e9c8f8b5d2 | 520 | { |
ee12b079 | 209:63e9c8f8b5d2 | 521 | test_schedule_1(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 522 | } |
ee12b079 | 209:63e9c8f8b5d2 | 523 | else if(v==2) |
ee12b079 | 209:63e9c8f8b5d2 | 524 | { |
ee12b079 | 209:63e9c8f8b5d2 | 525 | test_schedule_2(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 526 | } |
ee12b079 | 209:63e9c8f8b5d2 | 527 | else if(v==3) |
ee12b079 | 209:63e9c8f8b5d2 | 528 | { |
ee12b079 | 209:63e9c8f8b5d2 | 529 | test_schedule_3(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 530 | } |
ee12b079 | 209:63e9c8f8b5d2 | 531 | else if(v==4) |
ee12b079 | 209:63e9c8f8b5d2 | 532 | { |
ee12b079 | 209:63e9c8f8b5d2 | 533 | test_schedule_4(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 534 | } |
ee12b079 | 209:63e9c8f8b5d2 | 535 | else if(v==5) |
ee12b079 | 209:63e9c8f8b5d2 | 536 | { |
ee12b079 | 209:63e9c8f8b5d2 | 537 | test_schedule_5(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 538 | } |
ee12b079 | 209:63e9c8f8b5d2 | 539 | else if(v==6) |
ee12b079 | 209:63e9c8f8b5d2 | 540 | { |
ee12b079 | 209:63e9c8f8b5d2 | 541 | test_schedule_6(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 542 | } |
ee12b079 | 245:da9d1bd999da | 543 | for(z=0;z<192;z++) |
ee12b079 | 209:63e9c8f8b5d2 | 544 | { |
ee12b079 | 209:63e9c8f8b5d2 | 545 | if((z>=((v-1)*32)) && (z<=((v*32)-1))) |
ee12b079 | 209:63e9c8f8b5d2 | 546 | z++; |
ee12b079 | 209:63e9c8f8b5d2 | 547 | else |
ee12b079 | 209:63e9c8f8b5d2 | 548 | { |
ee12b079 | 209:63e9c8f8b5d2 | 549 | if(temp_pl_block[z]!=pl_block[z]) |
ee12b079 | 209:63e9c8f8b5d2 | 550 | wrong_modify++; |
ee12b079 | 209:63e9c8f8b5d2 | 551 | } |
ee12b079 | 209:63e9c8f8b5d2 | 552 | } |
ee12b079 | 209:63e9c8f8b5d2 | 553 | if(wrong_modify!=0) |
ee12b079 | 209:63e9c8f8b5d2 | 554 | { |
ee12b079 | 209:63e9c8f8b5d2 | 555 | gPC.printf("\n\rWrong values of pl_block modified by TC = 0x%d",v); |
ee12b079 | 209:63e9c8f8b5d2 | 556 | gPC.printf("\n\rNumber of wrong modifications = %d",wrong_modify); |
ee12b079 | 209:63e9c8f8b5d2 | 557 | wrong_modify = 0; |
ee12b079 | 209:63e9c8f8b5d2 | 558 | } |
ee12b079 | 209:63e9c8f8b5d2 | 559 | else if(wrong_modify==0) |
ee12b079 | 209:63e9c8f8b5d2 | 560 | { |
ee12b079 | 209:63e9c8f8b5d2 | 561 | gPC.printf("\n\rTC(0x%d) updated pl_block correctly",v); |
ee12b079 | 209:63e9c8f8b5d2 | 562 | for(uint8_t i=0;i<=188;i+=4) |
ee12b079 | 209:63e9c8f8b5d2 | 563 | { |
ee12b079 | 209:63e9c8f8b5d2 | 564 | //gPC.printf("\n\r%03d-0x%08X\t%03d-0x%08X",(i),pl_block[i],(i)+1,pl_block[(i)+1]); |
ee12b079 | 209:63e9c8f8b5d2 | 565 | //gPC.printf("\t%03d-0x%08X\t%03d-0x%08X\n",(i)+2,pl_block[(i)+2],(i)+3,pl_block[(i)+3]); |
ee12b079 | 209:63e9c8f8b5d2 | 566 | } |
ee12b079 | 245:da9d1bd999da | 567 | } |
ee12b079 | 209:63e9c8f8b5d2 | 568 | send_verify_0xF(test_tm_ptr); |
ee12b079 | 209:63e9c8f8b5d2 | 569 | verify_extracted(v); |
ee12b079 | 245:da9d1bd999da | 570 | for(z=0;z<192;z++) |
ee12b079 | 245:da9d1bd999da | 571 | temp_pl_block[z] = pl_block[z]; |
chaithanyarss | 290:3159ff1081a2 | 572 | wait(1); |
ee12b079 | 209:63e9c8f8b5d2 | 573 | } |
ee12b079 | 209:63e9c8f8b5d2 | 574 | gPC.printf("\n\rTesting TC_TM block processing complete"); |
ee12b079 | 209:63e9c8f8b5d2 | 575 | } |