pl ack in tmtc
Dependencies: FreescaleIAP SimpleDMA mbed-rtos mbed
Fork of COM_MNG_TMTC_SIMPLE_pl123 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 /*PENDING: TRANSMIT ABOVE TM*/\ 00074 /*Call Sign, ACK_L1, TC_LIST*/\ 00075 /*snd_tm.head_pointer(power_on_tm_head);*/\ 00076 /*transmit_adf;*/\ 00077 /*deleting the telemetry*/\ 00078 power_on_tm = power_on_tm_head;\ 00079 overFlowCountADF = 0;\ 00080 while( power_on_tm != NULL ){\ 00081 if( overFlowCountADF < TM_OVERFLOW_CONSTANT ){\ 00082 Base_tm *temp = power_on_tm->next_TM;\ 00083 delete power_on_tm;\ 00084 power_on_tm = temp;\ 00085 ++overFlowCountADF;\ 00086 }\ 00087 else{\ 00088 /*PENDING: RESET CDMS*/\ 00089 break;\ 00090 }\ 00091 }\ 00092 }\ 00093 else{\ 00094 /*PENDING: COM_POWER OFF TX*/\ 00095 /*PENDING: CDMS HK MAIN*/\ 00096 uint8_t ackReceived = 0x00;\ 00097 /*PENDING: BCN TX MAIN*/\ 00098 if( ackReceived == 0xFF ){\ 00099 gCOM_MNG_TMTC_THREAD->wait(5000);\ 00100 /*PENDING: RESET CDMS*/\ 00101 }\ 00102 else{\ 00103 /*PENDING: RESET CDMS*/\ 00104 }\ 00105 }\ 00106 /*gPC.puts("COMPLETED COM_POWER_ON_TX\r\n");*/\ 00107 }
Generated on Wed Jul 20 2022 09:24:44 by 1.7.2