/** * @author ETSI STF517 /TTF002 * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsMapemSpatem/ItsSpatem_TpFunctions.ttcn $ * $Id: ItsSpatem_TpFunctions.ttcn,v 1.4 2018/12/06 17:59:36 dte Exp $ * @desc SPATEM TP functions * @copyright ETSI Copyright Notification * No part may be reproduced except as authorized by written permission. * The copyright and the foregoing restriction extend to reproduction in all media. * All rights reserved. * */ module ItsSpatem_TpFunctions { // LibCommon import from LibCommon_BasicTypesAndValues all; import from LibCommon_Sync all; import from LibCommon_VerdictControl all; import from LibCommon_Time all; // LibItsCommon import from LibItsCommon_Functions all; import from LibItsCommon_TypesAndValues all; // LibIts import from ITS_Container language "ASN.1:1997" all; import from MAPEM_PDU_Descriptions language "ASN.1:1997" all; import from SPATEM_PDU_Descriptions language "ASN.1:1997" all; import from DSRC language "ASN.1:1997" all; // LibItsMapemSpatem import from LibItsMapemSpatem_TestSystem all; import from LibItsMapemSpatem_Functions all; import from LibItsMapemSpatem_Templates all; import from LibItsMapemSpatem_TypesAndValues all; import from LibItsMapemSpatem_Pics all; group spateMessageDissemination { group spateMessageFormat { /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_01 */ function f_IS_TLM_GEN_MSGF_BV_01 () runs on ItsMapemSpatem { // Local variables // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); f_cfDown(); } // End of function f_IS_TLM_GEN_MSGF_BV_01 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_02 */ function f_IS_TLM_GEN_MSGF_BV_02 () runs on ItsMapemSpatem { // Local variables // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState( ?, //IntersectionReferenceID p_id -, //MsgCount p_revision -, //IntersectionStatusObject p_status - //MovementList p_states )} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); f_cfDown(); } // End of function f_IS_TLM_GEN_MSGF_BV_02 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_03 */ function f_IS_TLM_GEN_MSGF_BV_03 () runs on ItsMapemSpatem { // Local variables // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState( -, //IntersectionReferenceID p_id ?, //MsgCount p_revision -, //IntersectionStatusObject p_status - //MovementList p_states )} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); f_cfDown(); } // End of function f_IS_TLM_GEN_MSGF_BV_03 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_04 */ function f_IS_TLM_GEN_MSGF_BV_04 () runs on ItsMapemSpatem { // Local variables // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState_moyAndTimeStamp} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); f_cfDown(); } // End of function f_IS_TLM_GEN_MSGF_BV_04 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_05 */ function f_IS_TLM_GEN_MSGF_BV_05 () runs on ItsMtc { // Local variables var ItsMapemSpatem v_mapem; var ItsMapemSpatem v_spatem; // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf02Up(); // Preamble // Start components v_mapem := f_getComponent(c_compMap); v_spatem := f_getComponent(c_compSpat); v_mapem.start(f_IS_TLM_GEN_MSGF_BV_05_MAPEM()); v_spatem.start(f_IS_TLM_GEN_MSGF_BV_05_SPATEM()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Cleanup f_cf02Down(); } // End of function f_IS_TLM_GEN_MSGF_BV_05 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_05_SPATEM */ function f_IS_TLM_GEN_MSGF_BV_05_MAPEM () runs on ItsMapemSpatem { // Local variables var MapemInd v_mapem; var IntersectionReferenceID v_id; // Preamble f_prInitialState(); f_awaitMapeMessage( mw_mapemInd( mw_mapemPdu( mw_mapem( {mw_intersectionGeometry( -, -, -, {mw_roadLane( -,//laneID -,//laneAttributes -,//p_ingressApproach -,//egressApproach ? //connectsTo )} )} ) )), v_mapem ); 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); } // End of function f_IS_TLM_GEN_MSGF_BV_05_MAPEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_05_SPATEM */ function f_IS_TLM_GEN_MSGF_BV_05_SPATEM () runs on ItsMapemSpatem { // Local variables // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState( -, //IntersectionReferenceID p_id -, //MsgCount p_revision -, //IntersectionStatusObject p_status {mw_movementState(?)} //MovementList p_states with signalGroup )} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); } // End of function f_IS_TLM_GEN_MSGF_BV_05_SPATEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_06 */ function f_IS_TLM_GEN_MSGF_BV_06 () runs on ItsMtc { // Local variables var ItsMapemSpatem v_mapem; var ItsMapemSpatem v_spatem; // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf02Up(); // Preamble // Start components v_mapem := f_getComponent(c_compMap); v_spatem := f_getComponent(c_compSpat); v_mapem.start(f_IS_TLM_GEN_MSGF_BV_06_MAPEM()); v_spatem.start(f_IS_TLM_GEN_MSGF_BV_06_SPATEM()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Cleanup f_cf02Down(); } // End of function f_IS_TLM_GEN_MSGF_BV_06 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_06_SPATEM */ function f_IS_TLM_GEN_MSGF_BV_06_MAPEM () runs on ItsMapemSpatem { // Local variables var MapemInd v_mapem; var IntersectionReferenceID v_id; // Preamble f_prInitialState(); f_awaitMapeMessage( mw_mapemInd( mw_mapemPdu( mw_mapem( {mw_intersectionGeometry( -, -, -, {mw_roadLane( -,//laneID ?,//laneAttributes -,//p_ingressApproach -,//egressApproach ? //connectsTo )} )} ) )), v_mapem ); 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); } // End of function f_IS_TLM_GEN_MSGF_BV_06_MAPEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_06 */ function f_IS_TLM_GEN_MSGF_BV_06_SPATEM () runs on ItsMapemSpatem { // Local variables // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState( ?, //IntersectionReferenceID p_id -, //MsgCount p_revision -, //IntersectionStatusObject p_status {mw_movementState( ?,//SignalGroupID, ? //MovementEventList, )} //MovementList p_states )} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); } // End of function f_IS_TLM_GEN_MSGF_BV_06_SPATEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_07 */ function f_IS_TLM_GEN_MSGF_BV_07 () runs on ItsMtc { // Local variables var ItsMapemSpatem v_mapem; var ItsMapemSpatem v_spatem; // Test control 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 ***"); setverdict(inconc); stop; } // Test component configuration f_cf02Up(); // Preamble // Start components v_mapem := f_getComponent(c_compMap); v_spatem := f_getComponent(c_compSpat); v_mapem.start(f_IS_TLM_GEN_MSGF_BV_07_MAPEM()); v_spatem.start(f_IS_TLM_GEN_MSGF_BV_07_SPATEM()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Cleanup f_cf02Down(); } // End of function f_IS_TLM_GEN_MSGF_BV_07 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_07_MAPEM */ function f_IS_TLM_GEN_MSGF_BV_07_MAPEM () runs on ItsMapemSpatem { // Local variables var MapemInd v_mapem; var IntersectionReferenceID v_id; // 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); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // End of function f_IS_TLM_GEN_MSGF_BV_07_MAPEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_07_SPATEM */ function f_IS_TLM_GEN_MSGF_BV_07_SPATEM () runs on ItsMapemSpatem { // Local variables // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState( ?, //IntersectionReferenceID p_id -, //MsgCount p_revision -, //IntersectionStatusObject p_status {mw_movementState( //MovementList p_states ?,//SignalGroupID, {mw_movementEvent( //MovementEventList, -, * //timing )} )} )} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); } // End of function f_IS_TLM_GEN_MSGF_BV_07_SPATEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_08 */ function f_IS_TLM_GEN_MSGF_BV_08 () runs on ItsMtc { // Local variables var ItsMapemSpatem v_mapem; var ItsMapemSpatem v_spatem; // Test control if (not (PICS_SPATEM_GENERATION)) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf02Up(); // Preamble // Start components v_mapem := f_getComponent(c_compMap); v_spatem := f_getComponent(c_compSpat); v_mapem.start(f_IS_TLM_GEN_MSGF_BV_08_MAPEM()); v_spatem.start(f_IS_TLM_GEN_MSGF_BV_08_SPATEM()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Cleanup f_cf02Down(); } // End of function f_IS_TLM_GEN_MSGF_BV_08 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_08_MAPEM */ function f_IS_TLM_GEN_MSGF_BV_08_MAPEM () runs on ItsMapemSpatem { // Local variables var MapemInd v_mapem; var IntersectionReferenceID v_id; // 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); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // End of function f_IS_TLM_GEN_MSGF_BV_08_MAPEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_08_SPATEM */ function f_IS_TLM_GEN_MSGF_BV_08_SPATEM () runs on ItsMapemSpatem { // Local variables // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState( ?, //IntersectionReferenceID p_id -, //MsgCount p_revision -, //IntersectionStatusObject p_status {mw_movementState( ?,//SignalGroupID, {mw_movementEvent( //MovementEventList, -, mw_timeChangeDetails( //timing ? //minEndTime ) )} )} //MovementList p_states )} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); } // End of function f_IS_TLM_GEN_MSGF_BV_08_SPATEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_09 */ function f_IS_TLM_GEN_MSGF_BV_09 () runs on ItsMtc { // Local variables var ItsMapemSpatem v_mapem; var ItsMapemSpatem v_spatem; // Test control if (not (PICS_SPATEM_GENERATION and PICS_SPATEM_HAS_TIMING)) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION AND PICS_SPATEM_HAS_TIMING required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf02Up(); // Preamble // Start components v_mapem := f_getComponent(c_compMap); v_spatem := f_getComponent(c_compSpat); v_mapem.start(f_IS_TLM_GEN_MSGF_BV_09_MAPEM()); v_spatem.start(f_IS_TLM_GEN_MSGF_BV_09_SPATEM()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Cleanup f_cf02Down(); } // End of function f_IS_TLM_GEN_MSGF_BV_09 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_09_MAPEM */ function f_IS_TLM_GEN_MSGF_BV_09_MAPEM () runs on ItsMapemSpatem { // Local variables var MapemInd v_mapem; var IntersectionReferenceID v_id; // 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); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // End of function f_IS_TLM_GEN_MSGF_BV_09_MAPEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_09_SPATEM */ function f_IS_TLM_GEN_MSGF_BV_09_SPATEM () runs on ItsMapemSpatem { // Local variables // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState( ?, //IntersectionReferenceID p_id -, //MsgCount p_revision -, //IntersectionStatusObject p_status {mw_movementState( //MovementList p_states ?,//SignalGroupID, {mw_movementEvent( //MovementEventList, -, mw_timeChangeDetails( //timing ?, //minEndTime *, //startTime ? //nextTime ) )} )} )} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); } // End of function f_IS_TLM_GEN_MSGF_BV_09_SPATEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_10 */ function f_IS_TLM_GEN_MSGF_BV_10 () runs on ItsMtc { // Local variables var ItsMapemSpatem v_mapem; var ItsMapemSpatem v_spatem; // Test control if (not (PICS_SPATEM_GENERATION and PICS_SPATEM_PRIORITIZATION)) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION AND PICS_SPATEM_PRIORITIZATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf02Up(); // Preamble // Start components v_mapem := f_getComponent(c_compMap); v_spatem := f_getComponent(c_compSpat); v_mapem.start(f_IS_TLM_GEN_MSGF_BV_10_MAPEM()); v_spatem.start(f_IS_TLM_GEN_MSGF_BV_10_SPATEM()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Cleanup f_cf02Down(); } // End of function f_IS_TLM_GEN_MSGF_BV_10 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_10_CAM */ function f_IS_TLM_GEN_MSGF_BV_10_MAPEM () runs on ItsMapemSpatem { // Local variables var MapemInd v_mapem; var IntersectionReferenceID v_id; // 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); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // End of function f_IS_TLM_GEN_MSGF_BV_10_MAPEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_10_SPATEM */ function f_IS_TLM_GEN_MSGF_BV_10_SPATEM () runs on ItsMapemSpatem { // Local variables // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState_regional( ?, //IntersectionReferenceID p_id -, //MsgCount p_revision -, //IntersectionStatusObject p_status -, ? //regional )} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); } // End of function f_IS_TLM_GEN_MSGF_BV_10_SPATEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_11 */ function f_IS_TLM_GEN_MSGF_BV_11 () runs on ItsMtc { // Local variables var ItsMapemSpatem v_mapem; var ItsMapemSpatem v_spatem; // Test control 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 ***"); setverdict(inconc); stop; } // Test component configuration f_cf02Up(); // Preamble // Start components v_mapem := f_getComponent(c_compMap); v_spatem := f_getComponent(c_compSpat); v_mapem.start(f_IS_TLM_GEN_MSGF_BV_11_MAPEM()); v_spatem.start(f_IS_TLM_GEN_MSGF_BV_11_SPATEM()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Cleanup f_cf02Down(); } // End of function f_IS_TLM_GEN_MSGF_BV_11 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_11_MAPEM */ function f_IS_TLM_GEN_MSGF_BV_11_MAPEM () runs on ItsMapemSpatem { // Local variables var MapemInd v_mapem; var IntersectionReferenceID v_id; // 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); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // End of function f_IS_TLM_GEN_MSGF_BV_11_MAPEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_11_SPATEM */ function f_IS_TLM_GEN_MSGF_BV_11_SPATEM () runs on ItsMapemSpatem { // Local variables // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState_maneuverAssistList( ?, //IntersectionReferenceID p_id -, //MsgCount p_revision -, //IntersectionStatusObject p_status -, {mw_connectionManeuverAssist( ?, // connectionID ? // pedBicycleDetect )} )} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); } // End of function f_IS_TLM_GEN_MSGF_BV_11_SPATEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_12 */ function f_IS_TLM_GEN_MSGF_BV_12 () runs on ItsMtc { // Local variables var ItsMapemSpatem v_mapem; var ItsMapemSpatem v_spatem; // Test control if (not (PICS_SPATEM_GENERATION and PICS_SPATEM_HAS_OPTIMAL_SPEED)) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION AND PICS_SPATEM_PEDESTRIAN_MANOEUVRES required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cf02Up(); // Preamble // 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()); // Synchronization f_serverSync2ClientsAndStop({c_prDone, c_tbDone}); // Cleanup f_cf02Down(); } // End of function f_IS_TLM_GEN_MSGF_BV_12 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_12_MAPEM */ function f_IS_TLM_GEN_MSGF_BV_12_MAPEM () runs on ItsMapemSpatem { // Local variables var MapemInd v_mapem; var IntersectionReferenceID v_id; // 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); 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); f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState( ?, //IntersectionReferenceID p_id -, //MsgCount p_revision -, //IntersectionStatusObject p_status {mw_movementState( //MovementList p_states ?,//SignalGroupID, {mw_movementEvent( //MovementEventList, -, -,//timing {mw_advisorySpeed( //speeds (ecoDrive, transit),//type (ecoDrive (2) or transit (3)) ? //speed )} )} )} )} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); } // End of function f_IS_TLM_GEN_MSGF_BV_12_SPATEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_13 */ function f_IS_TLM_GEN_MSGF_BV_13 () runs on ItsMtc { // Local variables var ItsMapemSpatem v_mapem; var ItsMapemSpatem v_spatem; // Test control 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 ***"); setverdict(inconc); stop; } // Test component configuration f_cf02Up(); // Preamble // Start components v_mapem := f_getComponent(c_compMap); v_spatem := f_getComponent(c_compSpat); 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(); } // End of function f_IS_TLM_GEN_MSGF_BV_13 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_13_MAPEM */ function f_IS_TLM_GEN_MSGF_BV_13_MAPEM () runs on ItsMapemSpatem { // Local variables var MapemInd v_mapem; var IntersectionReferenceID v_id; // 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); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // End of function f_IS_TLM_GEN_MSGF_BV_13_MAPEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_13_SPATEM */ function f_IS_TLM_GEN_MSGF_BV_13_SPATEM () runs on ItsMapemSpatem { // Local variables // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState( ?, //IntersectionReferenceID p_id -, //MsgCount p_revision -, //IntersectionStatusObject p_status {mw_movementState( //MovementList p_states ?,//SignalGroupID, {mw_movementEvent( //MovementEventList, -, -,//timing {mw_advisorySpeed( //speeds greenwave,//type (greenwave (1)) ? //speed )} )} )} )} ) ) )) { 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); } // End of function f_IS_TLM_GEN_MSGF_BV_13_SPATEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_14 */ function f_IS_TLM_GEN_MSGF_BV_14 () runs on ItsMtc { // Local variables var ItsMapemSpatem v_mapem; var ItsMapemSpatem v_spatem; // Test control 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 ***"); setverdict(inconc); stop; } // Test component configuration f_cf02Up(); // Preamble // Start components v_mapem := f_getComponent(c_compMap); v_spatem := f_getComponent(c_compSpat); 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(); } // End of function f_IS_TLM_GEN_MSGF_BV_14 /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_14_MAPEM */ function f_IS_TLM_GEN_MSGF_BV_14_MAPEM () runs on ItsMapemSpatem { // Local variables var MapemInd v_mapem; var IntersectionReferenceID v_id; // 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); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } // End of function f_IS_TLM_GEN_MSGF_BV_14_MAPEM /** * @desc TP Function for TC_IS_TLM_GEN_MSGF_BV_14_SPATEM */ function f_IS_TLM_GEN_MSGF_BV_14_SPATEM () runs on ItsMapemSpatem { // Local variables // Preamble f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); // Wait for SPATEM sent tc_ac.start(2.0); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemInd( mw_spatemPdu( mw_spatem_intersections( {mw_IntersectionState_maneuverAssistList( ?, //IntersectionReferenceID p_id -, //MsgCount p_revision -, //IntersectionStatusObject p_status -, {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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); } // End of function f_IS_TLM_GEN_MSGF_BV_14_SPATEM } // End of group spateMessageFormat group spateEventGeneration { /** * @desc TP Function for f_IS_TLM_GEN_EVGN_BV_01 */ function f_IS_TLM_GEN_EVGN_BV_01() runs on ItsMapemSpatem { // Local variables // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); 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. ***"); 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); f_cfDown(); } // 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 if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); f_awaitSpateMessage( mw_spatemInd( mw_spatemPdu( mw_spatemWellFormatted ) ), v_spatem ); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body f_utTriggerEvent(m_utTriggerEvent(spatemNewContent)); 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. ***"); 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. ***"); 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); f_cfDown(); } // 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 { // Local variables // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body 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; // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); f_awaitSpateMessage( mw_spatemInd( mw_spatemPdu( mw_defaultSpatem ) ), v_spatem ); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body f_utTriggerEvent(m_utTriggerEvent(spatemNewContent)); 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. ***"); 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. ***"); 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); f_cfDown(); } // End of function f_IS_TLM_GEN_EVGN_BV_04 } // End of group spateEventGeneration group spateCommunication { /** * @desc TP Function for f_IS_TLM_GEN_COM_BV_01 */ function f_IS_TLM_GEN_COM_BV_01 () runs on ItsMapemSpatem { // Local variables // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); f_cfDown(); } // 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; // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemIndWithGnParameters( mw_spatemPdu, c_gnNhBtpB )) { tc_ac.stop; 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; 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); f_cfDown(); } // 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; // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemIndWithBtpParameters( mw_spatemPdu, c_gnNhBtpBPort, 0 )) { tc_ac.stop; 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; 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); f_cfDown(); } // 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; // Test control if (not PICS_SPATEM_GENERATION) { log("*** " & testcasename() & ": PICS_SPATEM_GENERATION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_utTriggerEvent(m_utTriggerEvent(startTLMService)); 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; 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 f_utTriggerEvent(m_utTriggerEvent(stopTLMService)); f_poDefault(); f_cfDown(); } // End of function f_IS_TLM_GEN_COM_BV_03 } // End of group spateCommunication } // End of group spateMessageDissemination group spateSecurityParameters { /** * @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); } } // Postamble f_poDefault(); f_cfDown(); } // 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); } } // Postamble f_poDefault(); f_cfDown(); } // 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); // Test Body f_utTriggerEvent(m_utTriggerEvent(spatemNewContent)); tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemIndWithSecurityParameters( mw_spatemPdu, oct2bit('010000'O), 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); } } // Postamble f_poDefault(); f_cfDown(); } // End of function f_IS_TLM_GEN_SSP_BV_01 /** * @desc TP Function for TC_IS_TLM_GEN_SSP_BV_02 */ function f_IS_TLM_GEN_SSP_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("CERT_SPAT_SSP_ALL"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body f_utTriggerEvent(m_utTriggerEvent(spatemNewContent)); tc_ac.start; alt { [] mapemSpatemPort.receive( mw_spatemIndWithSecurityParameters( mw_spatemPdu, oct2bit('010000'O), 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); } } // Postamble f_poDefault(); f_cfDown(); } // End of function f_IS_TLM_GEN_SSP_BV_02 /** * @desc TP Function for TC_IS_TLM_GEN_SSP_BO_03 */ function f_IS_TLM_GEN_SSP_BO_03 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_GEN_SSP_BO_03 /** * @desc TP Function for TC_IS_TLM_GEN_SSP_BV_04 */ function f_IS_TLM_GEN_SSP_BV_04 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_GEN_SSP_BV_04 /** * @desc TP Function for TC_IS_TLM_GEN_SSP_BO_05 */ function f_IS_TLM_GEN_SSP_BO_05 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_GEN_SSP_BO_05 /** * @desc TP Function for TC_IS_TLM_GEN_SSP_BV_06 */ function f_IS_TLM_GEN_SSP_BV_06 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_GEN_SSP_BV_06 /** * @desc TP Function for TC_IS_TLM_GEN_SSP_BV_07 */ function f_IS_TLM_GEN_SSP_BV_07 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_GEN_SSP_BV_07 /** * @desc TP Function for TC_IS_TLM_GEN_SSP_BO_08 */ function f_IS_TLM_GEN_SSP_BO_08 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_GEN_SSP_BO_08 /** * @desc TP Function for TC_IS_TLM_GEN_SSP_BO_09 */ function f_IS_TLM_GEN_SSP_BO_09 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_GEN_SSP_BO_09 /** * @desc TP Function for TC_IS_TLM_GEN_RATE_BV_01 */ function f_IS_TLM_GEN_RATE_BV_01() runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_GEN_RATE_BV_01 } group spateMessageProcessing { /** * @desc TP Function for f_IS_TLM_RCV_MSGF_BV_01 */ function f_IS_TLM_RCV_MSGF_BV_01 () runs on ItsMapemSpatem { // Local variables var SpatemReq v_spatemReq; var integer i; if (not PICS_SPATEM_RECEPTION) { log("*** " & testcasename() & ": PICS_SPATEM_RECEPTION required for executing the TC ***"); setverdict(inconc); stop; } // Test component configuration f_cfUp(); // Preamble f_prInitialState(); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Test Body v_spatemReq := valueof(m_spatemReq(m_spatemPdu(m_defaultSpatem))); mapemSpatemPort.send(v_spatemReq) ; f_sleep(PX_TAC); for (i := 0; i < lengthof(vc_utSpatemEvents) and not match (valueof(v_spatemReq.msgOut) , vc_utSpatemEvents[i].spateMsg); i := i + 1) { // empty on purpose } if (i < lengthof(vc_utSpatemEvents) ) { log("*** " & testcasename() & ": PASS: SPATEM was transmitted to upper layer***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { log("*** " & testcasename() & ": FAIL: SPATEM was not transmitted to upper layer***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } // Postamble f_poDefault(); f_cfDown(); } // End of function f_IS_TLM_RCV_MSGF_BV_01 /** * @desc TP Function for TC_IS_TLM_RCV_SEC_BV_01 */ function f_IS_TLM_RCV_SEC_BV_01 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_RCV_SEC_BV_01 /** * @desc TP Function for TC_IS_TLM_RCV_SEC_BO_01 */ function f_IS_TLM_RCV_SEC_BO_01 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_RCV_SEC_BO_01 /** * @desc TP Function for TC_IS_TLM_RCV_SSP_BV_01 */ function f_IS_TLM_RCV_SSP_BV_01 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_RCV_SSP_BV_01 /** * @desc TP Function for TC_IS_TLM_RCV_SSP_BO_02 */ function f_IS_TLM_RCV_SSP_BO_02 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_RCV_SSP_BO_02 /** * @desc TP Function for TC_IS_TLM_RCV_SSP_BV_03 */ function f_IS_TLM_RCV_SSP_BV_03 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_RCV_SSP_BV_03 /** * @desc TP Function for TC_IS_TLM_RCV_SSP_BO_04 */ function f_IS_TLM_RCV_SSP_BO_04 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_RCV_SSP_BO_04 /** * @desc TP Function for TC_IS_TLM_RCV_SSP_BV_05 */ function f_IS_TLM_RCV_SSP_BV_05 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_RCV_SSP_BV_05 /** * @desc TP Function for TC_IS_TLM_RCV_SSP_BO_06 */ function f_IS_TLM_RCV_SSP_BO_06 () runs on ItsMapemSpatem { // TODO } // End of function f_IS_TLM_RCV_SSP_BO_06 } // End of group spateMessageProcessing } // End of module ItsSpatem_TpFunctions