sd 32 update

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of COM_MNG_TMTC_SIMPLE by Shreesha S

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers COM_POWER_ON_TX.h Source File

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 }