CDMS code for testing sbc

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of CDMS_CODE by shubham c

Committer:
ee12b079
Date:
Sun Jul 24 12:15:03 2016 +0000
Revision:
275:a2f1d544ab8b
Parent:
266:ae588e75cfa4
CDMS code for testing sbc

Who changed what in which revision?

UserRevisionLine numberNew 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;
ee12b079 245:da9d1bd999da 501 for(uint8_t v=1;w<1000;w++)
ee12b079 209:63e9c8f8b5d2 502 {
ee12b079 209:63e9c8f8b5d2 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;
ee12b079 209:63e9c8f8b5d2 517 }*/
ee12b079 245:da9d1bd999da 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];
ee12b079 245:da9d1bd999da 572 //wait(1);
ee12b079 209:63e9c8f8b5d2 573 }
ee12b079 209:63e9c8f8b5d2 574 gPC.printf("\n\rTesting TC_TM block processing complete");
ee12b079 209:63e9c8f8b5d2 575 }