pl ack in tmtc

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of COM_MNG_TMTC_SIMPLE_pl123 by shubham c

Revision:
4:104dd82c99b8
Child:
5:ab276a17ca07
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/COM_POWER_ON_TX.h	Tue Dec 29 06:50:19 2015 +0000
@@ -0,0 +1,102 @@
+#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*/\
+        bool retryFlag = false;\
+        while( retryFlag == true ){\
+            uint8_t standbyAck = 0x00;\
+            /*PENDING: SET BEACON TO STANDBY*/\
+            if( standbyAck == 0xFF ){\
+                /*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*/\
+                }\
+            }\
+        }\
+    }\
+    /*PENDING: POWER ON COM_TX*/\
+    uint8_t adfConfigPass = 0x00;\
+    for( int i = 0 ; i < COM_TX_CONFIG_LIMIT ; ++i ){\
+        /*PENDING: CONFIGURE ADF*/\
+        if( adfConfigPass == 0xFF ){\
+            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*/\
+        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;\
+            }\
+        }\
+    }\
+    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");\
+}
\ No newline at end of file