pl ack in tmtc

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of COM_MNG_TMTC_SIMPLE_pl123 by shubham c

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         /*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 }