CDMS code for testing sbc

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of CDMS_CODE by shubham c

Revision:
216:570251b23c7b
Parent:
214:867de6d350fa
Child:
217:93505a6f8db7
--- a/COM_POWER_ON_TX.h	Sun Jul 03 09:26:42 2016 +0000
+++ b/COM_POWER_ON_TX.h	Sun Jul 03 09:47:05 2016 +0000
@@ -1,444 +1,107 @@
-#define STANDBY_PRCS(tm_ptr){\
-    Base_tc *stdby_tc = new Long_tc;\
-    stdby_tc->next_TC = NULL;\
-    PUTshort_or_long(stdby_tc,LONG_TC_CODE);\
-    PUTcrc_pass(stdby_tc,0x1);\
-    PUTexec_status(stdby_tc,0);\
-    stdby_tc->TC_string[0] = 0x01;\
-    stdby_tc->TC_string[1] = 0x41;\
-    stdby_tc->TC_string[2] = 0x81;\
-    stdby_tc->TC_string[3] = 0x40;\
-    stdby_tc->TC_string[4] = 0x01;\
-    stdby_tc->TC_string[5] = 0x01;\
-    stdby_tc->TC_string[6] = 0x01;\
-    stdby_tc->TC_string[7] = 0;\
-    stdby_tc->TC_string[8] = 0;\
-    uint16_t crc16 = crc16_gen(stdby_tc->TC_string, 9);\
-    stdby_tc->TC_string[9]  = (crc16 & 0xFF00)>>8;\
-    stdby_tc->TC_string[10] = (crc16 & 0x00FF);\
-    for(int i = 11; i < 135; i++){\
-        stdby_tc->TC_string[i] = 0;\
-    }\
-    tm_ptr =  FCTN_CDMS_RLY_TMTC(stdby_tc);\
-    delete stdby_tc;\
-}
-
-#define SET_BCN_STANDBY(tm_ptr){\
-    Base_tc *beacon_tc = new Long_tc;\
-    beacon_tc->next_TC = NULL;\
-    PUTshort_or_long(beacon_tc,LONG_TC_CODE);\
-    PUTcrc_pass(beacon_tc,0x1);\
-    PUTexec_status(beacon_tc,0);\
-    beacon_tc->TC_string[0] = 0x01;\
-    beacon_tc->TC_string[1] = BCN_APID_SOURCE;\
-    beacon_tc->TC_string[2] = BCN_SERVICE;\
-    beacon_tc->TC_string[3] = 0xE2;\
-    beacon_tc->TC_string[4] = 0x01;\
-    beacon_tc->TC_string[5] = 0;\
-    beacon_tc->TC_string[6] = 0;\
-    beacon_tc->TC_string[7] = 0;\
-    beacon_tc->TC_string[8] = 0;\
-    uint16_t crc16 = crc16_gen(beacon_tc->TC_string, 9);\
-    beacon_tc->TC_string[9]  = (crc16 & 0xFF00)>>8;\
-    beacon_tc->TC_string[10] = (crc16 & 0x00FF);\
-    for(int i = 11; i < 135; i++){\
-        beacon_tc->TC_string[i] = 0;\
-    }\
-    tm_ptr =  FCTN_CDMS_RLY_TMTC(beacon_tc);\
-    delete beacon_tc;\
-}
-
-#define reset_bae {\
-    Base_tc *reset_BAE = new Short_tc;\
-    reset_BAE->next_TC = NULL;\
-    PUTshort_or_long(reset_BAE,SHORT_TC_CODE);\
-    PUTcrc_pass(reset_BAE,0x1);\
-    PUTexec_status(reset_BAE,0);\
-    reset_BAE->TC_string[0] = 0x01;\
-    reset_BAE->TC_string[1] = BAE_APID_SOURCE;\
-    reset_BAE->TC_string[2] = BAE_SERVICE;\
-    reset_BAE->TC_string[3] = BAE_RESET_PID;\
-    reset_BAE->TC_string[4] = 0;\
-    reset_BAE->TC_string[5] = 0;\
-    reset_BAE->TC_string[6] = 0;\
-    reset_BAE->TC_string[7] = 0;\
-    reset_BAE->TC_string[8] = 0;\
-    uint16_t crc16 = crc16_gen(reset_BAE->TC_string, 9);\
-    reset_BAE->TC_string[9]  = (crc16 & 0xFF00)>>8;\
-    reset_BAE->TC_string[10] = (crc16 & 0x00FF);\
-    Base_tm *tm_ptr = NULL;\
-    tm_ptr =  FCTN_CDMS_RLY_TMTC(reset_BAE);\
-    delete reset_BAE;\
-    /*DELETE THE TM AFTER USE*/\
-    Base_tm *del_tm = tm_ptr;\
-    int overCount = 0;\
-    while( del_tm != NULL ){\
-        if( (overCount < TM_OVERFLOW_CONSTANT) ){\
-            Base_tm *temp = del_tm->next_TM;\
-            delete del_tm;\
-            del_tm = temp;\
-            ++overCount;\
-        }\
-        else{\
-            RESET_CDMS;\
-            break;\
+#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: if standby ack received and bcn tx main status = 0*/\
+        bool retryFlag = true;\
+        while( retryFlag == true ){\
+            uint8_t standbyAck = 0xFF;\
+            /*PENDING: SET BEACON TO STANDBY*/\
+            if( standbyAck == 0xFF ){\
+                /*ACK RECCEIVED*/\
+                /*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*/\
+                }\
+            }\
         }\
     }\
-}
-
-#define power_off_bae {\
-    Base_tc *power_off_BAE = new Short_tc;\
-    power_off_BAE->next_TC = NULL;\
-    PUTshort_or_long(power_off_BAE,SHORT_TC_CODE);\
-    PUTcrc_pass(power_off_BAE,0x1);\
-    PUTexec_status(power_off_BAE,0);\
-    power_off_BAE->TC_string[0] = 0x01;\
-    power_off_BAE->TC_string[1] = BAE_APID_SOURCE;\
-    power_off_BAE->TC_string[2] = BAE_SERVICE;\
-    power_off_BAE->TC_string[3] = BAE_POWER_OFF_PID;\
-    power_off_BAE->TC_string[4] = 0;\
-    power_off_BAE->TC_string[5] = 0;\
-    power_off_BAE->TC_string[6] = 0;\
-    power_off_BAE->TC_string[7] = 0;\
-    power_off_BAE->TC_string[8] = 0;\
-    uint16_t crc16 = crc16_gen(power_off_BAE->TC_string, 9);\
-    power_off_BAE->TC_string[9]  = (crc16 & 0xFF00)>>8;\
-    power_off_BAE->TC_string[10] = (crc16 & 0x00FF);\
-    Base_tm *tm_ptr = NULL;\
-    tm_ptr = FCTN_CDMS_RLY_TMTC(power_off_BAE);\
-    delete power_off_BAE;\
-    /*DELETE THE TM AFTER USE*/\
-    Base_tm *del_tm = tm_ptr;\
-    int overCount = 0;\
-    while( del_tm != NULL ){\
-        if( (overCount < TM_OVERFLOW_CONSTANT) ){\
-            Base_tm *temp = del_tm->next_TM;\
-            delete del_tm;\
-            del_tm = temp;\
-            ++overCount;\
-        }\
-        else{\
-            RESET_CDMS;\
-            break;\
-        }\
-    }\
-}
-
-#define P_CDMS_HK_MAIN {\
-    Base_tc *hk_main_ptr = new Short_tc;\
-    hk_main_ptr->next_TC = NULL;\
-    PUTshort_or_long(hk_main_ptr,SHORT_TC_CODE);\
-    PUTcrc_pass(hk_main_ptr,0x1);\
-    PUTexec_status(hk_main_ptr,0);\
-    hk_main_ptr->TC_string[0] = 0x01;\
-    hk_main_ptr->TC_string[1] = 0x81;\
-    hk_main_ptr->TC_string[2] = 0x81;\
-    hk_main_ptr->TC_string[3] = 0x04;\
-    hk_main_ptr->TC_string[4] = 0;\
-    hk_main_ptr->TC_string[5] = 0;\
-    hk_main_ptr->TC_string[6] = 0;\
-    hk_main_ptr->TC_string[7] = 0;\
-    hk_main_ptr->TC_string[8] = 0;\
-    uint16_t crc16 = crc16_gen(hk_main_ptr->TC_string, 9);\
-    hk_main_ptr->TC_string[9]  = (crc16 & 0xFF00)>>8;\
-    hk_main_ptr->TC_string[10] = (crc16 & 0x00FF);\
-    Base_tm *tm_ptr = NULL;\
-    tm_ptr = FCTN_CDMS_RLY_TMTC(hk_main_ptr);\
-    delete hk_main_ptr;\
-    /*DELETE THE TM AFTER USE*/\
-    Base_tm *del_tm = tm_ptr;\
-    int overCount = 0;\
-    while( del_tm != NULL ){\
-        if( (overCount < TM_OVERFLOW_CONSTANT) ){\
-            Base_tm *temp = del_tm->next_TM;\
-            delete del_tm;\
-            del_tm = temp;\
-            ++overCount;\
-        }\
-        else{\
-            RESET_CDMS;\
+    /*PENDING: POWER ON COM_TX*/\
+    uint8_t adfConfigPass = 0xFF;\
+    for( int i = 0 ; i < COM_TX_CONFIG_LIMIT ; ++i ){\
+        /*PENDING: CONFIGURE ADF*/\
+        if( adfConfigPass == 0xFF ){\
             break;\
         }\
     }\
-}
-
-#define P_BCN_TX_MAIN(tm_ptr) {\
-    Base_tc *bcn_tx_main_ptr = new Long_tc;\
-    bcn_tx_main_ptr->next_TC = NULL;\
-    PUTshort_or_long(bcn_tx_main_ptr,LONG_TC_CODE);\
-    PUTcrc_pass(bcn_tx_main_ptr,0x1);\
-    PUTexec_status(bcn_tx_main_ptr,0);\
-    bcn_tx_main_ptr->TC_string[0] = 0x01;\
-    bcn_tx_main_ptr->TC_string[1] = 0x41;\
-    bcn_tx_main_ptr->TC_string[2] = 0x81;\
-    bcn_tx_main_ptr->TC_string[3] = 0x07;\
-    bcn_tx_main_ptr->TC_string[4] = 0;\
-    bcn_tx_main_ptr->TC_string[5] = 0;\
-    bcn_tx_main_ptr->TC_string[6] = 0;\
-    bcn_tx_main_ptr->TC_string[7] = 0;\
-    bcn_tx_main_ptr->TC_string[8] = 0;\
-    uint16_t crc16 = crc16_gen(bcn_tx_main_ptr->TC_string, 9);\
-    bcn_tx_main_ptr->TC_string[9]  = (crc16 & 0xFF00)>>8;\
-    bcn_tx_main_ptr->TC_string[10] = (crc16 & 0x00FF);\
-    for(int i = 11; i < 135; i++){\
-        bcn_tx_main_ptr->TC_string[i] = 0;\
+    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*/\
+        /*Call Sign, ACK_L1, TC_LIST*/\
+        /*snd_tm.head_pointer(power_on_tm_head);*/\
+        /*transmit_adf;*/\
+        /*deleting the telemetry*/\
+        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;\
+            }\
+        }\
     }\
-    tm_ptr =  FCTN_CDMS_RLY_TMTC(bcn_tx_main_ptr);\
-    delete bcn_tx_main_ptr;\
-}
-
-void COM_POWER_ON_TX() {
-    if (DEBUG)
-        gPC.puts("Inside COM_POWER_ON_TX\r\n");
-    if( !(gFLAGS & COM_TX_FLAG) ){
-        gFLAGS = gFLAGS | COM_TX_FLAG;
-        if( gFLAGS & BAE_SW_EN_FLAG ){
-            /*WARNING: INFINITE WHILE LOOP POSSIBLE: if standby ack received and bcn tx main status = 0*/
-            bool retryFlag = true;
-            while( retryFlag == true ){
-                Base_tm *tm_ptr = NULL;
-                SET_BCN_STANDBY(tm_ptr);
-                uint8_t bcn_main_status = (tm_ptr->TM_string[2] & 0xEF);
-                if(( bcn_main_status == 0xC0 )||( bcn_main_status ==0xA0 )){
-                    /*ACK RECCEIVED*/
-                    if( bcn_main_status == 0xA0 ){
-                        retryFlag = false;
-                        RF_SW_CNTRL_TX = 1;
-                        Thread::wait(25);
-                        RF_SW_CNTRL_TX = 0;
-                        gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);/*RF_SW_STATUS_FLAG set to RF_COM_TX*/
-                    }
-                    else{
-                        Thread::wait(5000);
-                    }
-                }
-                else{
-                    reset_bae;
-                    Base_tm *tm_ptr2 = NULL;
-                    SET_BCN_STANDBY(tm_ptr2);
-                    uint8_t standbyAck2 = 0;
-                    uint8_t bcn_main_status2 = (tm_ptr2->TM_string[2] & 0xEF);
-                    if( ( bcn_main_status2 == 0xC0 )||( bcn_main_status2 == 0xA0 ) ){
-                        if( bcn_main_status2 == 0xA0 ){
-                            retryFlag = false;
-                            RF_SW_CNTRL_TX = 1;
-                            Thread::wait(25);
-                            RF_SW_CNTRL_TX = 0;
-                            gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);
-                        }
-                        else{
-                            Thread::wait(5000);
-                        }                           
-                    }
-                    else{
-                        retryFlag = false;
-                        power_off_bae;
-                        gFLAGS = gFLAGS | COM_AUTO_POWER_OFF_BAE_FLAG;
-                        gFLAGS = gFLAGS & (~BAE_SW_EN_FLAG);
-                        RF_SW_CNTRL_TX = 1;
-                        Thread::wait(25);
-                        RF_SW_CNTRL_TX = 0;
-                        gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);/*RF_SW_STATUS_FLAG set to RF_COM_TX*/
-                    }
-                    /*DELETE THE TM AFTER USE*/
-                    Base_tm *del_tm = tm_ptr2;
-                    int overCount = 0;
-                    while( del_tm != NULL ){
-                        if( (overCount < TM_OVERFLOW_CONSTANT) ){
-                            Base_tm *temp = del_tm->next_TM;
-                            delete del_tm;
-                            del_tm = temp;
-                            ++overCount;
-                        }
-                        else{
-                            RESET_CDMS;
-                            break;
-                        }
-                    }
-                }
-                /*DELETE THE TM AFTER USE*/
-                Base_tm *del_tm = tm_ptr;
-                int overCount = 0;
-                while( del_tm != NULL ){
-                    if( (overCount < TM_OVERFLOW_CONSTANT) ){
-                        Base_tm *temp = del_tm->next_TM;
-                        delete del_tm;
-                        del_tm = temp;
-                        ++overCount;
-                    }
-                    else{
-                        RESET_CDMS;
-                        break;
-                    }
-                }
-            }
-        }
-        else{
-            RF_SW_CNTRL_TX = 1;
-            Thread::wait(25);
-            RF_SW_CNTRL_TX = 0;
-            gFLAGS = gFLAGS & (~RF_SW_STATUS_FLAG);/*RF_SW_STATUS_FLAG set to RF_COM_TX*/
-        }
-    }
-    COM_TX_CNTRL = 1;
-    uint8_t adfConfigPass = 0xFF;
-    for( int i = 0 ; i < COM_TX_CONFIG_LIMIT ; ++i ){
-        /*PENDING: CONFIGURE ADF and set adfConfigPass*/
-        if( adfConfigPass == 0xFF ){
-            break;
-        }
-    }
-    if( adfConfigPass == 0xFF ){
-        /*adf successfully configured*/
-        gFLAGS = gFLAGS | COM_TX_STATUS_FLAG;
-        /*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{
-                RESET_CDMS;
-                break;
-            }
-        }
-        get_tc_list(power_on_tm->next_TM, 0x00);
-        /*Call Sign, ACK_L1, TC_LIST*/
-        /*snd_tm.head_pointer(power_on_tm_head);*/
-        /*transmit_adf;*/
-        uint8_t transmissionPass = 0xFF;
-        /*PENDING: get acknowledgement of transmission*/
-        /*deleting the telemetry*/
-        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{
-                RESET_CDMS;
-                break;
-            }
-        }
-        if( transmissionPass == 0 ){
-            /*NOT Transmitted succesfully*/
-            COM_POWER_OFF_TX;
-            P_CDMS_HK_MAIN;
-            Base_tm *ptr_tm = NULL;
-            STANDBY_PRCS(ptr_tm);
-            uint8_t standbyACK = 0x00;
-            uint8_t bcn_main_status = (ptr_tm->TM_string[2] & 0xEF);
-            if(( bcn_main_status == 0xC0 )||( bcn_main_status ==0xA0 )){
-                standbyACK = 1;
-            }
-            if(standbyACK == 1){
-                uint8_t ackReceived = 0x00;
-                Base_tm *tm_ptr = NULL;
-                P_BCN_TX_MAIN(tm_ptr);
-                uint8_t ackcode = tm_ptr->TM_string[2] & 0xEF;
-                if( (ackcode == 0xA0) || (ackcode == 0xC0))
-                    ackReceived = 0xFF;
-                /*DELETE THE TM AFTER USE*/
-                Base_tm *del_tm = tm_ptr;
-                int overCount = 0;
-                while( del_tm != NULL ){
-                    if( (overCount < TM_OVERFLOW_CONSTANT) ){
-                        Base_tm *temp = del_tm->next_TM;
-                        delete del_tm;
-                        del_tm = temp;
-                        ++overCount;
-                    }
-                    else{
-                        RESET_CDMS;
-                        break;
-                    }
-                }
-                if( ackReceived == 0xFF ){
-                    Thread::wait(5000);
-                }
-            }
-            /*DELETE THE TM AFTER USE*/
-            Base_tm *del_tm = ptr_tm;
-            int overCount = 0;
-            while( del_tm != NULL ){
-                if( (overCount < TM_OVERFLOW_CONSTANT) ){
-                    Base_tm *temp = del_tm->next_TM;
-                    delete del_tm;
-                    del_tm = temp;
-                    ++overCount;
-                }
-                else{
-                    RESET_CDMS;
-                    break;
-                }
-            }
-            RESET_CDMS;            
-        }
-    }
-    else{
-        /*ADF not configured*/
-        gFLAGS = gFLAGS & (~COM_TX_STATUS_FLAG);
-        COM_POWER_OFF_TX;
-        P_CDMS_HK_MAIN;
-        Base_tm *ptr_tm = NULL;
-        STANDBY_PRCS(ptr_tm);
-        uint8_t standbyACK = 0x00;
-        uint8_t bcn_main_status = (ptr_tm->TM_string[2] & 0xEF);
-        if(( bcn_main_status == 0xC0 )||( bcn_main_status ==0xA0 )){
-            standbyACK = 1;
-        }
-        if(standbyACK == 1){
-            uint8_t ackReceived = 0x00;
-            Base_tm *tm_ptr = NULL;
-            P_BCN_TX_MAIN(tm_ptr);
-            uint8_t ackcode = tm_ptr->TM_string[2] & 0xEF;
-            if( (ackcode == 0xA0) || (ackcode == 0xC0))
-                ackReceived = 0xFF;
-            /*DELETE THE TM AFTER USE*/
-            Base_tm *del_tm = tm_ptr;
-            int overCount = 0;
-            while( del_tm != NULL ){
-                if( (overCount < TM_OVERFLOW_CONSTANT) ){
-                    Base_tm *temp = del_tm->next_TM;
-                    delete del_tm;
-                    del_tm = temp;
-                    ++overCount;
-                }
-                else{
-                    RESET_CDMS;
-                    break;
-                }
-            }
-            if( ackReceived == 0xFF ){
-                Thread::wait(5000);
-            }
-        }
-        /*DELETE THE TM AFTER USE*/
-        Base_tm *del_tm = ptr_tm;
-        int overCount = 0;
-        while( del_tm != NULL ){
-            if( (overCount < TM_OVERFLOW_CONSTANT) ){
-                Base_tm *temp = del_tm->next_TM;
-                delete del_tm;
-                del_tm = temp;
-                ++overCount;
-            }
-            else{
-                RESET_CDMS;
-                break;
-            }
-        }
-        RESET_CDMS;
-    }
-    /*gPC.puts("COMPLETED COM_POWER_ON_TX\r\n");*/
+    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