working version

Dependencies:   mbed mbed-rtos SimpleDMA FreescaleIAP eeprom

Fork of CDMS_CODE_FM_28JAN2017 by samp Srinivasan

Committer:
samp1234
Date:
Sun Apr 03 15:35:53 2022 +0000
Revision:
357:f3d48d62e00e
Parent:
356:197c93dc2012
First commit test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ee12b079 321:42bdefc37270 1
ee12b079 321:42bdefc37270 2 #define RESET_CDMS NVIC_SystemReset()
krishanprajapat 117:bfdc807f3d3c 3 #define get_tc_list(tm_ptr, thePSC){\
krishanprajapat 117:bfdc807f3d3c 4 uint8_t TM_PSC = 0xFF;\
krishanprajapat 117:bfdc807f3d3c 5 uint8_t TC_PSC = thePSC;\
krishanprajapat 117:bfdc807f3d3c 6 int overflowCount = 0;\
krishanprajapat 117:bfdc807f3d3c 7 uint8_t TC_LIST_TAG = 0x00;\
krishanprajapat 117:bfdc807f3d3c 8 Base_tc *temp_tc = gHEAD_NODE_TCL;\
krishanprajapat 117:bfdc807f3d3c 9 bool first_time = true;\
krishanprajapat 117:bfdc807f3d3c 10 Base_tm *current_tm = NULL;\
krishanprajapat 117:bfdc807f3d3c 11 while( temp_tc != NULL ){\
krishanprajapat 117:bfdc807f3d3c 12 if( overflowCount < TCL_OVERFLOW_CONSTANT ){\
krishanprajapat 117:bfdc807f3d3c 13 TM_PSC = TM_PSC + 1;\
krishanprajapat 117:bfdc807f3d3c 14 /*Increment TM_PSC for every new TM pointer created*/\
krishanprajapat 117:bfdc807f3d3c 15 Base_tm *temp_tm = new Long_tm;\
krishanprajapat 117:bfdc807f3d3c 16 temp_tm->next_TM = NULL;\
krishanprajapat 117:bfdc807f3d3c 17 temp_tm->TM_string[0] = 0x38;\
krishanprajapat 117:bfdc807f3d3c 18 /*Frame type(1) = 0; TMID = 0111; Spare = 000*/\
krishanprajapat 117:bfdc807f3d3c 19 temp_tm->TM_string[1] = TC_PSC;\
krishanprajapat 117:bfdc807f3d3c 20 temp_tm->TM_string[3] = TM_PSC;\
krishanprajapat 117:bfdc807f3d3c 21 int indexCustom = 4, num_of_short_tc = 0;\
krishanprajapat 117:bfdc807f3d3c 22 while(temp_tc != NULL){\
krishanprajapat 117:bfdc807f3d3c 23 if( overflowCount < TCL_OVERFLOW_CONSTANT ){\
krishanprajapat 117:bfdc807f3d3c 24 if( GETshort_or_long_tc(temp_tc) == SHORT_TC_CODE ){\
krishanprajapat 117:bfdc807f3d3c 25 for( int i = 0 ; i < TC_SHORT_SIZE ; ++i ){\
krishanprajapat 117:bfdc807f3d3c 26 temp_tm->TM_string[indexCustom + i] = temp_tc->TC_string[i];\
krishanprajapat 117:bfdc807f3d3c 27 }\
krishanprajapat 117:bfdc807f3d3c 28 indexCustom = indexCustom + TC_SHORT_SIZE;\
krishanprajapat 117:bfdc807f3d3c 29 ++overflowCount;\
krishanprajapat 117:bfdc807f3d3c 30 /*INCREMENT STUFF*/\
krishanprajapat 117:bfdc807f3d3c 31 temp_tc = temp_tc->next_TC;\
krishanprajapat 117:bfdc807f3d3c 32 num_of_short_tc = num_of_short_tc + 1;\
krishanprajapat 117:bfdc807f3d3c 33 if (temp_tc == NULL){\
krishanprajapat 117:bfdc807f3d3c 34 for (int i = indexCustom ; i < TM_LONG_SIZE-2 ; ++i){\
krishanprajapat 117:bfdc807f3d3c 35 temp_tm->TM_string[i] = 0;\
krishanprajapat 117:bfdc807f3d3c 36 /*Fill remaining values with 0*/\
krishanprajapat 117:bfdc807f3d3c 37 }\
krishanprajapat 117:bfdc807f3d3c 38 TC_LIST_TAG = num_of_short_tc;\
krishanprajapat 117:bfdc807f3d3c 39 break;\
krishanprajapat 117:bfdc807f3d3c 40 }\
krishanprajapat 117:bfdc807f3d3c 41 if( (GETshort_or_long_tc(temp_tc) == LONG_TC_CODE) || (num_of_short_tc == OBOSC_TCL_MAX_SHORT_SIZE) ){\
krishanprajapat 117:bfdc807f3d3c 42 /*Next TC is long or memory is filled*/\
krishanprajapat 117:bfdc807f3d3c 43 for(int i = indexCustom; i < TM_LONG_SIZE-2 ; ++i){\
krishanprajapat 117:bfdc807f3d3c 44 temp_tm->TM_string[i] = 0;\
krishanprajapat 117:bfdc807f3d3c 45 /*Fill remaining values with 0*/\
krishanprajapat 117:bfdc807f3d3c 46 }\
krishanprajapat 117:bfdc807f3d3c 47 TC_LIST_TAG = num_of_short_tc;\
krishanprajapat 117:bfdc807f3d3c 48 break;\
krishanprajapat 117:bfdc807f3d3c 49 }\
krishanprajapat 117:bfdc807f3d3c 50 }\
krishanprajapat 117:bfdc807f3d3c 51 else if (TC_LIST_TAG == OBOSC_TCL_TAG_LONG_FIRST_HALF){\
krishanprajapat 117:bfdc807f3d3c 52 /*Long TC, 2nd half*/\
krishanprajapat 117:bfdc807f3d3c 53 for (int i = 0; i < OBOSC_LONG_TC_SECOND_HALF_SIZE ; ++i){\
krishanprajapat 117:bfdc807f3d3c 54 temp_tm->TM_string[indexCustom + i] = temp_tc->TC_string[OBOSC_LONG_TC_FIRST_HALF_SIZE + i];\
krishanprajapat 117:bfdc807f3d3c 55 /*Fill the TM with TC_values*/\
krishanprajapat 117:bfdc807f3d3c 56 }\
krishanprajapat 117:bfdc807f3d3c 57 for (int i = OBOSC_LONG_TC_SECOND_HALF_SIZE + indexCustom ; i < TM_LONG_SIZE-2 ; ++i ){\
krishanprajapat 117:bfdc807f3d3c 58 temp_tm->TM_string[i] = 0;\
krishanprajapat 117:bfdc807f3d3c 59 /*Fill remaining values with 0*/\
krishanprajapat 117:bfdc807f3d3c 60 }\
krishanprajapat 117:bfdc807f3d3c 61 temp_tc = temp_tc->next_TC;\
krishanprajapat 117:bfdc807f3d3c 62 TC_LIST_TAG = OBOSC_TCL_TAG_LONG_SECOND_HALF;\
krishanprajapat 117:bfdc807f3d3c 63 ++overflowCount;\
krishanprajapat 117:bfdc807f3d3c 64 break;\
krishanprajapat 117:bfdc807f3d3c 65 }\
krishanprajapat 117:bfdc807f3d3c 66 else{\
krishanprajapat 117:bfdc807f3d3c 67 /*Long TC, 1st half */\
krishanprajapat 117:bfdc807f3d3c 68 for (int i = 0; i < OBOSC_LONG_TC_FIRST_HALF_SIZE; ++i){\
krishanprajapat 117:bfdc807f3d3c 69 /*gPC.printf("indexCustom = %d\r\n", indexCustom);*/\
krishanprajapat 117:bfdc807f3d3c 70 temp_tm->TM_string[indexCustom + i] = temp_tc->TC_string[i];\
krishanprajapat 117:bfdc807f3d3c 71 /*Fill the TM with TC_values*/\
krishanprajapat 117:bfdc807f3d3c 72 }\
krishanprajapat 117:bfdc807f3d3c 73 for (int i = OBOSC_LONG_TC_FIRST_HALF_SIZE + indexCustom ; i < TM_LONG_SIZE-2 ; ++i ){\
krishanprajapat 117:bfdc807f3d3c 74 temp_tm->TM_string[i] = 0;\
krishanprajapat 117:bfdc807f3d3c 75 /*Fill remaining values with 0*/\
krishanprajapat 117:bfdc807f3d3c 76 }\
krishanprajapat 117:bfdc807f3d3c 77 TC_LIST_TAG = OBOSC_TCL_TAG_LONG_FIRST_HALF;\
krishanprajapat 117:bfdc807f3d3c 78 break;\
krishanprajapat 117:bfdc807f3d3c 79 }\
krishanprajapat 117:bfdc807f3d3c 80 }\
krishanprajapat 117:bfdc807f3d3c 81 else{\
aniruddhv 262:752c8689944a 82 RESET_CDMS;\
krishanprajapat 117:bfdc807f3d3c 83 break;\
krishanprajapat 117:bfdc807f3d3c 84 }\
krishanprajapat 117:bfdc807f3d3c 85 }\
krishanprajapat 117:bfdc807f3d3c 86 temp_tm->TM_string[2] = TC_LIST_TAG;\
krishanprajapat 117:bfdc807f3d3c 87 /*TC_LIST_TAG as is updated in the inner while loop*/\
krishanprajapat 117:bfdc807f3d3c 88 uint16_t crc16 = crc16_gen(temp_tm->TM_string, TM_LONG_SIZE-2);\
krishanprajapat 117:bfdc807f3d3c 89 temp_tm->TM_string[TM_LONG_SIZE-2] = (crc16 & 0xFF00) >> 8 ;\
krishanprajapat 117:bfdc807f3d3c 90 temp_tm->TM_string[TM_LONG_SIZE-1] = crc16 & 0x00FF;\
krishanprajapat 117:bfdc807f3d3c 91 /*Attach this new node to the TM linked list*/\
krishanprajapat 117:bfdc807f3d3c 92 if( first_time ){\
krishanprajapat 117:bfdc807f3d3c 93 first_time = false;\
krishanprajapat 117:bfdc807f3d3c 94 tm_ptr = temp_tm;\
krishanprajapat 117:bfdc807f3d3c 95 current_tm = temp_tm;\
krishanprajapat 117:bfdc807f3d3c 96 }\
krishanprajapat 117:bfdc807f3d3c 97 else{\
krishanprajapat 117:bfdc807f3d3c 98 current_tm->next_TM = temp_tm;\
krishanprajapat 117:bfdc807f3d3c 99 current_tm = current_tm->next_TM;\
krishanprajapat 117:bfdc807f3d3c 100 }\
krishanprajapat 117:bfdc807f3d3c 101 /*Attach this new node at the end*/\
krishanprajapat 117:bfdc807f3d3c 102 }\
krishanprajapat 117:bfdc807f3d3c 103 else{\
aniruddhv 262:752c8689944a 104 RESET_CDMS;\
krishanprajapat 117:bfdc807f3d3c 105 break;\
krishanprajapat 117:bfdc807f3d3c 106 }\
krishanprajapat 117:bfdc807f3d3c 107 }\
krishanprajapat 117:bfdc807f3d3c 108 }
krishanprajapat 117:bfdc807f3d3c 109
krishanprajapat 122:b99f8be0a51a 110 #define put_crc_l1_ack(tm_ptr) {\
krishanprajapat 122:b99f8be0a51a 111 /*TC LIST STATUS*/\
aniruddhv 262:752c8689944a 112 tm_ptr->TM_string[3] |= (gMASTER_STATE << 6) & 0xC0;\
krishanprajapat 122:b99f8be0a51a 113 /*PA HOT*/\
krishanprajapat 122:b99f8be0a51a 114 if( gFLAGS & COM_PA_HOT_FLAG ){\
aniruddhv 262:752c8689944a 115 tm_ptr->TM_string[3] |= (1 << 5);\
aniruddhv 262:752c8689944a 116 }\
aniruddhv 262:752c8689944a 117 else{\
aniruddhv 262:752c8689944a 118 tm_ptr->TM_string[3] &= ~(1 << 5);\
aniruddhv 262:752c8689944a 119 }\
aniruddhv 262:752c8689944a 120 /*PA OC*/\
aniruddhv 262:752c8689944a 121 if( gFLAGS & COM_PA_OC_FLAG ){\
krishanprajapat 122:b99f8be0a51a 122 tm_ptr->TM_string[3] |= (1 << 4);\
krishanprajapat 122:b99f8be0a51a 123 }\
krishanprajapat 122:b99f8be0a51a 124 else{\
krishanprajapat 122:b99f8be0a51a 125 tm_ptr->TM_string[3] &= ~(1 << 4);\
krishanprajapat 122:b99f8be0a51a 126 }\
krishanprajapat 122:b99f8be0a51a 127 uint16_t crc_checksum = crc16_gen(tm_ptr->TM_string, TM_SHORT_SIZE-2);\
krishanprajapat 122:b99f8be0a51a 128 tm_ptr->TM_string[TM_SHORT_SIZE-2] = (crc_checksum >> 8) & 0xFF;\
krishanprajapat 122:b99f8be0a51a 129 tm_ptr->TM_string[TM_SHORT_SIZE-1] = crc_checksum & 0xFF;\
krishanprajapat 122:b99f8be0a51a 130 }
krishanprajapat 122:b99f8be0a51a 131
krishanprajapat 122:b99f8be0a51a 132 #define fill_l1_ack(tm_ptr) {\
krishanprajapat 122:b99f8be0a51a 133 tm_ptr->next_TM = NULL;\
krishanprajapat 122:b99f8be0a51a 134 tm_ptr->TM_string[0] = TMID_ACK_L1 << 4;\
krishanprajapat 122:b99f8be0a51a 135 tm_ptr->TM_string[1] = gTOTAL_INCORRECT_SIZE_TC & 0xFF;\
krishanprajapat 122:b99f8be0a51a 136 tm_ptr->TM_string[2] = gTOTAL_CRC_FAIL_TC & 0xFF;\
krishanprajapat 122:b99f8be0a51a 137 }
krishanprajapat 122:b99f8be0a51a 138
aniruddhv 262:752c8689944a 139 #define P_COM_HK{\
aniruddhv 262:752c8689944a 140 uint8_t returnHere;\
aniruddhv 262:752c8689944a 141 isPAhot(returnHere);\
aniruddhv 262:752c8689944a 142 if (returnHere == 0xFF)\
aniruddhv 264:f7d8f9f361e3 143 gFLAGS = gFLAGS | COM_PA_HOT_FLAG;\
aniruddhv 262:752c8689944a 144 else\
aniruddhv 264:f7d8f9f361e3 145 gFLAGS = gFLAGS & ~(COM_PA_HOT_FLAG);\
aniruddhv 262:752c8689944a 146 if (gFLAGS & COM_PA_OC_FLAG){\
aniruddhv 262:752c8689944a 147 COM_TX_CNTRL = 1;\
samp1234 352:022c513aee03 148 COM_DATA_fromuC_ENAIN = 1;\
samp1234 352:022c513aee03 149 COM_DATA_fromISO_ENAOUT=1;\
aniruddhv 262:752c8689944a 150 wait_ms(5);\
aniruddhv 262:752c8689944a 151 }\
aniruddhv 262:752c8689944a 152 isPAoc(returnHere);\
aniruddhv 262:752c8689944a 153 if (returnHere == 0xFF)\
aniruddhv 264:f7d8f9f361e3 154 gFLAGS = gFLAGS | COM_PA_OC_FLAG;\
aniruddhv 262:752c8689944a 155 else\
aniruddhv 264:f7d8f9f361e3 156 gFLAGS = gFLAGS & ~(COM_PA_OC_FLAG);\
aniruddhv 262:752c8689944a 157 /*P_CDMS_HANDLE_HW_FAULTS*/\
aniruddhv 262:752c8689944a 158 }
krishanprajapat 122:b99f8be0a51a 159 #define isPAhot(returnHere){\
aniruddhv 262:752c8689944a 160 uint8_t pa_temp = 0;\
samp1234 354:eb6c863756a8 161 float pa_temp1 = 0;\
aniruddhv 262:752c8689944a 162 SelectLinec0=0;\
aniruddhv 262:752c8689944a 163 SelectLinec1=0;\
aniruddhv 262:752c8689944a 164 SelectLinec2=0;\
aniruddhv 262:752c8689944a 165 SelectLinec3=1;\
samp1234 354:eb6c863756a8 166 wait_ms(1);\
samp1234 354:eb6c863756a8 167 pa_temp1 = TempInput.read();\
samp1234 354:eb6c863756a8 168 pa_temp1 = pa_temp1 * 3.3;\
ee12b079 318:978d72f191f9 169 float resistance;\
samp1234 356:197c93dc2012 170 resistance = 24300 * pa_temp1/(3.3 - pa_temp1);\
samp1234 356:197c93dc2012 171 if(pa_temp1 < 1.378) {\
samp1234 354:eb6c863756a8 172 pa_temp1 = (3694/log(24.032242*resistance))-273;\
aniruddhv 262:752c8689944a 173 }\
aniruddhv 262:752c8689944a 174 else{\
samp1234 354:eb6c863756a8 175 pa_temp1 = (3365.4/log(7.60573*resistance))-273;\
aniruddhv 262:752c8689944a 176 }\
samp1234 354:eb6c863756a8 177 gPC.printf("PA Temp = %f \r\n",pa_temp1);\
samp1234 354:eb6c863756a8 178 float pa_volt = 0;\
samp1234 354:eb6c863756a8 179 SelectLinec0=0;\
samp1234 354:eb6c863756a8 180 SelectLinec1=0;\
samp1234 354:eb6c863756a8 181 SelectLinec2=0;\
samp1234 354:eb6c863756a8 182 SelectLinec3=0;\
samp1234 354:eb6c863756a8 183 wait_ms(1);\
samp1234 354:eb6c863756a8 184 pa_volt = 2*3.3*TempInput.read();\
samp1234 354:eb6c863756a8 185 gPC.printf("PA V = %f r\n",pa_volt);\
samp1234 354:eb6c863756a8 186 COM_PA_IC_TMP = quantiz(tstart_thermistor,tstep_thermistor,pa_temp1);\
samp1234 354:eb6c863756a8 187 COM_PA_TMP_IN_TX = COM_PA_IC_TMP;\
ee12b079 318:978d72f191f9 188 /*COM_PA_TMP_HIGH to be found*/\
samp1234 356:197c93dc2012 189 if (pa_temp1 > COM_PA_TMP_HIGH){\
aniruddhv 264:f7d8f9f361e3 190 returnHere = 0xFF;\
aniruddhv 264:f7d8f9f361e3 191 gPC.puts("PA is measured HOT\r\n");\
aniruddhv 262:752c8689944a 192 }\
aniruddhv 262:752c8689944a 193 else{\
aniruddhv 264:f7d8f9f361e3 194 returnHere = 0;\
aniruddhv 264:f7d8f9f361e3 195 gPC.puts("PA is measured not HOT\r\n");\
aniruddhv 262:752c8689944a 196 }\
aniruddhv 262:752c8689944a 197 }
aniruddhv 262:752c8689944a 198
aniruddhv 262:752c8689944a 199 #define isPAoc(returnHere){\
ee12b079 338:d63eb331a67d 200 if (!com_oc_sw_status){\
aniruddhv 264:f7d8f9f361e3 201 returnHere = 0xFF;\
aniruddhv 264:f7d8f9f361e3 202 }\
aniruddhv 264:f7d8f9f361e3 203 else{\
aniruddhv 262:752c8689944a 204 returnHere = 0;\
aniruddhv 264:f7d8f9f361e3 205 }\
krishanprajapat 122:b99f8be0a51a 206 }
krishanprajapat 122:b99f8be0a51a 207
krishanprajapat 117:bfdc807f3d3c 208 #define get_call_sign(tm_ptr) {\
krishanprajapat 117:bfdc807f3d3c 209 Base_tm* call_sign_tm = new Short_tm;\
krishanprajapat 117:bfdc807f3d3c 210 call_sign_tm->next_TM = NULL;\
krishanprajapat 117:bfdc807f3d3c 211 tm_ptr = call_sign_tm;\
krishanprajapat 117:bfdc807f3d3c 212 for( int i = 0 ; i < TM_SHORT_SIZE ; ++i ){\
krishanprajapat 117:bfdc807f3d3c 213 call_sign_tm->TM_string[i] = gCALL_SIGN_STRING[i];\
krishanprajapat 117:bfdc807f3d3c 214 }\
krishanprajapat 119:2b5632bc78ab 215 }
krishanprajapat 119:2b5632bc78ab 216
krishanprajapat 119:2b5632bc78ab 217 #define get_ack_l1( tm_ptr ){\
krishanprajapat 119:2b5632bc78ab 218 Base_tc *current_TC = gHEAD_NODE_TCL;\
krishanprajapat 119:2b5632bc78ab 219 Base_tm *l1_ack = new Short_tm;\
krishanprajapat 119:2b5632bc78ab 220 /*APPEND TO THE tm_ptr HERE*/\
krishanprajapat 119:2b5632bc78ab 221 tm_ptr = l1_ack;\
krishanprajapat 119:2b5632bc78ab 222 fill_l1_ack(l1_ack);\
krishanprajapat 119:2b5632bc78ab 223 int TC_count = 0;\
krishanprajapat 119:2b5632bc78ab 224 int overflowCountL1 = 0;\
krishanprajapat 119:2b5632bc78ab 225 while(current_TC != NULL){\
krishanprajapat 119:2b5632bc78ab 226 if( overflowCountL1 < TCL_OVERFLOW_CONSTANT ){\
krishanprajapat 119:2b5632bc78ab 227 /*IF CRC PASS*/\
krishanprajapat 119:2b5632bc78ab 228 if( (GETcrc_pass(current_TC) == 1) ){\
krishanprajapat 119:2b5632bc78ab 229 if(TC_count > 4){\
krishanprajapat 119:2b5632bc78ab 230 put_crc_l1_ack( l1_ack );\
krishanprajapat 119:2b5632bc78ab 231 /*extend the TM linked list*/\
krishanprajapat 119:2b5632bc78ab 232 TC_count = 0;\
krishanprajapat 119:2b5632bc78ab 233 l1_ack->next_TM = new Short_tm;\
krishanprajapat 119:2b5632bc78ab 234 l1_ack = l1_ack->next_TM;\
krishanprajapat 119:2b5632bc78ab 235 fill_l1_ack(l1_ack);\
krishanprajapat 119:2b5632bc78ab 236 }\
krishanprajapat 119:2b5632bc78ab 237 /*PSC starts from 7th byte*/\
krishanprajapat 119:2b5632bc78ab 238 l1_ack->TM_string[6+TC_count] = GETpacket_seq_count(current_TC);\
krishanprajapat 119:2b5632bc78ab 239 /*TC exec status*/\
krishanprajapat 119:2b5632bc78ab 240 switch(TC_count){\
krishanprajapat 119:2b5632bc78ab 241 case 0:\
krishanprajapat 119:2b5632bc78ab 242 l1_ack->TM_string[3] = (GETexec_status(current_TC)) & 0x0F;\
krishanprajapat 119:2b5632bc78ab 243 break;\
krishanprajapat 119:2b5632bc78ab 244 case 1:\
krishanprajapat 119:2b5632bc78ab 245 l1_ack->TM_string[4] = (GETexec_status(current_TC) << 4) & 0xF0;\
krishanprajapat 119:2b5632bc78ab 246 break;\
krishanprajapat 119:2b5632bc78ab 247 case 2:\
krishanprajapat 119:2b5632bc78ab 248 l1_ack->TM_string[4] |= (GETexec_status(current_TC)) & 0x0F;\
krishanprajapat 119:2b5632bc78ab 249 break;\
krishanprajapat 119:2b5632bc78ab 250 case 3:\
krishanprajapat 119:2b5632bc78ab 251 l1_ack->TM_string[5] = (GETexec_status(current_TC) << 4) & 0xF0;\
krishanprajapat 119:2b5632bc78ab 252 break;\
krishanprajapat 119:2b5632bc78ab 253 case 4:\
krishanprajapat 119:2b5632bc78ab 254 l1_ack->TM_string[5] |= (GETexec_status(current_TC)) & 0x0F;\
krishanprajapat 119:2b5632bc78ab 255 }\
krishanprajapat 119:2b5632bc78ab 256 ++TC_count;\
krishanprajapat 119:2b5632bc78ab 257 }\
krishanprajapat 119:2b5632bc78ab 258 current_TC = current_TC->next_TC;\
krishanprajapat 119:2b5632bc78ab 259 ++overflowCountL1;\
krishanprajapat 119:2b5632bc78ab 260 }\
krishanprajapat 119:2b5632bc78ab 261 else{\
aniruddhv 262:752c8689944a 262 RESET_CDMS;\
krishanprajapat 119:2b5632bc78ab 263 break;\
krishanprajapat 119:2b5632bc78ab 264 }\
krishanprajapat 119:2b5632bc78ab 265 }\
krishanprajapat 119:2b5632bc78ab 266 /*FILL UP THE REMAINING FIELDS WITH 0x00 as PSC, AND 0xF as tc exec status*/\
krishanprajapat 119:2b5632bc78ab 267 if( (TC_count < 5) && (TC_count != 0) ){\
krishanprajapat 119:2b5632bc78ab 268 while(TC_count < 5){\
krishanprajapat 119:2b5632bc78ab 269 l1_ack->TM_string[6+TC_count] = 0x00;\
krishanprajapat 119:2b5632bc78ab 270 switch(TC_count){\
krishanprajapat 119:2b5632bc78ab 271 case 1:\
krishanprajapat 119:2b5632bc78ab 272 l1_ack->TM_string[4] = 0xF0;\
krishanprajapat 119:2b5632bc78ab 273 break;\
krishanprajapat 119:2b5632bc78ab 274 case 2:\
krishanprajapat 119:2b5632bc78ab 275 l1_ack->TM_string[4] |= 0x0F;\
krishanprajapat 119:2b5632bc78ab 276 break;\
krishanprajapat 119:2b5632bc78ab 277 case 3:\
krishanprajapat 119:2b5632bc78ab 278 l1_ack->TM_string[5] = 0xF0;\
krishanprajapat 119:2b5632bc78ab 279 break;\
krishanprajapat 119:2b5632bc78ab 280 case 4:\
krishanprajapat 119:2b5632bc78ab 281 l1_ack->TM_string[5] |= 0x0F;\
krishanprajapat 119:2b5632bc78ab 282 }\
krishanprajapat 119:2b5632bc78ab 283 ++TC_count;\
krishanprajapat 119:2b5632bc78ab 284 }\
krishanprajapat 119:2b5632bc78ab 285 }\
krishanprajapat 119:2b5632bc78ab 286 put_crc_l1_ack(l1_ack);\
krishanprajapat 117:bfdc807f3d3c 287 }