Loading ttcn/CAM/LibItsCam_Functions.ttcn +153 −14 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ module LibItsCam_Functions { import from LibItsCam_TestSystem all; import from LibItsCam_Templates all; import from LibItsCam_TypesAndValues all; import from LibItsCommon_Pixits all; import from LibItsCommon_Templates all; import from LibItsCommon_Functions all; import from LibItsCommon_TypesAndValues all; import from ITS_Container language "ASN.1:1997" all; Loading Loading @@ -105,14 +107,121 @@ module LibItsCam_Functions { } // End of group utFunctions group adapterControl { /** * @desc Triggers event in the test system adaptation. * @param p_event The event to trigger * @return FncRetCode */ function f_acTriggerGnssEvent(template (value) AcGnssPrimitive p_event) runs on ItsCam return FncRetCode { var FncRetCode v_ret := e_success; acPort.send(p_event); tc_ac.start; alt { [] acPort.receive(m_acGnssResponseSuccess) { tc_ac.stop; } [] acPort.receive { tc_ac.stop; log("*** " & __SCOPE__ & ": ERROR: Received unexpected message ***"); f_selfOrClientSyncAndVerdict("error", e_error); } [] tc_ac.timeout { log("*** " & __SCOPE__ & ": ERROR: Timeout while waiting for adapter control event result ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); } } return v_ret; } /** * @desc Loads the given scenario * * @param p_scenario The scenario to load. */ function f_acLoadScenario(Scenario p_scenario) runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT==true) { f_acTriggerGnssEvent(m_loadScenario(p_scenario)); } } // end f_acLoadScenario /** * @desc Starts a loaded scenario */ function f_acStartScenario() runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT==true) { f_acTriggerGnssEvent(m_startScenario); vc_scenarioStarted := true; } } // end f_acStartScenario /** * @desc Stops a loaded scenario */ function f_acStopScenario() runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT==true and vc_scenarioStarted==true) { f_acTriggerGnssEvent(m_stopScenario); vc_scenarioStarted := false; } } // end f_acStopScenario function f_acAwaitDistanceCovered(float p_distanceToCover) runs on ItsCam return FncRetCode { var FncRetCode v_ret := e_success; if (PICS_GNSS_SCENARIO_SUPPORT==true and vc_scenarioStarted==true) { f_acTriggerGnssEvent(m_distanceToCover(p_distanceToCover)); tc_ac.start; alt { [] acPort.receive(m_acGnssDistanceCovered) { tc_ac.stop; } [] acPort.receive { tc_ac.stop; log("*** " & __SCOPE__ & ": ERROR: Received unexpected message ***"); f_selfOrClientSyncAndVerdict("error", e_error); } [] tc_ac.timeout { log("*** " & __SCOPE__ & ": ERROR: Timeout while waiting for covered distance indication ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); } } } return v_ret; } // end f_acAwaitDistanceCovered function f_acChangeSpeed(SpeedValue p_deltaSpeedValue) runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT==true and vc_scenarioStarted==true) { f_acTriggerGnssEvent(m_changeScenarioSpeed(p_deltaSpeedValue)); } } // end f_acChangeSpeed function f_acChangeHeading(HeadingValue p_deltaHeadingValue) runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT==true and vc_scenarioStarted==true) { f_acTriggerGnssEvent(m_changeScenarioHeading(p_deltaHeadingValue)); } } // end f_acChangeHeading } // End of group adapterControl group camConfigurationFunctions { /** * @desc Setups default configuration */ function f_cfUp() runs on ItsCam { function f_cfUp() runs on ItsCam system ItsCamSystem { map(self:utPort, system:utPort); map(self:acPort, system:acPort); map(self:camPort, system:camPort); f_connect4SelfOrClientSync(); Loading @@ -121,9 +230,10 @@ module LibItsCam_Functions { /** * @desc Deletes default configuration */ function f_cfDown() runs on ItsCam { function f_cfDown() runs on ItsCam system ItsCamSystem { unmap(self:utPort, system:utPort); unmap(self:acPort, system:acPort); unmap(self:camPort, system:camPort); f_disconnect4SelfOrClientSync(); Loading Loading @@ -191,16 +301,22 @@ module LibItsCam_Functions { * @desc Initialize the IUT * @remark No specific actions specified in the base standard */ function f_prInitialState() runs on ItsCam { function f_prInitialState(Scenario p_scenario := e_staticPosition, boolean p_awaitInitialCAM := true) runs on ItsCam { f_utInitializeIut(m_camInitialize); f_prDefault(); f_acLoadScenario(p_scenario); //Allow burst mode at the beginning f_sleep(1.0); camPort.clear; f_acStartScenario(); if (p_awaitInitialCAM) { tc_ac.start; alt { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ Loading @@ -212,6 +328,7 @@ module LibItsCam_Functions { f_selfOrClientSyncAndVerdictPreamble("error", e_timeout); } } } } // end f_prInitialState Loading @@ -223,7 +340,7 @@ module LibItsCam_Functions { * @desc The default postamble. */ function f_poDefault() runs on ItsCam { //empty f_acStopScenario(); } } // end group postambles Loading Loading @@ -256,6 +373,28 @@ module LibItsCam_Functions { } // end group camPositionFunctions group camAuxilaryFunctions { function f_changeSpeed(SpeedValue p_deltaSpeedValue) runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT == false) { f_utTriggerEvent(m_changeSpeed(p_deltaSpeedValue)); } else { f_acChangeSpeed(p_deltaSpeedValue); } } function f_changeHeading(HeadingValue p_deltaHeadingValue) runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT == false) { f_utTriggerEvent(m_changeHeading(p_deltaHeadingValue)); } else { f_acChangeHeading(p_deltaHeadingValue); } } } // end group camAuxilaryFunctions group camGenerators { function f_generateDefaultCam() return octetstring { Loading ttcn/CAM/LibItsCam_TestSystem.ttcn +13 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,16 @@ module LibItsCam_TestSystem { group portDefinitions { /** * @desc Adapter control port */ type port AdapterControlPort message { out AcGnssPrimitive; in AcGnssResponse, AcGnssDistanceCovered; } // end AdapterControlPort /** * @desc Upper Tester port */ Loading Loading @@ -65,6 +75,7 @@ module LibItsCam_TestSystem { type component ItsCamSystem { port UpperTesterPort utPort; port AdapterControlPort acPort; // FA1 ports port CamPort camPort; Loading @@ -79,6 +90,7 @@ module LibItsCam_TestSystem { type component ItsCam extends ItsBaseComponent { port UpperTesterPort utPort; port AdapterControlPort acPort; // FA1 ports port CamPort camPort; Loading ttcn/Common/LibItsCommon_Pixits.ttcn +6 −1 Original line number Diff line number Diff line Loading @@ -46,4 +46,9 @@ module LibItsCommon_Pixits { */ modulepar integer PX_TIME_DELTA := 1000; /** * @desc Support for GNSS scenario */ modulepar boolean PICS_GNSS_SCENARIO_SUPPORT := true; } // end LibItsCommon_Pixits No newline at end of file ttcn/Common/LibItsCommon_Templates.ttcn 0 → 100644 +75 −0 Original line number Diff line number Diff line /** * @author ETSI / STF405 / STF449 * @version $URL: https://forge.etsi.org/svn/LibIts/branches/C2C/ttcn/Common/LibItsCommon_TypesAndValues.ttcn $ * $Id: LibItsCommon_Templates.ttcn,v 1.2 2015/10/21 15:22:56 dte Exp $ * @desc Module containing base template definitions for DENM * */ module LibItsCommon_Templates { import from ITS_Container language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_TypesAndValues all; group taPrimitives { template AcGnssResponse m_acGnssResponseSuccess := true; template AcGnssDistanceCovered m_acGnssDistanceCovered := true; /** * @desc Testsystem will load GNSS scenario */ template AcGnssPrimitive m_loadScenario(Scenario p_scenario) := { loadScenario := { scenario := p_scenario } } /** * @desc Testsystem will start GNSS scenario */ template AcGnssPrimitive m_startScenario := { startScenario := { } } /** * @desc Testsystem will stop GNSS scenario */ template AcGnssPrimitive m_stopScenario := { stopScenario := { } } /** * @desc Testsystem will request indication if distance was covered */ template AcGnssPrimitive m_distanceToCover(float p_distance) := { distanceToCover := { distance := p_distance } } /** * @desc Testsystem will change the speed (delta value) */ template AcGnssPrimitive m_changeScenarioSpeed(SpeedValue p_deltaSpeedValue) := { changeSpeed := { deltaSpeed := p_deltaSpeedValue } } /** * @desc Testsystem will change the heading (delta value) */ template AcGnssPrimitive m_changeScenarioHeading(HeadingValue p_deltaHeadingValue) := { changeHeading := { deltaHeading := p_deltaHeadingValue } } } // end taPrimitives } ttcn/Common/LibItsCommon_TestSystem.ttcn +2 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,8 @@ module LibItsCommon_TestSystem { timer tc_ac := PX_TAC; timer tc_noac := PX_TNOAC; var boolean vc_scenarioStarted := false; } // end ItsComponent } // End of group componentDefinitions Loading Loading
ttcn/CAM/LibItsCam_Functions.ttcn +153 −14 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ module LibItsCam_Functions { import from LibItsCam_TestSystem all; import from LibItsCam_Templates all; import from LibItsCam_TypesAndValues all; import from LibItsCommon_Pixits all; import from LibItsCommon_Templates all; import from LibItsCommon_Functions all; import from LibItsCommon_TypesAndValues all; import from ITS_Container language "ASN.1:1997" all; Loading Loading @@ -105,14 +107,121 @@ module LibItsCam_Functions { } // End of group utFunctions group adapterControl { /** * @desc Triggers event in the test system adaptation. * @param p_event The event to trigger * @return FncRetCode */ function f_acTriggerGnssEvent(template (value) AcGnssPrimitive p_event) runs on ItsCam return FncRetCode { var FncRetCode v_ret := e_success; acPort.send(p_event); tc_ac.start; alt { [] acPort.receive(m_acGnssResponseSuccess) { tc_ac.stop; } [] acPort.receive { tc_ac.stop; log("*** " & __SCOPE__ & ": ERROR: Received unexpected message ***"); f_selfOrClientSyncAndVerdict("error", e_error); } [] tc_ac.timeout { log("*** " & __SCOPE__ & ": ERROR: Timeout while waiting for adapter control event result ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); } } return v_ret; } /** * @desc Loads the given scenario * * @param p_scenario The scenario to load. */ function f_acLoadScenario(Scenario p_scenario) runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT==true) { f_acTriggerGnssEvent(m_loadScenario(p_scenario)); } } // end f_acLoadScenario /** * @desc Starts a loaded scenario */ function f_acStartScenario() runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT==true) { f_acTriggerGnssEvent(m_startScenario); vc_scenarioStarted := true; } } // end f_acStartScenario /** * @desc Stops a loaded scenario */ function f_acStopScenario() runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT==true and vc_scenarioStarted==true) { f_acTriggerGnssEvent(m_stopScenario); vc_scenarioStarted := false; } } // end f_acStopScenario function f_acAwaitDistanceCovered(float p_distanceToCover) runs on ItsCam return FncRetCode { var FncRetCode v_ret := e_success; if (PICS_GNSS_SCENARIO_SUPPORT==true and vc_scenarioStarted==true) { f_acTriggerGnssEvent(m_distanceToCover(p_distanceToCover)); tc_ac.start; alt { [] acPort.receive(m_acGnssDistanceCovered) { tc_ac.stop; } [] acPort.receive { tc_ac.stop; log("*** " & __SCOPE__ & ": ERROR: Received unexpected message ***"); f_selfOrClientSyncAndVerdict("error", e_error); } [] tc_ac.timeout { log("*** " & __SCOPE__ & ": ERROR: Timeout while waiting for covered distance indication ***"); f_selfOrClientSyncAndVerdict("error", e_timeout); } } } return v_ret; } // end f_acAwaitDistanceCovered function f_acChangeSpeed(SpeedValue p_deltaSpeedValue) runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT==true and vc_scenarioStarted==true) { f_acTriggerGnssEvent(m_changeScenarioSpeed(p_deltaSpeedValue)); } } // end f_acChangeSpeed function f_acChangeHeading(HeadingValue p_deltaHeadingValue) runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT==true and vc_scenarioStarted==true) { f_acTriggerGnssEvent(m_changeScenarioHeading(p_deltaHeadingValue)); } } // end f_acChangeHeading } // End of group adapterControl group camConfigurationFunctions { /** * @desc Setups default configuration */ function f_cfUp() runs on ItsCam { function f_cfUp() runs on ItsCam system ItsCamSystem { map(self:utPort, system:utPort); map(self:acPort, system:acPort); map(self:camPort, system:camPort); f_connect4SelfOrClientSync(); Loading @@ -121,9 +230,10 @@ module LibItsCam_Functions { /** * @desc Deletes default configuration */ function f_cfDown() runs on ItsCam { function f_cfDown() runs on ItsCam system ItsCamSystem { unmap(self:utPort, system:utPort); unmap(self:acPort, system:acPort); unmap(self:camPort, system:camPort); f_disconnect4SelfOrClientSync(); Loading Loading @@ -191,16 +301,22 @@ module LibItsCam_Functions { * @desc Initialize the IUT * @remark No specific actions specified in the base standard */ function f_prInitialState() runs on ItsCam { function f_prInitialState(Scenario p_scenario := e_staticPosition, boolean p_awaitInitialCAM := true) runs on ItsCam { f_utInitializeIut(m_camInitialize); f_prDefault(); f_acLoadScenario(p_scenario); //Allow burst mode at the beginning f_sleep(1.0); camPort.clear; f_acStartScenario(); if (p_awaitInitialCAM) { tc_ac.start; alt { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ Loading @@ -212,6 +328,7 @@ module LibItsCam_Functions { f_selfOrClientSyncAndVerdictPreamble("error", e_timeout); } } } } // end f_prInitialState Loading @@ -223,7 +340,7 @@ module LibItsCam_Functions { * @desc The default postamble. */ function f_poDefault() runs on ItsCam { //empty f_acStopScenario(); } } // end group postambles Loading Loading @@ -256,6 +373,28 @@ module LibItsCam_Functions { } // end group camPositionFunctions group camAuxilaryFunctions { function f_changeSpeed(SpeedValue p_deltaSpeedValue) runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT == false) { f_utTriggerEvent(m_changeSpeed(p_deltaSpeedValue)); } else { f_acChangeSpeed(p_deltaSpeedValue); } } function f_changeHeading(HeadingValue p_deltaHeadingValue) runs on ItsCam { if (PICS_GNSS_SCENARIO_SUPPORT == false) { f_utTriggerEvent(m_changeHeading(p_deltaHeadingValue)); } else { f_acChangeHeading(p_deltaHeadingValue); } } } // end group camAuxilaryFunctions group camGenerators { function f_generateDefaultCam() return octetstring { Loading
ttcn/CAM/LibItsCam_TestSystem.ttcn +13 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,16 @@ module LibItsCam_TestSystem { group portDefinitions { /** * @desc Adapter control port */ type port AdapterControlPort message { out AcGnssPrimitive; in AcGnssResponse, AcGnssDistanceCovered; } // end AdapterControlPort /** * @desc Upper Tester port */ Loading Loading @@ -65,6 +75,7 @@ module LibItsCam_TestSystem { type component ItsCamSystem { port UpperTesterPort utPort; port AdapterControlPort acPort; // FA1 ports port CamPort camPort; Loading @@ -79,6 +90,7 @@ module LibItsCam_TestSystem { type component ItsCam extends ItsBaseComponent { port UpperTesterPort utPort; port AdapterControlPort acPort; // FA1 ports port CamPort camPort; Loading
ttcn/Common/LibItsCommon_Pixits.ttcn +6 −1 Original line number Diff line number Diff line Loading @@ -46,4 +46,9 @@ module LibItsCommon_Pixits { */ modulepar integer PX_TIME_DELTA := 1000; /** * @desc Support for GNSS scenario */ modulepar boolean PICS_GNSS_SCENARIO_SUPPORT := true; } // end LibItsCommon_Pixits No newline at end of file
ttcn/Common/LibItsCommon_Templates.ttcn 0 → 100644 +75 −0 Original line number Diff line number Diff line /** * @author ETSI / STF405 / STF449 * @version $URL: https://forge.etsi.org/svn/LibIts/branches/C2C/ttcn/Common/LibItsCommon_TypesAndValues.ttcn $ * $Id: LibItsCommon_Templates.ttcn,v 1.2 2015/10/21 15:22:56 dte Exp $ * @desc Module containing base template definitions for DENM * */ module LibItsCommon_Templates { import from ITS_Container language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_TypesAndValues all; group taPrimitives { template AcGnssResponse m_acGnssResponseSuccess := true; template AcGnssDistanceCovered m_acGnssDistanceCovered := true; /** * @desc Testsystem will load GNSS scenario */ template AcGnssPrimitive m_loadScenario(Scenario p_scenario) := { loadScenario := { scenario := p_scenario } } /** * @desc Testsystem will start GNSS scenario */ template AcGnssPrimitive m_startScenario := { startScenario := { } } /** * @desc Testsystem will stop GNSS scenario */ template AcGnssPrimitive m_stopScenario := { stopScenario := { } } /** * @desc Testsystem will request indication if distance was covered */ template AcGnssPrimitive m_distanceToCover(float p_distance) := { distanceToCover := { distance := p_distance } } /** * @desc Testsystem will change the speed (delta value) */ template AcGnssPrimitive m_changeScenarioSpeed(SpeedValue p_deltaSpeedValue) := { changeSpeed := { deltaSpeed := p_deltaSpeedValue } } /** * @desc Testsystem will change the heading (delta value) */ template AcGnssPrimitive m_changeScenarioHeading(HeadingValue p_deltaHeadingValue) := { changeHeading := { deltaHeading := p_deltaHeadingValue } } } // end taPrimitives }
ttcn/Common/LibItsCommon_TestSystem.ttcn +2 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,8 @@ module LibItsCommon_TestSystem { timer tc_ac := PX_TAC; timer tc_noac := PX_TNOAC; var boolean vc_scenarioStarted := false; } // end ItsComponent } // End of group componentDefinitions Loading