ItsSpatem_TpFunctions.ttcn 123 KB
Newer Older
garciay's avatar
garciay committed
                    setverdict(inconc);
                    stop;
                }
Bostjan Pintar's avatar
Bostjan Pintar committed
                    
Bostjan Pintar's avatar
Bostjan Pintar committed
                f_cf02Up();
Bostjan Pintar's avatar
Bostjan Pintar committed
                // Start components
                v_mapem := f_getComponent(c_compMap);
                v_spatem := f_getComponent(c_compSpat);
                v_mapem.start(f_IS_TLM_GEN_MSGF_BV_12_MAPEM());
                v_spatem.start(f_IS_TLM_GEN_MSGF_BV_12_SPATEM());
Bostjan Pintar's avatar
Bostjan Pintar committed
                // Synchronization
                f_serverSync2ClientsAndStop({c_prDone, c_tbDone});
Bostjan Pintar's avatar
Bostjan Pintar committed
                // Cleanup
                f_cf02Down();
                
            } // End of function f_IS_TLM_GEN_MSGF_BV_12
Bostjan Pintar's avatar
Bostjan Pintar committed
             * @desc    TP Function for TC_IS_TLM_GEN_MSGF_BV_12_MAPEM
Bostjan Pintar's avatar
Bostjan Pintar committed
            function f_IS_TLM_GEN_MSGF_BV_12_MAPEM () runs on ItsMapemSpatem {
Bostjan Pintar's avatar
Bostjan Pintar committed
                var MapemInd v_mapem;
                var IntersectionReferenceID v_id;
Bostjan Pintar's avatar
Bostjan Pintar committed
                // Preamble
                f_prInitialState();
                f_awaitMapeMessage(
                    mw_mapemInd(
                        mw_mapemPdu(
                            mw_mapem(
                                {mw_intersectionGeometry(
                                    ?,//IntersectionReferenceId  
                                    -, 
                                    -, 
                                    {mw_roadLane(
                                        -,//laneID
                                        ?,//laneAttributes
                                        -,//p_ingressApproach
                                        -,//egressApproach
                                        ? //connectsTo
                                    )} 
                                 )}
                            )
                    )),
                    v_mapem
                );
                v_id := v_mapem.msgIn.map_.intersections[0].id;
                log("IntersectionReferenceID = ", v_id);
garciay's avatar
garciay committed
                
Bostjan Pintar's avatar
Bostjan Pintar committed
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                
            } // End of function f_IS_TLM_GEN_MSGF_BV_12_MAPEM
            
            /**
             * @desc    TP Function for TC_IS_TLM_GEN_MSGF_BV_12_SPATEM
             */
            function f_IS_TLM_GEN_MSGF_BV_12_SPATEM () runs on ItsMapemSpatem {
                
                // Local variables
                
                // Preamble
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
Bostjan Pintar's avatar
Bostjan Pintar committed
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
Bostjan Pintar's avatar
Bostjan Pintar committed
                // Wait for SPATEM sent
                tc_ac.start(2.0);
                    
Bostjan Pintar's avatar
Bostjan Pintar committed
                
Bostjan Pintar's avatar
Bostjan Pintar committed
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_spatem_intersections(
                                    {mw_IntersectionState(
                                        ?, //IntersectionReferenceID p_id
                                        -, //MsgCount p_revision
                                        -, //IntersectionStatusObject p_status
Bostjan Pintar's avatar
Bostjan Pintar committed
                                        {mw_movementState( //MovementList p_states
                                            ?,//SignalGroupID,    
                                            {mw_movementEvent( //MovementEventList,
                                                -,
                                                -,//timing
                                                {mw_advisorySpeed(  //speeds
                                                  (ecoDrive, transit),//type   (ecoDrive   (2) or transit    (3))
                                                  ? //speed
                                                )} 
                                            )} 
                                        )}
                        log("*** " & testcasename() & ": PASS: Successfully received SAPTEM PDU header. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
Yann Garcia's avatar
Yann Garcia committed
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
Bostjan Pintar's avatar
Bostjan Pintar committed
            } // End of function f_IS_TLM_GEN_MSGF_BV_12_SPATEM
Bostjan Pintar's avatar
Bostjan Pintar committed
             * @desc    TP Function for TC_IS_TLM_GEN_MSGF_BV_13
Bostjan Pintar's avatar
Bostjan Pintar committed
            function f_IS_TLM_GEN_MSGF_BV_13 () runs on ItsMtc {
                var ItsMapemSpatem v_mapem;
                var ItsMapemSpatem v_spatem;
garciay's avatar
garciay committed
                // Test control
Bostjan Pintar's avatar
Bostjan Pintar committed
                if (not (PICS_SPATEM_GENERATION and PICS_SPATEM_PEDESTRIAN_MANOEUVRES)) {
                    log("*** " & testcasename() & ": PICS_SPATEM_GENERATION AND PICS_SPATEM_PEDESTRIAN_MANOEUVRES required for executing the TC ***");
garciay's avatar
garciay committed
                    setverdict(inconc);
                    stop;
                }
                f_cf02Up();
                
                // Preamble
                
                // Start components
                v_mapem := f_getComponent(c_compMap);
                v_spatem := f_getComponent(c_compSpat);
Bostjan Pintar's avatar
Bostjan Pintar committed
                v_mapem.start(f_IS_TLM_GEN_MSGF_BV_13_MAPEM());
                v_spatem.start(f_IS_TLM_GEN_MSGF_BV_13_SPATEM());
                
                // Synchronization
                f_serverSync2ClientsAndStop({c_prDone, c_tbDone});
                
                // Cleanup
                f_cf02Down();
                
Bostjan Pintar's avatar
Bostjan Pintar committed
            } // End of function f_IS_TLM_GEN_MSGF_BV_13
Bostjan Pintar's avatar
Bostjan Pintar committed
             * @desc    TP Function for TC_IS_TLM_GEN_MSGF_BV_13_MAPEM
Bostjan Pintar's avatar
Bostjan Pintar committed
            function f_IS_TLM_GEN_MSGF_BV_13_MAPEM () runs on ItsMapemSpatem {
                // Local variables
                var MapemInd v_mapem;
Bostjan Pintar's avatar
Bostjan Pintar committed
                var IntersectionReferenceID v_id;
garciay's avatar
garciay committed
                f_prInitialState();
                f_awaitMapeMessage(
                    mw_mapemInd(
                        mw_mapemPdu(
                            mw_mapem(
                                {mw_intersectionGeometry(
Bostjan Pintar's avatar
Bostjan Pintar committed
                                    ?,//IntersectionReferenceId  
                                    -, 
                                    -, 
                                    {mw_roadLane(
                                        -,//laneID
                                        ?,//laneAttributes
                                        -,//p_ingressApproach
                                        -,//egressApproach
                                        ? //connectsTo
                                    )} 
                                 )}
                            )
                    )),
                    v_mapem
                );
Bostjan Pintar's avatar
Bostjan Pintar committed
                v_id := v_mapem.msgIn.map_.intersections[0].id;
                log("IntersectionReferenceID = ", v_id);
                
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                
Bostjan Pintar's avatar
Bostjan Pintar committed
            } // End of function f_IS_TLM_GEN_MSGF_BV_13_MAPEM
Bostjan Pintar's avatar
Bostjan Pintar committed
             * @desc    TP Function for TC_IS_TLM_GEN_MSGF_BV_13_SPATEM
Bostjan Pintar's avatar
Bostjan Pintar committed
            function f_IS_TLM_GEN_MSGF_BV_13_SPATEM () runs on ItsMapemSpatem {
                
                // Local variables
                
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                // Wait for SPATEM sent
                tc_ac.start(2.0);
                    
Bostjan Pintar's avatar
Bostjan Pintar committed
                
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_spatem_intersections(
                                    {mw_IntersectionState(
                                        ?, //IntersectionReferenceID p_id
                                        -, //MsgCount p_revision
                                        -, //IntersectionStatusObject p_status
Bostjan Pintar's avatar
Bostjan Pintar committed
                                        {mw_movementState( //MovementList p_states
                                            ?,//SignalGroupID,    
Bostjan Pintar's avatar
Bostjan Pintar committed
                                            {mw_movementEvent( //MovementEventList,
                                                -,
                                                -,//timing
                                                {mw_advisorySpeed(  //speeds
                                                  greenwave,//type   (greenwave   (1))
                                                  ? //speed
                                                )} 
                                            )} 
                                        )}
                        log("*** " & testcasename() & ": PASS: Successfully received SAPTEM PDU header. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
Yann Garcia's avatar
Yann Garcia committed
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
Bostjan Pintar's avatar
Bostjan Pintar committed
            } // End of function f_IS_TLM_GEN_MSGF_BV_13_SPATEM
Bostjan Pintar's avatar
Bostjan Pintar committed
             * @desc    TP Function for TC_IS_TLM_GEN_MSGF_BV_14
Bostjan Pintar's avatar
Bostjan Pintar committed
            function f_IS_TLM_GEN_MSGF_BV_14 () runs on ItsMtc {
                var ItsMapemSpatem v_mapem;
                var ItsMapemSpatem v_spatem;
garciay's avatar
garciay committed
                // Test control
Bostjan Pintar's avatar
Bostjan Pintar committed
                if (not (PICS_SPATEM_GENERATION and PICS_SPATEM_HAS_EGRESS_QUEUE)) {
                    log("*** " & testcasename() & ": PICS_SPATEM_GENERATION AND PICS_SPATEM_PEDESTRIAN_MANOEUVRES required for executing the TC ***");
garciay's avatar
garciay committed
                    setverdict(inconc);
                    stop;
                }
                f_cf02Up();
                // Start components
                v_mapem := f_getComponent(c_compMap);
                v_spatem := f_getComponent(c_compSpat);
Bostjan Pintar's avatar
Bostjan Pintar committed
                v_mapem.start(f_IS_TLM_GEN_MSGF_BV_14_MAPEM());
                v_spatem.start(f_IS_TLM_GEN_MSGF_BV_14_SPATEM());
                // Synchronization
                f_serverSync2ClientsAndStop({c_prDone, c_tbDone});
                // Cleanup
                f_cf02Down();
Bostjan Pintar's avatar
Bostjan Pintar committed
            } // End of function f_IS_TLM_GEN_MSGF_BV_14
Bostjan Pintar's avatar
Bostjan Pintar committed
             * @desc    TP Function for TC_IS_TLM_GEN_MSGF_BV_14_MAPEM
Bostjan Pintar's avatar
Bostjan Pintar committed
            function f_IS_TLM_GEN_MSGF_BV_14_MAPEM () runs on ItsMapemSpatem {
                // Local variables
                var MapemInd v_mapem;
Bostjan Pintar's avatar
Bostjan Pintar committed
                var IntersectionReferenceID v_id;
                // Preamble
                f_prInitialState();
                f_awaitMapeMessage(
                    mw_mapemInd(
                        mw_mapemPdu(
                            mw_mapem(
                                {mw_intersectionGeometry(
Bostjan Pintar's avatar
Bostjan Pintar committed
                                    ?,//IntersectionReferenceId  
                                    -, 
                                    -, 
                                    {mw_roadLane(
                                        -,//laneID
                                        ?,//laneAttributes
                                        -,//p_ingressApproach
                                        -,//egressApproach
                                        ? //connectsTo
                                    )} 
                                 )}
                            )
                    )),
                    v_mapem
                );
Bostjan Pintar's avatar
Bostjan Pintar committed
                v_id := v_mapem.msgIn.map_.intersections[0].id;
                log("IntersectionReferenceID = ", v_id);
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
Bostjan Pintar's avatar
Bostjan Pintar committed
            } // End of function f_IS_TLM_GEN_MSGF_BV_14_MAPEM
Bostjan Pintar's avatar
Bostjan Pintar committed
             * @desc    TP Function for TC_IS_TLM_GEN_MSGF_BV_14_SPATEM
Bostjan Pintar's avatar
Bostjan Pintar committed
            function f_IS_TLM_GEN_MSGF_BV_14_SPATEM () runs on ItsMapemSpatem {
                // Local variables
                // Preamble
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                // Wait for SPATEM sent
                tc_ac.start(2.0);
                    
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_spatem_intersections(
Bostjan Pintar's avatar
Bostjan Pintar committed
                                    {mw_IntersectionState_maneuverAssistList(
                                        ?, //IntersectionReferenceID p_id
                                        -, //MsgCount p_revision
                                        -, //IntersectionStatusObject p_status
Bostjan Pintar's avatar
Bostjan Pintar committed
                                        -,
                                        {mw_connectionManeuverAssist_queueAndAvailableStorageLength}
                                    )}
                                )
                            )
                    )) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received SAPTEM PDU header. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                // Postamble
Yann Garcia's avatar
Yann Garcia committed
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                f_poDefault();
Bostjan Pintar's avatar
Bostjan Pintar committed
            } // End of function f_IS_TLM_GEN_MSGF_BV_14_SPATEM
garciay's avatar
garciay committed
        group spateEventGeneration { 
            
            /**
             * @desc    TP Function for f_IS_TLM_GEN_EVGN_BV_01
             */
            function f_IS_TLM_GEN_EVGN_BV_01() runs on ItsMapemSpatem {
                
garciay's avatar
garciay committed
                if (not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***");
                // Test component configuration
                f_cfUp();
garciay's avatar
garciay committed
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_spatemWellFormatted
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received well-formed SPATEM. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_defaultSpatem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Received a SPATEM with incorrect information. ***");
Yann Garcia's avatar
Yann Garcia committed
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
Yann Garcia's avatar
Yann Garcia committed
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                
            } // End of function f_IS_TLM_GEN_EVGN_BV_01
            
            /**
             * @desc    TP Function for f_IS_TLM_GEN_EVGN_BV_02
             */
            function f_IS_TLM_GEN_EVGN_BV_02() runs on ItsMapemSpatem {
                
                // Local variables
                var SpatemInd v_spatem;
                
                // Test control
garciay's avatar
garciay committed
                if (not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***");
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                    
                // Preamble
garciay's avatar
garciay committed
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                f_awaitSpateMessage(
                    mw_spatemInd(
                        mw_spatemPdu(
                            mw_spatemWellFormatted
                        )
                    ), 
                    v_spatem
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                // Test Body
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0)); // FIXME Add parameters to update default profile or create a MamSpatUpdate message
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(v_spatem) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: The same SPATEM was received. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_spatemWellFormatted
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received a new well-formed SPATE message. ***");
Yann Garcia's avatar
Yann Garcia committed
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_defaultSpatem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Received a SPATEM with incorrect information. ***");
Yann Garcia's avatar
Yann Garcia committed
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
Yann Garcia's avatar
Yann Garcia committed
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
            } // End of function f_IS_TLM_GEN_EVGN_BV_02
            
            /**
             * @desc    TP Function for f_IS_TLM_GEN_EVGN_BV_03
             */
            function f_IS_TLM_GEN_EVGN_BV_03() runs on ItsMapemSpatem { 
                
garciay's avatar
garciay committed
                if (not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***");
                // Test component configuration
                f_cfUp();
garciay's avatar
garciay committed
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                    
                // Test Body
Yann Garcia's avatar
Yann Garcia committed
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                mapemSpatemPort.clear;
                tc_noac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_defaultSpatem
                    ))) { 
                        tc_noac.stop;
                        log("*** " & testcasename() & ": FAIL: No more SPATEM messages were expected. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] tc_noac.timeout {
                        log("*** " & testcasename() & ": PASS: TLM Service terminated. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                }
                    
                // Postamble
                f_poDefault();
                f_cfDown();
                
            } // End of function f_IS_TLM_GEN_EVGN_BV_03
            
            /**
             * @desc    TP Function for f_IS_TLM_GEN_EVGN_BV_04
             */
            function f_IS_TLM_GEN_EVGN_BV_04() runs on ItsMapemSpatem {
                
                // Local variables
                var SpatemInd v_spatem;
garciay's avatar
garciay committed
                if (not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***");
                // Test component configuration
                f_cfUp();
                    
                // Preamble
garciay's avatar
garciay committed
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                f_awaitSpateMessage(
                    mw_spatemInd(
                        mw_spatemPdu(
                            mw_defaultSpatem
                        )
                    ), 
                    v_spatem
                );
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0)); // FIXME Add parameters to update default profile or create a MamSpatUpdate message
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(v_spatem) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: A different SPATE message was expected. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_spatemWellFormatted
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received a new well-formed SPATE message. ***");
Yann Garcia's avatar
Yann Garcia committed
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                            mw_spatemPdu(
                                mw_defaultSpatem
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Received a SPATEM with incorrect information. ***");
Yann Garcia's avatar
Yann Garcia committed
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
Yann Garcia's avatar
Yann Garcia committed
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
garciay's avatar
garciay committed
        } // End of group spateEventGeneration
            
            /**
             * @desc    TP Function for f_IS_TLM_GEN_COM_BV_01
             */
            function f_IS_TLM_GEN_COM_BV_01 () runs on ItsMapemSpatem {
                
garciay's avatar
garciay committed
                // Test control
garciay's avatar
garciay committed
                if (not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***");
garciay's avatar
garciay committed
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                           mw_spatemPdu(
                               mw_spatem_with_region_id
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": PASS: Successfully received MAPEM using GBC. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
Yann Garcia's avatar
Yann Garcia committed
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                
            } // End of function f_IS_TLM_GEN_COM_BV_01
            
            /**
             * @desc    TP Function for f_IS_TLM_GEN_COM_BV_02_01
             */
            function f_IS_TLM_GEN_COM_BV_02_01 () runs on ItsMapemSpatem {
                
                // Local variables
                const UInt8 c_gnNhBtpB := 2;
                
garciay's avatar
garciay committed
                // Test control
garciay's avatar
garciay committed
                if (not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***");
garciay's avatar
garciay committed
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemIndWithGnParameters(
                           mw_spatemPdu, 
                           c_gnNhBtpB
                    )) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
                        log("*** " & testcasename() & ": PASS: Expected SPATEM encapsultated in BTP-B packet received. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(mw_spatemIndWithGnParameters(mw_spatemPdu(mw_defaultSpatem), omit)) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: no GN NH information in SpatemInd ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);  
                    }                    
                    [] mapemSpatemPort.receive(mw_spatemInd(mw_spatemPdu(mw_defaultSpatem))) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
                        log("*** " & testcasename() & ": FAIL: Expected SPATEM received, but not encapsulated in BTP-B packet ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);  
                    }                    
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
Yann Garcia's avatar
Yann Garcia committed
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                
            } // End of function f_IS_TLM_GEN_COM_BV_02_01
            
            /**
             * @desc    TP Function for f_IS_TLM_GEN_COM_BV_02
             */
            function f_IS_TLM_GEN_COM_BV_02 () runs on ItsMapemSpatem {
                
                // Local variables
                const UInt16 c_gnNhBtpBPort := 2004;
                
garciay's avatar
garciay committed
                // Test control
garciay's avatar
garciay committed
                if (not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***");
garciay's avatar
garciay committed
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemIndWithBtpParameters(
                           mw_spatemPdu, 
                           c_gnNhBtpBPort,
                           0
                    )) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
                        log("*** " & testcasename() & ": PASS: Expected SPATEM encapsultated in BTP packet with port value 2004 received. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(mw_spatemInd(mw_spatemPdu(mw_defaultSpatem))) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
                        log("*** " & testcasename() & ": FAIL: Expected SPATEM received, but not addressed to the correct destination port. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);  
                    }                    
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
Yann Garcia's avatar
Yann Garcia committed
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
                
            } // End of function f_IS_TLM_GEN_COM_BV_02
            
            /**
             * @desc    TP Function for f_IS_TLM_GEN_COM_BV_03
             */
            function f_IS_TLM_GEN_COM_BV_03 () runs on ItsMapemSpatem {
                
                // Local variables
                const UInt8 c_gnHtGbc := 4;
garciay's avatar
garciay committed
                // Test control
garciay's avatar
garciay committed
                if (not PICS_SPATEM_GENERATION) {
                    log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***");
garciay's avatar
garciay committed
                    setverdict(inconc);
                    stop;
                }
                
                // Test component configuration
                f_cfUp();
                
                // Preamble
garciay's avatar
garciay committed
                f_prInitialState();
Yann Garcia's avatar
Yann Garcia committed
                f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
                f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
                // Test Body
                tc_ac.start;
                alt {
                    [] mapemSpatemPort.receive(
                        mw_spatemIndWithGnParameters(
                           mw_spatemPdu(
                               mw_spatemWellFormatted
                           ),
                           -,
                           c_gnHtGbc
                    )) { 
                        tc_ac.stop;
garciay's avatar
garciay committed
                        log("*** " & testcasename() & ": PASS: Expected SPATEM encapsulated in GBC packet received. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemIndWithGnParameters(
                           mw_spatemPdu(
                               mw_spatemWellFormatted
                           ),
                           -,
                           omit
                    )) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Eno GN HT information in SpatemInd. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] mapemSpatemPort.receive(
                        mw_spatemInd(
                           mw_spatemPdu(
                               mw_spatemWellFormatted
                    ))) { 
                        tc_ac.stop;
                        log("*** " & testcasename() & ": FAIL: Expected SPATEM received, but not encapsulated in GBC packet. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_error);
                    }
                    [] tc_ac.timeout {
                        log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                        f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
                    }
                }
                
                // Postamble
Yann Garcia's avatar
Yann Garcia committed
                //f_utTriggerEvent(m_utTriggerEvent(stopTLMService));
            } // End of function f_IS_TLM_GEN_COM_BV_03
            
        } // End of group spateCommunication 
        
    } // End of group spateMessageDissemination
    
        
        /**
         * @desc    TP Function for TC_IS_TLM_GEN_SEC_BV_01
         */
        function f_IS_TLM_GEN_SEC_BV_01 () runs on ItsMapemSpatem {
       
            // Local variables
            var SpatemInd v_spatem;
        
            // Test control
            if (not PICS_SPATEM_GENERATION or not PICS_IS_IUT_SECURED) {
                log("*** " & testcasename() & ": PICS_SPATEM_GENERATION and PICS_IS_IUT_SECURED required for executing the TC ***");
                setverdict(inconc);
                stop;
            }
        
            // Test component configuration
            f_cfUp();
            
            // Preamble
            f_prInitialState();
            f_awaitSpateMessage(
                mw_spatemInd(
                    mw_spatemPdu(
                        mw_defaultSpatem
                    )
                ), 
                v_spatem
            );
            
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            tc_ac.start;
            alt {
                [] mapemSpatemPort.receive(
                                           mw_spatemIndWithSecurityParameters(
                                                                             mw_spatemPdu,
                                                                             -, 
                                                                             c_its_aid_SPAT
                )) { 
                    tc_ac.stop;
                    log("*** " & testcasename() & ": PASS: Expected secured SPATEM received. ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                }
                [] tc_ac.timeout {
                    log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
Bostjan Pintar's avatar
Bostjan Pintar committed
                }
            }
        
            // Postamble
            f_poDefault();
            f_cfDown();
Bostjan Pintar's avatar
Bostjan Pintar committed
            
        } // End of function f_IS_TLM_GEN_SEC_BV_01
        
        /**
         * @desc    TP Function for TC_IS_TLM_GEN_SEC_BV_02
         */
        function f_IS_TLM_GEN_SEC_BV_02 () runs on ItsMapemSpatem {
       
            // Local variables
            var SpatemInd v_spatem;
        
            // Test control
            if (not PICS_SPATEM_GENERATION or not PICS_IS_IUT_SECURED) {
                log("*** " & testcasename() & ": PICS_SPATEM_GENERATION and PICS_IS_IUT_SECURED required for executing the TC ***");
                setverdict(inconc);
                stop;
            }
        
            // Test component configuration
            f_cfUp();
            
            // Preamble
            f_prInitialState();
            f_awaitSpateMessage(
                mw_spatemInd(
                    mw_spatemPdu(
                        mw_defaultSpatem
                    )
                ), 
                v_spatem
            );
            
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
                
            // Test Body
            tc_ac.start;
            alt {
                [] mapemSpatemPort.receive(
                                           mw_spatemIndWithSecurityParameters(
                                                                             mw_spatemPdu,
                                                                             -, 
                                                                             c_its_aid_SPAT
                )) { 
                    tc_ac.stop;
                    log("*** " & testcasename() & ": PASS: Expected secured SPATEM received. ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_success);
                }
                [] tc_ac.timeout {
                    log("*** " & testcasename() & ": INCONC: Timeout while awaiting the reception of a message. ***");
                    f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout);
Bostjan Pintar's avatar
Bostjan Pintar committed
                }
            }
        
            // Postamble
            f_poDefault();
            f_cfDown();
Bostjan Pintar's avatar
Bostjan Pintar committed
            
        } // End of function f_IS_TLM_GEN_SEC_BV_02
        
        /**
         * @desc    TP Function for TC_IS_TLM_GEN_SSP_BV_01
         */
        function f_IS_TLM_GEN_SSP_BV_01 () runs on ItsMapemSpatem {
       
            // Local variables
            var SpatemInd v_spatem;
        
            // Test control
            if (not PICS_SPATEM_GENERATION or not PICS_IS_IUT_SECURED) {
                log("*** " & testcasename() & ": PICS_SPATEM_GENERATION and PICS_IS_IUT_SECURED required for executing the TC ***");
                setverdict(inconc);
                stop;
            }
        
            // Test component configuration
            f_cfUp();
            // Preamble
            f_prInitialState("CERT_SPAT_SSP_NONE");
            f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
Bostjan Pintar's avatar
Bostjan Pintar committed
            
            // Test Body
Yann Garcia's avatar
Yann Garcia committed
            f_utTriggerEvent(m_utTriggerEvent(spatProfile0));
        
            tc_ac.start;
            alt {