sd 32 update
Dependencies: FreescaleIAP mbed-rtos mbed
Fork of COM_MNG_TMTC_SIMPLE by
COM_POWER_ON_TX.h
00001 #define COM_POWER_ON_TX {\ 00002 /*gPC.puts("Inside COM_POWER_ON_TX\r\n");*/\ 00003 if( !(gFLAGS & COM_TX_FLAG) ){\ 00004 gFLAGS = gFLAGS | COM_TX_FLAG;\ 00005 /*WARNING: INFINITE WHILE LOOP POSSIBLE: if standby ack received and bcn tx main status = 0*/\ 00006 bool retryFlag = true;\ 00007 while( retryFlag == true ){\ 00008 uint8_t standbyAck = 0xFF;\ 00009 /*PENDING: SET BEACON TO STANDBY*/\ 00010 if( standbyAck == 0xFF ){\ 00011 /*ACK RECCEIVED*/\ 00012 /*PENDING: BEACON TX MAIN STATUS*/\ 00013 if( true ){\ 00014 retryFlag = false;\ 00015 /*PENDING: SWITCH RELAY TO COM_TX*/\ 00016 /*PENDING: RF_SW_STATUS = RF_COM_TX*/\ 00017 }\ 00018 else{\ 00019 gCOM_MNG_TMTC_THREAD->wait(5000);\ 00020 }\ 00021 }\ 00022 else{\ 00023 /*PENDING: RESET BAE*/\ 00024 uint8_t standbyAck2 = 0x00;\ 00025 /*PENDING: SET BEACON TO STANDBY*/\ 00026 if( standbyAck2 == 0xFF ){\ 00027 /*PENDING: BEACON TX MAIN STAUTS*/\ 00028 if( true ){\ 00029 retryFlag = false;\ 00030 /*PENDING: SWITCH RF RELAY TO COM TX*/\ 00031 /*PENDING: RF_SW_STATUS = RF_COM_TX*/\ 00032 }\ 00033 }\ 00034 else{\ 00035 retryFlag = false;\ 00036 /*PENDING: POWER OFF BEACON*/\ 00037 /*PENDING: CLEAR BAE SW_EN*/\ 00038 /*PENDING: SWITCH RF RELAY TO COM TX*/\ 00039 /*PENDING: RF_SW_STATUS = RF_COM_TX*/\ 00040 }\ 00041 }\ 00042 }\ 00043 }\ 00044 /*PENDING: POWER ON COM_TX*/\ 00045 uint8_t adfConfigPass = 0xFF;\ 00046 for( int i = 0 ; i < COM_TX_CONFIG_LIMIT ; ++i ){\ 00047 /*PENDING: CONFIGURE ADF*/\ 00048 if( adfConfigPass == 0xFF ){\ 00049 break;\ 00050 }\ 00051 }\ 00052 if( adfConfigPass == 0xFF ){\ 00053 /*adf successfully configured*/\ 00054 /*CALL SIGN*/\ 00055 Base_tm *power_on_tm = NULL;\ 00056 Base_tm *power_on_tm_head = NULL;\ 00057 get_call_sign( power_on_tm_head );\ 00058 power_on_tm = power_on_tm_head;\ 00059 /*ACK L1*/\ 00060 get_ack_l1(power_on_tm->next_TM);\ 00061 int overFlowCountADF = 0;\ 00062 while( power_on_tm->next_TM != NULL ){\ 00063 if( overFlowCountADF < TM_OVERFLOW_CONSTANT ){\ 00064 power_on_tm = power_on_tm->next_TM;\ 00065 ++overFlowCountADF;\ 00066 }\ 00067 else{\ 00068 /*PENDING: RESET CDMS*/\ 00069 break;\ 00070 }\ 00071 }\ 00072 get_tc_list(power_on_tm->next_TM, 0x00);\ 00073 power_on_tm = power_on_tm_head;\ 00074 while(power_on_tm != NULL){\ 00075 int length = TM_SHORT_SIZE;\ 00076 if( GETshort_or_long_tm(power_on_tm->fields) == SHORT_TM_CODE ){\ 00077 length = TM_SHORT_SIZE;\ 00078 }\ 00079 else{\ 00080 length = TM_LONG_SIZE;\ 00081 }\ 00082 /*gPC.puts("Printing Call Sign, ACK_L1, TC_LIST inside COM_POWER_ON\r\n");*/\ 00083 for(int i = 0 ; i < length ; ++i){\ 00084 gPC.putc(power_on_tm->TM_string[i]);\ 00085 }\ 00086 power_on_tm = power_on_tm->next_TM;\ 00087 }\ 00088 /*PENDING: TRANSMIT ABOVE TM*/\ 00089 /*deleting the telemetry*/\ 00090 power_on_tm = power_on_tm_head;\ 00091 overFlowCountADF = 0;\ 00092 while( power_on_tm != NULL ){\ 00093 if( overFlowCountADF < TM_OVERFLOW_CONSTANT ){\ 00094 Base_tm *temp = power_on_tm->next_TM;\ 00095 delete power_on_tm;\ 00096 power_on_tm = temp;\ 00097 ++overFlowCountADF;\ 00098 }\ 00099 else{\ 00100 /*PENDING: RESET CDMS*/\ 00101 break;\ 00102 }\ 00103 }\ 00104 }\ 00105 else{\ 00106 /*PENDING: COM_POWER OFF TX*/\ 00107 /*PENDING: CDMS HK MAIN*/\ 00108 uint8_t ackReceived = 0x00;\ 00109 /*PENDING: BCN TX MAIN*/\ 00110 if( ackReceived == 0xFF ){\ 00111 gCOM_MNG_TMTC_THREAD->wait(5000);\ 00112 /*PENDING: RESET CDMS*/\ 00113 }\ 00114 else{\ 00115 /*PENDING: RESET CDMS*/\ 00116 }\ 00117 }\ 00118 /*gPC.puts("COMPLETED COM_POWER_ON_TX\r\n");*/\ 00119 }
Generated on Tue Jul 12 2022 10:59:21 by 1.7.2