Loading asn1/CAM/CAM.asn +21 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,12 @@ CamPdu ::= SEQUENCE { } InvalidCamPdu ::= SEQUENCE { header ItsPduHeader, cam CoopAwarenessInvalid } ItsPduHeader ::= SEQUENCE { -- protocolVersion fixed to 0 Loading Loading @@ -47,6 +53,21 @@ CoopAwareness ::= SEQUENCE { ... } -- invalid message type containing only stationID and stationCharacteristic, for testing purposes CoopAwarenessInvalid ::= SEQUENCE { stationID StationID, stationCharacteristics SEQUENCE { mobileItsStation BOOLEAN, -- will ITS station change position? privateItsStation BOOLEAN, -- not public authority physicalRelevantItsStation BOOLEAN, -- can another mobile ITS station crash into this station? ... } -- other mandatory fields missing here (invalid message type) } IrsParameters ::= SEQUENCE { referencePositionIrs ReferencePositionIrs, ... Loading ttcn/CAM/LibItsCam_Functions.ttcn +59 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,10 @@ module LibItsCam_Functions { import from LibIts_TestSystem all; import from LibIts_Interface all; import from LibItsCam_Templates all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; // LibCommon import from LibCommon_VerdictControl all; group defaults { Loading Loading @@ -55,6 +59,21 @@ module LibItsCam_Functions { } // end of preambles group postambles { /** * @desc Global postamble - stops the MTC * @remark No specific actions required so far * @param none */ function f_postamble() runs on ItsFa { log("*** f_postamble: INFO: postamble ***"); } // end of function } // end of upperTester group upperTester { function f_upperTester () { Loading Loading @@ -108,4 +127,44 @@ group configuration { } // end f_ptcCamDown } // end of configuration group externalFunctions { /** * @desc Generate a timestamp of the cureent time to be used in a generationTime field * @return TimeStamp<br> */ external function fx_generateTime() return TimeStamp; /* @desc Wrapper function for fx_generateTime * If external function returns FncRetCode "e_error" Test execution stops * * @see xf_generateTime * @see FncRetCode * */ function f_generateTime() return TimeStamp { //Variables var TimeStamp v_generationTime:=0; v_generationTime := fx_generateTime(); if (v_generationTime!=0) { return v_generationTime ; log("**** f_generateTime: INFO: OK - generationTime = " & int2str(v_generationTime) & " ****"); } else { log("**** f_generateTime: ERROR: timestamp could not be generated ****"); setverdict( inconc ) ; stop; f_postamble(); } } // end function f_triggerMsDsaReq_sf } // end of externalFunctions } // end LibItsCam_Functions No newline at end of file ttcn/CAM/LibItsCam_Pixits.ttcndeleted 100644 → 0 +0 −24 Original line number Diff line number Diff line /** * @author ETSI / STF405 * @version $URL: $ * $Id: $ * @desc CAM Pixits * */ module LibItsCam_Pixits { group camPixits { /** * @desc CAM minimum transmission interval (in seconds) */ modulepar float PX_CAM_MIN_TRANSMISSION_INTERVAL := 0.1; /** * @desc CAM maximum transmission interval (in seconds) */ modulepar float PX_CAM_MAX_TRANSMISSION_INTERVAL := 1.0; } // end camPixits } // end LibItsCam_Pixits ttcn/CAM/LibItsCam_Templates.ttcn +26 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ module LibItsCam_Templates { import from LibIts_Interface all; import from ItsCam_Pixits all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; Loading @@ -15,6 +16,8 @@ module LibItsCam_Templates { template CamReq m_camReq (in template CamPdu p_camMsg) := { msgOut := p_camMsg }; template InvalidCamReq m_invalidCamReq (in template InvalidCamPdu p_camMsg) := { msgOut := p_camMsg }; template CamPdu mw_camMsg_any := { header := { protocolVersion := 0, Loading Loading @@ -71,6 +74,29 @@ module LibItsCam_Templates { } }; template CamPdu m_camMsg_IRS_valid ( TimeStamp p_generationTime) := { header := { protocolVersion := 0, messageID := 0, generationTime := p_generationTime }, cam := { stationID := PX_TESTER_STATION_ID, stationCharacteristics := {false, false, false}, camParameters := {irs := {referencePositionIrs := PX_TESTER_REF_POSITION_IRS}} } }; template InvalidCamPdu m_camMsg_IRS_invalid ( TimeStamp p_generationTime) := { header := { protocolVersion := 0, messageID := 0, generationTime := p_generationTime }, cam := { stationID := PX_TESTER_STATION_ID, stationCharacteristics := {false, false, false} } }; template CamPdu mw_camMsg_basicVehicle modifies mw_camMsg_anyVehicle := { cam := { stationCharacteristics := {true, false, true}, Loading ttcn/LibIts_Interface.ttcn +12 −4 Original line number Diff line number Diff line Loading @@ -8,7 +8,8 @@ module LibIts_Interface { // LibIts import from LibItsCam_Pixits all; import from ItsCam_Pics all; import from ItsCam_Pixits all; import from LibItsGeoNetworking_TypesAndValues all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; import from DENM_PDU_Descriptions language "ASN.1:1997" all; Loading Loading @@ -85,8 +86,8 @@ module LibIts_Interface { // timers timer tc_wait := PX_TWAIT; timer tc_ac := PX_TAC; timer tc_minTransInterval := PX_CAM_MIN_TRANSMISSION_INTERVAL; timer tc_maxTransInterval := PX_CAM_MAX_TRANSMISSION_INTERVAL; timer tc_minTransInterval := PICS_CAM_MIN_TRANSMISSION_INTERVAL; timer tc_maxTransInterval := PICS_CAM_MAX_TRANSMISSION_INTERVAL; //global variables var SequenceNo vc_sequenceNo := 0; Loading Loading @@ -164,7 +165,7 @@ module LibIts_Interface { */ type port CamPort message { in CamInd; out CamReq; out CamReq, InvalidCamReq; } // end CamPort /** Loading Loading @@ -313,6 +314,13 @@ module LibIts_Interface { CamPdu msgOut } /** * @desc FA1 Invalid CAM Request Primitive */ type record InvalidCamReq { InvalidCamPdu msgOut } /** * @desc FA1 DENM Indication Primitive * Loading Loading
asn1/CAM/CAM.asn +21 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,12 @@ CamPdu ::= SEQUENCE { } InvalidCamPdu ::= SEQUENCE { header ItsPduHeader, cam CoopAwarenessInvalid } ItsPduHeader ::= SEQUENCE { -- protocolVersion fixed to 0 Loading Loading @@ -47,6 +53,21 @@ CoopAwareness ::= SEQUENCE { ... } -- invalid message type containing only stationID and stationCharacteristic, for testing purposes CoopAwarenessInvalid ::= SEQUENCE { stationID StationID, stationCharacteristics SEQUENCE { mobileItsStation BOOLEAN, -- will ITS station change position? privateItsStation BOOLEAN, -- not public authority physicalRelevantItsStation BOOLEAN, -- can another mobile ITS station crash into this station? ... } -- other mandatory fields missing here (invalid message type) } IrsParameters ::= SEQUENCE { referencePositionIrs ReferencePositionIrs, ... Loading
ttcn/CAM/LibItsCam_Functions.ttcn +59 −0 Original line number Diff line number Diff line Loading @@ -11,6 +11,10 @@ module LibItsCam_Functions { import from LibIts_TestSystem all; import from LibIts_Interface all; import from LibItsCam_Templates all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; // LibCommon import from LibCommon_VerdictControl all; group defaults { Loading Loading @@ -55,6 +59,21 @@ module LibItsCam_Functions { } // end of preambles group postambles { /** * @desc Global postamble - stops the MTC * @remark No specific actions required so far * @param none */ function f_postamble() runs on ItsFa { log("*** f_postamble: INFO: postamble ***"); } // end of function } // end of upperTester group upperTester { function f_upperTester () { Loading Loading @@ -108,4 +127,44 @@ group configuration { } // end f_ptcCamDown } // end of configuration group externalFunctions { /** * @desc Generate a timestamp of the cureent time to be used in a generationTime field * @return TimeStamp<br> */ external function fx_generateTime() return TimeStamp; /* @desc Wrapper function for fx_generateTime * If external function returns FncRetCode "e_error" Test execution stops * * @see xf_generateTime * @see FncRetCode * */ function f_generateTime() return TimeStamp { //Variables var TimeStamp v_generationTime:=0; v_generationTime := fx_generateTime(); if (v_generationTime!=0) { return v_generationTime ; log("**** f_generateTime: INFO: OK - generationTime = " & int2str(v_generationTime) & " ****"); } else { log("**** f_generateTime: ERROR: timestamp could not be generated ****"); setverdict( inconc ) ; stop; f_postamble(); } } // end function f_triggerMsDsaReq_sf } // end of externalFunctions } // end LibItsCam_Functions No newline at end of file
ttcn/CAM/LibItsCam_Pixits.ttcndeleted 100644 → 0 +0 −24 Original line number Diff line number Diff line /** * @author ETSI / STF405 * @version $URL: $ * $Id: $ * @desc CAM Pixits * */ module LibItsCam_Pixits { group camPixits { /** * @desc CAM minimum transmission interval (in seconds) */ modulepar float PX_CAM_MIN_TRANSMISSION_INTERVAL := 0.1; /** * @desc CAM maximum transmission interval (in seconds) */ modulepar float PX_CAM_MAX_TRANSMISSION_INTERVAL := 1.0; } // end camPixits } // end LibItsCam_Pixits
ttcn/CAM/LibItsCam_Templates.ttcn +26 −0 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ module LibItsCam_Templates { import from LibIts_Interface all; import from ItsCam_Pixits all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; Loading @@ -15,6 +16,8 @@ module LibItsCam_Templates { template CamReq m_camReq (in template CamPdu p_camMsg) := { msgOut := p_camMsg }; template InvalidCamReq m_invalidCamReq (in template InvalidCamPdu p_camMsg) := { msgOut := p_camMsg }; template CamPdu mw_camMsg_any := { header := { protocolVersion := 0, Loading Loading @@ -71,6 +74,29 @@ module LibItsCam_Templates { } }; template CamPdu m_camMsg_IRS_valid ( TimeStamp p_generationTime) := { header := { protocolVersion := 0, messageID := 0, generationTime := p_generationTime }, cam := { stationID := PX_TESTER_STATION_ID, stationCharacteristics := {false, false, false}, camParameters := {irs := {referencePositionIrs := PX_TESTER_REF_POSITION_IRS}} } }; template InvalidCamPdu m_camMsg_IRS_invalid ( TimeStamp p_generationTime) := { header := { protocolVersion := 0, messageID := 0, generationTime := p_generationTime }, cam := { stationID := PX_TESTER_STATION_ID, stationCharacteristics := {false, false, false} } }; template CamPdu mw_camMsg_basicVehicle modifies mw_camMsg_anyVehicle := { cam := { stationCharacteristics := {true, false, true}, Loading
ttcn/LibIts_Interface.ttcn +12 −4 Original line number Diff line number Diff line Loading @@ -8,7 +8,8 @@ module LibIts_Interface { // LibIts import from LibItsCam_Pixits all; import from ItsCam_Pics all; import from ItsCam_Pixits all; import from LibItsGeoNetworking_TypesAndValues all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; import from DENM_PDU_Descriptions language "ASN.1:1997" all; Loading Loading @@ -85,8 +86,8 @@ module LibIts_Interface { // timers timer tc_wait := PX_TWAIT; timer tc_ac := PX_TAC; timer tc_minTransInterval := PX_CAM_MIN_TRANSMISSION_INTERVAL; timer tc_maxTransInterval := PX_CAM_MAX_TRANSMISSION_INTERVAL; timer tc_minTransInterval := PICS_CAM_MIN_TRANSMISSION_INTERVAL; timer tc_maxTransInterval := PICS_CAM_MAX_TRANSMISSION_INTERVAL; //global variables var SequenceNo vc_sequenceNo := 0; Loading Loading @@ -164,7 +165,7 @@ module LibIts_Interface { */ type port CamPort message { in CamInd; out CamReq; out CamReq, InvalidCamReq; } // end CamPort /** Loading Loading @@ -313,6 +314,13 @@ module LibIts_Interface { CamPdu msgOut } /** * @desc FA1 Invalid CAM Request Primitive */ type record InvalidCamReq { InvalidCamPdu msgOut } /** * @desc FA1 DENM Indication Primitive * Loading