CDMS_CODE_samp_23SEP_DMA_flag

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of CDMS_CODE_samp_23SEP_DMA by iitm sat

Committer:
aniruddhv
Date:
Thu Jul 14 17:57:05 2016 +0000
Revision:
262:752c8689944a
Parent:
95:42d6747900cb
Child:
263:3b872778b8c7
Merged Aniruddh's code, changed power_on and power_off BAE, added PAHOT and PAOC measurements, added sys_reset_cdms timer

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aniruddhv 262:752c8689944a 1 #define STANDBY_PRCS(tm_ptr){\
aniruddhv 262:752c8689944a 2 Base_tc *stdby_tc = new Long_tc;\
aniruddhv 262:752c8689944a 3 stdby_tc->next_TC = NULL;\
aniruddhv 262:752c8689944a 4 PUTshort_or_long(stdby_tc,LONG_TC_CODE);\
aniruddhv 262:752c8689944a 5 PUTcrc_pass(stdby_tc,0x1);\
aniruddhv 262:752c8689944a 6 PUTexec_status(stdby_tc,0);\
aniruddhv 262:752c8689944a 7 stdby_tc->TC_string[0] = 0x01;\
aniruddhv 262:752c8689944a 8 stdby_tc->TC_string[1] = 0x41;\
aniruddhv 262:752c8689944a 9 stdby_tc->TC_string[2] = 0x81;\
aniruddhv 262:752c8689944a 10 stdby_tc->TC_string[3] = 0x40;\
aniruddhv 262:752c8689944a 11 stdby_tc->TC_string[4] = 0;\
aniruddhv 262:752c8689944a 12 stdby_tc->TC_string[5] = 0;\
aniruddhv 262:752c8689944a 13 stdby_tc->TC_string[6] = 0;\
aniruddhv 262:752c8689944a 14 stdby_tc->TC_string[7] = 0;\
aniruddhv 262:752c8689944a 15 stdby_tc->TC_string[8] = 0;\
aniruddhv 262:752c8689944a 16 uint16_t crc16 = crc16_gen(stdby_tc->TC_string, 9);\
aniruddhv 262:752c8689944a 17 stdby_tc->TC_string[9] = (crc16 & 0xFF00)>>8;\
aniruddhv 262:752c8689944a 18 stdby_tc->TC_string[10] = (crc16 & 0x00FF);\
aniruddhv 262:752c8689944a 19 for(int i = 11; i < 135; i++){\
aniruddhv 262:752c8689944a 20 stdby_tc->TC_string[i] = 0;\
aniruddhv 262:752c8689944a 21 }\
aniruddhv 262:752c8689944a 22 tm_ptr = FCTN_CDMS_RLY_TMTC(stdby_tc);\
aniruddhv 262:752c8689944a 23 delete stdby_tc;\
aniruddhv 262:752c8689944a 24 }
aniruddhv 262:752c8689944a 25
aniruddhv 262:752c8689944a 26 #define SET_BCN_STANDBY(tm_ptr){\
aniruddhv 262:752c8689944a 27 Base_tc *beacon_tc = new Long_tc;\
aniruddhv 262:752c8689944a 28 beacon_tc->next_TC = NULL;\
aniruddhv 262:752c8689944a 29 PUTshort_or_long(beacon_tc,LONG_TC_CODE);\
aniruddhv 262:752c8689944a 30 PUTcrc_pass(beacon_tc,0x1);\
aniruddhv 262:752c8689944a 31 PUTexec_status(beacon_tc,0);\
aniruddhv 262:752c8689944a 32 beacon_tc->TC_string[0] = 0x01;\
aniruddhv 262:752c8689944a 33 beacon_tc->TC_string[1] = BCN_APID_SOURCE;\
aniruddhv 262:752c8689944a 34 beacon_tc->TC_string[2] = BCN_SERVICE;\
aniruddhv 262:752c8689944a 35 beacon_tc->TC_string[3] = 0xE2;\
aniruddhv 262:752c8689944a 36 beacon_tc->TC_string[4] = 0x01;\
aniruddhv 262:752c8689944a 37 beacon_tc->TC_string[5] = 0;\
aniruddhv 262:752c8689944a 38 beacon_tc->TC_string[6] = 0;\
aniruddhv 262:752c8689944a 39 beacon_tc->TC_string[7] = 0;\
aniruddhv 262:752c8689944a 40 beacon_tc->TC_string[8] = 0;\
aniruddhv 262:752c8689944a 41 uint16_t crc16 = crc16_gen(beacon_tc->TC_string, 9);\
aniruddhv 262:752c8689944a 42 beacon_tc->TC_string[9] = (crc16 & 0xFF00)>>8;\
aniruddhv 262:752c8689944a 43 beacon_tc->TC_string[10] = (crc16 & 0x00FF);\
aniruddhv 262:752c8689944a 44 for(int i = 11; i < 135; i++){\
aniruddhv 262:752c8689944a 45 beacon_tc->TC_string[i] = 0;\
aniruddhv 262:752c8689944a 46 }\
aniruddhv 262:752c8689944a 47 tm_ptr = FCTN_CDMS_RLY_TMTC(beacon_tc);\
aniruddhv 262:752c8689944a 48 delete beacon_tc;\
aniruddhv 262:752c8689944a 49 }
aniruddhv 262:752c8689944a 50
aniruddhv 262:752c8689944a 51 #define P_CDMS_HK_MAIN {\
aniruddhv 262:752c8689944a 52 Base_tc *hk_main_ptr = new Short_tc;\
aniruddhv 262:752c8689944a 53 hk_main_ptr->next_TC = NULL;\
aniruddhv 262:752c8689944a 54 PUTshort_or_long(hk_main_ptr,SHORT_TC_CODE);\
aniruddhv 262:752c8689944a 55 PUTcrc_pass(hk_main_ptr,0x1);\
aniruddhv 262:752c8689944a 56 PUTexec_status(hk_main_ptr,0);\
aniruddhv 262:752c8689944a 57 hk_main_ptr->TC_string[0] = 0x01;\
aniruddhv 262:752c8689944a 58 hk_main_ptr->TC_string[1] = 0x81;\
aniruddhv 262:752c8689944a 59 hk_main_ptr->TC_string[2] = 0x81;\
aniruddhv 262:752c8689944a 60 hk_main_ptr->TC_string[3] = 0x04;\
aniruddhv 262:752c8689944a 61 hk_main_ptr->TC_string[4] = 0;\
aniruddhv 262:752c8689944a 62 hk_main_ptr->TC_string[5] = 0;\
aniruddhv 262:752c8689944a 63 hk_main_ptr->TC_string[6] = 0;\
aniruddhv 262:752c8689944a 64 hk_main_ptr->TC_string[7] = 0;\
aniruddhv 262:752c8689944a 65 hk_main_ptr->TC_string[8] = 0;\
aniruddhv 262:752c8689944a 66 uint16_t crc16 = crc16_gen(hk_main_ptr->TC_string, 9);\
aniruddhv 262:752c8689944a 67 hk_main_ptr->TC_string[9] = (crc16 & 0xFF00)>>8;\
aniruddhv 262:752c8689944a 68 hk_main_ptr->TC_string[10] = (crc16 & 0x00FF);\
aniruddhv 262:752c8689944a 69 Base_tm *tm_ptr = NULL;\
aniruddhv 262:752c8689944a 70 tm_ptr = FCTN_CDMS_RLY_TMTC(hk_main_ptr);\
aniruddhv 262:752c8689944a 71 delete hk_main_ptr;\
aniruddhv 262:752c8689944a 72 /*DELETE THE TM AFTER USE*/\
aniruddhv 262:752c8689944a 73 Base_tm *del_tm = tm_ptr;\
aniruddhv 262:752c8689944a 74 int overCount = 0;\
aniruddhv 262:752c8689944a 75 while( del_tm != NULL ){\
aniruddhv 262:752c8689944a 76 if( (overCount < TM_OVERFLOW_CONSTANT) ){\
aniruddhv 262:752c8689944a 77 Base_tm *temp = del_tm->next_TM;\
aniruddhv 262:752c8689944a 78 delete del_tm;\
aniruddhv 262:752c8689944a 79 del_tm = temp;\
aniruddhv 262:752c8689944a 80 ++overCount;\
shreeshas95 4:104dd82c99b8 81 }\
aniruddhv 262:752c8689944a 82 else{\
aniruddhv 262:752c8689944a 83 RESET_CDMS;\
shreeshas95 4:104dd82c99b8 84 break;\
shreeshas95 4:104dd82c99b8 85 }\
shreeshas95 4:104dd82c99b8 86 }\
aniruddhv 262:752c8689944a 87 }
aniruddhv 262:752c8689944a 88
aniruddhv 262:752c8689944a 89 #define P_BCN_TX_MAIN(tm_ptr) {\
aniruddhv 262:752c8689944a 90 Base_tc *bcn_tx_main_ptr = new Long_tc;\
aniruddhv 262:752c8689944a 91 bcn_tx_main_ptr->next_TC = NULL;\
aniruddhv 262:752c8689944a 92 PUTshort_or_long(bcn_tx_main_ptr,LONG_TC_CODE);\
aniruddhv 262:752c8689944a 93 PUTcrc_pass(bcn_tx_main_ptr,0x1);\
aniruddhv 262:752c8689944a 94 PUTexec_status(bcn_tx_main_ptr,0);\
aniruddhv 262:752c8689944a 95 bcn_tx_main_ptr->TC_string[0] = 0x01;\
aniruddhv 262:752c8689944a 96 bcn_tx_main_ptr->TC_string[1] = 0x41;\
aniruddhv 262:752c8689944a 97 bcn_tx_main_ptr->TC_string[2] = 0x81;\
aniruddhv 262:752c8689944a 98 bcn_tx_main_ptr->TC_string[3] = 0x07;\
aniruddhv 262:752c8689944a 99 bcn_tx_main_ptr->TC_string[4] = 0;\
aniruddhv 262:752c8689944a 100 bcn_tx_main_ptr->TC_string[5] = 0;\
aniruddhv 262:752c8689944a 101 bcn_tx_main_ptr->TC_string[6] = 0;\
aniruddhv 262:752c8689944a 102 bcn_tx_main_ptr->TC_string[7] = 0;\
aniruddhv 262:752c8689944a 103 bcn_tx_main_ptr->TC_string[8] = 0;\
aniruddhv 262:752c8689944a 104 uint16_t crc16 = crc16_gen(bcn_tx_main_ptr->TC_string, 9);\
aniruddhv 262:752c8689944a 105 bcn_tx_main_ptr->TC_string[9] = (crc16 & 0xFF00)>>8;\
aniruddhv 262:752c8689944a 106 bcn_tx_main_ptr->TC_string[10] = (crc16 & 0x00FF);\
aniruddhv 262:752c8689944a 107 for(int i = 11; i < 135; i++){\
aniruddhv 262:752c8689944a 108 bcn_tx_main_ptr->TC_string[i] = 0;\
shreeshas95 4:104dd82c99b8 109 }\
aniruddhv 262:752c8689944a 110 tm_ptr = FCTN_CDMS_RLY_TMTC(bcn_tx_main_ptr);\
aniruddhv 262:752c8689944a 111 delete bcn_tx_main_ptr;\
aniruddhv 262:752c8689944a 112 }
aniruddhv 262:752c8689944a 113
aniruddhv 262:752c8689944a 114 void COM_POWER_ON_TX() {
aniruddhv 262:752c8689944a 115 if (DEBUG)
aniruddhv 262:752c8689944a 116 gPC.puts("Inside COM_POWER_ON_TX\r\n");
aniruddhv 262:752c8689944a 117 if( !(gFLAGS & COM_TX_FLAG) ){
aniruddhv 262:752c8689944a 118 gFLAGS = gFLAGS | COM_TX_FLAG;
aniruddhv 262:752c8689944a 119 if( gFLAGS & BAE_SW_EN_FLAG ){
aniruddhv 262:752c8689944a 120 /*WARNING: INFINITE WHILE LOOP POSSIBLE: if standby ack received and bcn tx main status = 0*/
aniruddhv 262:752c8689944a 121 bool retryFlag = true;
aniruddhv 262:752c8689944a 122 while( retryFlag == true ){
aniruddhv 262:752c8689944a 123 Base_tm *tm_ptr = NULL;
aniruddhv 262:752c8689944a 124 SET_BCN_STANDBY(tm_ptr);
aniruddhv 262:752c8689944a 125 uint8_t bcn_main_status = (tm_ptr->TM_string[2] & 0xEF);
aniruddhv 262:752c8689944a 126 if(( bcn_main_status == 0xC0 )||( bcn_main_status ==0xA0 )){
aniruddhv 262:752c8689944a 127 /*ACK RECCEIVED*/
aniruddhv 262:752c8689944a 128 if( bcn_main_status == 0xA0 ){
aniruddhv 262:752c8689944a 129 retryFlag = false;
aniruddhv 262:752c8689944a 130 RF_SW_CNTRL_TX = 1;
aniruddhv 262:752c8689944a 131 Thread::wait(25);
aniruddhv 262:752c8689944a 132 RF_SW_CNTRL_TX = 0;
aniruddhv 262:752c8689944a 133 gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);/*RF_SW_STATUS_FLAG set to RF_COM_TX*/
aniruddhv 262:752c8689944a 134 }
aniruddhv 262:752c8689944a 135 else{
aniruddhv 262:752c8689944a 136 Thread::wait(5000);
aniruddhv 262:752c8689944a 137 }
aniruddhv 262:752c8689944a 138 }
aniruddhv 262:752c8689944a 139 else{
aniruddhv 262:752c8689944a 140 SW_RST_BAE();
aniruddhv 262:752c8689944a 141 Base_tm *tm_ptr2 = NULL;
aniruddhv 262:752c8689944a 142 SET_BCN_STANDBY(tm_ptr2);
aniruddhv 262:752c8689944a 143 uint8_t standbyAck2 = 0;
aniruddhv 262:752c8689944a 144 uint8_t bcn_main_status2 = (tm_ptr2->TM_string[2] & 0xEF);
aniruddhv 262:752c8689944a 145 if( ( bcn_main_status2 == 0xC0 )||( bcn_main_status2 == 0xA0 ) ){
aniruddhv 262:752c8689944a 146 if( bcn_main_status2 == 0xA0 ){
aniruddhv 262:752c8689944a 147 retryFlag = false;
aniruddhv 262:752c8689944a 148 RF_SW_CNTRL_TX = 1;
aniruddhv 262:752c8689944a 149 Thread::wait(25);
aniruddhv 262:752c8689944a 150 RF_SW_CNTRL_TX = 0;
aniruddhv 262:752c8689944a 151 gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);
aniruddhv 262:752c8689944a 152 }
aniruddhv 262:752c8689944a 153 else{
aniruddhv 262:752c8689944a 154 Thread::wait(5000);
aniruddhv 262:752c8689944a 155 }
aniruddhv 262:752c8689944a 156 }
aniruddhv 262:752c8689944a 157 else{
aniruddhv 262:752c8689944a 158 retryFlag = false;
aniruddhv 262:752c8689944a 159 SW_OFF_BAE();
aniruddhv 262:752c8689944a 160 gFLAGS = gFLAGS | COM_AUTO_POWER_OFF_BAE_FLAG;
aniruddhv 262:752c8689944a 161 RF_SW_CNTRL_TX = 1;
aniruddhv 262:752c8689944a 162 Thread::wait(25);
aniruddhv 262:752c8689944a 163 RF_SW_CNTRL_TX = 0;
aniruddhv 262:752c8689944a 164 gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);/*RF_SW_STATUS_FLAG set to RF_COM_TX*/
aniruddhv 262:752c8689944a 165 }
aniruddhv 262:752c8689944a 166 /*DELETE THE TM AFTER USE*/
aniruddhv 262:752c8689944a 167 Base_tm *del_tm = tm_ptr2;
aniruddhv 262:752c8689944a 168 int overCount = 0;
aniruddhv 262:752c8689944a 169 while( del_tm != NULL ){
aniruddhv 262:752c8689944a 170 if( (overCount < TM_OVERFLOW_CONSTANT) ){
aniruddhv 262:752c8689944a 171 Base_tm *temp = del_tm->next_TM;
aniruddhv 262:752c8689944a 172 delete del_tm;
aniruddhv 262:752c8689944a 173 del_tm = temp;
aniruddhv 262:752c8689944a 174 ++overCount;
aniruddhv 262:752c8689944a 175 }
aniruddhv 262:752c8689944a 176 else{
aniruddhv 262:752c8689944a 177 RESET_CDMS;
aniruddhv 262:752c8689944a 178 break;
aniruddhv 262:752c8689944a 179 }
aniruddhv 262:752c8689944a 180 }
aniruddhv 262:752c8689944a 181 }
aniruddhv 262:752c8689944a 182 /*DELETE THE TM AFTER USE*/
aniruddhv 262:752c8689944a 183 Base_tm *del_tm = tm_ptr;
aniruddhv 262:752c8689944a 184 int overCount = 0;
aniruddhv 262:752c8689944a 185 while( del_tm != NULL ){
aniruddhv 262:752c8689944a 186 if( (overCount < TM_OVERFLOW_CONSTANT) ){
aniruddhv 262:752c8689944a 187 Base_tm *temp = del_tm->next_TM;
aniruddhv 262:752c8689944a 188 delete del_tm;
aniruddhv 262:752c8689944a 189 del_tm = temp;
aniruddhv 262:752c8689944a 190 ++overCount;
aniruddhv 262:752c8689944a 191 }
aniruddhv 262:752c8689944a 192 else{
aniruddhv 262:752c8689944a 193 RESET_CDMS;
aniruddhv 262:752c8689944a 194 break;
aniruddhv 262:752c8689944a 195 }
aniruddhv 262:752c8689944a 196 }
aniruddhv 262:752c8689944a 197 }
aniruddhv 262:752c8689944a 198 }
aniruddhv 262:752c8689944a 199 else{
aniruddhv 262:752c8689944a 200 RF_SW_CNTRL_TX = 1;
aniruddhv 262:752c8689944a 201 Thread::wait(25);
aniruddhv 262:752c8689944a 202 RF_SW_CNTRL_TX = 0;
aniruddhv 262:752c8689944a 203 gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);/*RF_SW_STATUS_FLAG set to RF_COM_TX*/
aniruddhv 262:752c8689944a 204 }
aniruddhv 262:752c8689944a 205 }
aniruddhv 262:752c8689944a 206 COM_TX_CNTRL = 1;
aniruddhv 262:752c8689944a 207 uint8_t adfConfigPass = 0xFF;
aniruddhv 262:752c8689944a 208 for( int i = 0 ; i < COM_TX_CONFIG_LIMIT ; ++i ){
aniruddhv 262:752c8689944a 209 /*PENDING: CONFIGURE ADF and set adfConfigPass*/
aniruddhv 262:752c8689944a 210 if( adfConfigPass == 0xFF ){
aniruddhv 262:752c8689944a 211 break;
aniruddhv 262:752c8689944a 212 }
aniruddhv 262:752c8689944a 213 }
aniruddhv 262:752c8689944a 214 if( adfConfigPass == 0xFF ){
aniruddhv 262:752c8689944a 215 /*adf successfully configured*/
aniruddhv 262:752c8689944a 216 gFLAGS = gFLAGS | COM_TX_STATUS_FLAG;
aniruddhv 262:752c8689944a 217 /*CALL SIGN*/
aniruddhv 262:752c8689944a 218 Base_tm *power_on_tm = NULL;
aniruddhv 262:752c8689944a 219 Base_tm *power_on_tm_head = NULL;
aniruddhv 262:752c8689944a 220 get_call_sign( power_on_tm_head );
aniruddhv 262:752c8689944a 221 power_on_tm = power_on_tm_head;
aniruddhv 262:752c8689944a 222 /*ACK L1*/
aniruddhv 262:752c8689944a 223 get_ack_l1(power_on_tm->next_TM);
aniruddhv 262:752c8689944a 224 int overFlowCountADF = 0;
aniruddhv 262:752c8689944a 225 while( power_on_tm->next_TM != NULL ){
aniruddhv 262:752c8689944a 226 if( overFlowCountADF < TM_OVERFLOW_CONSTANT ){
aniruddhv 262:752c8689944a 227 power_on_tm = power_on_tm->next_TM;
aniruddhv 262:752c8689944a 228 ++overFlowCountADF;
aniruddhv 262:752c8689944a 229 }
aniruddhv 262:752c8689944a 230 else{
aniruddhv 262:752c8689944a 231 RESET_CDMS;
aniruddhv 262:752c8689944a 232 break;
aniruddhv 262:752c8689944a 233 }
aniruddhv 262:752c8689944a 234 }
aniruddhv 262:752c8689944a 235 get_tc_list(power_on_tm->next_TM, 0x00);
aniruddhv 262:752c8689944a 236 /*Call Sign, ACK_L1, TC_LIST*/
aniruddhv 262:752c8689944a 237 /*snd_tm.head_pointer(power_on_tm_head);*/
aniruddhv 262:752c8689944a 238 /*transmit_adf;*/
aniruddhv 262:752c8689944a 239 uint8_t transmissionPass = 0xFF;
aniruddhv 262:752c8689944a 240 /*PENDING: get acknowledgement of transmission*/
aniruddhv 262:752c8689944a 241 /*deleting the telemetry*/
aniruddhv 262:752c8689944a 242 power_on_tm = power_on_tm_head;
aniruddhv 262:752c8689944a 243 overFlowCountADF = 0;
aniruddhv 262:752c8689944a 244 while( power_on_tm != NULL ){
aniruddhv 262:752c8689944a 245 if( overFlowCountADF < TM_OVERFLOW_CONSTANT ){
aniruddhv 262:752c8689944a 246 Base_tm *temp = power_on_tm->next_TM;
aniruddhv 262:752c8689944a 247 delete power_on_tm;
aniruddhv 262:752c8689944a 248 power_on_tm = temp;
aniruddhv 262:752c8689944a 249 ++overFlowCountADF;
aniruddhv 262:752c8689944a 250 }
aniruddhv 262:752c8689944a 251 else{
aniruddhv 262:752c8689944a 252 RESET_CDMS;
aniruddhv 262:752c8689944a 253 break;
aniruddhv 262:752c8689944a 254 }
aniruddhv 262:752c8689944a 255 }
aniruddhv 262:752c8689944a 256 if( transmissionPass == 0 ){
aniruddhv 262:752c8689944a 257 /*NOT Transmitted succesfully*/
aniruddhv 262:752c8689944a 258 COM_POWER_OFF_TX;
aniruddhv 262:752c8689944a 259 P_CDMS_HK_MAIN;
aniruddhv 262:752c8689944a 260 Base_tm *ptr_tm = NULL;
aniruddhv 262:752c8689944a 261 STANDBY_PRCS(ptr_tm);
aniruddhv 262:752c8689944a 262 uint8_t standbyACK = 0x00;
aniruddhv 262:752c8689944a 263 uint8_t bcn_main_status = (ptr_tm->TM_string[2] & 0xEF);
aniruddhv 262:752c8689944a 264 if(( bcn_main_status == 0xC0 )||( bcn_main_status ==0xA0 )){
aniruddhv 262:752c8689944a 265 standbyACK = 1;
aniruddhv 262:752c8689944a 266 }
aniruddhv 262:752c8689944a 267 if(standbyACK == 1){
aniruddhv 262:752c8689944a 268 uint8_t ackReceived = 0x00;
aniruddhv 262:752c8689944a 269 Base_tm *tm_ptr = NULL;
aniruddhv 262:752c8689944a 270 P_BCN_TX_MAIN(tm_ptr);
aniruddhv 262:752c8689944a 271 uint8_t ackcode = tm_ptr->TM_string[2] & 0xEF;
aniruddhv 262:752c8689944a 272 if( (ackcode == 0xA0) || (ackcode == 0xC0))
aniruddhv 262:752c8689944a 273 ackReceived = 0xFF;
aniruddhv 262:752c8689944a 274 /*DELETE THE TM AFTER USE*/
aniruddhv 262:752c8689944a 275 Base_tm *del_tm = tm_ptr;
aniruddhv 262:752c8689944a 276 int overCount = 0;
aniruddhv 262:752c8689944a 277 while( del_tm != NULL ){
aniruddhv 262:752c8689944a 278 if( (overCount < TM_OVERFLOW_CONSTANT) ){
aniruddhv 262:752c8689944a 279 Base_tm *temp = del_tm->next_TM;
aniruddhv 262:752c8689944a 280 delete del_tm;
aniruddhv 262:752c8689944a 281 del_tm = temp;
aniruddhv 262:752c8689944a 282 ++overCount;
aniruddhv 262:752c8689944a 283 }
aniruddhv 262:752c8689944a 284 else{
aniruddhv 262:752c8689944a 285 RESET_CDMS;
aniruddhv 262:752c8689944a 286 break;
aniruddhv 262:752c8689944a 287 }
aniruddhv 262:752c8689944a 288 }
aniruddhv 262:752c8689944a 289 if( ackReceived == 0xFF ){
aniruddhv 262:752c8689944a 290 Thread::wait(5000);
aniruddhv 262:752c8689944a 291 }
aniruddhv 262:752c8689944a 292 }
aniruddhv 262:752c8689944a 293 /*DELETE THE TM AFTER USE*/
aniruddhv 262:752c8689944a 294 Base_tm *del_tm = ptr_tm;
aniruddhv 262:752c8689944a 295 int overCount = 0;
aniruddhv 262:752c8689944a 296 while( del_tm != NULL ){
aniruddhv 262:752c8689944a 297 if( (overCount < TM_OVERFLOW_CONSTANT) ){
aniruddhv 262:752c8689944a 298 Base_tm *temp = del_tm->next_TM;
aniruddhv 262:752c8689944a 299 delete del_tm;
aniruddhv 262:752c8689944a 300 del_tm = temp;
aniruddhv 262:752c8689944a 301 ++overCount;
aniruddhv 262:752c8689944a 302 }
aniruddhv 262:752c8689944a 303 else{
aniruddhv 262:752c8689944a 304 RESET_CDMS;
aniruddhv 262:752c8689944a 305 break;
aniruddhv 262:752c8689944a 306 }
aniruddhv 262:752c8689944a 307 }
aniruddhv 262:752c8689944a 308 RESET_CDMS_TC;
aniruddhv 262:752c8689944a 309 }
aniruddhv 262:752c8689944a 310 }
aniruddhv 262:752c8689944a 311 else{
aniruddhv 262:752c8689944a 312 /*ADF not configured*/
aniruddhv 262:752c8689944a 313 gFLAGS = gFLAGS & (~COM_TX_STATUS_FLAG);
aniruddhv 262:752c8689944a 314 COM_POWER_OFF_TX;
aniruddhv 262:752c8689944a 315 P_CDMS_HK_MAIN;
aniruddhv 262:752c8689944a 316 Base_tm *ptr_tm = NULL;
aniruddhv 262:752c8689944a 317 STANDBY_PRCS(ptr_tm);
aniruddhv 262:752c8689944a 318 uint8_t standbyACK = 0x00;
aniruddhv 262:752c8689944a 319 uint8_t bcn_main_status = (ptr_tm->TM_string[2] & 0xEF);
aniruddhv 262:752c8689944a 320 if(( bcn_main_status == 0xC0 )||( bcn_main_status ==0xA0 )){
aniruddhv 262:752c8689944a 321 standbyACK = 1;
aniruddhv 262:752c8689944a 322 }
aniruddhv 262:752c8689944a 323 if(standbyACK == 1){
aniruddhv 262:752c8689944a 324 uint8_t ackReceived = 0x00;
aniruddhv 262:752c8689944a 325 Base_tm *tm_ptr = NULL;
aniruddhv 262:752c8689944a 326 P_BCN_TX_MAIN(tm_ptr);
aniruddhv 262:752c8689944a 327 uint8_t ackcode = tm_ptr->TM_string[2] & 0xEF;
aniruddhv 262:752c8689944a 328 if( (ackcode == 0xA0) || (ackcode == 0xC0))
aniruddhv 262:752c8689944a 329 ackReceived = 0xFF;
aniruddhv 262:752c8689944a 330 /*DELETE THE TM AFTER USE*/
aniruddhv 262:752c8689944a 331 Base_tm *del_tm = tm_ptr;
aniruddhv 262:752c8689944a 332 int overCount = 0;
aniruddhv 262:752c8689944a 333 while( del_tm != NULL ){
aniruddhv 262:752c8689944a 334 if( (overCount < TM_OVERFLOW_CONSTANT) ){
aniruddhv 262:752c8689944a 335 Base_tm *temp = del_tm->next_TM;
aniruddhv 262:752c8689944a 336 delete del_tm;
aniruddhv 262:752c8689944a 337 del_tm = temp;
aniruddhv 262:752c8689944a 338 ++overCount;
aniruddhv 262:752c8689944a 339 }
aniruddhv 262:752c8689944a 340 else{
aniruddhv 262:752c8689944a 341 RESET_CDMS;
aniruddhv 262:752c8689944a 342 break;
aniruddhv 262:752c8689944a 343 }
aniruddhv 262:752c8689944a 344 }
aniruddhv 262:752c8689944a 345 if( ackReceived == 0xFF ){
aniruddhv 262:752c8689944a 346 Thread::wait(5000);
aniruddhv 262:752c8689944a 347 }
aniruddhv 262:752c8689944a 348 }
aniruddhv 262:752c8689944a 349 /*DELETE THE TM AFTER USE*/
aniruddhv 262:752c8689944a 350 Base_tm *del_tm = ptr_tm;
aniruddhv 262:752c8689944a 351 int overCount = 0;
aniruddhv 262:752c8689944a 352 while( del_tm != NULL ){
aniruddhv 262:752c8689944a 353 if( (overCount < TM_OVERFLOW_CONSTANT) ){
aniruddhv 262:752c8689944a 354 Base_tm *temp = del_tm->next_TM;
aniruddhv 262:752c8689944a 355 delete del_tm;
aniruddhv 262:752c8689944a 356 del_tm = temp;
aniruddhv 262:752c8689944a 357 ++overCount;
aniruddhv 262:752c8689944a 358 }
aniruddhv 262:752c8689944a 359 else{
aniruddhv 262:752c8689944a 360 RESET_CDMS;
aniruddhv 262:752c8689944a 361 break;
aniruddhv 262:752c8689944a 362 }
aniruddhv 262:752c8689944a 363 }
aniruddhv 262:752c8689944a 364 RESET_CDMS_TC;
aniruddhv 262:752c8689944a 365 }
aniruddhv 262:752c8689944a 366 /*gPC.puts("COMPLETED COM_POWER_ON_TX\r\n");*/
shreeshas95 4:104dd82c99b8 367 }