Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SimpleDMA eeprom mbed-rtos mbed FreescaleIAP
Fork of CDMS_CODE by
Revision 216:93505a6f8db7, committed 2016-07-03
- Comitter:
- chaithanyarss
- Date:
- Sun Jul 03 11:35:55 2016 +0000
- Parent:
- 215:570251b23c7b
- Child:
- 218:c63cdba0550f
- Commit message:
- merging Completed.
Changed in this revision
--- a/COM_MNG_TMTC.h Sun Jul 03 09:47:05 2016 +0000
+++ b/COM_MNG_TMTC.h Sun Jul 03 11:35:55 2016 +0000
@@ -45,7 +45,7 @@
-#define detect_ack(tm_ptr, temp_ack, tc_psc) {\
+#define detect_ack(tm_ptr, temp_ack) {\
if( tm_ptr != NULL ){\
int length = TM_SHORT_SIZE;\
if( GETshort_or_long_tm(tm_ptr) == SHORT_TM_CODE ){\
@@ -62,20 +62,20 @@
if( (temp8 == 0xC0) || (temp8 == 0xA0) )\
temp_ack = 0x01;\
else{\
- temp_ack = 0x00;\
+ temp_ack = 0x02;\
/*CHECK FOR NACK CODE: CRC FAIL NACK*/\
temp8 = tm_ptr->TM_string[TM_ACK_CODE_INDEX];\
temp8 = temp8 & 0x0F;\
if( temp8 == CRC_FAIL_NACK_CODE ){\
- tm_ptr->TM_string[2] = tc_psc;\
+ temp_ack = 0x04;\
}\
}\
}\
else\
- temp_ack = 0x00;\
+ temp_ack = 0x03;\
}\
else{\
- temp_ack = 0x00;\
+ temp_ack = 0x02;\
}\
}
@@ -1047,7 +1047,7 @@
}\
else if( (service_subtype != OBOSC_SUB_DISABLE) && (service_subtype != OBOSC_SUB_RETRY) ){\
/*CHANGE THE ACK CODE TO INVALID TC*/\
- ackl234new->TM_string[2] = 0xA2;\
+ ackl234new->TM_string[2] = 0xAF;\
}\
if (DEBUG)\
gPC.puts("completed obosc\r\n");\
@@ -1057,6 +1057,7 @@
#define EXECUTE_OBOSC_ONLY {\
+ gMASTER_STATE = TCL_STATE_EXECUTING;\
int reset_flag = 0;\
if (DEBUG)\
gPC.puts("iNSIDE EXECUTE_OBOSC_ONLY\r\n");\
--- a/COM_POWER_OFF_TX.h Sun Jul 03 09:47:05 2016 +0000
+++ b/COM_POWER_OFF_TX.h Sun Jul 03 11:35:55 2016 +0000
@@ -1,15 +1,136 @@
+#define RESET_CDMS {\
+ Base_tc *RESET_tc = new Short_tc;\
+ RESET_tc->next_TC = NULL;\
+ PUTshort_or_long(RESET_tc,SHORT_TC_CODE);\
+ PUTcrc_pass(RESET_tc,0x1);\
+ PUTexec_status(RESET_tc,0);\
+ RESET_tc->TC_string[0] = 0x01;\
+ RESET_tc->TC_string[1] = 0x81;\
+ RESET_tc->TC_string[2] = 0x81;\
+ RESET_tc->TC_string[3] = 0x38;\
+ RESET_tc->TC_string[4] = 0;\
+ RESET_tc->TC_string[5] = 0;\
+ RESET_tc->TC_string[6] = 0;\
+ RESET_tc->TC_string[7] = 0;\
+ RESET_tc->TC_string[8] = 0;\
+ uint16_t crc16 = crc16_gen(RESET_tc->TC_string, 9);\
+ RESET_tc->TC_string[9] = (crc16 & 0xFF00)>>8;\
+ RESET_tc->TC_string[10] = (crc16 & 0x00FF);\
+ Base_tm *tm_ptr = NULL;\
+ tm_ptr = FCTN_CDMS_RLY_TMTC(RESET_tc);\
+ delete RESET_tc;\
+ /*DELETE THE TM AFTER USE*/\
+ Base_tm *del_tm = tm_ptr;\
+ while( del_tm != NULL ){\
+ Base_tm *temp = del_tm->next_TM;\
+ delete del_tm;\
+ del_tm = temp;\
+ }\
+}
+
+#define power_on_bae {\
+ Base_tc *power_on_BAE = new Short_tc;\
+ power_on_BAE->next_TC = NULL;\
+ PUTshort_or_long(power_on_BAE,SHORT_TC_CODE);\
+ PUTcrc_pass(power_on_BAE,0x1);\
+ PUTexec_status(power_on_BAE,0);\
+ power_on_BAE->TC_string[0] = 0x01;\
+ power_on_BAE->TC_string[1] = BAE_APID_SOURCE;\
+ power_on_BAE->TC_string[2] = BAE_SERVICE;\
+ power_on_BAE->TC_string[3] = BAE_POWER_ON_PID;\
+ power_on_BAE->TC_string[4] = 0;\
+ power_on_BAE->TC_string[5] = 0;\
+ power_on_BAE->TC_string[6] = 0;\
+ power_on_BAE->TC_string[7] = 0;\
+ power_on_BAE->TC_string[8] = 0;\
+ uint16_t crc16 = crc16_gen(power_on_BAE->TC_string, 9);\
+ power_on_BAE->TC_string[9] = (crc16 & 0xFF00)>>8;\
+ power_on_BAE->TC_string[10] = (crc16 & 0x00FF);\
+ Base_tm *tm_ptr = NULL;\
+ tm_ptr = FCTN_CDMS_RLY_TMTC(power_on_BAE);\
+ delete power_on_BAE;\
+ /*DELETE THE TM AFTER USE*/\
+ Base_tm *del_tm = tm_ptr;\
+ int overCount = 0;\
+ while( del_tm != NULL ){\
+ if( (overCount < TM_OVERFLOW_CONSTANT) ){\
+ Base_tm *temp = del_tm->next_TM;\
+ delete del_tm;\
+ del_tm = temp;\
+ ++overCount;\
+ }\
+ else{\
+ RESET_CDMS;\
+ break;\
+ }\
+ }\
+}
+
+#define resume_bcn {\
+ Base_tc *beacon_tc = new Long_tc;\
+ beacon_tc->next_TC = NULL;\
+ PUTshort_or_long(beacon_tc,LONG_TC_CODE);\
+ PUTcrc_pass(beacon_tc,0x1);\
+ PUTexec_status(beacon_tc,0);\
+ beacon_tc->TC_string[0] = 0x01;\
+ beacon_tc->TC_string[1] = BCN_APID_SOURCE;\
+ beacon_tc->TC_string[2] = BCN_SERVICE;\
+ beacon_tc->TC_string[3] = 0xE2;\
+ beacon_tc->TC_string[4] = 0x00;\
+ beacon_tc->TC_string[5] = 0;\
+ beacon_tc->TC_string[6] = 0;\
+ beacon_tc->TC_string[7] = 0;\
+ beacon_tc->TC_string[8] = 0;\
+ uint16_t crc16 = crc16_gen(beacon_tc->TC_string, 9);\
+ beacon_tc->TC_string[9] = (crc16 & 0xFF00)>>8;\
+ beacon_tc->TC_string[10] = (crc16 & 0x00FF);\
+ for(int i = 11; i < 135; i++){\
+ beacon_tc->TC_string[i] = 0;\
+ }\
+ Base_tm *tm_ptr = NULL;\
+ tm_ptr = FCTN_CDMS_RLY_TMTC(beacon_tc);\
+ delete beacon_tc;\
+ /*DELETE THE TM AFTER USE*/\
+ Base_tm *del_tm = tm_ptr;\
+ int overCount = 0;\
+ while( del_tm != NULL ){\
+ if( (overCount < TM_OVERFLOW_CONSTANT) ){\
+ Base_tm *temp = del_tm->next_TM;\
+ delete del_tm;\
+ del_tm = temp;\
+ ++overCount;\
+ }\
+ else{\
+ RESET_CDMS;\
+ break;\
+ }\
+ }\
+}
+
#define COM_POWER_OFF_TX {\
/*gPC.puts("Inside COM_POWER_OFF_TX\r\n");*/\
- /*PENDING: POWER OFF TRANSMITTER*/\
+ COM_TX_CNTRL = 0;\
RX1M.attach(&rx_read, Serial::RxIrq);\
gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);\
- /*PENDING: SWITCH RF RELAY TO BEACON*/\
- /*PENDING: RF_SW_STATUS = RF_BCN*/\
- /*PENDING: POWER ON BAE*/\
- /*PENDING: SET BAE SW_EN_STATUS*/\
- /*PENDING: RESUME BEACON*/\
+ RF_SW_CNTRL_BCN = 1;\
+ Thread::wait(25);\
+ RF_SW_CNTRL_BCN = 0;\
+ gFLAGS = gFLAGS | RF_SW_STATUS_FLAG;\
+ if( gFLAGS & COM_AUTO_POWER_OFF_BAE_FLAG ){\
+ power_on_bae;\
+ gFLAGS = gFLAGS | BAE_SW_EN_FLAG;\
+ gFLAGS & (~COM_AUTO_POWER_OFF_BAE_FLAG);\
+ resume_bcn;\
+ }\
+ else{\
+ if( gFLAGS & BAE_SW_EN_FLAG ){\
+ resume_bcn;\
+ }\
+ }\
gFLAGS = gFLAGS & (~COM_PA_HOT_FLAG);\
+ gFLAGS = gFLAGS & (~COM_PA_OC_FLAG);\
gCOM_PA_COOLING_TIMEOUT.detach();\
gFLAGS = gFLAGS & (~COM_TX_FLAG);\
- /*gPC.puts("ompleted com_power_off tx\r\n");*/\
+ gFLAGS = gFLAGS & (~COM_SESSION_TIMEOUT_FLAG);\
+ /*gPC.puts("completed com_power_off tx\r\n");*/\
}
\ No newline at end of file
--- a/COM_POWER_ON_TX.h Sun Jul 03 09:47:05 2016 +0000
+++ b/COM_POWER_ON_TX.h Sun Jul 03 11:35:55 2016 +0000
@@ -1,107 +1,444 @@
-#define COM_POWER_ON_TX {\
- /*gPC.puts("Inside COM_POWER_ON_TX\r\n");*/\
- if( !(gFLAGS & COM_TX_FLAG) ){\
- gFLAGS = gFLAGS | COM_TX_FLAG;\
- /*WARNING: INFINITE WHILE LOOP POSSIBLE: if standby ack received and bcn tx main status = 0*/\
- bool retryFlag = true;\
- while( retryFlag == true ){\
- uint8_t standbyAck = 0xFF;\
- /*PENDING: SET BEACON TO STANDBY*/\
- if( standbyAck == 0xFF ){\
- /*ACK RECCEIVED*/\
- /*PENDING: BEACON TX MAIN STATUS*/\
- if( true ){\
- retryFlag = false;\
- /*PENDING: SWITCH RELAY TO COM_TX*/\
- /*PENDING: RF_SW_STATUS = RF_COM_TX*/\
- }\
- else{\
- gCOM_MNG_TMTC_THREAD->wait(5000);\
- }\
- }\
- else{\
- /*PENDING: RESET BAE*/\
- uint8_t standbyAck2 = 0x00;\
- /*PENDING: SET BEACON TO STANDBY*/\
- if( standbyAck2 == 0xFF ){\
- /*PENDING: BEACON TX MAIN STAUTS*/\
- if( true ){\
- retryFlag = false;\
- /*PENDING: SWITCH RF RELAY TO COM TX*/\
- /*PENDING: RF_SW_STATUS = RF_COM_TX*/\
- }\
- }\
- else{\
- retryFlag = false;\
- /*PENDING: POWER OFF BEACON*/\
- /*PENDING: CLEAR BAE SW_EN*/\
- /*PENDING: SWITCH RF RELAY TO COM TX*/\
- /*PENDING: RF_SW_STATUS = RF_COM_TX*/\
- }\
- }\
+#define STANDBY_PRCS(tm_ptr){\
+ Base_tc *stdby_tc = new Long_tc;\
+ stdby_tc->next_TC = NULL;\
+ PUTshort_or_long(stdby_tc,LONG_TC_CODE);\
+ PUTcrc_pass(stdby_tc,0x1);\
+ PUTexec_status(stdby_tc,0);\
+ stdby_tc->TC_string[0] = 0x01;\
+ stdby_tc->TC_string[1] = 0x41;\
+ stdby_tc->TC_string[2] = 0x81;\
+ stdby_tc->TC_string[3] = 0x40;\
+ stdby_tc->TC_string[4] = 0x01;\
+ stdby_tc->TC_string[5] = 0x01;\
+ stdby_tc->TC_string[6] = 0x01;\
+ stdby_tc->TC_string[7] = 0;\
+ stdby_tc->TC_string[8] = 0;\
+ uint16_t crc16 = crc16_gen(stdby_tc->TC_string, 9);\
+ stdby_tc->TC_string[9] = (crc16 & 0xFF00)>>8;\
+ stdby_tc->TC_string[10] = (crc16 & 0x00FF);\
+ for(int i = 11; i < 135; i++){\
+ stdby_tc->TC_string[i] = 0;\
+ }\
+ tm_ptr = FCTN_CDMS_RLY_TMTC(stdby_tc);\
+ delete stdby_tc;\
+}
+
+#define SET_BCN_STANDBY(tm_ptr){\
+ Base_tc *beacon_tc = new Long_tc;\
+ beacon_tc->next_TC = NULL;\
+ PUTshort_or_long(beacon_tc,LONG_TC_CODE);\
+ PUTcrc_pass(beacon_tc,0x1);\
+ PUTexec_status(beacon_tc,0);\
+ beacon_tc->TC_string[0] = 0x01;\
+ beacon_tc->TC_string[1] = BCN_APID_SOURCE;\
+ beacon_tc->TC_string[2] = BCN_SERVICE;\
+ beacon_tc->TC_string[3] = 0xE2;\
+ beacon_tc->TC_string[4] = 0x01;\
+ beacon_tc->TC_string[5] = 0;\
+ beacon_tc->TC_string[6] = 0;\
+ beacon_tc->TC_string[7] = 0;\
+ beacon_tc->TC_string[8] = 0;\
+ uint16_t crc16 = crc16_gen(beacon_tc->TC_string, 9);\
+ beacon_tc->TC_string[9] = (crc16 & 0xFF00)>>8;\
+ beacon_tc->TC_string[10] = (crc16 & 0x00FF);\
+ for(int i = 11; i < 135; i++){\
+ beacon_tc->TC_string[i] = 0;\
+ }\
+ tm_ptr = FCTN_CDMS_RLY_TMTC(beacon_tc);\
+ delete beacon_tc;\
+}
+
+#define reset_bae {\
+ Base_tc *reset_BAE = new Short_tc;\
+ reset_BAE->next_TC = NULL;\
+ PUTshort_or_long(reset_BAE,SHORT_TC_CODE);\
+ PUTcrc_pass(reset_BAE,0x1);\
+ PUTexec_status(reset_BAE,0);\
+ reset_BAE->TC_string[0] = 0x01;\
+ reset_BAE->TC_string[1] = BAE_APID_SOURCE;\
+ reset_BAE->TC_string[2] = BAE_SERVICE;\
+ reset_BAE->TC_string[3] = BAE_RESET_PID;\
+ reset_BAE->TC_string[4] = 0;\
+ reset_BAE->TC_string[5] = 0;\
+ reset_BAE->TC_string[6] = 0;\
+ reset_BAE->TC_string[7] = 0;\
+ reset_BAE->TC_string[8] = 0;\
+ uint16_t crc16 = crc16_gen(reset_BAE->TC_string, 9);\
+ reset_BAE->TC_string[9] = (crc16 & 0xFF00)>>8;\
+ reset_BAE->TC_string[10] = (crc16 & 0x00FF);\
+ Base_tm *tm_ptr = NULL;\
+ tm_ptr = FCTN_CDMS_RLY_TMTC(reset_BAE);\
+ delete reset_BAE;\
+ /*DELETE THE TM AFTER USE*/\
+ Base_tm *del_tm = tm_ptr;\
+ int overCount = 0;\
+ while( del_tm != NULL ){\
+ if( (overCount < TM_OVERFLOW_CONSTANT) ){\
+ Base_tm *temp = del_tm->next_TM;\
+ delete del_tm;\
+ del_tm = temp;\
+ ++overCount;\
+ }\
+ else{\
+ RESET_CDMS;\
+ break;\
}\
}\
- /*PENDING: POWER ON COM_TX*/\
- uint8_t adfConfigPass = 0xFF;\
- for( int i = 0 ; i < COM_TX_CONFIG_LIMIT ; ++i ){\
- /*PENDING: CONFIGURE ADF*/\
- if( adfConfigPass == 0xFF ){\
+}
+
+#define power_off_bae {\
+ Base_tc *power_off_BAE = new Short_tc;\
+ power_off_BAE->next_TC = NULL;\
+ PUTshort_or_long(power_off_BAE,SHORT_TC_CODE);\
+ PUTcrc_pass(power_off_BAE,0x1);\
+ PUTexec_status(power_off_BAE,0);\
+ power_off_BAE->TC_string[0] = 0x01;\
+ power_off_BAE->TC_string[1] = BAE_APID_SOURCE;\
+ power_off_BAE->TC_string[2] = BAE_SERVICE;\
+ power_off_BAE->TC_string[3] = BAE_POWER_OFF_PID;\
+ power_off_BAE->TC_string[4] = 0;\
+ power_off_BAE->TC_string[5] = 0;\
+ power_off_BAE->TC_string[6] = 0;\
+ power_off_BAE->TC_string[7] = 0;\
+ power_off_BAE->TC_string[8] = 0;\
+ uint16_t crc16 = crc16_gen(power_off_BAE->TC_string, 9);\
+ power_off_BAE->TC_string[9] = (crc16 & 0xFF00)>>8;\
+ power_off_BAE->TC_string[10] = (crc16 & 0x00FF);\
+ Base_tm *tm_ptr = NULL;\
+ tm_ptr = FCTN_CDMS_RLY_TMTC(power_off_BAE);\
+ delete power_off_BAE;\
+ /*DELETE THE TM AFTER USE*/\
+ Base_tm *del_tm = tm_ptr;\
+ int overCount = 0;\
+ while( del_tm != NULL ){\
+ if( (overCount < TM_OVERFLOW_CONSTANT) ){\
+ Base_tm *temp = del_tm->next_TM;\
+ delete del_tm;\
+ del_tm = temp;\
+ ++overCount;\
+ }\
+ else{\
+ RESET_CDMS;\
+ break;\
+ }\
+ }\
+}
+
+#define P_CDMS_HK_MAIN {\
+ Base_tc *hk_main_ptr = new Short_tc;\
+ hk_main_ptr->next_TC = NULL;\
+ PUTshort_or_long(hk_main_ptr,SHORT_TC_CODE);\
+ PUTcrc_pass(hk_main_ptr,0x1);\
+ PUTexec_status(hk_main_ptr,0);\
+ hk_main_ptr->TC_string[0] = 0x01;\
+ hk_main_ptr->TC_string[1] = 0x81;\
+ hk_main_ptr->TC_string[2] = 0x81;\
+ hk_main_ptr->TC_string[3] = 0x04;\
+ hk_main_ptr->TC_string[4] = 0;\
+ hk_main_ptr->TC_string[5] = 0;\
+ hk_main_ptr->TC_string[6] = 0;\
+ hk_main_ptr->TC_string[7] = 0;\
+ hk_main_ptr->TC_string[8] = 0;\
+ uint16_t crc16 = crc16_gen(hk_main_ptr->TC_string, 9);\
+ hk_main_ptr->TC_string[9] = (crc16 & 0xFF00)>>8;\
+ hk_main_ptr->TC_string[10] = (crc16 & 0x00FF);\
+ Base_tm *tm_ptr = NULL;\
+ tm_ptr = FCTN_CDMS_RLY_TMTC(hk_main_ptr);\
+ delete hk_main_ptr;\
+ /*DELETE THE TM AFTER USE*/\
+ Base_tm *del_tm = tm_ptr;\
+ int overCount = 0;\
+ while( del_tm != NULL ){\
+ if( (overCount < TM_OVERFLOW_CONSTANT) ){\
+ Base_tm *temp = del_tm->next_TM;\
+ delete del_tm;\
+ del_tm = temp;\
+ ++overCount;\
+ }\
+ else{\
+ RESET_CDMS;\
break;\
}\
}\
- if( adfConfigPass == 0xFF ){\
- /*adf successfully configured*/\
- /*CALL SIGN*/\
- Base_tm *power_on_tm = NULL;\
- Base_tm *power_on_tm_head = NULL;\
- get_call_sign( power_on_tm_head );\
- power_on_tm = power_on_tm_head;\
- /*ACK L1*/\
- get_ack_l1(power_on_tm->next_TM);\
- int overFlowCountADF = 0;\
- while( power_on_tm->next_TM != NULL ){\
- if( overFlowCountADF < TM_OVERFLOW_CONSTANT ){\
- power_on_tm = power_on_tm->next_TM;\
- ++overFlowCountADF;\
- }\
- else{\
- /*PENDING: RESET CDMS*/\
- break;\
- }\
- }\
- get_tc_list(power_on_tm->next_TM, 0x00);\
- /*PENDING: TRANSMIT ABOVE TM*/\
- /*Call Sign, ACK_L1, TC_LIST*/\
- /*snd_tm.head_pointer(power_on_tm_head);*/\
- /*transmit_adf;*/\
- /*deleting the telemetry*/\
- power_on_tm = power_on_tm_head;\
- overFlowCountADF = 0;\
- while( power_on_tm != NULL ){\
- if( overFlowCountADF < TM_OVERFLOW_CONSTANT ){\
- Base_tm *temp = power_on_tm->next_TM;\
- delete power_on_tm;\
- power_on_tm = temp;\
- ++overFlowCountADF;\
- }\
- else{\
- /*PENDING: RESET CDMS*/\
- break;\
- }\
- }\
+}
+
+#define P_BCN_TX_MAIN(tm_ptr) {\
+ Base_tc *bcn_tx_main_ptr = new Long_tc;\
+ bcn_tx_main_ptr->next_TC = NULL;\
+ PUTshort_or_long(bcn_tx_main_ptr,LONG_TC_CODE);\
+ PUTcrc_pass(bcn_tx_main_ptr,0x1);\
+ PUTexec_status(bcn_tx_main_ptr,0);\
+ bcn_tx_main_ptr->TC_string[0] = 0x01;\
+ bcn_tx_main_ptr->TC_string[1] = 0x41;\
+ bcn_tx_main_ptr->TC_string[2] = 0x81;\
+ bcn_tx_main_ptr->TC_string[3] = 0x07;\
+ bcn_tx_main_ptr->TC_string[4] = 0;\
+ bcn_tx_main_ptr->TC_string[5] = 0;\
+ bcn_tx_main_ptr->TC_string[6] = 0;\
+ bcn_tx_main_ptr->TC_string[7] = 0;\
+ bcn_tx_main_ptr->TC_string[8] = 0;\
+ uint16_t crc16 = crc16_gen(bcn_tx_main_ptr->TC_string, 9);\
+ bcn_tx_main_ptr->TC_string[9] = (crc16 & 0xFF00)>>8;\
+ bcn_tx_main_ptr->TC_string[10] = (crc16 & 0x00FF);\
+ for(int i = 11; i < 135; i++){\
+ bcn_tx_main_ptr->TC_string[i] = 0;\
}\
- else{\
- /*PENDING: COM_POWER OFF TX*/\
- /*PENDING: CDMS HK MAIN*/\
- uint8_t ackReceived = 0x00;\
- /*PENDING: BCN TX MAIN*/\
- if( ackReceived == 0xFF ){\
- gCOM_MNG_TMTC_THREAD->wait(5000);\
- /*PENDING: RESET CDMS*/\
- }\
- else{\
- /*PENDING: RESET CDMS*/\
- }\
- }\
- /*gPC.puts("COMPLETED COM_POWER_ON_TX\r\n");*/\
+ tm_ptr = FCTN_CDMS_RLY_TMTC(bcn_tx_main_ptr);\
+ delete bcn_tx_main_ptr;\
+}
+
+void COM_POWER_ON_TX() {
+ if (DEBUG)
+ gPC.puts("Inside COM_POWER_ON_TX\r\n");
+ if( !(gFLAGS & COM_TX_FLAG) ){
+ gFLAGS = gFLAGS | COM_TX_FLAG;
+ if( gFLAGS & BAE_SW_EN_FLAG ){
+ /*WARNING: INFINITE WHILE LOOP POSSIBLE: if standby ack received and bcn tx main status = 0*/
+ bool retryFlag = true;
+ while( retryFlag == true ){
+ Base_tm *tm_ptr = NULL;
+ SET_BCN_STANDBY(tm_ptr);
+ uint8_t bcn_main_status = (tm_ptr->TM_string[2] & 0xEF);
+ if(( bcn_main_status == 0xC0 )||( bcn_main_status ==0xA0 )){
+ /*ACK RECCEIVED*/
+ if( bcn_main_status == 0xA0 ){
+ retryFlag = false;
+ RF_SW_CNTRL_TX = 1;
+ Thread::wait(25);
+ RF_SW_CNTRL_TX = 0;
+ gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);/*RF_SW_STATUS_FLAG set to RF_COM_TX*/
+ }
+ else{
+ Thread::wait(5000);
+ }
+ }
+ else{
+ reset_bae;
+ Base_tm *tm_ptr2 = NULL;
+ SET_BCN_STANDBY(tm_ptr2);
+ uint8_t standbyAck2 = 0;
+ uint8_t bcn_main_status2 = (tm_ptr2->TM_string[2] & 0xEF);
+ if( ( bcn_main_status2 == 0xC0 )||( bcn_main_status2 == 0xA0 ) ){
+ if( bcn_main_status2 == 0xA0 ){
+ retryFlag = false;
+ RF_SW_CNTRL_TX = 1;
+ Thread::wait(25);
+ RF_SW_CNTRL_TX = 0;
+ gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);
+ }
+ else{
+ Thread::wait(5000);
+ }
+ }
+ else{
+ retryFlag = false;
+ power_off_bae;
+ gFLAGS = gFLAGS | COM_AUTO_POWER_OFF_BAE_FLAG;
+ gFLAGS = gFLAGS & (~BAE_SW_EN_FLAG);
+ RF_SW_CNTRL_TX = 1;
+ Thread::wait(25);
+ RF_SW_CNTRL_TX = 0;
+ gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);/*RF_SW_STATUS_FLAG set to RF_COM_TX*/
+ }
+ /*DELETE THE TM AFTER USE*/
+ Base_tm *del_tm = tm_ptr2;
+ int overCount = 0;
+ while( del_tm != NULL ){
+ if( (overCount < TM_OVERFLOW_CONSTANT) ){
+ Base_tm *temp = del_tm->next_TM;
+ delete del_tm;
+ del_tm = temp;
+ ++overCount;
+ }
+ else{
+ RESET_CDMS;
+ break;
+ }
+ }
+ }
+ /*DELETE THE TM AFTER USE*/
+ Base_tm *del_tm = tm_ptr;
+ int overCount = 0;
+ while( del_tm != NULL ){
+ if( (overCount < TM_OVERFLOW_CONSTANT) ){
+ Base_tm *temp = del_tm->next_TM;
+ delete del_tm;
+ del_tm = temp;
+ ++overCount;
+ }
+ else{
+ RESET_CDMS;
+ break;
+ }
+ }
+ }
+ }
+ else{
+ RF_SW_CNTRL_TX = 1;
+ Thread::wait(25);
+ RF_SW_CNTRL_TX = 0;
+ gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);/*RF_SW_STATUS_FLAG set to RF_COM_TX*/
+ }
+ }
+ COM_TX_CNTRL = 1;
+ uint8_t adfConfigPass = 0xFF;
+ for( int i = 0 ; i < COM_TX_CONFIG_LIMIT ; ++i ){
+ /*PENDING: CONFIGURE ADF and set adfConfigPass*/
+ if( adfConfigPass == 0xFF ){
+ break;
+ }
+ }
+ if( adfConfigPass == 0xFF ){
+ /*adf successfully configured*/
+ gFLAGS = gFLAGS | COM_TX_STATUS_FLAG;
+ /*CALL SIGN*/
+ Base_tm *power_on_tm = NULL;
+ Base_tm *power_on_tm_head = NULL;
+ get_call_sign( power_on_tm_head );
+ power_on_tm = power_on_tm_head;
+ /*ACK L1*/
+ get_ack_l1(power_on_tm->next_TM);
+ int overFlowCountADF = 0;
+ while( power_on_tm->next_TM != NULL ){
+ if( overFlowCountADF < TM_OVERFLOW_CONSTANT ){
+ power_on_tm = power_on_tm->next_TM;
+ ++overFlowCountADF;
+ }
+ else{
+ RESET_CDMS;
+ break;
+ }
+ }
+ get_tc_list(power_on_tm->next_TM, 0x00);
+ /*Call Sign, ACK_L1, TC_LIST*/
+ /*snd_tm.head_pointer(power_on_tm_head);*/
+ /*transmit_adf;*/
+ uint8_t transmissionPass = 0xFF;
+ /*PENDING: get acknowledgement of transmission*/
+ /*deleting the telemetry*/
+ power_on_tm = power_on_tm_head;
+ overFlowCountADF = 0;
+ while( power_on_tm != NULL ){
+ if( overFlowCountADF < TM_OVERFLOW_CONSTANT ){
+ Base_tm *temp = power_on_tm->next_TM;
+ delete power_on_tm;
+ power_on_tm = temp;
+ ++overFlowCountADF;
+ }
+ else{
+ RESET_CDMS;
+ break;
+ }
+ }
+ if( transmissionPass == 0 ){
+ /*NOT Transmitted succesfully*/
+ COM_POWER_OFF_TX;
+ P_CDMS_HK_MAIN;
+ Base_tm *ptr_tm = NULL;
+ STANDBY_PRCS(ptr_tm);
+ uint8_t standbyACK = 0x00;
+ uint8_t bcn_main_status = (ptr_tm->TM_string[2] & 0xEF);
+ if(( bcn_main_status == 0xC0 )||( bcn_main_status ==0xA0 )){
+ standbyACK = 1;
+ }
+ if(standbyACK == 1){
+ uint8_t ackReceived = 0x00;
+ Base_tm *tm_ptr = NULL;
+ P_BCN_TX_MAIN(tm_ptr);
+ uint8_t ackcode = tm_ptr->TM_string[2] & 0xEF;
+ if( (ackcode == 0xA0) || (ackcode == 0xC0))
+ ackReceived = 0xFF;
+ /*DELETE THE TM AFTER USE*/
+ Base_tm *del_tm = tm_ptr;
+ int overCount = 0;
+ while( del_tm != NULL ){
+ if( (overCount < TM_OVERFLOW_CONSTANT) ){
+ Base_tm *temp = del_tm->next_TM;
+ delete del_tm;
+ del_tm = temp;
+ ++overCount;
+ }
+ else{
+ RESET_CDMS;
+ break;
+ }
+ }
+ if( ackReceived == 0xFF ){
+ Thread::wait(5000);
+ }
+ }
+ /*DELETE THE TM AFTER USE*/
+ Base_tm *del_tm = ptr_tm;
+ int overCount = 0;
+ while( del_tm != NULL ){
+ if( (overCount < TM_OVERFLOW_CONSTANT) ){
+ Base_tm *temp = del_tm->next_TM;
+ delete del_tm;
+ del_tm = temp;
+ ++overCount;
+ }
+ else{
+ RESET_CDMS;
+ break;
+ }
+ }
+ RESET_CDMS;
+ }
+ }
+ else{
+ /*ADF not configured*/
+ gFLAGS = gFLAGS & (~COM_TX_STATUS_FLAG);
+ COM_POWER_OFF_TX;
+ P_CDMS_HK_MAIN;
+ Base_tm *ptr_tm = NULL;
+ STANDBY_PRCS(ptr_tm);
+ uint8_t standbyACK = 0x00;
+ uint8_t bcn_main_status = (ptr_tm->TM_string[2] & 0xEF);
+ if(( bcn_main_status == 0xC0 )||( bcn_main_status ==0xA0 )){
+ standbyACK = 1;
+ }
+ if(standbyACK == 1){
+ uint8_t ackReceived = 0x00;
+ Base_tm *tm_ptr = NULL;
+ P_BCN_TX_MAIN(tm_ptr);
+ uint8_t ackcode = tm_ptr->TM_string[2] & 0xEF;
+ if( (ackcode == 0xA0) || (ackcode == 0xC0))
+ ackReceived = 0xFF;
+ /*DELETE THE TM AFTER USE*/
+ Base_tm *del_tm = tm_ptr;
+ int overCount = 0;
+ while( del_tm != NULL ){
+ if( (overCount < TM_OVERFLOW_CONSTANT) ){
+ Base_tm *temp = del_tm->next_TM;
+ delete del_tm;
+ del_tm = temp;
+ ++overCount;
+ }
+ else{
+ RESET_CDMS;
+ break;
+ }
+ }
+ if( ackReceived == 0xFF ){
+ Thread::wait(5000);
+ }
+ }
+ /*DELETE THE TM AFTER USE*/
+ Base_tm *del_tm = ptr_tm;
+ int overCount = 0;
+ while( del_tm != NULL ){
+ if( (overCount < TM_OVERFLOW_CONSTANT) ){
+ Base_tm *temp = del_tm->next_TM;
+ delete del_tm;
+ del_tm = temp;
+ ++overCount;
+ }
+ else{
+ RESET_CDMS;
+ break;
+ }
+ }
+ RESET_CDMS;
+ }
+ /*gPC.puts("COMPLETED COM_POWER_ON_TX\r\n");*/
}
\ No newline at end of file
--- a/DefinitionsAndGlobals.h Sun Jul 03 09:47:05 2016 +0000 +++ b/DefinitionsAndGlobals.h Sun Jul 03 11:35:55 2016 +0000 @@ -159,6 +159,7 @@ COM_RX_DATA_NODE *gRX_CURRENT_DATA_NODE = NULL; // uint8_t *gRX_CURRENT_PTR = NULL; uint32_t gRX_COUNT = 0; +uint16_t gTOTAL_RAW_BYTES = 0; uint16_t gTOTAL_INCORRECT_SIZE_TC = 0x00; uint16_t gTOTAL_CRC_FAIL_TC = 0x00; uint16_t gTOTAL_REPEATED_TC = 0x00; @@ -191,6 +192,8 @@ Thread* gCOM_MNG_TMTC_THREAD = NULL; Timeout gRX_TIMEOUT; Timeout gSESSION_TIMEOUT; +Timeout gCOM_RX_DISABLE; + // COM_MNG_TMTC
--- a/P_COM_INIT.h Sun Jul 03 09:47:05 2016 +0000
+++ b/P_COM_INIT.h Sun Jul 03 11:35:55 2016 +0000
@@ -4,7 +4,7 @@
Thread::wait(25);\
RF_SW_CNTRL_BCN = 0;\
gFLAGS = gFLAGS | RF_SW_STATUS_FLAG;\
- //COM_RX_CNTRL = 0;\
+ COM_RX_CNTRL = 0;\
Thread::wait(200);\
COM_RX_CNTRL = 1;\
gFLAGS = gFLAGS & (~COM_INIT_STATUS_FLAG);\
--- a/Structures.h Sun Jul 03 09:47:05 2016 +0000 +++ b/Structures.h Sun Jul 03 11:35:55 2016 +0000 @@ -27,8 +27,9 @@ 0: unexecuted 1: successfully executed 2: Execution Failed -3: Disabled -4: Marked For retry +3: CRC error +4: Disabled +5: Marked For retry */ #define TC_STATE_UNEXECUTED 0x00 #define TC_STATE_SUCCESSFULLY_EXECUTED 0x01
--- a/ThreadsAndFunctions.h Sun Jul 03 09:47:05 2016 +0000
+++ b/ThreadsAndFunctions.h Sun Jul 03 11:35:55 2016 +0000
@@ -36,6 +36,12 @@
gCOM_MNG_TMTC_THREAD->signal_set(COM_MNG_TMTC_SIGNAL_UART_INT);
}
+// COM_RX_DISABLE ISR
+void after_com_disable(){
+ gCOM_RX_DISABLE.detach();
+ RX1M.attach(&rx_read, Serial::RxIrq);
+}
+
// RX_TIMEOUT ISR
void after_receive(){
gRX_TIMEOUT.detach();
@@ -63,15 +69,15 @@
}\
gHEAD_NODE_TCL = NULL;\
gLAST_NODE_TCL = NULL;\
- gMASTER_STATE = TCL_STATE_INCOMPLETE;\
+ gMASTER_STATE = TCL_STATE_COMPLETED;\
gTOTAL_INCORRECT_SIZE_TC = 0;\
gTOTAL_CRC_FAIL_TC = 0;\
gTOTAL_REPEATED_TC = 0;\
gTOTAL_VALID_TC = 0;\
for(int i = 0 ; i < TM_LONG_SIZE ; ++i){\
- gLAST_TM[i] = 0x00;\
+ /*gLAST_TM[i] = 0x00;*/\
}\
- gLAST_TM_SHORT_OR_LONG = SHORT_TM_CODE;\
+ /*gLAST_TM_SHORT_OR_LONG = SHORT_TM_CODE;*/\
COM_RX_DATA_NODE *dataptr = gRX_HEAD_DATA_NODE;\
while( dataptr != NULL ){\
COM_RX_DATA_NODE *temp = dataptr->next_node;\
@@ -82,6 +88,7 @@
gRX_HEAD_DATA_NODE->next_node = NULL;\
gRX_CURRENT_DATA_NODE = gRX_HEAD_DATA_NODE;\
gRX_COUNT = 0;\
+ gTOTAL_RAW_BYTES = 0;\
/*PENDING : ALL GLOBAL VAARIABLES AND FLAGS*/\
/*gPC.puts("finished reset all\r\n");*/\
}
@@ -96,6 +103,7 @@
gRX_CURRENT_DATA_NODE = gRX_CURRENT_DATA_NODE->next_node;\
gRX_CURRENT_DATA_NODE->next_node = NULL;\
}\
+ ++gTOTAL_RAW_BYTES;\
gRX_TIMEOUT.attach(&after_receive, RX_TIMEOUT_LIMIT);\
}
@@ -110,10 +118,12 @@
gFLAGS = gFLAGS & (~UART_INT_FLAG);
if( !(gFLAGS & COM_SESSION_FLAG) ){
// PENDING : DISABLE THREADS
+ // gCDMS_HK_TIMER.stop();
PL_wo_dma->stop();
gFLAGS = gFLAGS | COM_SESSION_FLAG;
gSESSION_TIMEOUT.attach(&after_session, SESSION_TIME_LIMIT);
gFLAGS = gFLAGS | COM_RX_FLAG;
+ gTOTAL_RAW_BYTES = 0;
PUT_RAW_BYTE;
// PENDING : MEASURE RSSI
if( gFLAGS & COM_SESSION_FLAG ){
@@ -132,10 +142,15 @@
gFLAGS = gFLAGS | COM_RX_FLAG;
PUT_RAW_BYTE;
}
+ if(gTOTAL_RAW_BYTES > BYTE_OVERFLOW_CONSTANT){
+ RX1M.attach(NULL);
+ gCOM_RX_DISABLE.attach(&after_com_disable, COM_RX_DISABLE_TIMEOUT);
+ after_receive();
+ }
}
else if( gFLAGS & NEW_TC_RECEIVED ){
gPC.puts("NEW TC RECEIVED\r\n");
- Thread::wait(1000);
+ Thread::wait(1000);/*For testing with transmitter. To be removed later*/
gFLAGS = gFLAGS & (~NEW_TC_RECEIVED);
gFLAGS = gFLAGS | COM_MNG_TMTC_RUNNING_FLAG;
@@ -163,30 +178,24 @@
// CHECK WEATHER GS VERIFICATION CODE MATCHES
uint8_t tempGSver = 0x00;
GScodeVerification(tempGSver);
- /*PENDING: INCLUDE GS VERIFICATION CODE*/
if( tempGSver == 0xFF ){
/*gPC.puts("GS code match !!\r\n");*/
gFLAGS = gFLAGS | COM_SESSION_VALIDITY;
COM_POWER_ON_TX;
- // PENDING: PA HOT HANDLED IN EXECUTE_XXX FUNCTIONS
- uint8_t tempPAHot = 0x00;
- isPAhot(tempPAHot);
- if( tempPAHot == 0xFF ){
- gFLAGS = gFLAGS & ~(COM_PA_HOT_FLAG);
+ P_COM_HK;
+ if( (gFLAGS & COM_PA_HOT_FLAG) || ( gFLAGS & COM_PA_OC_FLAG ) ){
+ COM_TX_CNTRL = 0;
+ gCOM_PA_COOLING_TIMEOUT.attach(&after_cooling_pa, COM_PA_COOLING_TIME_LIMIT);
+ gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);
+ RX1M.attach(&rx_read, Serial::RxIrq);
+ }
+ else{
gCOM_PA_COOLING_TIMEOUT.detach();
gPC.puts("EXECUTING TELECOMMANDS\r\n");
-// DEBUF_PRINT("EXECUTING TELECOMMANDS\r\n");
EXECUTE_OBOSC_ONLY;
EXECUTE_TC;
gPC.puts("COMPLETED EXECUTION\r\n");
}
- else{
- gFLAGS = gFLAGS | COM_PA_HOT_FLAG;
- // PENDING: power off transmitter only
- gCOM_PA_COOLING_TIMEOUT.attach(&after_cooling_pa, COM_PA_COOLING_TIME_LIMIT);
- gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);
- RX1M.attach(&rx_read, Serial::RxIrq);
- }
}
else{
/*gPC.puts("GS code mismatch !!\r\n");*/
@@ -194,10 +203,11 @@
reset_all;
gFLAGS = gFLAGS & (~COM_SESSION_VALIDITY);
// PENDING : ENABLE THREADS
+ // gCDMS_HK_TIMER.start(5000);
PL_wo_dma->start(6000);
gSESSION_TIMEOUT.detach();
gFLAGS = gFLAGS & (~COM_SESSION_FLAG);
- // WARNING: clear COM_MNG_TMTC ?
+ gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);
}
}
else{
@@ -228,15 +238,16 @@
}
//gPC.puts("\r\n");
COM_POWER_ON_TX;
- // PENDING : POWER OFF TX
+ COM_TX_CNTRL = 0;
RX1M.attach(&rx_read, Serial::RxIrq);
gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);
}
}
else{
COM_POWER_ON_TX;
- // POWER OFF TX transmitter only
- // WARNING: reset_all ? clear com_session ?
+ COM_TX_CNTRL = 0;
+ reset_all;
+ gFLAGS = gFLAGS & (~COM_SESSION_FLAG);
RX1M.attach(&rx_read, Serial::RxIrq);
gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);
}
@@ -247,6 +258,7 @@
gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);
reset_all;
// PENDING : ENABLE THREADS
+ // gCDMS_HK_TIMER.start(5000);
PL_wo_dma->start(6000);
gSESSION_TIMEOUT.detach();
gFLAGS = gFLAGS & (~COM_SESSION_FLAG);
@@ -254,29 +266,17 @@
}
else if( gFLAGS & COM_PA_HOT_FLAG ){
/*gPC.puts("checking for PA hot in main\r\n");*/
- if( gFLAGS & COM_RX_FLAG ){
- uint8_t tempPA = 0xFF;
- isPAhot(tempPA);
- if( tempPA == 0x00 ){
- gCOM_PA_COOLING_TIMEOUT.attach(&after_cooling_pa, COM_PA_COOLING_TIME_LIMIT);
- }
- else{
- gFLAGS = gFLAGS & ~(COM_PA_HOT_FLAG);
- gCOM_PA_COOLING_TIMEOUT.detach();
- }
+ P_COM_HK;
+ if((gFLAGS & COM_PA_HOT_FLAG) || (gFLAGS & COM_PA_OC_FLAG)){
+ COM_TX_CNTRL = 0;
+ gCOM_PA_COOLING_TIMEOUT.attach(&after_cooling_pa, COM_PA_COOLING_TIME_LIMIT);
}
else{
- uint8_t tempPA = 0xFF;
- isPAhot(tempPA);
- if( tempPA == 0x00 ){
- gCOM_PA_COOLING_TIMEOUT.attach(&after_cooling_pa, COM_PA_COOLING_TIME_LIMIT);
- }
- else{
+ gCOM_PA_COOLING_TIMEOUT.detach();
+ if( !(gFLAGS & COM_RX_FLAG) ){
/*gPC.puts("PA IS COOLED DOWN\r\n");*/
- gFLAGS = gFLAGS & (~COM_PA_HOT_FLAG);
gFLAGS = gFLAGS | COM_MNG_TMTC_RUNNING_FLAG;
RX1M.attach(NULL);
- gCOM_PA_COOLING_TIMEOUT.detach();
COM_POWER_ON_TX;
EXECUTE_OBOSC_ONLY;
EXECUTE_TC;
@@ -287,7 +287,7 @@
/*gPC.puts("session timeout: resetting in main\r\n");*/
COM_POWER_OFF_TX;
/*PENDING : ENABLE THREADS*/
-
+ // gCDMS_HK_TIMER.start(5000);
gSESSION_TIMEOUT.detach();
gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);
gFLAGS = gFLAGS & (~COM_SESSION_FLAG);
@@ -299,6 +299,7 @@
COM_POWER_OFF_TX;
reset_all;
// PENDING : ENABLE THREADS
+ // gCDMS_HK_TIMER.start(5000);
PL_wo_dma->start(6000);
gSESSION_TIMEOUT.detach();
gFLAGS = gFLAGS & (~COM_SESSION_FLAG);
--- a/common_functions.h Sun Jul 03 09:47:05 2016 +0000
+++ b/common_functions.h Sun Jul 03 11:35:55 2016 +0000
@@ -77,7 +77,7 @@
}\
}\
else{\
- /*PENDING: reset cdms*/\
+ RESET_CDMS;\
break;\
}\
}\
@@ -99,18 +99,24 @@
/*Attach this new node at the end*/\
}\
else{\
- /*PENDING: reset CDMS*/\
+ RESET_CDMS;\
break;\
}\
}\
}
#define put_crc_l1_ack(tm_ptr) {\
- tm_ptr->TM_string[2] = gTOTAL_CRC_FAIL_TC & 0xFF;\
/*TC LIST STATUS*/\
- tm_ptr->TM_string[3] |= (gMASTER_STATE << 5) & 0xE0;\
+ tm_ptr->TM_string[3] |= (gMASTER_STATE << 6) & 0xC0;\
/*PA HOT*/\
if( gFLAGS & COM_PA_HOT_FLAG ){\
+ tm_ptr->TM_string[3] |= (1 << 5);\
+ }\
+ else{\
+ tm_ptr->TM_string[3] &= ~(1 << 5);\
+ }\
+ /*PA OC*/\
+ if( gFLAGS & COM_PA_OC_FLAG ){\
tm_ptr->TM_string[3] |= (1 << 4);\
}\
else{\
@@ -124,16 +130,39 @@
#define fill_l1_ack(tm_ptr) {\
tm_ptr->next_TM = NULL;\
tm_ptr->TM_string[0] = TMID_ACK_L1 << 4;\
- /*PENDING: PA TEMPERATURE*/\
tm_ptr->TM_string[1] = gTOTAL_INCORRECT_SIZE_TC & 0xFF;\
tm_ptr->TM_string[2] = gTOTAL_CRC_FAIL_TC & 0xFF;\
}
+#define P_COM_HK{\
+ uint8_t returnHere;\
+ isPAhot(returnHere);\
+ if (returnHere == 0xFF)\
+ gFLAGS = gFLAGS & ~(COM_PA_HOT_FLAG);\
+ else\
+ gFLAGS = gFLAGS | COM_PA_HOT_FLAG;\
+ if (gFLAGS & COM_PA_OC_FLAG){\
+ COM_TX_CNTRL = 1;\
+ wait_ms(5);\
+ }\
+ isPAoc(returnHere);\
+ if (returnHere == 0xFF)\
+ gFLAGS = gFLAGS & ~(COM_PA_OC_FLAG);\
+ else\
+ gFLAGS = gFLAGS | COM_PA_OC_FLAG;\
+ /*P_CDMS_HANDLE_HW_FAULTS*/\
+}
+
#define isPAhot(returnHere){\
/*PENDING : COMPLETE THIS FUNCTION*/\
returnHere = 0xFF;\
}
+#define isPAoc(returnHere){\
+ /*PENDING : COMPLETE THIS FUNCTION*/\
+ returnHere = 0xFF;\
+}
+
#define get_call_sign(tm_ptr) {\
Base_tm* call_sign_tm = new Short_tm;\
call_sign_tm->next_TM = NULL;\
@@ -156,7 +185,6 @@
/*IF CRC PASS*/\
if( (GETcrc_pass(current_TC) == 1) ){\
if(TC_count > 4){\
- /*PENDING: FILL TC_EXEC_CODE, APPEND CRC TO THE TM*/\
put_crc_l1_ack( l1_ack );\
/*extend the TM linked list*/\
TC_count = 0;\
@@ -189,7 +217,7 @@
++overflowCountL1;\
}\
else{\
- /*PENDING: RESET CDMS*/\
+ RESET_CDMS;\
break;\
}\
}\
