From 4fcb322a3f486cf77559290eac59a4cd709f1363 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Wed, 16 Mar 2022 15:34:37 +0100 Subject: [PATCH 01/28] Update layers --- module.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/module.mk b/module.mk index b1e4fa5..fee9c4b 100644 --- a/module.mk +++ b/module.mk @@ -33,6 +33,9 @@ modules := \ /ccsrc/Protocols/GeoNetworking \ /ccsrc/Protocols/BTP \ /ccsrc/Protocols/ETH \ + /ccsrc/Protocols/LTE \ + /ccsrc/Protocols/Qualcomm \ + /ccsrc/Protocols/Tcp \ /ccsrc/Protocols/Pcap \ /ccsrc/Protocols/UpperTester \ /ccsrc/Protocols/Security \ -- GitLab From 61c37436e45c22873ae3d512982db262d8274c89 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Thu, 29 Sep 2022 13:27:35 +0200 Subject: [PATCH 02/28] Finalyze support of titan-test-system-framework --- lib/LibItsCam_Templates.ttcn | 1758 +++++++++++++++++----------------- module.mk | 13 +- 2 files changed, 888 insertions(+), 883 deletions(-) diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index 8d5ed5e..629b8ba 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -1,878 +1,880 @@ -/** - * @author ETSI / STF405 / STF449 / STF484 / STF517 - * @version $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/CAM/LibItsCam_Templates.ttcn $ - * $Id: LibItsCam_Templates.ttcn 1318 2017-01-26 10:20:53Z filatov $ - * @desc Module containing base template definitions for CAM - * @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 LibItsCam_Templates { - - // LibCommon - import from LibCommon_BasicTypesAndValues all; - import from LibCommon_DataStrings all; - - // LibIts - import from ITS_Container language "ASN.1:1997" all; - import from CAM_PDU_Descriptions language "ASN.1:1997" all; -// import from DENM_PDU_Descriptions language "ASN.1:1997" all; - - // LibItsCommon - import from LibItsCommon_Functions all; - import from LibItsCommon_TypesAndValues all; - import from LibItsCommon_ASN1_NamedNumbers all; - - // LibItsCam - import from LibItsCam_TypesAndValues all; - - group camPrimitives { - - /** - * @desc Receive template for CAM Message (CamPort Primitive) - * @param p_camMsg Expected CAM Message - */ - template CamInd mw_camInd ( - in template (present) CAM p_camMsg - ) := { - msgIn := p_camMsg, - recvTime := ?, - gnNextHeader := *, - gnHeaderType := *, - gnHeaderSubtype := *, - gnLifetime := *, - gnTrafficClass := *, - btpDestinationPort := *, - btpInfo := *, - ssp := *, - its_aid := * - }; - - /** - * @desc Receive template for CAM Message (CamPort Primitive) - * @param p_camMsg Expected CAM Message - * @param p_gnNextHeader GN next header value - * @param p_gnHeaderType GN header type value - * @param p_gnHeaderSubtype GN header subtype value - * @param p_gnLifetime GN packet lifetime value (ms) - * @param p_gnTrafficClass GN traffic class value - */ - template CamInd mw_camIndWithGnParameters ( - in template (present) CAM p_camMsg, - in template UInt8 p_gnNextHeader := *, - in template UInt8 p_gnHeaderType := *, - in template UInt8 p_gnHeaderSubtype := *, - in template UInt32 p_gnLifetime := *, - in template UInt8 p_gnTrafficClass := * - ) modifies mw_camInd := { - gnNextHeader := p_gnNextHeader, - gnHeaderType := p_gnHeaderType, - gnHeaderSubtype := p_gnHeaderSubtype, - gnLifetime := p_gnLifetime, - gnTrafficClass := p_gnTrafficClass - }; - - /** - * @desc Receive template for CA Message (DenmPort Primitive) - * @param p_caMsg The expected CA Message - * @param p_ssp SSP security parameter - * @param p_its_aid ITS-AID value - */ - template CamInd mw_camIndWithSecurityParameters( - template (present) CAM p_camMsg, - template Bit256 p_ssp := *, - template UInt32 p_its_aid := c_its_aid_CAM - ) modifies mw_camInd := { - ssp := p_ssp, - its_aid := p_its_aid - }; - - /** - * @desc Receive template for CAM Message (CamPort Primitive) - * @param p_camMsg Expected CAM Message - * @param p_btpDestinationPort BTP destination port value - * @param p_btpInfo BTP destination port info value (if BTP-B) or BTP source port value (if BTP-A) - */ - template CamInd mw_camIndWithBtpParameters ( - in template (present) CAM p_camMsg, - in template UInt16 p_btpDestinationPort := *, - in template UInt16 p_btpInfo := * - ) modifies mw_camInd := { - btpDestinationPort := p_btpDestinationPort, - btpInfo := p_btpInfo - }; - - /** - * @desc Send template for CAM Message (CamPort Primitive) - * @param p_camMsg CAM Message to be received - */ - template (value) CamReq m_camReq ( - in template (value) CAM p_camMsg - ) := { - msgOut := p_camMsg - }; - - group camUtPrimitives { - - /** - * @desc Initializes the CAM IUT. - */ - template (value) UtCamInitialize m_camInitialize := { - hashedId8 := '0000000000000000'O - } - - /** - * @desc Change the curvature - * @param p_offset The curvature value offset - */ - template (value) UtCamTrigger m_changeCurvature(CurvatureValue p_changeCurvature) := { - changeCurvature := p_changeCurvature - } - - /** - * @desc Change the speed - * @param p_offset The speed value offset - */ - template (value) UtCamTrigger m_changeSpeed(Int16 p_changeSpeed) := { - changeSpeed := p_changeSpeed - } - - /** - * @desc Set the acceleration control status - * @param p_status The status to set - */ - template (value) UtCamTrigger m_setAccelerationControlStatus(AccelerationControl p_status) := { - setAccelerationControlStatus := p_status - } - - /** - * @desc Set the exterior lights status - * @param p_status The status to set - */ - template (value) UtCamTrigger m_setExteriorLightsStatus(ExteriorLights p_status) := { - setExteriorLightsStatus := p_status - } - - /** - * @desc Change the heading - * @param p_offset The heading value offset - */ - template (value) UtCamTrigger m_changeHeading(HeadingValue p_changeHeading) := { - changeHeading := p_changeHeading - } - - /** - * @desc Set the drive direction - * @param p_driveDirection The drive direction - */ - template (value) UtCamTrigger m_setDriveDirection(DriveDirection p_driveDirection) := { - setDriveDirection := p_driveDirection - } - - /** - * @desc Change the yaw rate - * @param p_offset The yaw rate value offset - */ - template (value) UtCamTrigger m_changeYawRate(YawRateValue p_changeYawRate) := { - changeYawRate := p_changeYawRate - } - - /** - * @desc Set the vehicle role - * @param p_vehicleRole The vehicle role - */ - template (value) UtCamTrigger m_setVehicleRole(VehicleRole p_vehicleRole) := { - setVehicleRole := p_vehicleRole - } - - /** - * @desc Set the dangerous good description - * @param p_dangerousGoods The dangerous good description - */ - template (value) UtCamTrigger m_setDangerousGoods(DangerousGoodsBasic p_dangerousGoods) := { - setDangerousGoods := p_dangerousGoods - } - - } // end utPrimitives - - } // end group Primitives - - group positionTemplates { - - /** - * @desc The test system reference position. - */ - template (value) ReferencePosition m_tsPosition := { - latitude := f_integer2Latitude(f_getTsLatitude()), - longitude := f_integer2Longitude(f_getTsLongitude()), - positionConfidenceEllipse := { - semiMajorConfidence := LibItsCommon_ASN1_NamedNumbers.SemiAxisLength_oneCentimeter_, - semiMinorConfidence := LibItsCommon_ASN1_NamedNumbers.SemiAxisLength_oneCentimeter_, - semiMajorOrientation := LibItsCommon_ASN1_NamedNumbers.HeadingValue_wgs84North_ - }, - altitude := { - altitudeValue := LibItsCommon_ASN1_NamedNumbers.AltitudeValue_referenceEllipsoidSurface_, - altitudeConfidence := unavailable - } - } - - /** - * @desc Reference position for given latitude and longitude. - */ - template (present) ReferencePosition mw_refPositionWithDelta( - in ReferencePosition p_origRefPos, - in integer p_jitter := 100 - ) := { - latitude := (p_origRefPos.latitude - p_jitter..p_origRefPos.latitude + p_jitter), - longitude := (p_origRefPos.longitude - p_jitter..p_origRefPos.longitude + p_jitter), - positionConfidenceEllipse := p_origRefPos.positionConfidenceEllipse, - altitude := p_origRefPos.altitude - } - - } // end positionTemplates - - /** - * @desc Default Receive template for CAM PDU - */ - template (present) CAM mw_camMsg_any := { - header := { - protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_, - messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_cam_, - stationID := ? - }, - cam := { - generationDeltaTime := ?, - camParameters := ? - } - } - - group camBasicContainer { - - /** - * @desc - * Receive template for CAM PDU including basic container with - * given reference position - * @param p_referencePosition The reference position - */ - template (present) CAM mw_camMsg_BC_refPos( - in template(present) ReferencePosition p_referencePosition - ) modifies mw_camMsg_any := { - cam := { - camParameters := { - basicContainer := { - stationType := ?, - referencePosition := p_referencePosition - }, - highFrequencyContainer := ?, - lowFrequencyContainer := *, - specialVehicleContainer := * - } - } - } - - } // end group camBasicContainer - - group camHighFrequencyContainer { - - /** - * @desc - * Receive template for CAM PDU including specific basic vehicle container - * @param p_basicVehicleContainer The including basic vehicle container - */ - template (present) CAM mw_camMsg_HF_BV( - in template(present) BasicVehicleContainerHighFrequency p_basicVehicleContainer - ) modifies mw_camMsg_any := { - cam := { - camParameters := { - basicContainer := ?, - highFrequencyContainer := { - basicVehicleContainerHighFrequency := p_basicVehicleContainer - }, - lowFrequencyContainer := *, - specialVehicleContainer := * - } - } - } - - /** - * @desc Default Receive template for basic vehicle container in - * the high frequency container - */ - template (present) BasicVehicleContainerHighFrequency mw_HF_BV_any := { - heading := ?, - speed := ?, - driveDirection := ?, - vehicleLength := ?, - vehicleWidth := ?, - longitudinalAcceleration := ?, - curvature := ?, - curvatureCalculationMode := ?, - yawRate := ?, - accelerationControl := *, - lanePosition := *, - steeringWheelAngle := *, - lateralAcceleration := *, - verticalAcceleration := *, - performanceClass := *, - cenDsrcTollingZone := * - } - - /** - * @desc - * Receive template for CAM PDU including specific basic vehicle container - * @param p_curvatureValue The curvature - */ - template(present) BasicVehicleContainerHighFrequency mw_HF_BV_curvature( - in template(present) CurvatureValue p_curvatureValue - ) modifies mw_HF_BV_any := - { - curvature := { - curvatureValue := p_curvatureValue, - curvatureConfidence := ? - } - } - - /** - * @desc - * Receive template for CAM PDU including specific basic vehicle container - * @param p_accCtrl The acceleration control - */ - template(present) BasicVehicleContainerHighFrequency mw_HF_BV_accCtrl( - in template AccelerationControl p_accCtrl - ) modifies mw_HF_BV_any := - { - accelerationControl := p_accCtrl - } - - /** - * @desc - * Receive template for CAM PDU including specific basic vehicle container - * @param p_headingValue The heading - */ - template(present) BasicVehicleContainerHighFrequency mw_HF_BV_heading( - in template(present) HeadingValue p_headingValue - ) modifies mw_HF_BV_any := - { - heading := { - headingValue := p_headingValue, - headingConfidence := ? - } - } - - /** - * @desc - * Receive template for CAM PDU including specific basic vehicle container - * @param p_speedValue The speed - */ - template(present) BasicVehicleContainerHighFrequency mw_HF_BV_speed( - in template(present) SpeedValue p_speedValue - ) modifies mw_HF_BV_any := - { - speed := { - speedValue := p_speedValue, - speedConfidence := ? - } - } - - /** - * @desc - * Receive template for CAM PDU including specific basic vehicle container - * @param p_driveDirection The drive direction - */ - template(present) BasicVehicleContainerHighFrequency mw_HF_BV_driveDirection( - in template(present) DriveDirection p_driveDirection - ) modifies mw_HF_BV_any := - { - driveDirection := p_driveDirection - } - - /** - * @desc - * Receive template for CAM PDU including specific basic vehicle container - * @param p_yawRateValue The yaw rate - */ - template(present) BasicVehicleContainerHighFrequency mw_HF_BV_yawRate( - in template(present) YawRateValue p_yawRateValue - ) modifies mw_HF_BV_any := - { - yawRate := { - yawRateValue := p_yawRateValue, - yawRateConfidence := ? - } - } - - } // end group camHighFrequencyContainer - - group camLowFrequencyContainer { - - /** - * @desc Default Receive template for CAM PDU including - * optional lowFrequencyContainer - */ - template (present) CAM mw_camMsg_LF_any modifies mw_camMsg_any := { - cam := { - camParameters := { - basicContainer := ?, - highFrequencyContainer := ?, - lowFrequencyContainer := ?, - specialVehicleContainer := * - } - } - } - - /** - * @desc - * Receive template for CAM PDU including specific basic vehicle container - * @param p_basicVehicleContainer The including basic vehicle container - */ - template (present) CAM mw_camMsg_LF_BV( - in template(present) BasicVehicleContainerLowFrequency p_basicVehicleContainer := ? - ) modifies mw_camMsg_any := { - cam := { - camParameters := { - basicContainer := ?, - highFrequencyContainer := ?, - lowFrequencyContainer := { - basicVehicleContainerLowFrequency := p_basicVehicleContainer - }, - specialVehicleContainer := * - } - } - } - - /** - * @desc Default Receive template for basic vehicle container in - * the low frequency container - */ - template (present) BasicVehicleContainerLowFrequency mw_LF_BV_any := { - vehicleRole := ?, - exteriorLights := ?, - pathHistory := ? - } - - /** - * @desc - * Receive template for CAM PDU including specific basic vehicle container - * @param p_extLights The exterior lights - */ - template(present) BasicVehicleContainerLowFrequency mw_LF_BV_extLights( - in template (present) ExteriorLights p_extLights - ) modifies mw_LF_BV_any := - { - exteriorLights := p_extLights - } - - } // end group camLowFrequencyContainer - - group camSpecialVehicleContainer { - - /** - * @desc Default Receive template for CAM PDU including - * optional specialVehicleContainer - */ - template (present) CAM mw_camMsg_SVC_any modifies mw_camMsg_any := { - cam := { - camParameters := { - basicContainer := ?, - highFrequencyContainer := ?, - lowFrequencyContainer := *, - specialVehicleContainer := ? - } - } - } - - /** - * @desc Receive template for CAM PDU including optional specialVehicleContainer - * @param p_specialVehicleContainer The expected specialVehicleContainer - */ - template (present) CAM mw_camMsg_SVC( - in template (present) SpecialVehicleContainer p_specialVehicleContainer - ) modifies mw_camMsg_SVC_any := { - cam := { - camParameters := { - specialVehicleContainer := p_specialVehicleContainer - } - } - } - - /** - * @desc Receive template for specialVehicleContainer public transport - */ - template (present) SpecialVehicleContainer mw_publicTransport_any := { - publicTransportContainer := ? - } - - /** - * @desc Receive template for specialVehicleContainer special transport - */ - template (present) SpecialVehicleContainer mw_specialTransport_any := { - specialTransportContainer := ? - } - - /** - * @desc Receive template for specialVehicleContainer dangerous goods - */ - template (present) SpecialVehicleContainer mw_dangerousGoods_any := { - dangerousGoodsContainer := ? - } - - /** - * @desc Receive template for specialVehicleContainer road works - */ - template (present) SpecialVehicleContainer mw_roadWorks_any := { - roadWorksContainerBasic := ? - } - - /** - * @desc Receive template for specialVehicleContainer rescue - */ - template (present) SpecialVehicleContainer mw_rescue_any := { - rescueContainer := ? - } - - /** - * @desc Receive template for specialVehicleContainer emergency - */ - template (present) SpecialVehicleContainer mw_emergency_any := { - emergencyContainer := ? - } - - /** - * @desc Receive template for specialVehicleContainer safety car - */ - template (present) SpecialVehicleContainer mw_safetyCar_any := { - safetyCarContainer := ? - } - - } //end group camSpecialVehicleContainer - - group camAnyVehicle { - - /** - * @desc Send template for Vehicle CAM PDU - * @param p_stationId Station ID of the source - * @param p_generationTime Timestamp of the generated message - * @param p_referencePosition Position of the sending station - */ - template (value) CAM m_camMsg_vehicle_HF_BV( - StationID p_stationId, - GenerationDeltaTime p_generationTime, - template (value) ReferencePosition p_referencePosition - ) := { - header := { - protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_, - messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_cam_, - stationID := p_stationId - }, - cam := { - generationDeltaTime := p_generationTime, - camParameters := { - basicContainer := { - stationType := LibItsCommon_ASN1_NamedNumbers.StationType_passengerCar_, - referencePosition := p_referencePosition - }, - highFrequencyContainer := { - basicVehicleContainerHighFrequency := { - heading := { - headingValue := LibItsCommon_ASN1_NamedNumbers.HeadingValue_wgs84North_, //0 - headingConfidence := 10 - }, - speed := { - speedValue := 45, - speedConfidence := 5 - }, - driveDirection := forward, - vehicleLength := { - vehicleLengthValue := 50, - vehicleLengthConfidenceIndication := noTrailerPresent - }, - vehicleWidth := 21, - longitudinalAcceleration := { - longitudinalAccelerationValue := LibItsCommon_ASN1_NamedNumbers.LongitudinalAccelerationValue_unavailable_, - longitudinalAccelerationConfidence := LibItsCommon_ASN1_NamedNumbers.AccelerationConfidence_unavailable_ - }, - curvature := { - curvatureValue := LibItsCommon_ASN1_NamedNumbers.CurvatureValue_straight_, - curvatureConfidence := unavailable - }, - curvatureCalculationMode := yawRateUsed, - yawRate := { - yawRateValue := LibItsCommon_ASN1_NamedNumbers.YawRateValue_straight_, - yawRateConfidence := unavailable - }, - accelerationControl := omit, - lanePosition := omit, - steeringWheelAngle := omit, - lateralAcceleration := omit, - verticalAcceleration := omit, - performanceClass := omit, - cenDsrcTollingZone := omit - } - }, - lowFrequencyContainer := omit, - specialVehicleContainer := omit - } - } - }; // End of template m_camMsg_vehicle_HF_BV - - /** - * @desc Send template for Vehicle CAM PDU - * @param p_stationId Station ID of the source - * @param p_generationTime Timestamp of the generated message - * @param p_referencePosition Position of the sending station - */ - template (value) CAM m_camMsg_vehicle( - StationID p_stationId, - GenerationDeltaTime p_generationTime, - template (value) ReferencePosition p_referencePosition - ) modifies m_camMsg_vehicle_HF_BV := { - cam := { - camParameters := { - lowFrequencyContainer := { - basicVehicleContainerLowFrequency := { - vehicleRole := default_, - exteriorLights := LibItsCommon_ASN1_NamedNumbers.ExteriorLights_daytimeRunningLightsOn_, - pathHistory := {} - } - } - } - } - }; - - template (value) CAM m_camMsg_publicTransport( - StationID p_stationId, - GenerationDeltaTime p_generationTime, - template (value) ReferencePosition p_referencePosition - ) modifies m_camMsg_vehicle := { - cam := { - camParameters := { - lowFrequencyContainer := { - basicVehicleContainerLowFrequency := { - vehicleRole := publicTransport - } - }, - specialVehicleContainer := { - publicTransportContainer := { - embarkationStatus := true, - ptActivation := omit - } - } - } - } - }; - - template (value) CAM m_camMsg_specialTransport( - StationID p_stationId, - GenerationDeltaTime p_generationTime, - template (value) ReferencePosition p_referencePosition - ) modifies m_camMsg_vehicle := { - cam := { - camParameters := { - lowFrequencyContainer := { - basicVehicleContainerLowFrequency := { - vehicleRole := specialTransport - } - }, - specialVehicleContainer := { - specialTransportContainer := { - specialTransportType := '1000'B/* length(4)*/, // heavyLoad - lightBarSirenInUse := '11'B/* length(2)*/ // siren and lightBar - } - } - } - } - }; - } // end camAnyVehicle - - group camAccelerationControlTemplates { - - /** - * @desc Receive template for acceleration control with brake padel active on - */ - template AccelerationControl mw_brakePedalActive_On := '1*'B length(7); - - /** - * @desc Receive template for acceleration control with brake padel active off - */ - template AccelerationControl mw_brakePedalActive_Off := '0*'B length(7); - - /** - * @desc Receive template for acceleration control with gas padel active on - */ - template AccelerationControl mw_gasPedalActive_On := '?1*'B length(7); - - /** - * @desc Receive template for acceleration control with gas padel active off - */ - template AccelerationControl mw_gasPedalActive_Off := '?0*'B length(7); - - /** - * @desc Receive template for acceleration control with emergency brake active on - */ - template AccelerationControl mw_emergencyBrakeActive_On := '??1*'B length(7); - - /** - * @desc Receive template for acceleration control with emergency brake active off - */ - template AccelerationControl mw_emergencyBrakeActive_Off := '??0*'B length(7); - - /** - * @desc Receive template for acceleration control with collision warning active on - */ - template AccelerationControl mw_collisionWarningActive_On := '???1*'B length(7); - - /** - * @desc Receive template for acceleration control with collision warning active off - */ - template AccelerationControl mw_collisionWarningActive_Off := '???0*'B length(7); - - /** - * @desc Receive template for acceleration control with adaptive cruise control active on - */ - template AccelerationControl mw_accActive_On := '????1*'B length(7); - - /** - * @desc Receive template for acceleration control with adaptive cruise control active off - */ - template AccelerationControl mw_accActive_Off := '????0*'B length(7); - - /** - * @desc Receive template for acceleration control with cruise control active on - */ - template AccelerationControl mw_cruiseControl_On := '?????1*'B length(7); - - /** - * @desc Receive template for acceleration control with cruise control active off - */ - template AccelerationControl mw_cruiseControl_Off := '?????0*'B length(7); - - /** - * @desc Receive template for acceleration control with speed limiter active on - */ - template AccelerationControl mw_speedLimiterActive_On := '*1'B length(7); - - /** - * @desc Receive template for acceleration control with speed limiter active off - */ - template AccelerationControl mw_speedLimiterActive_Off := '*0'B length(7); - - } // end group camAccelerationControlTemplates - - group camExteriorLightsTemplates { - - /** - * @desc Receive template for exterior lights with low beam lights off - */ - template ExteriorLights mw_lowBeamLightsOff := '0*'B length (8); - - /** - * @desc Receive template for exterior lights with low beam lights on - */ - template ExteriorLights mw_lowBeamLightsOn := '1*'B length(8); - - /** - * @desc Receive template for exterior lights with high beam lights off - */ - template ExteriorLights mw_highBeamLightsOff := '?0*'B length(8); - - /** - * @desc Receive template for exterior lights with high beam lights on - */ - template ExteriorLights mw_highBeamLightsOn := '?1*'B length(8); - - /** - * @desc Receive template for exterior lights with left turn signal off - */ - template ExteriorLights mw_leftTurnSignalOff := '??0*'B length(8); - - /** - * @desc Receive template for exterior lights with left turn signal on - */ - template ExteriorLights mw_leftTurnSignalOn := '??1*'B length(8); - - /** - * @desc Receive template for exterior lights with right turn signal off - */ - template ExteriorLights mw_rightTurnSignalOff := '???0*'B length(8); - /** - * @desc Receive template for exterior lights with right turn signal on - */ - template ExteriorLights mw_rightTurnSignalOn := '???1*'B length(8); - - /** - * @desc Receive template for exterior lights with day time running lights off - */ - template ExteriorLights mw_daytimeRunningLightsOff := '????0*'B length(8); - /** - * @desc Receive template for exterior lights with day time running lights on - */ - template ExteriorLights mw_daytimeRunningLightsOn := '????1*'B length(8); - - /** - * @desc Receive template for exterior lights with reverse light off - */ - template ExteriorLights mw_reverseLightOff := '?????0*'B length(8); - - /** - * @desc Receive template for exterior lights with reverse light on - */ - template ExteriorLights mw_reverseLightOn := '?????1*'B length(8); - - /** - * @desc Receive template for exterior lights with fog light off - */ - template ExteriorLights mw_fogLightOff := '??????0*'B length(8); - - /** - * @desc Receive template for exterior lights with fog light on - */ - template ExteriorLights mw_fogLightOn := '??????1*'B length(8); - - /** - * @desc Receive template for exterior lights with parking lights off - */ - template ExteriorLights mw_parkingLightsOff := '*0'B length(8); - - /** - * @desc Receive template for exterior lights with parking lights on - */ - template ExteriorLights mw_parkingLightsOn := '*1'B length(8); - - /** - * @desc Receive template for exterior lights with hazard lights on - */ - template ExteriorLights mw_hazardConditionOn := '??11*'B length(8); - - } // end group exteriorLights - - group camTemplateFunctions { - - /** - * @desc Converts an integer to Longitude - * @param p_longitude The integer value - * @return The longitude value - */ - function f_integer2Longitude(in integer p_longitude) return Longitude { - - var Longitude v_longitude := f_abs(p_longitude); - - return v_longitude; - } - - /** - * @desc Converts an integer to Latitude - * @param p_latitude The integer value - * @return The latitude value - */ - function f_integer2Latitude(in integer p_latitude) return Latitude { - - var Latitude v_latitude := f_abs(p_latitude); - - return v_latitude; - } - - } // end camTemplateFunctions - -} // end LibItsCam_Templates +/** + * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @version $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/CAM/LibItsCam_Templates.ttcn $ + * $Id: LibItsCam_Templates.ttcn 1318 2017-01-26 10:20:53Z filatov $ + * @desc Module containing base template definitions for CAM + * @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 LibItsCam_Templates { + + // LibCommon + import from LibCommon_BasicTypesAndValues all; + import from LibCommon_DataStrings all; + + // LibHelpers + import from LibHelpers_Functions all; + + // LibIts + import from ITS_Container language "ASN.1:1997" all; + import from CAM_PDU_Descriptions language "ASN.1:1997" all; + + // LibItsCommon + import from LibItsCommon_Functions all; + import from LibItsCommon_TypesAndValues all; + import from LibItsCommon_ASN1_NamedNumbers all; + + // LibItsCam + import from LibItsCam_TypesAndValues all; + + group camPrimitives { + + /** + * @desc Receive template for CAM Message (CamPort Primitive) + * @param p_camMsg Expected CAM Message + */ + template CamInd mw_camInd ( + in template (present) CAM p_camMsg + ) := { + msgIn := p_camMsg, + recvTime := ?, + gnNextHeader := *, + gnHeaderType := *, + gnHeaderSubtype := *, + gnLifetime := *, + gnTrafficClass := *, + btpDestinationPort := *, + btpInfo := *, + ssp := *, + its_aid := * + }; + + /** + * @desc Receive template for CAM Message (CamPort Primitive) + * @param p_camMsg Expected CAM Message + * @param p_gnNextHeader GN next header value + * @param p_gnHeaderType GN header type value + * @param p_gnHeaderSubtype GN header subtype value + * @param p_gnLifetime GN packet lifetime value (ms) + * @param p_gnTrafficClass GN traffic class value + */ + template CamInd mw_camIndWithGnParameters ( + in template (present) CAM p_camMsg, + in template UInt8 p_gnNextHeader := *, + in template UInt8 p_gnHeaderType := *, + in template UInt8 p_gnHeaderSubtype := *, + in template UInt32 p_gnLifetime := *, + in template UInt8 p_gnTrafficClass := * + ) modifies mw_camInd := { + gnNextHeader := p_gnNextHeader, + gnHeaderType := p_gnHeaderType, + gnHeaderSubtype := p_gnHeaderSubtype, + gnLifetime := p_gnLifetime, + gnTrafficClass := p_gnTrafficClass + }; + + /** + * @desc Receive template for CA Message (DenmPort Primitive) + * @param p_caMsg The expected CA Message + * @param p_ssp SSP security parameter + * @param p_its_aid ITS-AID value + */ + template CamInd mw_camIndWithSecurityParameters( + template (present) CAM p_camMsg, + template Bit256 p_ssp := *, + template UInt32 p_its_aid := c_its_aid_CAM + ) modifies mw_camInd := { + ssp := p_ssp, + its_aid := p_its_aid + }; + + /** + * @desc Receive template for CAM Message (CamPort Primitive) + * @param p_camMsg Expected CAM Message + * @param p_btpDestinationPort BTP destination port value + * @param p_btpInfo BTP destination port info value (if BTP-B) or BTP source port value (if BTP-A) + */ + template CamInd mw_camIndWithBtpParameters ( + in template (present) CAM p_camMsg, + in template UInt16 p_btpDestinationPort := *, + in template UInt16 p_btpInfo := * + ) modifies mw_camInd := { + btpDestinationPort := p_btpDestinationPort, + btpInfo := p_btpInfo + }; + + /** + * @desc Send template for CAM Message (CamPort Primitive) + * @param p_camMsg CAM Message to be received + */ + template (value) CamReq m_camReq ( + in template (value) CAM p_camMsg + ) := { + msgOut := p_camMsg + }; + + group camUtPrimitives { + + /** + * @desc Initializes the CAM IUT. + */ + template (value) UtCamInitialize m_camInitialize := { + hashedId8 := '0000000000000000'O + } + + /** + * @desc Change the curvature + * @param p_offset The curvature value offset + */ + template (value) UtCamTrigger m_changeCurvature(CurvatureValue p_changeCurvature) := { + changeCurvature := p_changeCurvature + } + + /** + * @desc Change the speed + * @param p_offset The speed value offset + */ + template (value) UtCamTrigger m_changeSpeed(Int16 p_changeSpeed) := { + changeSpeed := p_changeSpeed + } + + /** + * @desc Set the acceleration control status + * @param p_status The status to set + */ + template (value) UtCamTrigger m_setAccelerationControlStatus(AccelerationControl p_status) := { + setAccelerationControlStatus := p_status + } + + /** + * @desc Set the exterior lights status + * @param p_status The status to set + */ + template (value) UtCamTrigger m_setExteriorLightsStatus(ExteriorLights p_status) := { + setExteriorLightsStatus := p_status + } + + /** + * @desc Change the heading + * @param p_offset The heading value offset + */ + template (value) UtCamTrigger m_changeHeading(HeadingValue p_changeHeading) := { + changeHeading := p_changeHeading + } + + /** + * @desc Set the drive direction + * @param p_driveDirection The drive direction + */ + template (value) UtCamTrigger m_setDriveDirection(DriveDirection p_driveDirection) := { + setDriveDirection := p_driveDirection + } + + /** + * @desc Change the yaw rate + * @param p_offset The yaw rate value offset + */ + template (value) UtCamTrigger m_changeYawRate(YawRateValue p_changeYawRate) := { + changeYawRate := p_changeYawRate + } + + /** + * @desc Set the vehicle role + * @param p_vehicleRole The vehicle role + */ + template (value) UtCamTrigger m_setVehicleRole(VehicleRole p_vehicleRole) := { + setVehicleRole := p_vehicleRole + } + + /** + * @desc Set the dangerous good description + * @param p_dangerousGoods The dangerous good description + */ + template (value) UtCamTrigger m_setDangerousGoods(DangerousGoodsBasic p_dangerousGoods) := { + setDangerousGoods := p_dangerousGoods + } + + } // end utPrimitives + + } // end group Primitives + + group positionTemplates { + + /** + * @desc The test system reference position. + */ + template (value) ReferencePosition m_tsPosition := { + latitude := f_integer2Latitude(f_getTsLatitude()), + longitude := f_integer2Longitude(f_getTsLongitude()), + positionConfidenceEllipse := { + semiMajorConfidence := LibItsCommon_ASN1_NamedNumbers.SemiAxisLength_oneCentimeter_, + semiMinorConfidence := LibItsCommon_ASN1_NamedNumbers.SemiAxisLength_oneCentimeter_, + semiMajorOrientation := LibItsCommon_ASN1_NamedNumbers.HeadingValue_wgs84North_ + }, + altitude := { + altitudeValue := LibItsCommon_ASN1_NamedNumbers.AltitudeValue_referenceEllipsoidSurface_, + altitudeConfidence := unavailable + } + } + + /** + * @desc Reference position for given latitude and longitude. + */ + template (present) ReferencePosition mw_refPositionWithDelta( + in ReferencePosition p_origRefPos, + in integer p_jitter := 100 + ) := { + latitude := (p_origRefPos.latitude - p_jitter..p_origRefPos.latitude + p_jitter), + longitude := (p_origRefPos.longitude - p_jitter..p_origRefPos.longitude + p_jitter), + positionConfidenceEllipse := p_origRefPos.positionConfidenceEllipse, + altitude := p_origRefPos.altitude + } + + } // end positionTemplates + + /** + * @desc Default Receive template for CAM PDU + */ + template (present) CAM mw_camMsg_any := { + header := { + protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_, + messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_cam_, + stationID := ? + }, + cam := { + generationDeltaTime := ?, + camParameters := ? + } + } + + group camBasicContainer { + + /** + * @desc + * Receive template for CAM PDU including basic container with + * given reference position + * @param p_referencePosition The reference position + */ + template (present) CAM mw_camMsg_BC_refPos( + in template(present) ReferencePosition p_referencePosition + ) modifies mw_camMsg_any := { + cam := { + camParameters := { + basicContainer := { + stationType := ?, + referencePosition := p_referencePosition + }, + highFrequencyContainer := ?, + lowFrequencyContainer := *, + specialVehicleContainer := * + } + } + } + + } // end group camBasicContainer + + group camHighFrequencyContainer { + + /** + * @desc + * Receive template for CAM PDU including specific basic vehicle container + * @param p_basicVehicleContainer The including basic vehicle container + */ + template (present) CAM mw_camMsg_HF_BV( + in template(present) BasicVehicleContainerHighFrequency p_basicVehicleContainer + ) modifies mw_camMsg_any := { + cam := { + camParameters := { + basicContainer := ?, + highFrequencyContainer := { + basicVehicleContainerHighFrequency := p_basicVehicleContainer + }, + lowFrequencyContainer := *, + specialVehicleContainer := * + } + } + } + + /** + * @desc Default Receive template for basic vehicle container in + * the high frequency container + */ + template (present) BasicVehicleContainerHighFrequency mw_HF_BV_any := { + heading := ?, + speed := ?, + driveDirection := ?, + vehicleLength := ?, + vehicleWidth := ?, + longitudinalAcceleration := ?, + curvature := ?, + curvatureCalculationMode := ?, + yawRate := ?, + accelerationControl := *, + lanePosition := *, + steeringWheelAngle := *, + lateralAcceleration := *, + verticalAcceleration := *, + performanceClass := *, + cenDsrcTollingZone := * + } + + /** + * @desc + * Receive template for CAM PDU including specific basic vehicle container + * @param p_curvatureValue The curvature + */ + template(present) BasicVehicleContainerHighFrequency mw_HF_BV_curvature( + in template(present) CurvatureValue p_curvatureValue + ) modifies mw_HF_BV_any := + { + curvature := { + curvatureValue := p_curvatureValue, + curvatureConfidence := ? + } + } + + /** + * @desc + * Receive template for CAM PDU including specific basic vehicle container + * @param p_accCtrl The acceleration control + */ + template(present) BasicVehicleContainerHighFrequency mw_HF_BV_accCtrl( + in template AccelerationControl p_accCtrl + ) modifies mw_HF_BV_any := + { + accelerationControl := p_accCtrl + } + + /** + * @desc + * Receive template for CAM PDU including specific basic vehicle container + * @param p_headingValue The heading + */ + template(present) BasicVehicleContainerHighFrequency mw_HF_BV_heading( + in template(present) HeadingValue p_headingValue + ) modifies mw_HF_BV_any := + { + heading := { + headingValue := p_headingValue, + headingConfidence := ? + } + } + + /** + * @desc + * Receive template for CAM PDU including specific basic vehicle container + * @param p_speedValue The speed + */ + template(present) BasicVehicleContainerHighFrequency mw_HF_BV_speed( + in template(present) SpeedValue p_speedValue + ) modifies mw_HF_BV_any := + { + speed := { + speedValue := p_speedValue, + speedConfidence := ? + } + } + + /** + * @desc + * Receive template for CAM PDU including specific basic vehicle container + * @param p_driveDirection The drive direction + */ + template(present) BasicVehicleContainerHighFrequency mw_HF_BV_driveDirection( + in template(present) DriveDirection p_driveDirection + ) modifies mw_HF_BV_any := + { + driveDirection := p_driveDirection + } + + /** + * @desc + * Receive template for CAM PDU including specific basic vehicle container + * @param p_yawRateValue The yaw rate + */ + template(present) BasicVehicleContainerHighFrequency mw_HF_BV_yawRate( + in template(present) YawRateValue p_yawRateValue + ) modifies mw_HF_BV_any := + { + yawRate := { + yawRateValue := p_yawRateValue, + yawRateConfidence := ? + } + } + + } // end group camHighFrequencyContainer + + group camLowFrequencyContainer { + + /** + * @desc Default Receive template for CAM PDU including + * optional lowFrequencyContainer + */ + template (present) CAM mw_camMsg_LF_any modifies mw_camMsg_any := { + cam := { + camParameters := { + basicContainer := ?, + highFrequencyContainer := ?, + lowFrequencyContainer := ?, + specialVehicleContainer := * + } + } + } + + /** + * @desc + * Receive template for CAM PDU including specific basic vehicle container + * @param p_basicVehicleContainer The including basic vehicle container + */ + template (present) CAM mw_camMsg_LF_BV( + in template(present) BasicVehicleContainerLowFrequency p_basicVehicleContainer := ? + ) modifies mw_camMsg_any := { + cam := { + camParameters := { + basicContainer := ?, + highFrequencyContainer := ?, + lowFrequencyContainer := { + basicVehicleContainerLowFrequency := p_basicVehicleContainer + }, + specialVehicleContainer := * + } + } + } + + /** + * @desc Default Receive template for basic vehicle container in + * the low frequency container + */ + template (present) BasicVehicleContainerLowFrequency mw_LF_BV_any := { + vehicleRole := ?, + exteriorLights := ?, + pathHistory := ? + } + + /** + * @desc + * Receive template for CAM PDU including specific basic vehicle container + * @param p_extLights The exterior lights + */ + template(present) BasicVehicleContainerLowFrequency mw_LF_BV_extLights( + in template (present) ExteriorLights p_extLights + ) modifies mw_LF_BV_any := + { + exteriorLights := p_extLights + } + + } // end group camLowFrequencyContainer + + group camSpecialVehicleContainer { + + /** + * @desc Default Receive template for CAM PDU including + * optional specialVehicleContainer + */ + template (present) CAM mw_camMsg_SVC_any modifies mw_camMsg_any := { + cam := { + camParameters := { + basicContainer := ?, + highFrequencyContainer := ?, + lowFrequencyContainer := *, + specialVehicleContainer := ? + } + } + } + + /** + * @desc Receive template for CAM PDU including optional specialVehicleContainer + * @param p_specialVehicleContainer The expected specialVehicleContainer + */ + template (present) CAM mw_camMsg_SVC( + in template (present) SpecialVehicleContainer p_specialVehicleContainer + ) modifies mw_camMsg_SVC_any := { + cam := { + camParameters := { + specialVehicleContainer := p_specialVehicleContainer + } + } + } + + /** + * @desc Receive template for specialVehicleContainer public transport + */ + template (present) SpecialVehicleContainer mw_publicTransport_any := { + publicTransportContainer := ? + } + + /** + * @desc Receive template for specialVehicleContainer special transport + */ + template (present) SpecialVehicleContainer mw_specialTransport_any := { + specialTransportContainer := ? + } + + /** + * @desc Receive template for specialVehicleContainer dangerous goods + */ + template (present) SpecialVehicleContainer mw_dangerousGoods_any := { + dangerousGoodsContainer := ? + } + + /** + * @desc Receive template for specialVehicleContainer road works + */ + template (present) SpecialVehicleContainer mw_roadWorks_any := { + roadWorksContainerBasic := ? + } + + /** + * @desc Receive template for specialVehicleContainer rescue + */ + template (present) SpecialVehicleContainer mw_rescue_any := { + rescueContainer := ? + } + + /** + * @desc Receive template for specialVehicleContainer emergency + */ + template (present) SpecialVehicleContainer mw_emergency_any := { + emergencyContainer := ? + } + + /** + * @desc Receive template for specialVehicleContainer safety car + */ + template (present) SpecialVehicleContainer mw_safetyCar_any := { + safetyCarContainer := ? + } + + } //end group camSpecialVehicleContainer + + group camAnyVehicle { + + /** + * @desc Send template for Vehicle CAM PDU + * @param p_stationId Station ID of the source + * @param p_generationTime Timestamp of the generated message + * @param p_referencePosition Position of the sending station + */ + template (value) CAM m_camMsg_vehicle_HF_BV( + StationID p_stationId, + GenerationDeltaTime p_generationTime, + template (value) ReferencePosition p_referencePosition + ) := { + header := { + protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_, + messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_cam_, + stationID := p_stationId + }, + cam := { + generationDeltaTime := p_generationTime, + camParameters := { + basicContainer := { + stationType := LibItsCommon_ASN1_NamedNumbers.StationType_passengerCar_, + referencePosition := p_referencePosition + }, + highFrequencyContainer := { + basicVehicleContainerHighFrequency := { + heading := { + headingValue := LibItsCommon_ASN1_NamedNumbers.HeadingValue_wgs84North_, //0 + headingConfidence := 10 + }, + speed := { + speedValue := 45, + speedConfidence := 5 + }, + driveDirection := forward, + vehicleLength := { + vehicleLengthValue := 50, + vehicleLengthConfidenceIndication := noTrailerPresent + }, + vehicleWidth := 21, + longitudinalAcceleration := { + longitudinalAccelerationValue := LibItsCommon_ASN1_NamedNumbers.LongitudinalAccelerationValue_unavailable_, + longitudinalAccelerationConfidence := LibItsCommon_ASN1_NamedNumbers.AccelerationConfidence_unavailable_ + }, + curvature := { + curvatureValue := LibItsCommon_ASN1_NamedNumbers.CurvatureValue_straight_, + curvatureConfidence := unavailable + }, + curvatureCalculationMode := yawRateUsed, + yawRate := { + yawRateValue := LibItsCommon_ASN1_NamedNumbers.YawRateValue_straight_, + yawRateConfidence := unavailable + }, + accelerationControl := omit, + lanePosition := omit, + steeringWheelAngle := omit, + lateralAcceleration := omit, + verticalAcceleration := omit, + performanceClass := omit, + cenDsrcTollingZone := omit + } + }, + lowFrequencyContainer := omit, + specialVehicleContainer := omit + } + } + }; // End of template m_camMsg_vehicle_HF_BV + + /** + * @desc Send template for Vehicle CAM PDU + * @param p_stationId Station ID of the source + * @param p_generationTime Timestamp of the generated message + * @param p_referencePosition Position of the sending station + */ + template (value) CAM m_camMsg_vehicle( + StationID p_stationId, + GenerationDeltaTime p_generationTime, + template (value) ReferencePosition p_referencePosition + ) modifies m_camMsg_vehicle_HF_BV := { + cam := { + camParameters := { + lowFrequencyContainer := { + basicVehicleContainerLowFrequency := { + vehicleRole := default_, + exteriorLights := LibItsCommon_ASN1_NamedNumbers.ExteriorLights_daytimeRunningLightsOn_, + pathHistory := {} + } + } + } + } + }; + + template (value) CAM m_camMsg_publicTransport( + StationID p_stationId, + GenerationDeltaTime p_generationTime, + template (value) ReferencePosition p_referencePosition + ) modifies m_camMsg_vehicle := { + cam := { + camParameters := { + lowFrequencyContainer := { + basicVehicleContainerLowFrequency := { + vehicleRole := publicTransport + } + }, + specialVehicleContainer := { + publicTransportContainer := { + embarkationStatus := true, + ptActivation := omit + } + } + } + } + }; + + template (value) CAM m_camMsg_specialTransport( + StationID p_stationId, + GenerationDeltaTime p_generationTime, + template (value) ReferencePosition p_referencePosition + ) modifies m_camMsg_vehicle := { + cam := { + camParameters := { + lowFrequencyContainer := { + basicVehicleContainerLowFrequency := { + vehicleRole := specialTransport + } + }, + specialVehicleContainer := { + specialTransportContainer := { + specialTransportType := '1000'B/* length(4)*/, // heavyLoad + lightBarSirenInUse := '11'B/* length(2)*/ // siren and lightBar + } + } + } + } + }; + } // end camAnyVehicle + + group camAccelerationControlTemplates { + + /** + * @desc Receive template for acceleration control with brake padel active on + */ + template AccelerationControl mw_brakePedalActive_On := '1*'B length(7); + + /** + * @desc Receive template for acceleration control with brake padel active off + */ + template AccelerationControl mw_brakePedalActive_Off := '0*'B length(7); + + /** + * @desc Receive template for acceleration control with gas padel active on + */ + template AccelerationControl mw_gasPedalActive_On := '?1*'B length(7); + + /** + * @desc Receive template for acceleration control with gas padel active off + */ + template AccelerationControl mw_gasPedalActive_Off := '?0*'B length(7); + + /** + * @desc Receive template for acceleration control with emergency brake active on + */ + template AccelerationControl mw_emergencyBrakeActive_On := '??1*'B length(7); + + /** + * @desc Receive template for acceleration control with emergency brake active off + */ + template AccelerationControl mw_emergencyBrakeActive_Off := '??0*'B length(7); + + /** + * @desc Receive template for acceleration control with collision warning active on + */ + template AccelerationControl mw_collisionWarningActive_On := '???1*'B length(7); + + /** + * @desc Receive template for acceleration control with collision warning active off + */ + template AccelerationControl mw_collisionWarningActive_Off := '???0*'B length(7); + + /** + * @desc Receive template for acceleration control with adaptive cruise control active on + */ + template AccelerationControl mw_accActive_On := '????1*'B length(7); + + /** + * @desc Receive template for acceleration control with adaptive cruise control active off + */ + template AccelerationControl mw_accActive_Off := '????0*'B length(7); + + /** + * @desc Receive template for acceleration control with cruise control active on + */ + template AccelerationControl mw_cruiseControl_On := '?????1*'B length(7); + + /** + * @desc Receive template for acceleration control with cruise control active off + */ + template AccelerationControl mw_cruiseControl_Off := '?????0*'B length(7); + + /** + * @desc Receive template for acceleration control with speed limiter active on + */ + template AccelerationControl mw_speedLimiterActive_On := '*1'B length(7); + + /** + * @desc Receive template for acceleration control with speed limiter active off + */ + template AccelerationControl mw_speedLimiterActive_Off := '*0'B length(7); + + } // end group camAccelerationControlTemplates + + group camExteriorLightsTemplates { + + /** + * @desc Receive template for exterior lights with low beam lights off + */ + template ExteriorLights mw_lowBeamLightsOff := '0*'B length (8); + + /** + * @desc Receive template for exterior lights with low beam lights on + */ + template ExteriorLights mw_lowBeamLightsOn := '1*'B length(8); + + /** + * @desc Receive template for exterior lights with high beam lights off + */ + template ExteriorLights mw_highBeamLightsOff := '?0*'B length(8); + + /** + * @desc Receive template for exterior lights with high beam lights on + */ + template ExteriorLights mw_highBeamLightsOn := '?1*'B length(8); + + /** + * @desc Receive template for exterior lights with left turn signal off + */ + template ExteriorLights mw_leftTurnSignalOff := '??0*'B length(8); + + /** + * @desc Receive template for exterior lights with left turn signal on + */ + template ExteriorLights mw_leftTurnSignalOn := '??1*'B length(8); + + /** + * @desc Receive template for exterior lights with right turn signal off + */ + template ExteriorLights mw_rightTurnSignalOff := '???0*'B length(8); + /** + * @desc Receive template for exterior lights with right turn signal on + */ + template ExteriorLights mw_rightTurnSignalOn := '???1*'B length(8); + + /** + * @desc Receive template for exterior lights with day time running lights off + */ + template ExteriorLights mw_daytimeRunningLightsOff := '????0*'B length(8); + /** + * @desc Receive template for exterior lights with day time running lights on + */ + template ExteriorLights mw_daytimeRunningLightsOn := '????1*'B length(8); + + /** + * @desc Receive template for exterior lights with reverse light off + */ + template ExteriorLights mw_reverseLightOff := '?????0*'B length(8); + + /** + * @desc Receive template for exterior lights with reverse light on + */ + template ExteriorLights mw_reverseLightOn := '?????1*'B length(8); + + /** + * @desc Receive template for exterior lights with fog light off + */ + template ExteriorLights mw_fogLightOff := '??????0*'B length(8); + + /** + * @desc Receive template for exterior lights with fog light on + */ + template ExteriorLights mw_fogLightOn := '??????1*'B length(8); + + /** + * @desc Receive template for exterior lights with parking lights off + */ + template ExteriorLights mw_parkingLightsOff := '*0'B length(8); + + /** + * @desc Receive template for exterior lights with parking lights on + */ + template ExteriorLights mw_parkingLightsOn := '*1'B length(8); + + /** + * @desc Receive template for exterior lights with hazard lights on + */ + template ExteriorLights mw_hazardConditionOn := '??11*'B length(8); + + } // end group exteriorLights + + group camTemplateFunctions { + + /** + * @desc Converts an integer to Longitude + * @param p_longitude The integer value + * @return The longitude value + */ + function f_integer2Longitude(in integer p_longitude) return Longitude { + + var Longitude v_longitude := f_abs(p_longitude); + + return v_longitude; + } + + /** + * @desc Converts an integer to Latitude + * @param p_latitude The integer value + * @return The latitude value + */ + function f_integer2Latitude(in integer p_latitude) return Latitude { + + var Latitude v_latitude := f_abs(p_latitude); + + return v_latitude; + } + + } // end camTemplateFunctions + +} // end LibItsCam_Templates diff --git a/module.mk b/module.mk index fee9c4b..b2a5861 100644 --- a/module.mk +++ b/module.mk @@ -7,6 +7,7 @@ sources := ItsCam_TestCases.ttcn \ modules := \ lib \ lib_system \ + /titan-test-system-framework/ttcn/LibHelpers \ ../LibCommon \ ../LibIts \ ../AtsGeoNetworking/lib \ @@ -23,20 +24,22 @@ modules := \ /ccsrc/Ports/LibIts_ports/IPv6oGN_ports \ /ccsrc/Ports/LibIts_ports/BTP_ports \ /ccsrc/EncDec \ - /ccsrc/Framework \ + /titan-test-system-framework/ccsrc/Framework \ + /titan-test-system-framework/ccsrc/loggers \ + /titan-test-system-framework/ccsrc/Protocols/ETH \ + /titan-test-system-framework/ccsrc/Protocols/Tcp \ + /titan-test-system-framework/ccsrc/Protocols/Pcap \ + /titan-test-system-framework/ccsrc/Helpers \ /ccsrc/Externals \ - /ccsrc/loggers \ /ccsrc/geospacial \ /ccsrc/Asn1c \ + /ccsrc/framework \ /ccsrc/Protocols/CAM \ /ccsrc/Protocols/CAM_layers \ /ccsrc/Protocols/GeoNetworking \ /ccsrc/Protocols/BTP \ - /ccsrc/Protocols/ETH \ /ccsrc/Protocols/LTE \ /ccsrc/Protocols/Qualcomm \ - /ccsrc/Protocols/Tcp \ - /ccsrc/Protocols/Pcap \ /ccsrc/Protocols/UpperTester \ /ccsrc/Protocols/Security \ ../modules/titan.TestPorts.Common_Components.Abstract_Socket \ -- GitLab From 74962c6ca26a1f0abb3ce7fe264ae961d7fdd887 Mon Sep 17 00:00:00 2001 From: Yann Garcia Date: Fri, 7 Oct 2022 09:35:53 +0000 Subject: [PATCH 03/28] Update module.mk --- module.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/module.mk b/module.mk index b2a5861..173998e 100644 --- a/module.mk +++ b/module.mk @@ -38,6 +38,7 @@ modules := \ /ccsrc/Protocols/CAM_layers \ /ccsrc/Protocols/GeoNetworking \ /ccsrc/Protocols/BTP \ + /ccsrc/Protocols/BTP_layers \ /ccsrc/Protocols/LTE \ /ccsrc/Protocols/Qualcomm \ /ccsrc/Protocols/UpperTester \ -- GitLab From 84fbaff028a63884f5db2074d0ace729be39265f Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Thu, 1 Dec 2022 08:49:02 +0100 Subject: [PATCH 04/28] Update module.mk --- lib/asn1 | 2 +- module.mk | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/asn1 b/lib/asn1 index 1f4b61f..94649b9 160000 --- a/lib/asn1 +++ b/lib/asn1 @@ -1 +1 @@ -Subproject commit 1f4b61fb64aacbe173cd6b80f2c4518507fef5c8 +Subproject commit 94649b9210b73b6e17e5df958feb96d30ab4a190 diff --git a/module.mk b/module.mk index 173998e..1f121da 100644 --- a/module.mk +++ b/module.mk @@ -7,7 +7,8 @@ sources := ItsCam_TestCases.ttcn \ modules := \ lib \ lib_system \ - /titan-test-system-framework/ttcn/LibHelpers \ + ../../titan-test-system-framework/ttcn/LibHelpers \ + ../../titan-test-system-framework/ttcn/LibSecurity \ ../LibCommon \ ../LibIts \ ../AtsGeoNetworking/lib \ @@ -29,7 +30,9 @@ modules := \ /titan-test-system-framework/ccsrc/Protocols/ETH \ /titan-test-system-framework/ccsrc/Protocols/Tcp \ /titan-test-system-framework/ccsrc/Protocols/Pcap \ + /titan-test-system-framework/ccsrc/Protocols/Xml \ /titan-test-system-framework/ccsrc/Helpers \ + /titan-test-system-framework/ccsrc/security \ /ccsrc/Externals \ /ccsrc/geospacial \ /ccsrc/Asn1c \ -- GitLab From 09a580c684fa107074e8741545dd00bdb00dbeba Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Thu, 26 Jan 2023 18:53:13 +0100 Subject: [PATCH 05/28] construct asn1 file list dynamically. Check presense. --- lib/asn1 | 2 +- lib/module.mk | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/asn1 b/lib/asn1 index 94649b9..19339cc 160000 --- a/lib/asn1 +++ b/lib/asn1 @@ -1 +1 @@ -Subproject commit 94649b9210b73b6e17e5df958feb96d30ab4a190 +Subproject commit 19339cc9e3e648024d0c50f57b45d9f4321341bf diff --git a/lib/module.mk b/lib/module.mk index eeb8f7a..ec8d959 100644 --- a/lib/module.mk +++ b/lib/module.mk @@ -4,8 +4,5 @@ sources := \ LibItsCam_Pixits.ttcn \ LibItsCam_Templates.ttcn \ LibItsCam_TypesAndValues.ttcn \ - asn1/CAM_PDU_Descriptions.asn -ifeq (,$(ITS_CONTAINER)) - ITS_CONTAINER := defined - sources += asn1/cdd/ITS_Container.asn -endif + +modules := asn1 -- GitLab From f7be84b8706fffe621cdb0871effef3fc19d0a67 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Thu, 26 Jan 2023 19:11:46 +0100 Subject: [PATCH 06/28] fix file attributes --- .gitmodules | 0 LICENSE | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 .gitmodules mode change 100755 => 100644 LICENSE diff --git a/.gitmodules b/.gitmodules old mode 100755 new mode 100644 diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644 -- GitLab From 4f1be407b2b8c9161c3adaaabc74d14c629e2c54 Mon Sep 17 00:00:00 2001 From: Denis Filatov Date: Tue, 31 Jan 2023 10:43:33 +0100 Subject: [PATCH 07/28] fix module tree construction --- lib/asn1 | 2 +- module.mk | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/asn1 b/lib/asn1 index 19339cc..cb0ea17 160000 --- a/lib/asn1 +++ b/lib/asn1 @@ -1 +1 @@ -Subproject commit 19339cc9e3e648024d0c50f57b45d9f4321341bf +Subproject commit cb0ea175c9f39adcb810c4f5c9dd2046da7dc29e diff --git a/module.mk b/module.mk index 1f121da..ffbe817 100644 --- a/module.mk +++ b/module.mk @@ -1,4 +1,5 @@ suite := AtsCAM +pdu := CAM sources := ItsCam_TestCases.ttcn \ ItsCam_TestControl.ttcn \ -- GitLab From 955697e66a1a6bb6020e3b2ee1cb858450d5d881 Mon Sep 17 00:00:00 2001 From: Yann Garcia Date: Mon, 20 Feb 2023 14:52:11 +0000 Subject: [PATCH 08/28] Create release2 branch (testing2) in AtsCAM/lib/asn1 --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 0133f9e..446a64e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "lib/asn1"] path = lib/asn1 url = https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2.git - branch = testing + branch = testing2 -- GitLab From de160d2d8c76ed51cd3326e1e50ad5514ca96375 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Tue, 21 Feb 2023 14:05:12 +0100 Subject: [PATCH 09/28] Build AtsCAM Release.2 --- ItsCam_TpFunctions.ttcn | 2 +- lib/LibItsCam_Templates.ttcn | 18 +++++++++--------- lib/LibItsCam_TypesAndValues.ttcn | 2 +- lib/asn1 | 2 +- lib_system/LibItsCam_Functions.ttcn | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/ItsCam_TpFunctions.ttcn b/ItsCam_TpFunctions.ttcn index 0ef54d7..cb12cbb 100644 --- a/ItsCam_TpFunctions.ttcn +++ b/ItsCam_TpFunctions.ttcn @@ -22,7 +22,7 @@ module ItsCam_TpFunctions { import from LibCommon_DataStrings all; // LibIts - import from ITS_Container language "ASN.1:1997" all; + import from ETSI_ITS_CDD language "ASN.1:1997" all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; // LibItsCommon diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index 629b8ba..9b67048 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -19,7 +19,7 @@ module LibItsCam_Templates { import from LibHelpers_Functions all; // LibIts - import from ITS_Container language "ASN.1:1997" all; + import from ETSI_ITS_CDD language "ASN.1:1997" all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; // LibItsCommon @@ -241,8 +241,8 @@ module LibItsCam_Templates { template (present) CAM mw_camMsg_any := { header := { protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_, - messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_cam_, - stationID := ? + messageId := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageId_cam_, + stationId := ? }, cam := { generationDeltaTime := ?, @@ -559,14 +559,14 @@ module LibItsCam_Templates { * @param p_referencePosition Position of the sending station */ template (value) CAM m_camMsg_vehicle_HF_BV( - StationID p_stationId, + StationId p_stationId, GenerationDeltaTime p_generationTime, template (value) ReferencePosition p_referencePosition ) := { header := { protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_, - messageID := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageID_cam_, - stationID := p_stationId + messageId := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_messageId_cam_, + stationId := p_stationId }, cam := { generationDeltaTime := p_generationTime, @@ -626,7 +626,7 @@ module LibItsCam_Templates { * @param p_referencePosition Position of the sending station */ template (value) CAM m_camMsg_vehicle( - StationID p_stationId, + StationId p_stationId, GenerationDeltaTime p_generationTime, template (value) ReferencePosition p_referencePosition ) modifies m_camMsg_vehicle_HF_BV := { @@ -644,7 +644,7 @@ module LibItsCam_Templates { }; template (value) CAM m_camMsg_publicTransport( - StationID p_stationId, + StationId p_stationId, GenerationDeltaTime p_generationTime, template (value) ReferencePosition p_referencePosition ) modifies m_camMsg_vehicle := { @@ -666,7 +666,7 @@ module LibItsCam_Templates { }; template (value) CAM m_camMsg_specialTransport( - StationID p_stationId, + StationId p_stationId, GenerationDeltaTime p_generationTime, template (value) ReferencePosition p_referencePosition ) modifies m_camMsg_vehicle := { diff --git a/lib/LibItsCam_TypesAndValues.ttcn b/lib/LibItsCam_TypesAndValues.ttcn index dd0d5b0..3fea519 100644 --- a/lib/LibItsCam_TypesAndValues.ttcn +++ b/lib/LibItsCam_TypesAndValues.ttcn @@ -16,7 +16,7 @@ module LibItsCam_TypesAndValues { import from LibCommon_DataStrings all; // LibIts - import from ITS_Container language "ASN.1:1997" all; + import from ETSI_ITS_CDD language "ASN.1:1997" all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; // import from DENM_PDU_Descriptions language "ASN.1:1997" all; diff --git a/lib/asn1 b/lib/asn1 index cb0ea17..dd34872 160000 --- a/lib/asn1 +++ b/lib/asn1 @@ -1 +1 @@ -Subproject commit cb0ea175c9f39adcb810c4f5c9dd2046da7dc29e +Subproject commit dd348728cbd7e3d249aa012020af70d13e2bb7eb diff --git a/lib_system/LibItsCam_Functions.ttcn b/lib_system/LibItsCam_Functions.ttcn index 204b035..86672df 100644 --- a/lib_system/LibItsCam_Functions.ttcn +++ b/lib_system/LibItsCam_Functions.ttcn @@ -17,7 +17,7 @@ module LibItsCam_Functions { import from LibCommon_Sync all; // LibIts - import from ITS_Container language "ASN.1:1997" all; + import from ETSI_ITS_CDD language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_Pixits all; -- GitLab From 76f1ea77ad27467cc39300c8599f1c0d37c0be76 Mon Sep 17 00:00:00 2001 From: YannGarcia Date: Fri, 24 Mar 2023 07:07:41 +0100 Subject: [PATCH 10/28] Update module.mk --- lib/asn1 | 2 +- module.mk | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/asn1 b/lib/asn1 index dd34872..591d1a3 160000 --- a/lib/asn1 +++ b/lib/asn1 @@ -1 +1 @@ -Subproject commit dd348728cbd7e3d249aa012020af70d13e2bb7eb +Subproject commit 591d1a31d797b6824ef2bd050292c3ce4b36b8dc diff --git a/module.mk b/module.mk index ffbe817..f0dad9e 100644 --- a/module.mk +++ b/module.mk @@ -10,6 +10,7 @@ modules := \ lib_system \ ../../titan-test-system-framework/ttcn/LibHelpers \ ../../titan-test-system-framework/ttcn/LibSecurity \ + ../../titan-test-system-framework/ttcn/LibXsd \ ../LibCommon \ ../LibIts \ ../AtsGeoNetworking/lib \ -- GitLab From 8c11fa0393a974ca4d2c68043395bee2db1c4031 Mon Sep 17 00:00:00 2001 From: garciay Date: Wed, 21 Jun 2023 11:07:05 +0200 Subject: [PATCH 11/28] Add LongAcc templates for AtsMBR --- lib/LibItsCam_Templates.ttcn | 222 +++++++++++++++++++---------------- 1 file changed, 121 insertions(+), 101 deletions(-) diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index 9b67048..06b526e 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -10,28 +10,28 @@ * */ module LibItsCam_Templates { - + // LibCommon import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; - + // LibHelpers import from LibHelpers_Functions all; // LibIts import from ETSI_ITS_CDD language "ASN.1:1997" all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; - + // LibItsCommon import from LibItsCommon_Functions all; import from LibItsCommon_TypesAndValues all; import from LibItsCommon_ASN1_NamedNumbers all; - + // LibItsCam import from LibItsCam_TypesAndValues all; - + group camPrimitives { - + /** * @desc Receive template for CAM Message (CamPort Primitive) * @param p_camMsg Expected CAM Message @@ -51,7 +51,7 @@ module LibItsCam_Templates { ssp := *, its_aid := * }; - + /** * @desc Receive template for CAM Message (CamPort Primitive) * @param p_camMsg Expected CAM Message @@ -75,7 +75,7 @@ module LibItsCam_Templates { gnLifetime := p_gnLifetime, gnTrafficClass := p_gnTrafficClass }; - + /** * @desc Receive template for CA Message (DenmPort Primitive) * @param p_caMsg The expected CA Message @@ -90,7 +90,7 @@ module LibItsCam_Templates { ssp := p_ssp, its_aid := p_its_aid }; - + /** * @desc Receive template for CAM Message (CamPort Primitive) * @param p_camMsg Expected CAM Message @@ -115,16 +115,16 @@ module LibItsCam_Templates { ) := { msgOut := p_camMsg }; - + group camUtPrimitives { - + /** * @desc Initializes the CAM IUT. */ template (value) UtCamInitialize m_camInitialize := { hashedId8 := '0000000000000000'O } - + /** * @desc Change the curvature * @param p_offset The curvature value offset @@ -132,7 +132,7 @@ module LibItsCam_Templates { template (value) UtCamTrigger m_changeCurvature(CurvatureValue p_changeCurvature) := { changeCurvature := p_changeCurvature } - + /** * @desc Change the speed * @param p_offset The speed value offset @@ -140,7 +140,7 @@ module LibItsCam_Templates { template (value) UtCamTrigger m_changeSpeed(Int16 p_changeSpeed) := { changeSpeed := p_changeSpeed } - + /** * @desc Set the acceleration control status * @param p_status The status to set @@ -148,7 +148,7 @@ module LibItsCam_Templates { template (value) UtCamTrigger m_setAccelerationControlStatus(AccelerationControl p_status) := { setAccelerationControlStatus := p_status } - + /** * @desc Set the exterior lights status * @param p_status The status to set @@ -156,7 +156,7 @@ module LibItsCam_Templates { template (value) UtCamTrigger m_setExteriorLightsStatus(ExteriorLights p_status) := { setExteriorLightsStatus := p_status } - + /** * @desc Change the heading * @param p_offset The heading value offset @@ -164,7 +164,7 @@ module LibItsCam_Templates { template (value) UtCamTrigger m_changeHeading(HeadingValue p_changeHeading) := { changeHeading := p_changeHeading } - + /** * @desc Set the drive direction * @param p_driveDirection The drive direction @@ -172,7 +172,7 @@ module LibItsCam_Templates { template (value) UtCamTrigger m_setDriveDirection(DriveDirection p_driveDirection) := { setDriveDirection := p_driveDirection } - + /** * @desc Change the yaw rate * @param p_offset The yaw rate value offset @@ -180,7 +180,7 @@ module LibItsCam_Templates { template (value) UtCamTrigger m_changeYawRate(YawRateValue p_changeYawRate) := { changeYawRate := p_changeYawRate } - + /** * @desc Set the vehicle role * @param p_vehicleRole The vehicle role @@ -188,7 +188,7 @@ module LibItsCam_Templates { template (value) UtCamTrigger m_setVehicleRole(VehicleRole p_vehicleRole) := { setVehicleRole := p_vehicleRole } - + /** * @desc Set the dangerous good description * @param p_dangerousGoods The dangerous good description @@ -196,13 +196,13 @@ module LibItsCam_Templates { template (value) UtCamTrigger m_setDangerousGoods(DangerousGoodsBasic p_dangerousGoods) := { setDangerousGoods := p_dangerousGoods } - + } // end utPrimitives - + } // end group Primitives group positionTemplates { - + /** * @desc The test system reference position. */ @@ -219,7 +219,7 @@ module LibItsCam_Templates { altitudeConfidence := unavailable } } - + /** * @desc Reference position for given latitude and longitude. */ @@ -232,9 +232,9 @@ module LibItsCam_Templates { positionConfidenceEllipse := p_origRefPos.positionConfidenceEllipse, altitude := p_origRefPos.altitude } - + } // end positionTemplates - + /** * @desc Default Receive template for CAM PDU */ @@ -249,9 +249,9 @@ module LibItsCam_Templates { camParameters := ? } } - + group camBasicContainer { - + /** * @desc * Receive template for CAM PDU including basic container with @@ -273,11 +273,11 @@ module LibItsCam_Templates { } } } - + } // end group camBasicContainer - + group camHighFrequencyContainer { - + /** * @desc * Receive template for CAM PDU including specific basic vehicle container @@ -297,7 +297,7 @@ module LibItsCam_Templates { } } } - + /** * @desc Default Receive template for basic vehicle container in * the high frequency container @@ -320,7 +320,7 @@ module LibItsCam_Templates { performanceClass := *, cenDsrcTollingZone := * } - + /** * @desc * Receive template for CAM PDU including specific basic vehicle container @@ -335,7 +335,7 @@ module LibItsCam_Templates { curvatureConfidence := ? } } - + /** * @desc * Receive template for CAM PDU including specific basic vehicle container @@ -347,7 +347,7 @@ module LibItsCam_Templates { { accelerationControl := p_accCtrl } - + /** * @desc * Receive template for CAM PDU including specific basic vehicle container @@ -362,7 +362,7 @@ module LibItsCam_Templates { headingConfidence := ? } } - + /** * @desc * Receive template for CAM PDU including specific basic vehicle container @@ -377,7 +377,7 @@ module LibItsCam_Templates { speedConfidence := ? } } - + /** * @desc * Receive template for CAM PDU including specific basic vehicle container @@ -389,7 +389,7 @@ module LibItsCam_Templates { { driveDirection := p_driveDirection } - + /** * @desc * Receive template for CAM PDU including specific basic vehicle container @@ -404,11 +404,11 @@ module LibItsCam_Templates { yawRateConfidence := ? } } - + } // end group camHighFrequencyContainer - + group camLowFrequencyContainer { - + /** * @desc Default Receive template for CAM PDU including * optional lowFrequencyContainer @@ -423,7 +423,7 @@ module LibItsCam_Templates { } } } - + /** * @desc * Receive template for CAM PDU including specific basic vehicle container @@ -443,7 +443,7 @@ module LibItsCam_Templates { } } } - + /** * @desc Default Receive template for basic vehicle container in * the low frequency container @@ -453,7 +453,7 @@ module LibItsCam_Templates { exteriorLights := ?, pathHistory := ? } - + /** * @desc * Receive template for CAM PDU including specific basic vehicle container @@ -465,11 +465,11 @@ module LibItsCam_Templates { { exteriorLights := p_extLights } - + } // end group camLowFrequencyContainer - + group camSpecialVehicleContainer { - + /** * @desc Default Receive template for CAM PDU including * optional specialVehicleContainer @@ -484,7 +484,7 @@ module LibItsCam_Templates { } } } - + /** * @desc Receive template for CAM PDU including optional specialVehicleContainer * @param p_specialVehicleContainer The expected specialVehicleContainer @@ -498,60 +498,60 @@ module LibItsCam_Templates { } } } - + /** * @desc Receive template for specialVehicleContainer public transport */ template (present) SpecialVehicleContainer mw_publicTransport_any := { publicTransportContainer := ? } - + /** * @desc Receive template for specialVehicleContainer special transport */ template (present) SpecialVehicleContainer mw_specialTransport_any := { specialTransportContainer := ? } - + /** * @desc Receive template for specialVehicleContainer dangerous goods */ template (present) SpecialVehicleContainer mw_dangerousGoods_any := { dangerousGoodsContainer := ? } - + /** * @desc Receive template for specialVehicleContainer road works */ template (present) SpecialVehicleContainer mw_roadWorks_any := { roadWorksContainerBasic := ? } - + /** * @desc Receive template for specialVehicleContainer rescue */ template (present) SpecialVehicleContainer mw_rescue_any := { rescueContainer := ? } - + /** * @desc Receive template for specialVehicleContainer emergency */ template (present) SpecialVehicleContainer mw_emergency_any := { emergencyContainer := ? } - + /** * @desc Receive template for specialVehicleContainer safety car */ template (present) SpecialVehicleContainer mw_safetyCar_any := { safetyCarContainer := ? } - + } //end group camSpecialVehicleContainer - + group camAnyVehicle { - + /** * @desc Send template for Vehicle CAM PDU * @param p_stationId Station ID of the source @@ -618,7 +618,7 @@ module LibItsCam_Templates { } } }; // End of template m_camMsg_vehicle_HF_BV - + /** * @desc Send template for Vehicle CAM PDU * @param p_stationId Station ID of the source @@ -642,7 +642,7 @@ module LibItsCam_Templates { } } }; - + template (value) CAM m_camMsg_publicTransport( StationId p_stationId, GenerationDeltaTime p_generationTime, @@ -687,113 +687,113 @@ module LibItsCam_Templates { } }; } // end camAnyVehicle - + group camAccelerationControlTemplates { - + /** * @desc Receive template for acceleration control with brake padel active on */ template AccelerationControl mw_brakePedalActive_On := '1*'B length(7); - + /** * @desc Receive template for acceleration control with brake padel active off */ template AccelerationControl mw_brakePedalActive_Off := '0*'B length(7); - + /** * @desc Receive template for acceleration control with gas padel active on */ template AccelerationControl mw_gasPedalActive_On := '?1*'B length(7); - + /** * @desc Receive template for acceleration control with gas padel active off */ template AccelerationControl mw_gasPedalActive_Off := '?0*'B length(7); - + /** * @desc Receive template for acceleration control with emergency brake active on */ template AccelerationControl mw_emergencyBrakeActive_On := '??1*'B length(7); - + /** * @desc Receive template for acceleration control with emergency brake active off */ template AccelerationControl mw_emergencyBrakeActive_Off := '??0*'B length(7); - + /** * @desc Receive template for acceleration control with collision warning active on */ template AccelerationControl mw_collisionWarningActive_On := '???1*'B length(7); - + /** * @desc Receive template for acceleration control with collision warning active off */ template AccelerationControl mw_collisionWarningActive_Off := '???0*'B length(7); - + /** * @desc Receive template for acceleration control with adaptive cruise control active on */ template AccelerationControl mw_accActive_On := '????1*'B length(7); - + /** * @desc Receive template for acceleration control with adaptive cruise control active off */ template AccelerationControl mw_accActive_Off := '????0*'B length(7); - + /** * @desc Receive template for acceleration control with cruise control active on */ template AccelerationControl mw_cruiseControl_On := '?????1*'B length(7); - + /** * @desc Receive template for acceleration control with cruise control active off */ template AccelerationControl mw_cruiseControl_Off := '?????0*'B length(7); - + /** * @desc Receive template for acceleration control with speed limiter active on */ template AccelerationControl mw_speedLimiterActive_On := '*1'B length(7); - + /** * @desc Receive template for acceleration control with speed limiter active off */ template AccelerationControl mw_speedLimiterActive_Off := '*0'B length(7); - + } // end group camAccelerationControlTemplates - + group camExteriorLightsTemplates { - + /** * @desc Receive template for exterior lights with low beam lights off */ template ExteriorLights mw_lowBeamLightsOff := '0*'B length (8); - + /** * @desc Receive template for exterior lights with low beam lights on */ template ExteriorLights mw_lowBeamLightsOn := '1*'B length(8); - + /** * @desc Receive template for exterior lights with high beam lights off */ template ExteriorLights mw_highBeamLightsOff := '?0*'B length(8); - + /** * @desc Receive template for exterior lights with high beam lights on */ template ExteriorLights mw_highBeamLightsOn := '?1*'B length(8); - + /** * @desc Receive template for exterior lights with left turn signal off */ template ExteriorLights mw_leftTurnSignalOff := '??0*'B length(8); - + /** * @desc Receive template for exterior lights with left turn signal on */ template ExteriorLights mw_leftTurnSignalOn := '??1*'B length(8); - + /** * @desc Receive template for exterior lights with right turn signal off */ @@ -802,7 +802,7 @@ module LibItsCam_Templates { * @desc Receive template for exterior lights with right turn signal on */ template ExteriorLights mw_rightTurnSignalOn := '???1*'B length(8); - + /** * @desc Receive template for exterior lights with day time running lights off */ @@ -811,70 +811,90 @@ module LibItsCam_Templates { * @desc Receive template for exterior lights with day time running lights on */ template ExteriorLights mw_daytimeRunningLightsOn := '????1*'B length(8); - + /** * @desc Receive template for exterior lights with reverse light off */ template ExteriorLights mw_reverseLightOff := '?????0*'B length(8); - + /** * @desc Receive template for exterior lights with reverse light on */ template ExteriorLights mw_reverseLightOn := '?????1*'B length(8); - + /** * @desc Receive template for exterior lights with fog light off */ template ExteriorLights mw_fogLightOff := '??????0*'B length(8); - + /** * @desc Receive template for exterior lights with fog light on */ template ExteriorLights mw_fogLightOn := '??????1*'B length(8); - + /** * @desc Receive template for exterior lights with parking lights off */ template ExteriorLights mw_parkingLightsOff := '*0'B length(8); - + /** * @desc Receive template for exterior lights with parking lights on */ template ExteriorLights mw_parkingLightsOn := '*1'B length(8); - + /** * @desc Receive template for exterior lights with hazard lights on */ template ExteriorLights mw_hazardConditionOn := '??11*'B length(8); - + } // end group exteriorLights - + + group longitudinalAcceleration { + + template (value) LongitudinalAcceleration m_longitudinalAcceleration( + in template (value) LongitudinalAccelerationValue p_longitudinalAccelerationValue, + in template (value) AccelerationConfidence p_longitudinalAccelerationConfidence := 102 //AccelerationConfidence.unavailable + ) := { + longitudinalAccelerationValue := p_longitudinalAccelerationValue, + longitudinalAccelerationConfidence := p_longitudinalAccelerationConfidence + } // End of template m_longitudinalAcceleration + + template (present) LongitudinalAcceleration mw_longitudinalAcceleration( + template (present) LongitudinalAccelerationValue p_longitudinalAccelerationValue := ?, + template (present) AccelerationConfidence p_longitudinalAccelerationConfidence := ? + ) := { + longitudinalAccelerationValue := p_longitudinalAccelerationValue, + longitudinalAccelerationConfidence := p_longitudinalAccelerationConfidence + } // End of template mw_longitudinalAcceleration + + } // end group longitudinalAcceleration + group camTemplateFunctions { - + /** * @desc Converts an integer to Longitude * @param p_longitude The integer value * @return The longitude value */ function f_integer2Longitude(in integer p_longitude) return Longitude { - + var Longitude v_longitude := f_abs(p_longitude); - + return v_longitude; } - + /** * @desc Converts an integer to Latitude * @param p_latitude The integer value * @return The latitude value */ function f_integer2Latitude(in integer p_latitude) return Latitude { - + var Latitude v_latitude := f_abs(p_latitude); - + return v_latitude; } - + } // end camTemplateFunctions } // end LibItsCam_Templates -- GitLab From 6724d19df91a3c1410c497b7e504add9c366f344 Mon Sep 17 00:00:00 2001 From: garciay Date: Thu, 22 Jun 2023 09:29:52 +0200 Subject: [PATCH 12/28] Add EmergencyContainer templates for AtsMBR --- lib/LibItsCam_Templates.ttcn | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index 06b526e..4bef03f 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -688,6 +688,20 @@ module LibItsCam_Templates { }; } // end camAnyVehicle + group emergencyContainer { + + template (omit) EmergencyContainer m_emergencyContainer( + in template (value) LightBarSirenInUse p_lightBarSirenInUse := '00'B, + in template (omit) CauseCode p_incidentIndication := omit, + in template (omit) EmergencyPriority p_emergencyPriority := omit + ) := { + lightBarSirenInUse := p_lightBarSirenInUse, + incidentIndication := p_incidentIndication, + emergencyPriority := p_emergencyPriority + } // End of template m_emergencyContainer + + } // end emergencyContainer + group camAccelerationControlTemplates { /** -- GitLab From 431b0284e7b2d7edc8b486b0ad823aceb90a44eb Mon Sep 17 00:00:00 2001 From: garciay Date: Mon, 26 Jun 2023 10:12:56 +0200 Subject: [PATCH 13/28] Add SpecialTransportContainer templates for AtsMBR --- lib/LibItsCam_Templates.ttcn | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index 4bef03f..fbe5c4b 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -694,7 +694,7 @@ module LibItsCam_Templates { in template (value) LightBarSirenInUse p_lightBarSirenInUse := '00'B, in template (omit) CauseCode p_incidentIndication := omit, in template (omit) EmergencyPriority p_emergencyPriority := omit - ) := { + ) := { lightBarSirenInUse := p_lightBarSirenInUse, incidentIndication := p_incidentIndication, emergencyPriority := p_emergencyPriority @@ -702,6 +702,18 @@ module LibItsCam_Templates { } // end emergencyContainer + group specialTransportContainer { + + template (omit) SpecialTransportContainer m_specialTransportContainer( + in template (value) SpecialTransportType p_specialTransportType := '0010'B, + in template (omit) LightBarSirenInUse p_lightBarSirenInUse := '00'B + ) := { + specialTransportType := p_specialTransportType, + lightBarSirenInUse := p_lightBarSirenInUse + } // End of template m_specialTransportContainer + + } // end specialTransportContainer + group camAccelerationControlTemplates { /** -- GitLab From f6933de43cf243486c92fb874fd177e54e6127c7 Mon Sep 17 00:00:00 2001 From: garciay Date: Thu, 13 Jun 2024 14:35:55 +0200 Subject: [PATCH 14/28] Removed submodule lib/asn1 --- .gitmodules | 4 ---- lib/asn1 | 1 - 2 files changed, 5 deletions(-) delete mode 160000 lib/asn1 diff --git a/.gitmodules b/.gitmodules index 446a64e..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +0,0 @@ -[submodule "lib/asn1"] - path = lib/asn1 - url = https://forge.etsi.org/rep/ITS/asn1/cam_en302637_2.git - branch = testing2 diff --git a/lib/asn1 b/lib/asn1 deleted file mode 160000 index 591d1a3..0000000 --- a/lib/asn1 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 591d1a31d797b6824ef2bd050292c3ce4b36b8dc -- GitLab From 3ca9b8c3f25ea9a0d025e25098eacbe4560cb7b3 Mon Sep 17 00:00:00 2001 From: garciay Date: Thu, 13 Jun 2024 14:41:10 +0200 Subject: [PATCH 15/28] Added submodule CAM TS 103 900 --- .gitmodules | 3 +++ lib/asn1 | 1 + 2 files changed, 4 insertions(+) create mode 160000 lib/asn1 diff --git a/.gitmodules b/.gitmodules index e69de29..f14c1f7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lib/asn1"] + path = lib/asn1 + url = https://forge.etsi.org/rep/ITS/asn1/cam_ts103900.git diff --git a/lib/asn1 b/lib/asn1 new file mode 160000 index 0000000..b96bfef --- /dev/null +++ b/lib/asn1 @@ -0,0 +1 @@ +Subproject commit b96bfef8b798b9b1d901f0a07c3e72544badb44a -- GitLab From ce4a954b18ab02336f295f19fc5e4a95b6c72eca Mon Sep 17 00:00:00 2001 From: garciay Date: Fri, 14 Jun 2024 10:00:28 +0200 Subject: [PATCH 16/28] Rebuild AtsCAM full Release 2 --- lib/LibItsCam_Templates.ttcn | 6 +++--- lib/asn1 | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index fbe5c4b..338a196 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -592,8 +592,8 @@ module LibItsCam_Templates { }, vehicleWidth := 21, longitudinalAcceleration := { - longitudinalAccelerationValue := LibItsCommon_ASN1_NamedNumbers.LongitudinalAccelerationValue_unavailable_, - longitudinalAccelerationConfidence := LibItsCommon_ASN1_NamedNumbers.AccelerationConfidence_unavailable_ + value_ := LibItsCommon_ASN1_NamedNumbers.LongitudinalAccelerationValue_unavailable_, + confidence := LibItsCommon_ASN1_NamedNumbers.AccelerationConfidence_unavailable_ }, curvature := { curvatureValue := LibItsCommon_ASN1_NamedNumbers.CurvatureValue_straight_, @@ -692,7 +692,7 @@ module LibItsCam_Templates { template (omit) EmergencyContainer m_emergencyContainer( in template (value) LightBarSirenInUse p_lightBarSirenInUse := '00'B, - in template (omit) CauseCode p_incidentIndication := omit, + in template (omit) CauseCodeV2 p_incidentIndication := omit, in template (omit) EmergencyPriority p_emergencyPriority := omit ) := { lightBarSirenInUse := p_lightBarSirenInUse, diff --git a/lib/asn1 b/lib/asn1 index b96bfef..8b6efe7 160000 --- a/lib/asn1 +++ b/lib/asn1 @@ -1 +1 @@ -Subproject commit b96bfef8b798b9b1d901f0a07c3e72544badb44a +Subproject commit 8b6efe773f68b0824975af612ee764f5465e7bc3 -- GitLab From 1615d38e830f8b33d3abcbec83f8c038ac0f65c4 Mon Sep 17 00:00:00 2001 From: garciay Date: Tue, 18 Jun 2024 08:59:27 +0200 Subject: [PATCH 17/28] Rebuild AtsCAM full Release 2 --- ItsCam_TpFunctions.ttcn | 6 ++-- lib/LibItsCam_Templates.ttcn | 50 ++++++++++++++-------------- lib/LibItsCam_TypesAndValues.ttcn | 1 - lib/module.mk | 1 + lib_system/LibItsCam_TestSystem.ttcn | 3 -- module.mk | 3 +- 6 files changed, 29 insertions(+), 35 deletions(-) diff --git a/ItsCam_TpFunctions.ttcn b/ItsCam_TpFunctions.ttcn index cb12cbb..2eb02b5 100644 --- a/ItsCam_TpFunctions.ttcn +++ b/ItsCam_TpFunctions.ttcn @@ -7,13 +7,11 @@ * 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 ItsCam_TpFunctions { - import from LibItsCommon_Pixits all; - // LibCommon import from LibCommon_Sync all; import from LibCommon_VerdictControl all; @@ -2557,7 +2555,7 @@ module ItsCam_TpFunctions { // Local variables timer t_genCam_dcc := PICS_T_GENCAMDCC * 0.90; var CamInd v_camPdu; - var ReferencePosition v_referencePosition, v_expectedReferencePosition; + var ReferencePositionWithConfidence v_referencePosition, v_expectedReferencePosition; var float v_changePosValue := 8.0; // 8 >> 4m // Test control diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index 338a196..921f5eb 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -197,22 +197,22 @@ module LibItsCam_Templates { setDangerousGoods := p_dangerousGoods } - } // end utPrimitives + }// End of group utPrimitives - } // end group Primitives + } // End of group Primitives group positionTemplates { /** * @desc The test system reference position. */ - template (value) ReferencePosition m_tsPosition := { + template (value) ReferencePositionWithConfidence m_tsPosition := { latitude := f_integer2Latitude(f_getTsLatitude()), longitude := f_integer2Longitude(f_getTsLongitude()), positionConfidenceEllipse := { - semiMajorConfidence := LibItsCommon_ASN1_NamedNumbers.SemiAxisLength_oneCentimeter_, - semiMinorConfidence := LibItsCommon_ASN1_NamedNumbers.SemiAxisLength_oneCentimeter_, - semiMajorOrientation := LibItsCommon_ASN1_NamedNumbers.HeadingValue_wgs84North_ + semiMajorAxisLength := LibItsCommon_ASN1_NamedNumbers.SemiAxisLength_oneCentimeter_, + semiMinorAxisLength := LibItsCommon_ASN1_NamedNumbers.SemiAxisLength_oneCentimeter_, + semiMajorAxisOrientation := LibItsCommon_ASN1_NamedNumbers.HeadingValue_wgs84North_ }, altitude := { altitudeValue := LibItsCommon_ASN1_NamedNumbers.AltitudeValue_referenceEllipsoidSurface_, @@ -224,7 +224,7 @@ module LibItsCam_Templates { * @desc Reference position for given latitude and longitude. */ template (present) ReferencePosition mw_refPositionWithDelta( - in ReferencePosition p_origRefPos, + in ReferencePositionWithConfidence p_origRefPos, in integer p_jitter := 100 ) := { latitude := (p_origRefPos.latitude - p_jitter..p_origRefPos.latitude + p_jitter), @@ -233,7 +233,7 @@ module LibItsCam_Templates { altitude := p_origRefPos.altitude } - } // end positionTemplates + }// End of group positionTemplates /** * @desc Default Receive template for CAM PDU @@ -259,8 +259,8 @@ module LibItsCam_Templates { * @param p_referencePosition The reference position */ template (present) CAM mw_camMsg_BC_refPos( - in template(present) ReferencePosition p_referencePosition - ) modifies mw_camMsg_any := { + template(present) ReferencePositionWithConfidence p_referencePosition + ) modifies mw_camMsg_any := { cam := { camParameters := { basicContainer := { @@ -274,7 +274,7 @@ module LibItsCam_Templates { } } - } // end group camBasicContainer + } // End of group camBasicContainer group camHighFrequencyContainer { @@ -405,7 +405,7 @@ module LibItsCam_Templates { } } - } // end group camHighFrequencyContainer + } // End of group camHighFrequencyContainer group camLowFrequencyContainer { @@ -466,7 +466,7 @@ module LibItsCam_Templates { exteriorLights := p_extLights } - } // end group camLowFrequencyContainer + } // End of group camLowFrequencyContainer group camSpecialVehicleContainer { @@ -561,7 +561,7 @@ module LibItsCam_Templates { template (value) CAM m_camMsg_vehicle_HF_BV( StationId p_stationId, GenerationDeltaTime p_generationTime, - template (value) ReferencePosition p_referencePosition + template (value) ReferencePositionWithConfidence p_referencePosition ) := { header := { protocolVersion := LibItsCommon_ASN1_NamedNumbers.ItsPduHeader_protocolVersion_currentVersion_, @@ -628,7 +628,7 @@ module LibItsCam_Templates { template (value) CAM m_camMsg_vehicle( StationId p_stationId, GenerationDeltaTime p_generationTime, - template (value) ReferencePosition p_referencePosition + template (value) ReferencePositionWithConfidence p_referencePosition ) modifies m_camMsg_vehicle_HF_BV := { cam := { camParameters := { @@ -646,7 +646,7 @@ module LibItsCam_Templates { template (value) CAM m_camMsg_publicTransport( StationId p_stationId, GenerationDeltaTime p_generationTime, - template (value) ReferencePosition p_referencePosition + template (value) ReferencePositionWithConfidence p_referencePosition ) modifies m_camMsg_vehicle := { cam := { camParameters := { @@ -668,7 +668,7 @@ module LibItsCam_Templates { template (value) CAM m_camMsg_specialTransport( StationId p_stationId, GenerationDeltaTime p_generationTime, - template (value) ReferencePosition p_referencePosition + template (value) ReferencePositionWithConfidence p_referencePosition ) modifies m_camMsg_vehicle := { cam := { camParameters := { @@ -686,7 +686,7 @@ module LibItsCam_Templates { } } }; - } // end camAnyVehicle + }// End of group camAnyVehicle group emergencyContainer { @@ -700,7 +700,7 @@ module LibItsCam_Templates { emergencyPriority := p_emergencyPriority } // End of template m_emergencyContainer - } // end emergencyContainer + }// End of group emergencyContainer group specialTransportContainer { @@ -712,7 +712,7 @@ module LibItsCam_Templates { lightBarSirenInUse := p_lightBarSirenInUse } // End of template m_specialTransportContainer - } // end specialTransportContainer + }// End of group specialTransportContainer group camAccelerationControlTemplates { @@ -786,7 +786,7 @@ module LibItsCam_Templates { */ template AccelerationControl mw_speedLimiterActive_Off := '*0'B length(7); - } // end group camAccelerationControlTemplates + } // End of group camAccelerationControlTemplates group camExteriorLightsTemplates { @@ -873,7 +873,7 @@ module LibItsCam_Templates { */ template ExteriorLights mw_hazardConditionOn := '??11*'B length(8); - } // end group exteriorLights + } // End of group exteriorLights group longitudinalAcceleration { @@ -893,7 +893,7 @@ module LibItsCam_Templates { longitudinalAccelerationConfidence := p_longitudinalAccelerationConfidence } // End of template mw_longitudinalAcceleration - } // end group longitudinalAcceleration + } // End of group longitudinalAcceleration group camTemplateFunctions { @@ -921,6 +921,6 @@ module LibItsCam_Templates { return v_latitude; } - } // end camTemplateFunctions + }// End of group camTemplateFunctions -} // end LibItsCam_Templates +}// End of group LibItsCam_Templates diff --git a/lib/LibItsCam_TypesAndValues.ttcn b/lib/LibItsCam_TypesAndValues.ttcn index 3fea519..7b8252a 100644 --- a/lib/LibItsCam_TypesAndValues.ttcn +++ b/lib/LibItsCam_TypesAndValues.ttcn @@ -18,7 +18,6 @@ module LibItsCam_TypesAndValues { // LibIts import from ETSI_ITS_CDD language "ASN.1:1997" all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; - // import from DENM_PDU_Descriptions language "ASN.1:1997" all; group camValues { diff --git a/lib/module.mk b/lib/module.mk index ec8d959..895e4a5 100644 --- a/lib/module.mk +++ b/lib/module.mk @@ -5,4 +5,5 @@ sources := \ LibItsCam_Templates.ttcn \ LibItsCam_TypesAndValues.ttcn \ + modules := asn1 diff --git a/lib_system/LibItsCam_TestSystem.ttcn b/lib_system/LibItsCam_TestSystem.ttcn index 9fbfd93..8c5f388 100644 --- a/lib_system/LibItsCam_TestSystem.ttcn +++ b/lib_system/LibItsCam_TestSystem.ttcn @@ -12,14 +12,11 @@ module LibItsCam_TestSystem language "TTCN-3:2010 Real Time and Performance Testing" { // LibCommon -// import from LibCommon_Time {modulepar all}; -// import from LibCommon_Sync all; import from LibCommon_BasicTypesAndValues all; import from LibCommon_DataStrings all; // LibIts import from CAM_PDU_Descriptions language "ASN.1:1997" all; -// import from DENM_PDU_Descriptions language "ASN.1:1997" all; // LibItsCommon import from LibItsCommon_TestSystem all; diff --git a/module.mk b/module.mk index f0dad9e..286e7e4 100644 --- a/module.mk +++ b/module.mk @@ -5,8 +5,7 @@ sources := ItsCam_TestCases.ttcn \ ItsCam_TestControl.ttcn \ ItsCam_TpFunctions.ttcn \ -modules := \ - lib \ +modules := lib \ lib_system \ ../../titan-test-system-framework/ttcn/LibHelpers \ ../../titan-test-system-framework/ttcn/LibSecurity \ -- GitLab From 2cd9d00d66d4701c22c642ea9ac2777b0e13c400 Mon Sep 17 00:00:00 2001 From: garciay Date: Thu, 27 Jun 2024 10:28:58 +0200 Subject: [PATCH 18/28] Update copyrighs & author --- ItsCam_TestCases.ttcn | 2 +- ItsCam_TestControl.ttcn | 2 +- ItsCam_TpFunctions.ttcn | 2 +- LICENSE | 2 +- lib/LibItsCam_Pics.ttcn | 2 +- lib/LibItsCam_Pixits.ttcn | 2 +- lib/LibItsCam_Templates.ttcn | 2 +- lib/LibItsCam_TypesAndValues.ttcn | 2 +- lib_system/LibItsCam_Functions.ttcn | 2 +- lib_system/LibItsCam_TestSystem.ttcn | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ItsCam_TestCases.ttcn b/ItsCam_TestCases.ttcn index f3c4371..5230883 100644 --- a/ItsCam_TestCases.ttcn +++ b/ItsCam_TestCases.ttcn @@ -1,5 +1,5 @@ /** - * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @author ETSI / STF405 / STF449 / STF484 / STF517 / TTF T036 * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsCAM/ItsCam_TestCases.ttcn $ * $Id: ItsCam_TestCases.ttcn 2655 2017-01-26 10:46:08Z filatov $ * @desc Testcases for CA Protocol diff --git a/ItsCam_TestControl.ttcn b/ItsCam_TestControl.ttcn index 328f345..4b81201 100644 --- a/ItsCam_TestControl.ttcn +++ b/ItsCam_TestControl.ttcn @@ -1,5 +1,5 @@ /** - * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @author ETSI / STF405 / STF449 / STF484 / STF517 / TTF T036 * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsCAM/ItsCam_TestControl.ttcn $ * $Id: ItsCam_TestControl.ttcn 2655 2017-01-26 10:46:08Z filatov $ * @desc Test Control file for CAM diff --git a/ItsCam_TpFunctions.ttcn b/ItsCam_TpFunctions.ttcn index 2eb02b5..0264a9e 100644 --- a/ItsCam_TpFunctions.ttcn +++ b/ItsCam_TpFunctions.ttcn @@ -1,5 +1,5 @@ /** - * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @author ETSI / STF405 / STF449 / STF484 / STF517 / TTF T036 * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsCAM/ItsCam_TpFunctions.ttcn $ * $Id: ItsCam_TpFunctions.ttcn 2655 2017-01-26 10:46:08Z filatov $ * @desc CAM TP functions diff --git a/LICENSE b/LICENSE index 87e45c5..950683d 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright 2022 ETSI +Copyright 2019-2024 ETSI Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: diff --git a/lib/LibItsCam_Pics.ttcn b/lib/LibItsCam_Pics.ttcn index 95028e8..839a7a7 100644 --- a/lib/LibItsCam_Pics.ttcn +++ b/lib/LibItsCam_Pics.ttcn @@ -1,5 +1,5 @@ /** - * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @author ETSI / STF405 / STF449 / STF484 / STF517 / TTF T036 * @version $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/CAM/LibItsCam_Pics.ttcn $ * $Id: LibItsCam_Pics.ttcn 1318 2017-01-26 10:20:53Z filatov $ * @desc CAM PICS diff --git a/lib/LibItsCam_Pixits.ttcn b/lib/LibItsCam_Pixits.ttcn index 59ccb58..e79ad0e 100644 --- a/lib/LibItsCam_Pixits.ttcn +++ b/lib/LibItsCam_Pixits.ttcn @@ -1,5 +1,5 @@ /** - * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @author ETSI / STF405 / STF449 / STF484 / STF517 / TTF T036 * @version $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/CAM/LibItsCam_Pixits.ttcn $ * $Id: LibItsCam_Pixits.ttcn 1318 2017-01-26 10:20:53Z filatov $ * @desc Module containing Pixits for CAM diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index 921f5eb..8e6812c 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -1,5 +1,5 @@ /** - * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @author ETSI / STF405 / STF449 / STF484 / STF517 / TTF T036 * @version $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/CAM/LibItsCam_Templates.ttcn $ * $Id: LibItsCam_Templates.ttcn 1318 2017-01-26 10:20:53Z filatov $ * @desc Module containing base template definitions for CAM diff --git a/lib/LibItsCam_TypesAndValues.ttcn b/lib/LibItsCam_TypesAndValues.ttcn index 7b8252a..c82a7d7 100644 --- a/lib/LibItsCam_TypesAndValues.ttcn +++ b/lib/LibItsCam_TypesAndValues.ttcn @@ -1,5 +1,5 @@ /** - * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @author ETSI / STF405 / STF449 / STF484 / STF517 / TTF T036 * @version $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/CAM/LibItsCam_TypesAndValues.ttcn $ * $Id: LibItsCam_TypesAndValues.ttcn 1318 2017-01-26 10:20:53Z filatov $ * @desc Module containing types and values for CAM Protocol diff --git a/lib_system/LibItsCam_Functions.ttcn b/lib_system/LibItsCam_Functions.ttcn index 86672df..cb92fe0 100644 --- a/lib_system/LibItsCam_Functions.ttcn +++ b/lib_system/LibItsCam_Functions.ttcn @@ -1,5 +1,5 @@ /** - * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @author ETSI / STF405 / STF449 / STF484 / STF517 / TTF T036 * @version $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/CAM/LibItsCam_Functions.ttcn $ * $Id: LibItsCam_Functions.ttcn 1318 2017-01-26 10:20:53Z filatov $ * @desc Module containing common functions for ITS CAM diff --git a/lib_system/LibItsCam_TestSystem.ttcn b/lib_system/LibItsCam_TestSystem.ttcn index 8c5f388..de0296b 100644 --- a/lib_system/LibItsCam_TestSystem.ttcn +++ b/lib_system/LibItsCam_TestSystem.ttcn @@ -1,5 +1,5 @@ /** - * @author ETSI / STF405 / STF449 / STF484 / STF517 + * @author ETSI / STF405 / STF449 / STF484 / STF517 / TTF T036 * @version $Url: https://oldforge.etsi.org/svn/LibIts/tags/20170222_STF527_Final/ttcn/CAM/LibItsCam_TestSystem.ttcn $ * $Id: LibItsCam_TestSystem.ttcn 1318 2017-01-26 10:20:53Z filatov $ * @desc Test System module for ITS CAM -- GitLab From 72af849cc49c989fcb6f88dddfdeb75684ad02ed Mon Sep 17 00:00:00 2001 From: garciay Date: Tue, 2 Jul 2024 09:59:57 +0200 Subject: [PATCH 19/28] Create send/receive TTCN-3 templates for all CDD types to be re-used in all ATSs --- ItsCam_TpFunctions.ttcn | 23 ++++++++++----------- lib/LibItsCam_Templates.ttcn | 33 ------------------------------- lib/LibItsCam_TypesAndValues.ttcn | 9 +-------- 3 files changed, 13 insertions(+), 52 deletions(-) diff --git a/ItsCam_TpFunctions.ttcn b/ItsCam_TpFunctions.ttcn index 0264a9e..ea2d789 100644 --- a/ItsCam_TpFunctions.ttcn +++ b/ItsCam_TpFunctions.ttcn @@ -28,6 +28,7 @@ module ItsCam_TpFunctions { import from LibItsCommon_Functions all; import from LibItsCommon_Pixits all; import from LibItsCommon_ASN1_NamedNumbers all; + import from LibItsCommon_CddTemplates all; // LibItsCam import from LibItsCam_TestSystem all; @@ -235,7 +236,7 @@ module ItsCam_TpFunctions { function f_CAM_MSD_FMT_BV_04() runs on ItsCam { // Local variables - var VehicleRole v_vehicleRole := c_vehicleRole_roadWork; + var VehicleRole v_vehicleRole := valueof(m_vehicle_role(roadWork)); // Test control if (not PICS_CAM_GENERATION or PICS_RSU) { @@ -286,7 +287,7 @@ module ItsCam_TpFunctions { // Local variables timer t_minTransInterval := c_specialVehicleGenerationTime * 1.10; - var VehicleRole v_vehicleRole := roadWork; + var VehicleRole v_vehicleRole := valueof(m_vehicle_role(roadWork)); var SpeedValue v_speedValues[5] := { 1000, 2000, 3000, 4000, 5000 } //cm/s var integer v_cntSpeed, v_cntTime; var CamInd v_camInd; @@ -1860,7 +1861,7 @@ module ItsCam_TpFunctions { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Set vehicle role - f_utTriggerEvent(m_setVehicleRole(c_vehicleRole_publicTransport)); + f_utTriggerEvent(m_setVehicleRole(publicTransport)); // Test Body log("*** " & testcasename() & ": Expected template: ", mw_camInd ( mw_camMsg_SVC( mw_publicTransport_any )), " ***"); @@ -1910,7 +1911,7 @@ module ItsCam_TpFunctions { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Set vehicle role - f_utTriggerEvent(m_setVehicleRole(c_vehicleRole_specialTransport)); + f_utTriggerEvent(m_setVehicleRole(specialTransport)); // Test Body tc_ac.start; @@ -1959,7 +1960,7 @@ module ItsCam_TpFunctions { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Set vehicle role - f_utTriggerEvent(m_setVehicleRole(c_vehicleRole_dangerousGoods)); + f_utTriggerEvent(m_setVehicleRole(dangerousGoods)); // Test Body tc_ac.start; @@ -2008,7 +2009,7 @@ module ItsCam_TpFunctions { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Set vehicle role - f_utTriggerEvent(m_setVehicleRole(c_vehicleRole_roadWork)); + f_utTriggerEvent(m_setVehicleRole(roadWork)); // Test Body tc_ac.start; @@ -2057,7 +2058,7 @@ module ItsCam_TpFunctions { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Set vehicle role - f_utTriggerEvent(m_setVehicleRole(c_vehicleRole_rescue)); + f_utTriggerEvent(m_setVehicleRole(rescue)); // Test Body tc_ac.start; @@ -2106,7 +2107,7 @@ module ItsCam_TpFunctions { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Set vehicle role - f_utTriggerEvent(m_setVehicleRole(c_vehicleRole_emergency)); + f_utTriggerEvent(m_setVehicleRole(emergency)); // Test Body tc_ac.start; @@ -2155,7 +2156,7 @@ module ItsCam_TpFunctions { f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); // Set vehicle role - f_utTriggerEvent(m_setVehicleRole(c_vehicleRole_safetyCar)); + f_utTriggerEvent(m_setVehicleRole(safetyCar)); // Test Body tc_ac.start; @@ -3091,7 +3092,7 @@ module ItsCam_TpFunctions { } f_CAM_MSD_SSP_BO_XX(PX_CERT_IUT_CAM_02, - m_setVehicleRole(c_vehicleRole_publicTransport), + m_setVehicleRole(publicTransport), mw_camMsg_SVC ( mw_publicTransport_any ) ); @@ -3105,7 +3106,7 @@ module ItsCam_TpFunctions { } f_CAM_MSD_SSP_BO_XX(PX_CERT_IUT_CAM_03, - m_setVehicleRole(c_vehicleRole_specialTransport), + m_setVehicleRole(specialTransport), mw_camMsg_SVC ( mw_specialTransport_any ) ); } // end f_CAM_MSD_SSP_BO_03 diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index 8e6812c..e0252e2 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -220,19 +220,6 @@ module LibItsCam_Templates { } } - /** - * @desc Reference position for given latitude and longitude. - */ - template (present) ReferencePosition mw_refPositionWithDelta( - in ReferencePositionWithConfidence p_origRefPos, - in integer p_jitter := 100 - ) := { - latitude := (p_origRefPos.latitude - p_jitter..p_origRefPos.latitude + p_jitter), - longitude := (p_origRefPos.longitude - p_jitter..p_origRefPos.longitude + p_jitter), - positionConfidenceEllipse := p_origRefPos.positionConfidenceEllipse, - altitude := p_origRefPos.altitude - } - }// End of group positionTemplates /** @@ -875,26 +862,6 @@ module LibItsCam_Templates { } // End of group exteriorLights - group longitudinalAcceleration { - - template (value) LongitudinalAcceleration m_longitudinalAcceleration( - in template (value) LongitudinalAccelerationValue p_longitudinalAccelerationValue, - in template (value) AccelerationConfidence p_longitudinalAccelerationConfidence := 102 //AccelerationConfidence.unavailable - ) := { - longitudinalAccelerationValue := p_longitudinalAccelerationValue, - longitudinalAccelerationConfidence := p_longitudinalAccelerationConfidence - } // End of template m_longitudinalAcceleration - - template (present) LongitudinalAcceleration mw_longitudinalAcceleration( - template (present) LongitudinalAccelerationValue p_longitudinalAccelerationValue := ?, - template (present) AccelerationConfidence p_longitudinalAccelerationConfidence := ? - ) := { - longitudinalAccelerationValue := p_longitudinalAccelerationValue, - longitudinalAccelerationConfidence := p_longitudinalAccelerationConfidence - } // End of template mw_longitudinalAcceleration - - } // End of group longitudinalAcceleration - group camTemplateFunctions { /** diff --git a/lib/LibItsCam_TypesAndValues.ttcn b/lib/LibItsCam_TypesAndValues.ttcn index c82a7d7..369a096 100644 --- a/lib/LibItsCam_TypesAndValues.ttcn +++ b/lib/LibItsCam_TypesAndValues.ttcn @@ -27,14 +27,7 @@ module LibItsCam_TypesAndValues { const AccelerationControl c_accCtrlIdle := '0000000'B; const ExteriorLights c_elAllLightsOff := '00000000'B; - - const VehicleRole c_vehicleRole_publicTransport := publicTransport; - const VehicleRole c_vehicleRole_specialTransport := specialTransport; - const VehicleRole c_vehicleRole_dangerousGoods := dangerousGoods; - const VehicleRole c_vehicleRole_roadWork := roadWork; - const VehicleRole c_vehicleRole_rescue := rescue; - const VehicleRole c_vehicleRole_emergency := emergency; - const VehicleRole c_vehicleRole_safetyCar := safetyCar; + const DangerousGoodsBasic c_dangerousGoodsBasic_explosives1 := explosives1; const DangerousGoodsBasic c_dangerousGoodsBasic_explosives2 := explosives2; -- GitLab From 06ae970842a494f4eb7f984289d568f39ec1ce2b Mon Sep 17 00:00:00 2001 From: garciay Date: Wed, 18 Sep 2024 14:40:15 +0200 Subject: [PATCH 20/28] Report fix/enhancement fron CV2X#4 plugtest --- ItsCam_TpFunctions.ttcn | 30 ++++++++++++++++-------------- lib/LibItsCam_Pixits.ttcn | 10 ++++++++++ 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/ItsCam_TpFunctions.ttcn b/ItsCam_TpFunctions.ttcn index ea2d789..4c563f4 100644 --- a/ItsCam_TpFunctions.ttcn +++ b/ItsCam_TpFunctions.ttcn @@ -36,6 +36,7 @@ module ItsCam_TpFunctions { import from LibItsCam_Templates all; import from LibItsCam_TypesAndValues all; import from LibItsCam_Pics all; + import from LibItsCam_Pixits all; import from LibItsSecurity_Functions all; @@ -140,7 +141,7 @@ module ItsCam_TpFunctions { function f_CAM_MSD_FMT_BV_03() runs on ItsCam { // Local variables - timer t_minTransInterval := c_lowFrequencyGenerationTime * 1.10; + timer t_minTransInterval := c_lowFrequencyGenerationTime * PX_INC_TIMER_CONTROL_FACTOR; var SpeedValue v_speedValues[5] := { 1000, 2000, 3000, 4000, 5000 } //cm/s var integer v_cntSpeed, v_cntTime; var CamInd v_camInd; @@ -286,7 +287,7 @@ module ItsCam_TpFunctions { function f_CAM_MSD_FMT_BV_05() runs on ItsCam { // Local variables - timer t_minTransInterval := c_specialVehicleGenerationTime * 1.10; + timer t_minTransInterval := c_specialVehicleGenerationTime * PX_INC_TIMER_CONTROL_FACTOR; var VehicleRole v_vehicleRole := valueof(m_vehicle_role(roadWork)); var SpeedValue v_speedValues[5] := { 1000, 2000, 3000, 4000, 5000 } //cm/s var integer v_cntSpeed, v_cntTime; @@ -1848,6 +1849,7 @@ module ItsCam_TpFunctions { stop; } if (not PICS_PUBLICTRANS) { + setverdict(inconc); testcase.stop(testcasename() & ": PICS_PUBLICTRANS need to be set to true"); } @@ -2190,7 +2192,7 @@ module ItsCam_TpFunctions { function f_CAM_MSD_GFQ_TI_01() runs on ItsCam { // Local variables - timer t_minTransInterval := PICS_T_GENCAMMIN * 0.90; + timer t_minTransInterval := PICS_T_GENCAMMIN * PX_DEC_TIMER_CONTROL_FACTOR; var SpeedValue v_speedValues[5] := { 1000, 2000, 3000, 4000, 5000 } //cm/s var integer v_cntSpeed, v_cntTime; var FncRetCode v_ret; @@ -2284,7 +2286,7 @@ module ItsCam_TpFunctions { function f_CAM_MSD_GFQ_TI_02() runs on ItsCam { // Local variables - timer t_maxTransInterval := PICS_T_GENCAMMAX * 1.10; + timer t_maxTransInterval := PICS_T_GENCAMMAX * PX_INC_TIMER_CONTROL_FACTOR; var integer v_cntSpeed, v_cntTime; var FncRetCode v_ret; @@ -2437,7 +2439,7 @@ module ItsCam_TpFunctions { log("*** " & testcasename() & ": INCONC: Initial conditions: Condition 2 CAM#", v_i, " message received BEFORE INTERVAL_1 expired ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } - else if (v_measured>v_interval_1_measured * 1.10) { + else if (v_measured>v_interval_1_measured * PX_INC_TIMER_CONTROL_FACTOR) { log("*** " & testcasename() & ": INCONC: Initial conditions: Condition 2 CAM#", v_i, " message not received in time ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } @@ -2459,11 +2461,11 @@ module ItsCam_TpFunctions { [] camPort.receive(mw_camInd ( mw_camMsg_any )) -> value v_camInd { var float v_measured := int2float(v_camInd.recvTime) / 1000.0 - v_receiveTime; log("*** " & testcasename() & ": DEBUG: v_measured=", v_measured, " ***"); - if (v_measuredPICS_T_GENCAMMAX * 1.10) { + else if (v_measured>PICS_T_GENCAMMAX * PX_INC_TIMER_CONTROL_FACTOR) { log("*** " & testcasename() & ": FAIL: Next CAM message not received AFTER T_GenCamMax expired ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } @@ -2490,8 +2492,8 @@ module ItsCam_TpFunctions { function f_CAM_MSD_GFQ_BV_04() runs on ItsCam { // Local variables - timer t_genCam_dcc := PICS_T_GENCAMDCC * 0.90; - timer t_genCam_min := PICS_T_GENCAMMIN * 1.10; + timer t_genCam_dcc := PICS_T_GENCAMDCC * PX_DEC_TIMER_CONTROL_FACTOR; + timer t_genCam_min := PICS_T_GENCAMMIN * PX_INC_TIMER_CONTROL_FACTOR; var CamInd v_camPdu; var HeadingValue v_headingValue; var HeadingValue v_changeHeadingValue := 50; // 4° == 40 @@ -2554,7 +2556,7 @@ module ItsCam_TpFunctions { function f_CAM_MSD_GFQ_BV_05() runs on ItsCam { // Local variables - timer t_genCam_dcc := PICS_T_GENCAMDCC * 0.90; + timer t_genCam_dcc := PICS_T_GENCAMDCC * PX_DEC_TIMER_CONTROL_FACTOR; var CamInd v_camPdu; var ReferencePositionWithConfidence v_referencePosition, v_expectedReferencePosition; var float v_changePosValue := 8.0; // 8 >> 4m @@ -2626,8 +2628,8 @@ module ItsCam_TpFunctions { function f_CAM_MSD_GFQ_BV_06() runs on ItsCam { // Local variables - timer t_genCam_dcc := PICS_T_GENCAMDCC * 0.90; - timer t_genCam_min := PICS_T_GENCAMMIN * 1.10; + timer t_genCam_dcc := PICS_T_GENCAMDCC * PX_DEC_TIMER_CONTROL_FACTOR; + timer t_genCam_min := PICS_T_GENCAMMIN * PX_INC_TIMER_CONTROL_FACTOR; var CamInd v_camPdu; var SpeedValue v_speedValue; var SpeedValue v_changeSpeedValue := 60; // 0,5 m/s << 0,6 m/s == 60 cm/s @@ -2690,8 +2692,8 @@ module ItsCam_TpFunctions { function f_CAM_MSD_GFQ_TI_07() runs on ItsCam { // Local variables - timer t_maxTransInterval_min := PICS_T_GENCAMMAX * 0.90; - timer t_maxTransInterval_max := PICS_T_GENCAMMAX * 1.10; + timer t_maxTransInterval_min := PICS_T_GENCAMMAX * PX_DEC_TIMER_CONTROL_FACTOR; + timer t_maxTransInterval_max := PICS_T_GENCAMMAX * PX_INC_TIMER_CONTROL_FACTOR; timer t_genCam_measure := PX_TWAIT; timer t_genCam_min; timer t_genCam_max; diff --git a/lib/LibItsCam_Pixits.ttcn b/lib/LibItsCam_Pixits.ttcn index e79ad0e..83ff1d1 100644 --- a/lib/LibItsCam_Pixits.ttcn +++ b/lib/LibItsCam_Pixits.ttcn @@ -18,4 +18,14 @@ module LibItsCam_Pixits { // LibItsSecurity import from LibItsSecurity_TypesAndValues all; + /** + * @desc Multiply timer value by this control factor to increase it + */ + modulepar float PX_INC_TIMER_CONTROL_FACTOR := 1.10; + + /** + * @desc Multiply timer value by this control factor to decrease it + */ + modulepar float PX_DEC_TIMER_CONTROL_FACTOR := 0.9; + } // End of module LibItsSecurity_Pixits \ No newline at end of file -- GitLab From 078736a9c6946220025f03c6ac11a69b06b72926 Mon Sep 17 00:00:00 2001 From: garciay Date: Fri, 27 Sep 2024 10:41:18 +0200 Subject: [PATCH 21/28] Updated atsCAM with ITS rel 2 references --- ItsCam_TestCases.ttcn | 262 +++++++++++++++++++++--------------------- 1 file changed, 131 insertions(+), 131 deletions(-) diff --git a/ItsCam_TestCases.ttcn b/ItsCam_TestCases.ttcn index 5230883..7b538c6 100644 --- a/ItsCam_TestCases.ttcn +++ b/ItsCam_TestCases.ttcn @@ -3,7 +3,7 @@ * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsCAM/ItsCam_TestCases.ttcn $ * $Id: ItsCam_TestCases.ttcn 2655 2017-01-26 10:46:08Z filatov $ * @desc Testcases for CA Protocol - * @reference ETSI EN 302 637-2 v1.4.1 + * @reference ETSI TS 103 900 v2.2.1 * @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. @@ -48,8 +48,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/FMT/BV-01 - * @reference ETSI EN 302 637-2 v1.4.1, Annex B.1 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-01 + * @reference ETSI TS 103 900 v2.2.1, Annex B */ testcase TC_CAM_MSD_FMT_BV_01() runs on ItsCam system ItsCamSystem { @@ -81,8 +81,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/FMT/BV-02 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-02 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.2 */ testcase TC_CAM_MSD_FMT_BV_02() runs on ItsCam system ItsCamSystem { @@ -122,8 +122,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/FMT/BV-03 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-03 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.2 and Annex F */ testcase TC_CAM_MSD_FMT_BV_03() runs on ItsCam system ItsCamSystem { @@ -156,8 +156,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/FMT/BV-04 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-04 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 */ testcase TC_CAM_MSD_FMT_BV_04() runs on ItsCam system ItsCamSystem { @@ -198,8 +198,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/FMT/BV-05 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-05 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 */ testcase TC_CAM_MSD_FMT_BV_05() runs on ItsCam system ItsCamSystem { @@ -242,8 +242,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_01() runs on ItsCam system ItsCamSystem { @@ -281,8 +281,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-02 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-02 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_02() runs on ItsCam system ItsCamSystem { @@ -320,8 +320,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-03 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-03 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_03() runs on ItsCam system ItsCamSystem { @@ -359,8 +359,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-04 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-04 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_04() runs on ItsCam system ItsCamSystem { @@ -398,8 +398,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-05 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-05 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_05() runs on ItsCam system ItsCamSystem { @@ -437,8 +437,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-06 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-06 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_06() runs on ItsCam system ItsCamSystem { @@ -476,8 +476,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-07 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-07 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_07() runs on ItsCam system ItsCamSystem { @@ -515,8 +515,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-08 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-08 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_08() runs on ItsCam system ItsCamSystem { @@ -554,8 +554,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-09 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-09 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_09() runs on ItsCam system ItsCamSystem { @@ -593,8 +593,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-10 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-10 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_10() runs on ItsCam system ItsCamSystem { @@ -632,8 +632,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-11 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-11 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_11() runs on ItsCam system ItsCamSystem { @@ -671,8 +671,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-12 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-12 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_12() runs on ItsCam system ItsCamSystem { @@ -710,8 +710,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-13 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-13 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_13() runs on ItsCam system ItsCamSystem { @@ -749,8 +749,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-14 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-14 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_14() runs on ItsCam system ItsCamSystem { @@ -788,8 +788,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-15 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-15 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_15() runs on ItsCam system ItsCamSystem { @@ -827,8 +827,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-16 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-16 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_16() runs on ItsCam system ItsCamSystem { @@ -866,8 +866,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-17 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-17 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_17() runs on ItsCam system ItsCamSystem { @@ -905,8 +905,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-18 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-18 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_18() runs on ItsCam system ItsCamSystem { @@ -944,8 +944,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-19 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-19 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_19() runs on ItsCam system ItsCamSystem { @@ -983,8 +983,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-20 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-20 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_20() runs on ItsCam system ItsCamSystem { @@ -1022,8 +1022,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-21 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-21 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_21() runs on ItsCam system ItsCamSystem { @@ -1061,8 +1061,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-22 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-22 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_22() runs on ItsCam system ItsCamSystem { @@ -1100,8 +1100,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-23 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-23 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_23() runs on ItsCam system ItsCamSystem { @@ -1139,8 +1139,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-24 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-24 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_24() runs on ItsCam system ItsCamSystem { @@ -1178,8 +1178,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-25 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-25 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_25() runs on ItsCam system ItsCamSystem { @@ -1217,8 +1217,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-26 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-26 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_26() runs on ItsCam system ItsCamSystem { @@ -1256,8 +1256,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-27 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-27 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_27() runs on ItsCam system ItsCamSystem { @@ -1295,8 +1295,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-28 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-28 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_28() runs on ItsCam system ItsCamSystem { @@ -1334,8 +1334,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-29 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-29 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_29() runs on ItsCam system ItsCamSystem { @@ -1373,8 +1373,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-30 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-30 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_30() runs on ItsCam system ItsCamSystem { @@ -1412,8 +1412,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-31 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-31 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_31() runs on ItsCam system ItsCamSystem { @@ -1450,8 +1450,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-32 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-32 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_32() runs on ItsCam system ItsCamSystem { @@ -1488,8 +1488,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-33 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-33 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_33() runs on ItsCam system ItsCamSystem { @@ -1526,8 +1526,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-34 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-34 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_34() runs on ItsCam system ItsCamSystem { @@ -1564,8 +1564,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-01-35 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-35 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 */ testcase TC_CAM_MSD_INA_BV_01_35() runs on ItsCam system ItsCamSystem { @@ -1600,8 +1600,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-02 - * @reference ETSI EN 302 637-2 v1.4.1, Annex B.11 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-02 + * @reference ETSI TS 103 900 v2.2.1, Annex B.11 */ testcase TC_CAM_MSD_INA_BV_02() runs on ItsCam system ItsCamSystem { @@ -1634,8 +1634,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-03 - * @reference ETSI EN 302 637-2 v1.4.1, Annex B.12 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-03 + * @reference ETSI TS 103 900 v2.2.1, Annex B.12 */ testcase TC_CAM_MSD_INA_BV_03() runs on ItsCam system ItsCamSystem { @@ -1668,8 +1668,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-04 - * @reference ETSI EN 302 637-2 v1.4.1, Annex B.13 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-04 + * @reference ETSI TS 103 900 v2.2.1, Annex B.13 */ testcase TC_CAM_MSD_INA_BV_04() runs on ItsCam system ItsCamSystem { @@ -1702,8 +1702,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-05 - * @reference ETSI EN 302 637-2 v1.4.1, Annex B.14 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-05 + * @reference ETSI TS 103 900 v2.2.1, Annex B.14 */ testcase TC_CAM_MSD_INA_BV_05() runs on ItsCam system ItsCamSystem { @@ -1736,8 +1736,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-06 - * @reference ETSI EN 302 637-2 v1.4.1, Annex B.15 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-06 + * @reference ETSI TS 103 900 v2.2.1, Annex B.15 */ testcase TC_CAM_MSD_INA_BV_06() runs on ItsCam system ItsCamSystem { @@ -1770,8 +1770,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-07 - * @reference ETSI EN 302 637-2 v1.4.1, Annex B.16 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-07 + * @reference ETSI TS 103 900 v2.2.1, Annex B.16 */ testcase TC_CAM_MSD_INA_BV_07() runs on ItsCam system ItsCamSystem { @@ -1804,8 +1804,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/INA/BV-08 - * @reference ETSI EN 302 637-2 v1.4.1, Annex B.17 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-08 + * @reference ETSI TS 103 900 v2.2.1, Annex B.17 */ testcase TC_CAM_MSD_INA_BV_08() runs on ItsCam system ItsCamSystem { @@ -1837,8 +1837,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/GFQ/TI-01 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-01 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 */ testcase TC_CAM_MSD_GFQ_TI_01() runs on ItsCam system ItsCamSystem { @@ -1866,8 +1866,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/GFQ/TI-02 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-02 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 */ testcase TC_CAM_MSD_GFQ_TI_02() runs on ItsCam system ItsCamSystem { @@ -1898,8 +1898,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/GFQ/TI-03 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-03 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 */ testcase TC_CAM_MSD_GFQ_TI_03() runs on ItsCam system ItsCamSystem { @@ -1938,8 +1938,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/GFQ/BV-04 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/BV-04 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 */ testcase TC_CAM_MSD_GFQ_BV_04() runs on ItsCam system ItsCamSystem { @@ -1976,8 +1976,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/GFQ/BV-05 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/BV-05 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 */ testcase TC_CAM_MSD_GFQ_BV_05() runs on ItsCam system ItsCamSystem { @@ -2016,8 +2016,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/GFQ/BV-06 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/BV-06 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 */ testcase TC_CAM_MSD_GFQ_BV_06() runs on ItsCam system ItsCamSystem { @@ -2048,8 +2048,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/GFQ/TI-07 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.3 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-07 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 */ testcase TC_CAM_MSD_GFQ_TI_07() runs on ItsCam system ItsCamSystem { @@ -2077,8 +2077,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/GFQ/TI-08 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.1.4 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-08 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.4 */ testcase TC_CAM_MSD_GFQ_TI_08() runs on ItsCam system ItsCamSystem { @@ -2110,8 +2110,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/PAR/BV-01 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.3.4.1 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/PAR/BV-01 + * @reference ETSI TS 103 900 v2.2.1, clause 5.3.4.1 */ testcase TC_CAM_MSD_PAR_BV_01() runs on ItsCam system ItsCamSystem { @@ -2139,8 +2139,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/PAR/BV-02 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.3.4.1 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/PAR/BV-02 + * @reference ETSI TS 103 900 v2.2.1, clause 5.3.4.1 */ testcase TC_CAM_MSD_PAR_BV_02() runs on ItsCam system ItsCamSystem { @@ -2171,8 +2171,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/PAR/BV-03 - * @reference ETSI EN 302 637-2 v1.4.1, clause 5.3.4.1 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/PAR/BV-03 + * @reference ETSI TS 103 900 v2.2.1, clause 5.3.4.1 */ testcase TC_CAM_MSD_PAR_BV_03() runs on ItsCam system ItsCamSystem { @@ -2208,8 +2208,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/SSP/BO-01 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-01 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 */ testcase TC_CAM_MSD_SSP_BO_01() runs on ItsCam system ItsCamSystem { @@ -2242,8 +2242,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/SSP/BO-02 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-02 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 */ testcase TC_CAM_MSD_SSP_BO_02() runs on ItsCam system ItsCamSystem { @@ -2276,8 +2276,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSD/SSP/BO-03 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-03 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 */ testcase TC_CAM_MSD_SSP_BO_03() runs on ItsCam system ItsCamSystem { @@ -2312,8 +2312,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSP/BV-01 - * @reference ETSI EN 302 637-2 v1.4.1, clause 4.2.2 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/BV-01 + * @reference ETSI TS 103 900 v2.2.1, clause 4.2.2 */ testcase TC_CAM_MSP_BV_01() runs on ItsCam system ItsCamSystem { @@ -2348,8 +2348,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSP/SSP/BV-01-01 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/SSP/BV-01-01 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 */ testcase TC_CAM_MSP_SSP_BV_01() runs on ItsCam system ItsCamSystem { @@ -2383,8 +2383,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSP/SSP/BV-01-02 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/SSP/BV-01-02 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 */ testcase TC_CAM_MSP_SSP_BV_02() runs on ItsCam system ItsCamSystem { @@ -2418,8 +2418,8 @@ module ItsCam_TestCases { * } * * - * @see ETSI TS 102 868-2 v1.5.1 TP/CAM/MSP/SSP/BV-01-03 - * @reference ETSI EN 302 637-2 v1.4.1, clause 6.2.2.1 + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/SSP/BV-01-03 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 */ testcase TC_CAM_MSP_SSP_BV_03() runs on ItsCam system ItsCamSystem { -- GitLab From 9fc200bf38ca86a0c9f281411f905d44771ae3a9 Mon Sep 17 00:00:00 2001 From: garciay Date: Fri, 15 Nov 2024 16:17:42 +0100 Subject: [PATCH 22/28] Report issues from devel2 to TTF_T036 --- lib/LibItsCam_EncdecDeclarations.ttcn | 3 +++ lib/LibItsCam_Templates.ttcn | 11 +++++++-- lib/LibItsCam_TypesAndValues.ttcn | 32 +++++++++++++++--------- lib_system/LibItsCam_Functions.ttcn | 35 +++++++++++++++++++++++++++ lib_system/LibItsCam_TestSystem.ttcn | 2 +- 5 files changed, 69 insertions(+), 14 deletions(-) diff --git a/lib/LibItsCam_EncdecDeclarations.ttcn b/lib/LibItsCam_EncdecDeclarations.ttcn index 2087458..97e41b2 100644 --- a/lib/LibItsCam_EncdecDeclarations.ttcn +++ b/lib/LibItsCam_EncdecDeclarations.ttcn @@ -27,6 +27,9 @@ module LibItsCam_EncdecDeclarations { external function fx_enc_UtCamChangePosition (UtCamChangePosition p) return bitstring with {extension "prototype(convert) encode(UpperTester)"} + external function fx_enc_UtCamChangePseudonym (UtCamChangePseudonym p) return bitstring + with {extension "prototype(convert) encode(UpperTester)"} + external function fx_enc_UtCamTrigger (UtCamTrigger p) return bitstring with {extension "prototype(convert) encode(UpperTester)"} diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index e0252e2..e9f2fd7 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -141,6 +141,13 @@ module LibItsCam_Templates { changeSpeed := p_changeSpeed } + /** + * @desc Request for changing pseudonym with the specified certificate. + */ + template (value) UtCamChangePseudonym m_utCamChangePseudonym(in Oct8 p_hashedId8) := { + hashedId8 := p_hashedId8 + } + /** * @desc Set the acceleration control status * @param p_status The status to set @@ -197,9 +204,9 @@ module LibItsCam_Templates { setDangerousGoods := p_dangerousGoods } - }// End of group utPrimitives + } // end utPrimitives - } // End of group Primitives + } // end group Primitives group positionTemplates { diff --git a/lib/LibItsCam_TypesAndValues.ttcn b/lib/LibItsCam_TypesAndValues.ttcn index 369a096..e703671 100644 --- a/lib/LibItsCam_TypesAndValues.ttcn +++ b/lib/LibItsCam_TypesAndValues.ttcn @@ -81,25 +81,35 @@ module LibItsCam_TypesAndValues { */ type union UtCamResults { boolean utCamInitializeResult, - boolean utCamTriggerResult, - boolean utCamChangePositionResult, - boolean utActivatePositionTimeResult, - boolean utDeactivatePositionTimeResult - } with { + boolean utCamTriggerResult, + boolean utCamChangePositionResult, + boolean utCamChangePseudonymResult, + boolean utActivatePositionTimeResult, + boolean utDeactivatePositionTimeResult + } with { variant "" - } // End of type UtCamResults + } // End of type UtCamResults - /** - * @desc Upper Tester message to change the position of IUT. Values a relatives - */ + /** + * @desc Upper Tester message to change the position of IUT. Values a relatives + */ type record UtCamChangePosition { Int32 latitude, Int32 longitude, Int32 elevation - } with { + } with { variant "FIELDORDER(msb)" - } + } + /** + * @desc Send template for Upper Tester event changePseudonym + */ + type record UtCamChangePseudonym { + Oct8 hashedId8 + } with { + variant "FIELDORDER(msb)" + } + /** * @desc * @member changeCurvature Changes the curvature. diff --git a/lib_system/LibItsCam_Functions.ttcn b/lib_system/LibItsCam_Functions.ttcn index cb92fe0..f55a4d2 100644 --- a/lib_system/LibItsCam_Functions.ttcn +++ b/lib_system/LibItsCam_Functions.ttcn @@ -122,6 +122,41 @@ module LibItsCam_Functions { } + /** + * @desc Requests to change the IUT with a new pseudonym + * @param p_change The change to trigger. + */ + function f_utCamChangePseudonym ( template (value) UtCamChangePseudonym p_change ) runs on ItsCam { + + //deactivate gnPort default alts + vc_camDefaultActive := false; + + utPort.send(p_change); + tc_wait.start; + alt { + [] utPort.receive(UtCamResults: { utCamChangePseudonymResult := true}) { + tc_wait.stop; + log("*** " & testcasename() & ": INFO: IUT pseudonym changed ***"); + } + [] utPort.receive(UtCamResults: { utCamChangePseudonymResult := false}) { + tc_wait.stop; + log("*** " & testcasename() & ": INFO: IUT pseudonym unchanged ***"); + f_selfOrClientSyncAndVerdict("error", e_error); + } + [] a_utDefault() { + //empty on purpose + } + [] tc_wait.timeout { + log("*** " & testcasename() & ": INFO: Could not receive expected UT message from IUT in time ***"); + f_selfOrClientSyncAndVerdict("error", e_timeout); + } + } + + //activate camPort default alts + vc_camDefaultActive := true; + + } + } // End of group utFunctions group adapterControl { diff --git a/lib_system/LibItsCam_TestSystem.ttcn b/lib_system/LibItsCam_TestSystem.ttcn index de0296b..e9ee29d 100644 --- a/lib_system/LibItsCam_TestSystem.ttcn +++ b/lib_system/LibItsCam_TestSystem.ttcn @@ -42,7 +42,7 @@ module LibItsCam_TestSystem language "TTCN-3:2010 Real Time and Performance Test */ type port UpperTesterPort message { out - UtCamInitialize, UtCamTrigger, UtCamChangePosition, UtActivatePositionTime, UtDeactivatePositionTime; + UtCamInitialize, UtCamTrigger, UtCamChangePosition, UtCamChangePseudonym, UtActivatePositionTime, UtDeactivatePositionTime; in UtCamResults, UtCamEventInd; } // end UpperTesterPort -- GitLab From 2e6d1a86b54ec3eb11fc5b7f6e70f80b06834a50 Mon Sep 17 00:00:00 2001 From: garciay Date: Tue, 26 Nov 2024 10:04:01 +0100 Subject: [PATCH 23/28] Update AtsCAM with CAMv2; Add missing certificate profiles; Uodate v2 certificate profiles for CAM --- ItsCam_TestCases.ttcn | 5278 ++++++++++++++++------------- ItsCam_TestControl.ttcn | 25 + ItsCam_TpFunctions.ttcn | 689 +++- lib/LibItsCam_Pics.ttcn | 42 +- lib/LibItsCam_Templates.ttcn | 74 +- lib/LibItsCam_TypesAndValues.ttcn | 14 + 6 files changed, 3495 insertions(+), 2627 deletions(-) diff --git a/ItsCam_TestCases.ttcn b/ItsCam_TestCases.ttcn index 7b538c6..6772116 100644 --- a/ItsCam_TestCases.ttcn +++ b/ItsCam_TestCases.ttcn @@ -1,2434 +1,2844 @@ -/** - * @author ETSI / STF405 / STF449 / STF484 / STF517 / TTF T036 - * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsCAM/ItsCam_TestCases.ttcn $ - * $Id: ItsCam_TestCases.ttcn 2655 2017-01-26 10:46:08Z filatov $ - * @desc Testcases for CA Protocol - * @reference ETSI TS 103 900 v2.2.1 - * @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 ItsCam_TestCases { - - // LibItsCam - import from LibItsCam_TestSystem all; - - // Ats Its - import from ItsCam_TpFunctions all; - - // 5.2.1 - group camMessageDissemination { - - group camMessageFormat { - - /** - * @desc Check that protocolVersion is set to 2 and messageID is - * set to 2. - *
-             * Pics Selection: PICS_CAM_GENERATION
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated 
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing ITS PDU header
-             *                     containing protocolVersion
-             *                         indicating value 2
-             *                     and containing messageID
-             *                         indicating value 2
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-01 - * @reference ETSI TS 103 900 v2.2.1, Annex B - */ - testcase TC_CAM_MSD_FMT_BV_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_FMT_BV_01(); - - } // end TC_CAM_MSD_FMT_BV_01 - - /** - * @desc Check that LF container is included in 1st CAM since CA - * basic service activation. - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         and the IUT has not sent any CAM yet
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated 
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing cam
-             *                     containing camParameters
-             *                         containing lowFrequencyContainer
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-02 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.2 - */ - testcase TC_CAM_MSD_FMT_BV_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_FMT_BV_02(); - - } // end TC_CAM_MSD_FMT_BV_02 - - /** - * @desc Check that LF container is included if time elapsed since - * the generation of the last CAM with the low frequency - * container generation is equal or larger than 500 ms. - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         and the IUT has sent a CAM
-             *             containing cam
-             *                 containing camParameters
-             *                     containing lowFrequencyContainer at time TIME_1
-             *         and the IUT has not sent CAM
-             *             containing cam
-             *                 containing camParameters
-             *                     containing lowFrequencyContainer after TIME_1
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated at time TIME_2 >= (TIME_1 + 500ms)
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing cam
-             *                     containing camParameters
-             *                         containing lowFrequencyContainer
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-03 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.2 and Annex F - */ - testcase TC_CAM_MSD_FMT_BV_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_FMT_BV_03(); - - } // end TC_CAM_MSD_FMT_BV_03 - - /** - * @desc Check that specialVehicle container is included in 1st CAM - * since CA basic service activation. - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND (PICS_PUBLICTRANS OR PICS_SPECIALTRANS OR PICS_DANGEROUSGOODS OR PICS_ROADWORKS OR PICS_RESCUE OR PICS_EMERGENCY OR PICS_SAFETYCAR)
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         and the IUT is configured to advertise itself as a special vehicle
-             *         and the IUT has not sent any CAM yet
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing cam
-             *                     containing camParameters
-             *                         containing specialVehicleContainer
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-04 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 - */ - testcase TC_CAM_MSD_FMT_BV_04() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_FMT_BV_04(); - - } // end TC_CAM_MSD_FMT_BV_04 - - /** - * @desc Check that specialVehicle container is included if time - * elapsed since the generation of the last CAM with the - * special vehicle container generation is equal or larger - * than 500 ms. - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND (PICS_PUBLICTRANS OR PICS_SPECIALTRANS OR PICS_DANGEROUSGOODS OR PICS_ROADWORKS OR PICS_RESCUE OR PICS_EMERGENCY OR PICS_SAFETYCAR)
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         and the IUT has sent a CAM
-             *             containing cam
-             *                 containing camParameters
-             *                     containing specialVehicleContainer at time TIME_1
-             *         and the IUT has not sent CAM
-             *             containing cam
-             *                 containing camParameters
-             *                     containing specialVehicleContainer after TIME_1
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated at time TIME_2 >= (TIME_1 + 500ms)
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing cam
-             *                     containing camParameters
-             *                         containing specialVehicleContainer
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-05 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 - */ - testcase TC_CAM_MSD_FMT_BV_05() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_FMT_BV_05(); - - } // end TC_CAM_MSD_FMT_BV_05 - - } // end group camMessageFormat - - group camInformationAdaptation { - - group camInVehicleData { - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO:  Curvature value
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .curvature
-                 *     VALUE: measured value
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_01(); - - } // end TC_CAM_MSD_INA_BV_01_01 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO:  Brake pedal being activated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .brakePedalActive
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-02 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_02(); - - } // end TC_CAM_MSD_INA_BV_01_02 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO:  Brake pedal being deactivated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .brakePedalActive
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-03 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_03(); - - } // end TC_CAM_MSD_INA_BV_01_03 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Gas pedal being activated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .gasPedalActive
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-04 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_04() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_04(); - - } // end TC_CAM_MSD_INA_BV_01_04 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Gas pedal being deactivated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .gasPedalActive
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-05 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_05() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_05(); - - } // end TC_CAM_MSD_INA_BV_01_05 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Emergency brake being activated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .emergencyBrakeActive
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-06 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_06() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_06(); - - } // end TC_CAM_MSD_INA_BV_01_06 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Emergency brake being deactivated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .emergencyBrakeActive
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-07 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_07() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_07(); - - } // end TC_CAM_MSD_INA_BV_01_07 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Collision warning being activated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .collisionWarningActive
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-08 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_08() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_08(); - - } // end TC_CAM_MSD_INA_BV_01_08 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Collision warning being deactivated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .collisionWarningActive
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-09 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_09() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_09(); - - } // end TC_CAM_MSD_INA_BV_01_09 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: ACC being activated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .accActive
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-10 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_10() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_10(); - - } // end TC_CAM_MSD_INA_BV_01_10 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: ACC being deactivated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .accActive
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-11 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_11() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_11(); - - } // end TC_CAM_MSD_INA_BV_01_11 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Cruise control being activated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .cruiseControl
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-12 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_12() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_12(); - - } // end TC_CAM_MSD_INA_BV_01_12 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Cruise control being deactivated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .cruiseControl
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-13 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_13() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_13(); - - } // end TC_CAM_MSD_INA_BV_01_13 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Speed limiter being activated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .speedLimiterActive
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-14 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_14() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_14(); - - } // end TC_CAM_MSD_INA_BV_01_14 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Speed limiter control being deactivated
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .accelerationControl
-                 *                .speedLimiterActive
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-15 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_15() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_15(); - - } // end TC_CAM_MSD_INA_BV_01_15 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Low beam headlights being activated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .lowBeamHeadlightsOn
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-16 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_16() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_16(); - - } // end TC_CAM_MSD_INA_BV_01_16 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Low beam headlights being deactivated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .lowBeamHeadlightsOn
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-17 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_17() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_17(); - - } // end TC_CAM_MSD_INA_BV_01_17 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: High beam headlights being activated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .highBeamHeadlightsOn
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-18 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_18() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_18(); - - } // end TC_CAM_MSD_INA_BV_01_18 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: High beam headlights being deactivated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .highBeamHeadlightsOn
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-19 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_19() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_19(); - - } // end TC_CAM_MSD_INA_BV_01_19 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Left turn signal being activated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .leftTurnSignalOn
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-20 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_20() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_20(); - - } // end TC_CAM_MSD_INA_BV_01_20 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Left turn signal being deactivated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .leftTurnSignalOn
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-21 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_21() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_21(); - - } // end TC_CAM_MSD_INA_BV_01_21 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Right turn signal being activated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .rightTurnSignalOn
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-22 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_22() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_22(); - - } // end TC_CAM_MSD_INA_BV_01_22 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Right turn signal being deactivated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .rightTurnSignalOn
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-23 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_23() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_23(); - - } // end TC_CAM_MSD_INA_BV_01_23 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Daytime running lights being activated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .daytimeRunningLightsOn
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-24 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_24() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_24(); - - } // end TC_CAM_MSD_INA_BV_01_24 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Daytime running lights being deactivated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .daytimeRunningLightsOn
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-25 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_25() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_25(); - - } // end TC_CAM_MSD_INA_BV_01_25 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Reverse light being activated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .reverseLightOn
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-26 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_26() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_26(); - - } // end TC_CAM_MSD_INA_BV_01_26 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Reverse light being deactivated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .reverseLightOn
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-27 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_27() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_27(); - - } // end TC_CAM_MSD_INA_BV_01_27 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Fog lights being activated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .fogLightOn
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-28 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_28() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_28(); - - } // end TC_CAM_MSD_INA_BV_01_28 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Fog lights being deactivated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .fogLightOn
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-29 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_29() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_29(); - - } // end TC_CAM_MSD_INA_BV_01_29 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Parking lights being activated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .parkingLightsOn
-                 *     VALUE: 1
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-30 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_30() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_30(); - - } // end TC_CAM_MSD_INA_BV_01_30 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Parking lights being deactivated
-                 *     FIELD: lowFrequencyContainer
-                 *                .basicVehicleContainerLowFrequency
-                 *                .exteriorLights
-                 *                .parkingLightsOn
-                 *     VALUE: 0
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-31 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_31() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_31(); - - } // end TC_CAM_MSD_INA_BV_01_31 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Heading value
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .heading
-                 *     VALUE: measured value
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-32 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_32() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_32(); - - } // end TC_CAM_MSD_INA_BV_01_32 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Speed value
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .speed
-                 *     VALUE: measured value
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-33 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_33() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_33(); - - } // end TC_CAM_MSD_INA_BV_01_33 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Drive direction value
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .driveDirection
-                 *     VALUE: measured value
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-34 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_34() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_34(); - - } // end TC_CAM_MSD_INA_BV_01_34 - - /** - * @desc Check that latest value of in-vehicle data is included - * in CAM. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state
-                 *     }
-                 *     INFO: Yaw rate value
-                 *     FIELD: highFrequencyContainer
-                 *                .basicVehicleContainerHighFrequency
-                 *                .yawRate
-                 *     VALUE: measured value
-                 * 
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             the IUT is alerted about INFO
-                 *         }
-                 *         then {
-                 *             the IUT sends a valid CAM
-                 *                 containing cam
-                 *                     containing camParameters
-                 *                         containing FIELD set to VALUE
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-35 - * @reference ETSI TS 103 900 v2.2.1, clause 5.2 - */ - testcase TC_CAM_MSD_INA_BV_01_35() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_01_35(); - - } // end TC_CAM_MSD_INA_BV_01_35 - - } // end group camInVehicleData - - /** - * @desc Check that publicTransportContainer is included if - * vehicleRole is set to publicTransport(1). - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_PUBLICTRANS
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT’s vehicle role being set to publicTransport(1)
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing cam
-             *                     containing camParameters
-             *                         containing specialVehicleContainer
-             *                             containing publicTransportContainer
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-02 - * @reference ETSI TS 103 900 v2.2.1, Annex B.11 - */ - testcase TC_CAM_MSD_INA_BV_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_02(); - - } // end TC_CAM_MSD_INA_BV_02 - - /** - * @desc Check that specialTransportContainer is included if - * vehicleRole is set to specialTransport(2). - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_SPECIALTRANS
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT’s vehicle role being set to specialTransport(2)
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing cam
-             *                     containing camParameters
-             *                         containing specialVehicleContainer
-             *                             containing specialTransportContainer
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-03 - * @reference ETSI TS 103 900 v2.2.1, Annex B.12 - */ - testcase TC_CAM_MSD_INA_BV_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_03(); - - } // end TC_CAM_MSD_INA_BV_03 - - /** - * @desc Check that dangerousGoodsContainer is included if - * vehicleRole is set to dangerousGoods(3). - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_DANGEROUSGOODS
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT’s vehicle role being set to dangerousGoods(3)
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing cam
-             *                     containing camParameters
-             *                         containing specialVehicleContainer
-             *                             containing dangerousGoodsContainer
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-04 - * @reference ETSI TS 103 900 v2.2.1, Annex B.13 - */ - testcase TC_CAM_MSD_INA_BV_04() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_04(); - - } // end TC_CAM_MSD_INA_BV_04 - - /** - * @desc Check that roadWorksContainerBasic is included if - * vehicleRole is set to roadWork(4). - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_ROADWORKS
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT’s vehicle role being set to roadWork(4)
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing cam
-             *                     containing camParameters
-             *                         containing specialVehicleContainer
-             *                             containing roadWorksContainerBasic
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-05 - * @reference ETSI TS 103 900 v2.2.1, Annex B.14 - */ - testcase TC_CAM_MSD_INA_BV_05() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_05(); - - } // end TC_CAM_MSD_INA_BV_05 - - /** - * @desc Check that rescueContainer is included if vehicleRole is - * set to rescue(5). - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_RESCUE
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT’s vehicle role being set to rescue(5)
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing cam
-             *                     containing camParameters
-             *                         containing specialVehicleContainer
-             *                             containing rescueContainer
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-06 - * @reference ETSI TS 103 900 v2.2.1, Annex B.15 - */ - testcase TC_CAM_MSD_INA_BV_06() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_06(); - - } // end TC_CAM_MSD_INA_BV_06 - - /** - * @desc Check that emergencyContainer is included if vehicleRole - * is set to emergency(6). - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_EMERGENCY
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT’s vehicle role being set to emergency(6)
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing cam
-             *                     containing camParameters
-             *                         containing specialVehicleContainer
-             *                             containing emergencyContainer
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-07 - * @reference ETSI TS 103 900 v2.2.1, Annex B.16 - */ - testcase TC_CAM_MSD_INA_BV_07() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_07(); - - } // end TC_CAM_MSD_INA_BV_07 - - /** - * @desc Check that safetyCarContainer is included if vehicleRole - * is set to safetyCar(7). - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_SAFETY_CAR
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT’s vehicle role being set to safetyCar(7)
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             a CAM is generated
-             *         }
-             *         then {
-             *             the IUT sends a valid CAM
-             *                 containing cam
-             *                     containing camParameters
-             *                         containing specialVehicleContainer
-             *                             containing safetyCarContainer
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-08 - * @reference ETSI TS 103 900 v2.2.1, Annex B.17 - */ - testcase TC_CAM_MSD_INA_BV_08() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_INA_BV_08(); - - } // end TC_CAM_MSD_INA_BV_08 - - } // end group camInformationAdaptation - - group camGenerationFrequency { - - /** - * @desc Check that CAMs are not generated more frequently than - * T_GenCamMin. - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state"
-                 *     }
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             IUT sends a CAM
-                 *         }
-                 *         then {
-                 *             the IUT does not send any CAM before expiry of T_GenCamMin
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-01 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_TI_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_TI_01(); - - } // end TC_CAM_MSD_GFQ_TI_01 - - /** - * @desc Check that CAMs are not generated less frequently than - * T_GenCamMax. - *
-                 * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
-                 * Initial conditions: 
-                 *     with {
-                 *         the IUT being in the "initial state"
-                 *     }
-                 * Expected behaviour:
-                 *     ensure that {
-                 *         when {
-                 *             IUT sends a CAM
-                 *         }
-                 *         then {
-                 *             the IUT sends another CAM before expiry of T_GenCamMax
-                 *         }
-                 *     }
-                 * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-02 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_TI_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_TI_02(); - - } // end TC_CAM_MSD_GFQ_TI_02 - - /** - * @desc Check that TGenCam is set to T_GenCamMax after generating - * N_GenCam due to condition 2. - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT having sent a CAM at time TIME_1
-             *         the IUT having sent an anticipated CAM due to condition 2 at time (TIME_1 + INTERVAL_1)
-             *         the IUT having sent (N_GenCam - 1) subsequent CAMs every INTERVAL_1
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             the IUT sends CAM
-             *         }
-             *         then {
-             *             the IUT sends another CAM after expiry of T_GenCamMax
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-03 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_TI_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_TI_03(); - - } // end TC_CAM_MSD_GFQ_TI_03 - - /** - * @desc Check that CAM is generated immediately when the time - * elapsed since the last CAM generation is equal or larger - * than T_GenCam_Dcc and the absolute difference between - * current direction of the originating ITS-S (towards North) - * and direction included in previous CAM exceeds 4°. - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT having sent a CAM at time TIME_1
-             *             containing cam
-             *                 containing camParameters
-             *                     containing highFrequencyContainer
-             *                         containing basicVehicleContainerHighFrequency
-             *                             containing heading set to HEADING_1
-             *         the IUT not having sent any CAM since T_GenCam_Dcc
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             T_GenCam_Dcc expires
-             *             and the IUT is alerted that abs(CurrentHeading – HEADING_1) > 4°
-             *         }
-             *         then {
-             *             the IUT sends a CAM immediately
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/BV-04 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_BV_04() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_BV_04(); - - } // end TC_CAM_MSD_GFQ_BV_04 - - /** - * @desc Check that CAM is generated immediately when the time - * elapsed since the last CAM generation is equal or larger - * than T_GenCam_Dcc and the current position and position - * included in previous CAM exceeds 4 m. - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT having sent a CAM at time TIME_1
-             *             containing cam
-             *                 containing camParameters
-             *                     containing basicContainer 
-             *                         containing referencePosition set to POSITION_1
-             *         the IUT not having sent any CAM since T_GenCam_Dcc
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             T_GenCam_Dcc expires
-             *             and the IUT is alerted that distance(CurrentPosition – POSITION_1) > 4 m
-             *         }
-             *         then {
-             *             the IUT sends a CAM immediately
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/BV-05 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_BV_05() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_BV_05(); - - } // end TC_CAM_MSD_GFQ_BV_05 - - /** - * @desc Check that CAM is generated immediately when the time - * elapsed since the last CAM generation is equal or larger - * than T_GenCam_Dcc and the absolute difference between - * current speed and speed included in previous CAM - * exceeds 0,5 m/s. - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT having sent a CAM at time TIME_1
-             *             containing cam
-             *                 containing camParameters
-             *                     containing highFrequencyContainer
-             *                         containing basicVehicleContainerHighFrequency
-             *                             containing speed set to SPEED_1
-             *         the IUT not having sent any CAM since T_GenCam_Dcc
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *            T_GenCam_Dcc expires
-             *            and the IUT is alerted that abs(CurrentSpeed – SPEED_1) > 0,5 m/s
-             *         }
-             *         then {
-             *             the IUT sends a CAM immediately
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/BV-06 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_BV_06() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_BV_06(); - - } // end TC_CAM_MSD_GFQ_BV_06 - - /** - * @desc Check that CAM is generated immediately when the time - * elapsed since the last CAM generation is equal or larger - * than T_GenCam and equal or larger than T_GenCam_Dcc. - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *         the IUT having sent a CAM
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             T_GenCam expires
-             *             and T_GenCam_Dcc expires
-             *         }
-             *         then {
-             *             the IUT sends another CAM
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-07 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 - */ - testcase TC_CAM_MSD_GFQ_TI_07() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_TI_07(); - - } // end TC_CAM_MSD_GFQ_TI_07 - - /** - * @desc Check that maximum CAM generation frequency for RSU ITS-S is 1Hz - * - *
-             * Pics Selection: PICS_CAM_GENERATION AND PICS_RSU
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *         when {
-             *             IUT sends a CAM
-             *         }
-             *         then {
-             *             the IUT does not send another CAM afterbefore 1s
-             *         }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-08 - * @reference ETSI TS 103 900 v2.2.1, clause 6.1.4 - */ - testcase TC_CAM_MSD_GFQ_TI_08() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_GFQ_TI_08(); - - } // end TC_CAM_MSD_GFQ_TI_08 - - } // end group camGenerationFrequency - - group camLowerLayerParameters { - - /** - * @desc Check that CAM is encapsulated in BTP type B packet - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *     }
-             * Expected behaviour:
-             *  ensure that {
-             *      when {
-             *          a CAM is generated
-             *      }
-             *      then {
-             *          the IUT sends a CAM
-             *              encapsulated in a BTP-B packet
-             *      }
-             *  } 
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/PAR/BV-01 - * @reference ETSI TS 103 900 v2.2.1, clause 5.3.4.1 - */ - testcase TC_CAM_MSD_PAR_BV_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_PAR_BV_01(); - - } // end TC_CAM_MSD_PAR_BV_01 - - /** - * @desc Check that CAM is encapsulated in SHB packet - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *     }
-             * Expected behaviour:
-             *  ensure that {
-             *      when {
-             *          a CAM is generated
-             *      }
-             *      then {
-             *          the IUT sends a CAM
-             *              encapsulated in a SHB packet
-             *      }
-             *  } 
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/PAR/BV-02 - * @reference ETSI TS 103 900 v2.2.1, clause 5.3.4.1 - */ - testcase TC_CAM_MSD_PAR_BV_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_PAR_BV_02(); - - } // end TC_CAM_MSD_PAR_BV_02 - - /** - * @desc Check that CAM is encapsulated in GN packet with lifetime lower than 1s - *
-             * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *     }
-             * Expected behaviour:
-             *  ensure that {
-             *      when {
-             *          a CAM is generated
-             *      }
-             *      then {
-             *          the IUT sends a CAM
-             *              encapsulated in a GN packet
-             *                  containing Basic Header
-             *                      containing Lifetime field 
-             *                          indicating value lower than 1s
-             *      }
-             *  } 
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/PAR/BV-03 - * @reference ETSI TS 103 900 v2.2.1, clause 5.3.4.1 - */ - testcase TC_CAM_MSD_PAR_BV_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_PAR_BV_03(); - - } // end TC_CAM_MSD_PAR_BV_03 - - } // end group camLowerLayerParameters - - group camGenerationSSP { - - /** - * @desc Check that the IUT does not send a CAM - * when its content is not permitted by signing certificate - *
-             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
-             * Initial conditions: 
-             *        with {
-             *            the IUT being in the "initial state"
-             *          the IUT is authorized to sign CAMs with the certificate
-             *              containing CAM SSP
-             *                  indicating bit at position '1' set to 0
-             *      }
-             * Expected behaviour:
-             *  ensure that {
-             *      when {
-             *          the IUT generates a CAM
-             *              containing CenDsrcTollingZone
-             *      }
-             *      then {
-             *          the IUT does not send this CAM
-             *      }
-             *  } 
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-01 - * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 - */ - testcase TC_CAM_MSD_SSP_BO_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_SSP_BO_01(); - - } // end TC_CAM_MSD_SSP_BO_01 - - /** - * @desc Check that the IUT does not send a CAM - * when its content is not permitted by signing certificate - *
-             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
-             *                 AND PICS_SPECIALVEHICLECONTAINER AND PICS_PUBLICTRANS
-             * Initial conditions: 
-             *        with {
-             *            the IUT being in the "initial state"
-             *          the IUT is authorized to sign CAMs with the certificate
-             *              containing CAM SSP
-             *                  indicating bit at position '2' set to 0
-             *      }
-             * Expected behaviour:
-             *  ensure that {
-             *      when {
-             *          the IUT generates a CAM
-             *              containing publicTransportContainer
-             *      }
-             *      then {
-             *          the IUT does not send this CAM
-             *      }
-             *  } 
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-02 - * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 - */ - testcase TC_CAM_MSD_SSP_BO_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_SSP_BO_02(); - - } // end TC_CAM_MSD_SSP_BO_02 - - /** - * @desc Check that the IUT does not send a CAM - * when its content is not permitted by signing certificate - *
-             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
-             *                 AND PICS_SPECIALVEHICLECONTAINER AND PICS_SPECIALTRANS
-             * Initial conditions: 
-             *        with { 
-             *            the IUT being in the "initial state"
-             *          the IUT is authorized to sign CAMs with the certificate
-             *              containing CAM SSP
-             *                  indicating bit at position '3' set to 0
-             *      }
-             * Expected behaviour:
-             *  ensure that {
-             *      when {
-             *          the IUT generates a CAM
-             *              containing specialTransportContainer
-             *      }
-             *      then {
-             *          the IUT does not send this CAM
-             *      }
-             *  } 
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-03 - * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 - */ - testcase TC_CAM_MSD_SSP_BO_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSD_SSP_BO_03(); - - } // end TC_CAM_MSD_SSP_BO_03 - - } // end group camGenerationSSP - - } // end group camMessageDissemination - - group camMessageProcessing { - - /** - * @desc Check that content of received CAM is transmitted to - * applications and other facilities. - *
-         * Pics Selection: PICS_CAM_RECEPTION
-         * Initial conditions: 
-         *     with {
-         *         the IUT being in the "initial state"
-         *     }
-         * Expected behaviour:
-         *     ensure that {
-         *         when {
-         *             the IUT receives a valid CAM
-         *         }
-         *         then {
-         *             the IUT forwards the CAM content to upper layers
-         *             and the IUT forwards the CAM content to other facilities
-         *         }
-         *     }
-         * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/BV-01 - * @reference ETSI TS 103 900 v2.2.1, clause 4.2.2 - */ - testcase TC_CAM_MSP_BV_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSP_BV_01(); - - } // end TC_CAM_MSP_BV_01 - - group camProcessingSSP { - /** - * @desc Check that IUT discards CAM if SSP value of the signing certificate - * is not consistent with the provided containers. - *
-             * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED
-             * Initial conditions: 
-             *     with {
-             *         the IUT being in the "initial state"
-             *     }
-             * Expected behaviour:
-             *     ensure that {
-             *            when {
-             *                the IUT receives a secured CAM
-             *                    containing CenDsrcTollingZone/ProtectedCommunicationZonesRSU
-             *                    signed with certificate
-             *                        containing CAM SSP bit at position 0
-             *                            indicating 0
-             *            }
-             *            then {
-             *                the IUT discards the CAM
-             *                and the IUT does not forward the CAM content to upper layers
-             *                and the IUT does not forward the CAM content to other facilities
-             *            }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/SSP/BV-01-01 - * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 - */ - testcase TC_CAM_MSP_SSP_BV_01() runs on ItsCam system ItsCamSystem { - - f_CAM_MSP_SSP_BV_01(); - - } // end TC_CAM_MSP_BV_01 - - /** - * @desc Check that IUT discards CAM if SSP value of the signing certificate - * is not consistent with the provided containers. - *
-             * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED 
-             * Initial conditions: 
-             *         with {
-             *            the IUT being in the "initial state"
-             *        }
-             * Expected behaviour:
-             *        ensure that {
-             *            when {
-             *                the IUT receives a secured CAM
-             *                    containing publicTransportContainer
-             *                    and signed with certificate
-             *                        containing CAM SSP bit at position 1
-             *                            indicating 0
-             *            }
-             *            then {
-             *                the IUT discards the CAM
-             *                and the IUT does not forward the CAM content to upper layers
-             *                and the IUT does not forward the CAM content to other facilities
-             *            }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/SSP/BV-01-02 - * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 - */ - testcase TC_CAM_MSP_SSP_BV_02() runs on ItsCam system ItsCamSystem { - - f_CAM_MSP_SSP_BV_02(); - - } // end TC_CAM_MSP_BV_02 - - /** - * @desc Check that IUT discards CAM if SSP value of the signing certificate - * is not consistent with the provided containers. - *
-             * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED 
-             * Initial conditions: 
-             *         with {
-             *            the IUT being in the "initial state"
-             *        }
-             * Expected behaviour:
-             *        ensure that {
-             *            when {
-             *                the IUT receives a secured CAM
-             *                    containing specialTransportContainer
-             *                    and signed with certificate
-             *                        containing CAM SSP bit at position 2
-             *                            indicating 0
-             *            }
-             *            then {
-             *                the IUT discards the CAM
-             *                and the IUT does not forward the CAM content to upper layers
-             *                and the IUT does not forward the CAM content to other facilities
-             *            }
-             *     }
-             * 
- * - * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/SSP/BV-01-03 - * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 - */ - testcase TC_CAM_MSP_SSP_BV_03() runs on ItsCam system ItsCamSystem { - - f_CAM_MSP_SSP_BV_03(); - - } // end TC_CAM_MSP_BV_03 - - }// end group camProcessingSSP - - } // end group camMessageProcessing - -} // end ItsCam_TestCases +/** + * @author ETSI / STF405 / STF449 / STF484 / STF517 / TTF T036 + * @version $Url: https://oldforge.etsi.org/svn/ITS/tags/20170222_STF527_Final/ttcn/AtsCAM/ItsCam_TestCases.ttcn $ + * $Id: ItsCam_TestCases.ttcn 2655 2017-01-26 10:46:08Z filatov $ + * @desc Testcases for CA Protocol + * @reference ETSI TS 103 900 v2.2.1 + * @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 ItsCam_TestCases { + + // LibItsCam + import from LibItsCam_TestSystem all; + + // Ats Its + import from ItsCam_TpFunctions all; + + // 5.2.1 + group camMessageDissemination { + + group camMessageFormat { + + /** + * @desc Check that protocolVersion is set to 2 and messageID is + * set to 2. + *
+             * Pics Selection: PICS_CAM_GENERATION
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing ITS PDU header
+             *                     containing protocolVersion
+             *                         indicating value 2
+             *                     and containing messageID
+             *                         indicating value 2
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-01 + * @reference ETSI TS 103 900 v2.2.1, Annex B + */ + testcase TC_CAM_MSD_FMT_BV_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_01(); + + } // End of TC_CAM_MSD_FMT_BV_01 + + /** + * @desc Check that LF container is included in 1st CAM since CA + * basic service activation. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         and the IUT has not sent any CAM yet
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing lowFrequencyContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-02 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_02(); + + } // End of TC_CAM_MSD_FMT_BV_02 + + /** + * @desc Check that LF container is included if time elapsed since + * the generation of the last CAM with the low frequency + * container generation is equal or larger than 500 ms. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         and the IUT has sent a CAM
+             *             containing cam
+             *                 containing camParameters
+             *                     containing lowFrequencyContainer at time TIME_1
+             *         and the IUT has not sent CAM
+             *             containing cam
+             *                 containing camParameters
+             *                     containing lowFrequencyContainer after TIME_1
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated at time TIME_2 >= (TIME_1 + 500ms)
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing lowFrequencyContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-03 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_03(); + + } // End of TC_CAM_MSD_FMT_BV_03 + + /** + * @desc Check that specialVehicle container is included in 1st CAM + * since CA basic service activation. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND (PICS_PUBLICTRANS OR PICS_SPECIALTRANS OR PICS_DANGEROUSGOODS OR PICS_ROADWORKS OR PICS_RESCUE OR PICS_EMERGENCY OR PICS_SAFETYCAR)
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         and the IUT is configured to advertise itself as a special vehicle
+             *         and the IUT has not sent any CAM yet
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing specialVehicleContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-04 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_04() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_04(); + + } // End of TC_CAM_MSD_FMT_BV_04 + + /** + * @desc Check that specialVehicle container is included if time + * elapsed since the generation of the last CAM with the + * special vehicle container generation is equal or larger + * than 500 ms. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND (PICS_PUBLICTRANS OR PICS_SPECIALTRANS OR PICS_DANGEROUSGOODS OR PICS_ROADWORKS OR PICS_RESCUE OR PICS_EMERGENCY OR PICS_SAFETYCAR)
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         and the IUT has sent a CAM
+             *             containing cam
+             *                 containing camParameters
+             *                     containing specialVehicleContainer at time TIME_1
+             *         and the IUT has not sent CAM
+             *             containing cam
+             *                 containing camParameters
+             *                     containing specialVehicleContainer after TIME_1
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated at time TIME_2 >= (TIME_1 + 500ms)
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing specialVehicleContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-05 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_05() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_05(); + + } // End of TC_CAM_MSD_FMT_BV_05 + + /** + * @desc Check that VeryLowFrequency container is included in the second CAM since CA basic service activation. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PIC_RELEASE2 AND PICS_EXTENSIONSCONTAINER
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         and the IUT has not sent yet
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing extendedContainer
+             *                             containing containerId
+             *                                 indicating value 3
+             *                             and containing veryLowFrequencyContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-06 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_06() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_06(); + + } // End of TC_CAM_MSD_FMT_BV_06 + + /** + * @desc Check that veryLowFrequency container is included if time + * elapsed since the generation of the last CAM with the + * veryLowFrequency container generation is equal to or greater than 10 seconds + * and if the low frequency and the special vehicle container are not included. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PIC_RELEASE2 AND PICS_EXTENSIONSCONTAINER
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         and the IUT has sent a CAM
+             *             containing cam
+             *                 containing camParameters
+             *                     containing veryLowFrequencyContainer at time TIME_1
+             *         and the IUT prepares a CAM at time TIME_2 >= (TIME_1 + 10s)
+             *             containing cam
+             *                 not containing the lowFrequencyContainer
+             *                 and not containing the specialVehicleContainer
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated at time TIME_2 >= (TIME_1 + 10s)
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         not containing specialVehicleContainer
+             *                         and not containing lowFrequencyContainer
+             *                         and containing extendedContainer
+             *                             containing containerId
+             *                                 indicating value 3
+             *                             and containing veryLowFrequencyContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-07 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_07() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_07(); + + } // End of TC_CAM_MSD_FMT_BV_07 + + /** + * @desc Check that TwoWheeler container is included in the first CAM since CA basic service activation + * if the IUT Station type is one of cyclist, moped or motorcycles. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PIC_RELEASE2 AND PICS_EXTENSIONSCONTAINER
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT StationType is IUT_STATION_TYPE
+             *         and the IUT has not sent yet
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing extendedContainer
+             *                             containing containerId
+             *                                 indicating value 1
+             *                             and containing twoWheelerContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-08 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_08() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_08(); + + } // End of TC_CAM_MSD_FMT_BV_08 + + /** + * @desc Check that TwoWheeler container is included in a CA Message + * if the IUT Station type is one of cyclist, moped or motorcycles. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PIC_RELEASE2 AND PICS_EXTENSIONSCONTAINER
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT StationType is IUT_STATION_TYPE
+             *         and a CAM is generated
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing extendedContainer
+             *                             containing containerId
+             *                                 indicating value 1
+             *                             and containing twoWheelerContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/FMT/BV-09 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_FMT_BV_09() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_FMT_BV_09(); + + } // End of TC_CAM_MSD_FMT_BV_09 + + } // End of group camMessageFormat + + group camInformationAdaptation { + + group camInVehicleData { + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO:  Curvature value
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .curvature
+                 *     VALUE: measured value
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_01(); + + } // End of TC_CAM_MSD_INA_BV_01_01 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO:  Brake pedal being activated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .brakePedalActive
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-02 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_02(); + + } // End of TC_CAM_MSD_INA_BV_01_02 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO:  Brake pedal being deactivated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .brakePedalActive
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-03 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_03(); + + } // End of TC_CAM_MSD_INA_BV_01_03 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Gas pedal being activated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .gasPedalActive
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-04 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_04() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_04(); + + } // End of TC_CAM_MSD_INA_BV_01_04 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Gas pedal being deactivated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .gasPedalActive
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-05 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_05() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_05(); + + } // End of TC_CAM_MSD_INA_BV_01_05 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Emergency brake being activated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .emergencyBrakeActive
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-06 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_06() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_06(); + + } // End of TC_CAM_MSD_INA_BV_01_06 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Emergency brake being deactivated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .emergencyBrakeActive
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-07 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_07() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_07(); + + } // End of TC_CAM_MSD_INA_BV_01_07 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Collision warning being activated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .collisionWarningActive
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-08 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_08() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_08(); + + } // End of TC_CAM_MSD_INA_BV_01_08 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Collision warning being deactivated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .collisionWarningActive
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-09 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_09() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_09(); + + } // End of TC_CAM_MSD_INA_BV_01_09 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: ACC being activated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .accActive
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-10 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_10() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_10(); + + } // End of TC_CAM_MSD_INA_BV_01_10 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: ACC being deactivated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .accActive
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-11 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_11() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_11(); + + } // End of TC_CAM_MSD_INA_BV_01_11 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Cruise control being activated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .cruiseControl
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-12 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_12() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_12(); + + } // End of TC_CAM_MSD_INA_BV_01_12 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Cruise control being deactivated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .cruiseControl
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-13 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_13() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_13(); + + } // End of TC_CAM_MSD_INA_BV_01_13 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Speed limiter being activated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .speedLimiterActive
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-14 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_14() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_14(); + + } // End of TC_CAM_MSD_INA_BV_01_14 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Speed limiter control being deactivated
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .accelerationControl
+                 *                .speedLimiterActive
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-15 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_15() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_15(); + + } // End of TC_CAM_MSD_INA_BV_01_15 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Low beam headlights being activated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .lowBeamHeadlightsOn
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-16 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_16() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_16(); + + } // End of TC_CAM_MSD_INA_BV_01_16 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Low beam headlights being deactivated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .lowBeamHeadlightsOn
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-17 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_17() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_17(); + + } // End of TC_CAM_MSD_INA_BV_01_17 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: High beam headlights being activated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .highBeamHeadlightsOn
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-18 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_18() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_18(); + + } // End of TC_CAM_MSD_INA_BV_01_18 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: High beam headlights being deactivated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .highBeamHeadlightsOn
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-19 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_19() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_19(); + + } // End of TC_CAM_MSD_INA_BV_01_19 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Left turn signal being activated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .leftTurnSignalOn
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-20 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_20() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_20(); + + } // End of TC_CAM_MSD_INA_BV_01_20 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Left turn signal being deactivated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .leftTurnSignalOn
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-21 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_21() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_21(); + + } // End of TC_CAM_MSD_INA_BV_01_21 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Right turn signal being activated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .rightTurnSignalOn
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-22 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_22() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_22(); + + } // End of TC_CAM_MSD_INA_BV_01_22 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Right turn signal being deactivated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .rightTurnSignalOn
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-23 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_23() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_23(); + + } // End of TC_CAM_MSD_INA_BV_01_23 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Daytime running lights being activated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .daytimeRunningLightsOn
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-24 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_24() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_24(); + + } // End of TC_CAM_MSD_INA_BV_01_24 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Daytime running lights being deactivated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .daytimeRunningLightsOn
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-25 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_25() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_25(); + + } // End of TC_CAM_MSD_INA_BV_01_25 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Reverse light being activated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .reverseLightOn
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-26 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_26() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_26(); + + } // End of TC_CAM_MSD_INA_BV_01_26 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Reverse light being deactivated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .reverseLightOn
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-27 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_27() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_27(); + + } // End of TC_CAM_MSD_INA_BV_01_27 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Fog lights being activated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .fogLightOn
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-28 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_28() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_28(); + + } // End of TC_CAM_MSD_INA_BV_01_28 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Fog lights being deactivated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .fogLightOn
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-29 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_29() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_29(); + + } // End of TC_CAM_MSD_INA_BV_01_29 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Parking lights being activated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .parkingLightsOn
+                 *     VALUE: 1
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-30 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_30() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_30(); + + } // End of TC_CAM_MSD_INA_BV_01_30 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Parking lights being deactivated
+                 *     FIELD: lowFrequencyContainer
+                 *                .basicVehicleContainerLowFrequency
+                 *                .exteriorLights
+                 *                .parkingLightsOn
+                 *     VALUE: 0
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-31 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_31() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_31(); + + } // End of TC_CAM_MSD_INA_BV_01_31 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Heading value
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .heading
+                 *     VALUE: measured value
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-32 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_32() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_32(); + + } // End of TC_CAM_MSD_INA_BV_01_32 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Speed value
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .speed
+                 *     VALUE: measured value
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-33 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_33() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_33(); + + } // End of TC_CAM_MSD_INA_BV_01_33 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Drive direction value
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .driveDirection
+                 *     VALUE: measured value
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-34 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_34() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_34(); + + } // End of TC_CAM_MSD_INA_BV_01_34 + + /** + * @desc Check that latest value of in-vehicle data is included + * in CAM. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state
+                 *     }
+                 *     INFO: Yaw rate value
+                 *     FIELD: highFrequencyContainer
+                 *                .basicVehicleContainerHighFrequency
+                 *                .yawRate
+                 *     VALUE: measured value
+                 *
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             the IUT is alerted about INFO
+                 *         }
+                 *         then {
+                 *             the IUT sends a valid CAM
+                 *                 containing cam
+                 *                     containing camParameters
+                 *                         containing FIELD set to VALUE
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-01-35 + * @reference ETSI TS 103 900 v2.2.1, clause 5.2 and clause 7.1 + */ + testcase TC_CAM_MSD_INA_BV_01_35() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_01_35(); + + } // End of TC_CAM_MSD_INA_BV_01_35 + + } // End of group camInVehicleData + + /** + * @desc Check that publicTransportContainer is included if + * vehicleRole is set to publicTransport(1). + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_PUBLICTRANS
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT’s vehicle role being set to publicTransport(1)
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing specialVehicleContainer
+             *                             containing publicTransportContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-02 + * @reference ETSI TS 103 900 v2.2.1, Annex B + */ + testcase TC_CAM_MSD_INA_BV_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_02(); + + } // End of TC_CAM_MSD_INA_BV_02 + + /** + * @desc Check that specialTransportContainer is included if + * vehicleRole is set to specialTransport(2). + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_SPECIALTRANS
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT’s vehicle role being set to specialTransport(2)
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing specialVehicleContainer
+             *                             containing specialTransportContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-03 + * @reference ETSI TS 103 900 v2.2.1, Annex B.12 + */ + testcase TC_CAM_MSD_INA_BV_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_03(); + + } // End of TC_CAM_MSD_INA_BV_03 + + /** + * @desc Check that dangerousGoodsContainer is included if + * vehicleRole is set to dangerousGoods(3). + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_DANGEROUSGOODS
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT’s vehicle role being set to dangerousGoods(3)
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing specialVehicleContainer
+             *                             containing dangerousGoodsContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-04 + * @reference ETSI TS 103 900 v2.2.1, Annex B.13 + */ + testcase TC_CAM_MSD_INA_BV_04() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_04(); + + } // End of TC_CAM_MSD_INA_BV_04 + + /** + * @desc Check that roadWorksContainerBasic is included if + * vehicleRole is set to roadWork(4). + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_ROADWORKS
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT’s vehicle role being set to roadWork(4)
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing specialVehicleContainer
+             *                             containing roadWorksContainerBasic
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-05 + * @reference ETSI TS 103 900 v2.2.1, Annex B.14 + */ + testcase TC_CAM_MSD_INA_BV_05() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_05(); + + } // End of TC_CAM_MSD_INA_BV_05 + + /** + * @desc Check that rescueContainer is included if vehicleRole is + * set to rescue(5). + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_RESCUE
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT’s vehicle role being set to rescue(5)
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing specialVehicleContainer
+             *                             containing rescueContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-06 + * @reference ETSI TS 103 900 v2.2.1, Annex B.15 + */ + testcase TC_CAM_MSD_INA_BV_06() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_06(); + + } // End of TC_CAM_MSD_INA_BV_06 + + /** + * @desc Check that emergencyContainer is included if vehicleRole + * is set to emergency(6). + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_EMERGENCY
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT’s vehicle role being set to emergency(6)
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing specialVehicleContainer
+             *                             containing emergencyContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-07 + * @reference ETSI TS 103 900 v2.2.1, Annex B.16 + */ + testcase TC_CAM_MSD_INA_BV_07() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_07(); + + } // End of TC_CAM_MSD_INA_BV_07 + + /** + * @desc Check that safetyCarContainer is included if vehicleRole + * is set to safetyCar(7). + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU AND PICS_SAFETY_CAR
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT’s vehicle role being set to safetyCar(7)
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             a CAM is generated
+             *         }
+             *         then {
+             *             the IUT sends a valid CAM
+             *                 containing cam
+             *                     containing camParameters
+             *                         containing specialVehicleContainer
+             *                             containing safetyCarContainer
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/INA/BV-08 + * @reference ETSI TS 103 900 v2.2.1, Annex B.17 + */ + testcase TC_CAM_MSD_INA_BV_08() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_INA_BV_08(); + + } // End of TC_CAM_MSD_INA_BV_08 + + } // End of group camInformationAdaptation + + group camGenerationFrequency { + + /** + * @desc Check that CAMs are not generated more frequently than + * T_GenCamMin. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state"
+                 *     }
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             IUT sends a CAM
+                 *         }
+                 *         then {
+                 *             the IUT does not send any CAM before expiry of T_GenCamMin
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-01 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_TI_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_TI_01(); + + } // End of TC_CAM_MSD_GFQ_TI_01 + + /** + * @desc Check that CAMs are not generated less frequently than + * T_GenCamMax. + *
+                 * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
+                 * Initial conditions:
+                 *     with {
+                 *         the IUT being in the "initial state"
+                 *     }
+                 * Expected behaviour:
+                 *     ensure that {
+                 *         when {
+                 *             IUT sends a CAM
+                 *         }
+                 *         then {
+                 *             the IUT sends another CAM before expiry of T_GenCamMax
+                 *         }
+                 *     }
+                 * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-02 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_TI_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_TI_02(); + + } // End of TC_CAM_MSD_GFQ_TI_02 + + /** + * @desc Check that TGenCam is set to T_GenCamMax after generating + * N_GenCam due to condition 2. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT having sent a CAM at time TIME_1
+             *         the IUT having sent an anticipated CAM due to condition 2 at time (TIME_1 + INTERVAL_1)
+             *         the IUT having sent (N_GenCam - 1) subsequent CAMs every INTERVAL_1
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             the IUT sends CAM
+             *         }
+             *         then {
+             *             the IUT sends another CAM after expiry of T_GenCamMax
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-03 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_TI_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_TI_03(); + + } // End of TC_CAM_MSD_GFQ_TI_03 + + /** + * @desc Check that CAM is generated immediately when the time + * elapsed since the last CAM generation is equal or larger + * than T_GenCam_Dcc and the absolute difference between + * current direction of the originating ITS-S (towards North) + * and direction included in previous CAM exceeds 4°. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT having sent a CAM at time TIME_1
+             *             containing cam
+             *                 containing camParameters
+             *                     containing highFrequencyContainer
+             *                         containing basicVehicleContainerHighFrequency
+             *                             containing heading set to HEADING_1
+             *         the IUT not having sent any CAM since T_GenCam_Dcc
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             T_GenCam_Dcc expires
+             *             and the IUT is alerted that abs(CurrentHeading – HEADING_1) > 4°
+             *         }
+             *         then {
+             *             the IUT sends a CAM immediately
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/BV-04 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_BV_04() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_BV_04(); + + } // End of TC_CAM_MSD_GFQ_BV_04 + + /** + * @desc Check that CAM is generated immediately when the time + * elapsed since the last CAM generation is equal or larger + * than T_GenCam_Dcc and the current position and position + * included in previous CAM exceeds 4 m. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT having sent a CAM at time TIME_1
+             *             containing cam
+             *                 containing camParameters
+             *                     containing basicContainer
+             *                         containing referencePosition set to POSITION_1
+             *         the IUT not having sent any CAM since T_GenCam_Dcc
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             T_GenCam_Dcc expires
+             *             and the IUT is alerted that distance(CurrentPosition – POSITION_1) > 4 m
+             *         }
+             *         then {
+             *             the IUT sends a CAM immediately
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/BV-05 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_BV_05() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_BV_05(); + + } // End of TC_CAM_MSD_GFQ_BV_05 + + /** + * @desc Check that CAM is generated immediately when the time + * elapsed since the last CAM generation is equal or larger + * than T_GenCam_Dcc and the absolute difference between + * current speed and speed included in previous CAM + * exceeds 0,5 m/s. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT having sent a CAM at time TIME_1
+             *             containing cam
+             *                 containing camParameters
+             *                     containing highFrequencyContainer
+             *                         containing basicVehicleContainerHighFrequency
+             *                             containing speed set to SPEED_1
+             *         the IUT not having sent any CAM since T_GenCam_Dcc
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *            T_GenCam_Dcc expires
+             *            and the IUT is alerted that abs(CurrentSpeed – SPEED_1) > 0,5 m/s
+             *         }
+             *         then {
+             *             the IUT sends a CAM immediately
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/BV-06 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_BV_06() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_BV_06(); + + } // End of TC_CAM_MSD_GFQ_BV_06 + + /** + * @desc Check that CAM is generated immediately when the time + * elapsed since the last CAM generation is equal or larger + * than T_GenCam and equal or larger than T_GenCam_Dcc. + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PIC_RSU
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *         the IUT having sent a CAM
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             T_GenCam expires
+             *             and T_GenCam_Dcc expires
+             *         }
+             *         then {
+             *             the IUT sends another CAM
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-07 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.3 + */ + testcase TC_CAM_MSD_GFQ_TI_07() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_TI_07(); + + } // End of TC_CAM_MSD_GFQ_TI_07 + + /** + * @desc Check that maximum CAM generation frequency for RSU ITS-S is 1Hz + * + *
+             * Pics Selection: PICS_CAM_GENERATION AND PICS_RSU
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *         when {
+             *             IUT sends a CAM
+             *         }
+             *         then {
+             *             the IUT does not send another CAM afterbefore 1s
+             *         }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/GFQ/TI-08 + * @reference ETSI TS 103 900 v2.2.1, clause 6.1.4 + */ + testcase TC_CAM_MSD_GFQ_TI_08() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_GFQ_TI_08(); + + } // End of TC_CAM_MSD_GFQ_TI_08 + + } // End of group camGenerationFrequency + + group camLowerLayerParameters { + + /** + * @desc Check that CAM is encapsulated in BTP type B packet + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *     }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          a CAM is generated
+             *      }
+             *      then {
+             *          the IUT sends a CAM
+             *              encapsulated in a BTP-B packet
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/PAR/BV-01 + * @reference ETSI TS 103 900 v2.2.1, clause 5.3.4.1 + */ + testcase TC_CAM_MSD_PAR_BV_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_PAR_BV_01(); + + } // End of TC_CAM_MSD_PAR_BV_01 + + /** + * @desc Check that CAM is encapsulated in SHB packet + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *     }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          a CAM is generated
+             *      }
+             *      then {
+             *          the IUT sends a CAM
+             *              encapsulated in a SHB packet
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/PAR/BV-02 + * @reference ETSI TS 103 900 v2.2.1, clause 5.3.4.1 + */ + testcase TC_CAM_MSD_PAR_BV_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_PAR_BV_02(); + + } // End of TC_CAM_MSD_PAR_BV_02 + + /** + * @desc Check that CAM is encapsulated in GN packet with lifetime lower than 1s + *
+             * Pics Selection: PICS_CAM_GENERATION AND NOT PICS_IS_IUT_SECURED
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *     }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          a CAM is generated
+             *      }
+             *      then {
+             *          the IUT sends a CAM
+             *              encapsulated in a GN packet
+             *                  containing Basic Header
+             *                      containing Lifetime field
+             *                          indicating value lower than 1s
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/PAR/BV-03 + * @reference ETSI TS 103 900 v2.2.1, clause 5.3.4.1 + */ + testcase TC_CAM_MSD_PAR_BV_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_PAR_BV_03(); + + } // End of TC_CAM_MSD_PAR_BV_03 + + } // End of group camLowerLayerParameters + + group camGenerationSSP { + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
+             * Initial conditions:
+             *        with {
+             *            the IUT being in the "initial state"
+             *          the IUT is authorized to sign CAMs with the certificate
+             *              containing CAM SSP
+			 *                  indicating SSP version 1
+             *                  indicating bit at position '1' set to 0
+             *      }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          the IUT generates a CAM
+             *              containing CenDsrcTollingZone
+             *      }
+             *      then {
+             *          the IUT does not send this CAM
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-01 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_01(); + + } // End of TC_CAM_MSD_SSP_BO_01 + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
+             *                 AND PICS_SPECIALVEHICLECONTAINER AND PICS_PUBLICTRANS
+             * Initial conditions:
+             *        with {
+             *            the IUT being in the "initial state"
+             *            the IUT is authorized to sign CAMs with the certificate
+             *              containing CAM SSP
+			 *                  indicating SSP version 1
+             *                  indicating bit at position '2' set to 0
+             *      }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          the IUT generates a CAM
+             *              containing publicTransportContainer
+             *      }
+             *      then {
+             *          the IUT does not send this CAM
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-02 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_02(); + + } // End of TC_CAM_MSD_SSP_BO_02 + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
+             *                 AND PICS_SPECIALVEHICLECONTAINER AND PICS_SPECIALTRANS
+             * Initial conditions:
+             *        with {
+             *            the IUT being in the "initial state"
+             *            the IUT is authorized to sign CAMs with the certificate
+             *                containing CAM SSP
+			 *                    indicating SSP version 1
+             *                    indicating bit at position '3' set to 0
+             *      }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          the IUT generates a CAM
+             *              containing specialTransportContainer
+             *      }
+             *      then {
+             *          the IUT does not send this CAM
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-03 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_03(); + + } // End of TC_CAM_MSD_SSP_BO_03 + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
+             *                 AND PICS_SPECIALVEHICLECONTAINER AND PICS_DANGEROUSGOODS
+             * Initial conditions:
+             *        with {
+             *            the IUT being in the "initial state"
+             *            the IUT is authorized to sign CAMs with the certificate
+             *                containing CAM SSP
+			 *                    indicating SSP version 1
+             *                    indicating bit at position '4' set to 0
+             *      }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          the IUT generates a CAM
+             *              containing specialTransportContainer
+             *      }
+             *      then {
+             *          the IUT does not send this CAM
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-04 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_04() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_04(); + + } // End of TC_CAM_MSD_SSP_BO_04 + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
+             *                 AND PICS_SPECIALVEHICLECONTAINER AND PICS_ROADWORKS
+             * Initial conditions:
+             *        with {
+             *            the IUT being in the "initial state"
+             *            the IUT is authorized to sign CAMs with the certificate
+             *                containing CAM SSP
+			 *                    indicating SSP version 1
+             *                    indicating bit at position '5' set to 0
+             *      }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          the IUT generates a CAM
+             *              containing specialTransportContainer
+             *      }
+             *      then {
+             *          the IUT does not send this CAM
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-05 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_05() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_05(); + + } // End of TC_CAM_MSD_SSP_BO_05 + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
+             *                 AND PICS_SPECIALVEHICLECONTAINER AND PICS_RESCUE
+             * Initial conditions:
+             *        with {
+             *            the IUT being in the "initial state"
+             *            the IUT is authorized to sign CAMs with the certificate
+             *                containing CAM SSP
+			 *                    indicating SSP version 1
+             *                    indicating bit at position '6' set to 0
+             *      }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          the IUT generates a CAM
+             *              containing specialTransportContainer
+             *      }
+             *      then {
+             *          the IUT does not send this CAM
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-06 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_06() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_06(); + + } // End of TC_CAM_MSD_SSP_BO_06 + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
+             *                 AND PICS_SPECIALVEHICLECONTAINER AND PICS_EMERGENCY
+             * Initial conditions:
+             *        with {
+             *            the IUT being in the "initial state"
+             *            the IUT is authorized to sign CAMs with the certificate
+             *                containing CAM SSP
+			 *                    indicating SSP version 1
+             *                    indicating bit at position '7' set to 0
+             *      }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          the IUT generates a CAM
+             *              containing specialTransportContainer
+             *      }
+             *      then {
+             *          the IUT does not send this CAM
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-07 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_07() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_07(); + + } // End of TC_CAM_MSD_SSP_BO_07 + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
+             *                 AND PICS_SPECIALVEHICLECONTAINER AND PICS_SAFETY_CAR
+             * Initial conditions:
+             *        with {
+             *            the IUT being in the "initial state"
+             *            the IUT is authorized to sign CAMs with the certificate
+             *                containing CAM SSP
+			 *                    indicating SSP version 1
+             *                    indicating bit at position '8' set to 0
+             *      }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          the IUT generates a CAM
+             *              containing specialTransportContainer
+             *      }
+             *      then {
+             *          the IUT does not send this CAM
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-08 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_08() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_08(); + + } // End of TC_CAM_MSD_SSP_BO_08 + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
+             *                 AND PICS_EXTENSIONSCONTAINER AND PIC_RELEASE2
+             * Initial conditions:
+             *        with {
+             *            the IUT being in the "initial state"
+             *            the IUT is authorized to sign CAMs with the certificate
+             *                containing CAM SSP
+			 *                    indicating SSP version 2
+             *                    indicating bit at position '2' set to 0
+             *      }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          the IUT generates a CAM
+             *              containing extensionsContainer
+             *                  containing twoWheelersContainer
+             *      }
+             *      then {
+             *          the IUT does not send this CAM
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-15 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_15() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_15(); + + } // End of TC_CAM_MSD_SSP_BO_15 + + /** + * @desc Check that the IUT does not send a CAM + * when its content is not permitted by signing certificate + *
+             * Pics Selection: PICS_CAM_GENERATION AND PICS_IS_IUT_SECURED
+             *                 AND PICS_EXTENSIONSCONTAINER AND PIC_RELEASE2
+             * Initial conditions:
+             *        with {
+             *            the IUT being in the "initial state"
+             *            the IUT is authorized to sign CAMs with the certificate
+             *                containing CAM SSP
+			 *                    indicating SSP version 2
+             *                    indicating bit at position '1' set to 0
+             *      }
+             * Expected behaviour:
+             *  ensure that {
+             *      when {
+             *          the IUT generates a CAM
+             *              containing extensionsContainer
+             *                  containing twoWheelersContainer
+             *      }
+             *      then {
+             *          the IUT does not send this CAM
+             *      }
+             *  }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSD/SSP/BO-16 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSD_SSP_BO_16() runs on ItsCam system ItsCamSystem { + + f_CAM_MSD_SSP_BO_16(); + + } // End of TC_CAM_MSD_SSP_BO_16 + + } // End of group camGenerationSSP + + } // End of group camMessageDissemination + + group camMessageProcessing { + + /** + * @desc Check that content of received CAM is transmitted to + * applications and other facilities. + *
+         * Pics Selection: PICS_CAM_RECEPTION
+         * Initial conditions:
+         *     with {
+         *         the IUT being in the "initial state"
+         *     }
+         * Expected behaviour:
+         *     ensure that {
+         *         when {
+         *             the IUT receives a valid CAM
+         *         }
+         *         then {
+         *             the IUT forwards the CAM content to upper layers
+         *             and the IUT forwards the CAM content to other facilities
+         *         }
+         *     }
+         * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/BV-01 + * @reference ETSI TS 103 900 v2.2.1, clause 4.2.2 + */ + testcase TC_CAM_MSP_BV_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSP_BV_01(); + + } // End of TC_CAM_MSP_BV_01 + + group camProcessingSSP { + + /** + * @desc Check that IUT discards CAM if SSP value of the signing certificate + * is not consistent with the provided containers. + *
+             * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED
+             * Initial conditions:
+             *     with {
+             *         the IUT being in the "initial state"
+             *     }
+             * Expected behaviour:
+             *     ensure that {
+             *            when {
+             *                the IUT receives a secured CAM
+             *                    containing CenDsrcTollingZone/ProtectedCommunicationZonesRSU
+             *                    signed with certificate
+			 *                        indicating SSP version 1
+             *                        containing CAM SSP bit at position 0
+             *                            indicating 0
+             *            }
+             *            then {
+             *                the IUT discards the CAM
+             *                and the IUT does not forward the CAM content to upper layers
+             *                and the IUT does not forward the CAM content to other facilities
+             *            }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/SSP/BV-01-01 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSP_SSP_BV_01() runs on ItsCam system ItsCamSystem { + + f_CAM_MSP_SSP_BV_01(); + + } // End of TC_CAM_MSP_BV_01 + + /** + * @desc Check that IUT discards CAM if SSP value of the signing certificate + * is not consistent with the provided containers. + *
+             * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED
+             * Initial conditions:
+             *         with {
+             *            the IUT being in the "initial state"
+             *        }
+             * Expected behaviour:
+             *        ensure that {
+             *            when {
+             *                the IUT receives a secured CAM
+             *                    containing publicTransportContainer
+             *                    and signed with certificate
+			 *                        indicating SSP version 1
+             *                        containing CAM SSP bit at position 1
+             *                            indicating 0
+             *            }
+             *            then {
+             *                the IUT discards the CAM
+             *                and the IUT does not forward the CAM content to upper layers
+             *                and the IUT does not forward the CAM content to other facilities
+             *            }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/SSP/BV-01-02 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSP_SSP_BV_02() runs on ItsCam system ItsCamSystem { + + f_CAM_MSP_SSP_BV_02(); + + } // End of TC_CAM_MSP_BV_02 + + /** + * @desc Check that IUT discards CAM if SSP value of the signing certificate + * is not consistent with the provided containers. + *
+             * Pics Selection: PICS_CAM_RECEPTION AND PICS_IS_IUT_SECURED
+             * Initial conditions:
+             *         with {
+             *            the IUT being in the "initial state"
+             *        }
+             * Expected behaviour:
+             *        ensure that {
+             *            when {
+             *                the IUT receives a secured CAM
+             *                    containing specialTransportContainer
+             *                    and signed with certificate
+			 *                        indicating SSP version 1
+             *                        containing CAM SSP bit at position 2
+             *                            indicating 0
+             *            }
+             *            then {
+             *                the IUT discards the CAM
+             *                and the IUT does not forward the CAM content to upper layers
+             *                and the IUT does not forward the CAM content to other facilities
+             *            }
+             *     }
+             * 
+ * + * @see ETSI TS 102 868-2 v2.2.1 TP/CAM/MSP/SSP/BV-01-03 + * @reference ETSI TS 103 900 v2.2.1, clause 6.2.2.1 + */ + testcase TC_CAM_MSP_SSP_BV_03() runs on ItsCam system ItsCamSystem { + + f_CAM_MSP_SSP_BV_03(); + + } // End of TC_CAM_MSP_BV_03 + + }// end group camProcessingSSP + + } // End of group camMessageProcessing + +} // End of module ItsCam_TestCases diff --git a/ItsCam_TestControl.ttcn b/ItsCam_TestControl.ttcn index 4b81201..60f980e 100644 --- a/ItsCam_TestControl.ttcn +++ b/ItsCam_TestControl.ttcn @@ -27,6 +27,12 @@ module ItsCam_TestControl { execute(TC_CAM_MSD_FMT_BV_03()); execute(TC_CAM_MSD_FMT_BV_04()); execute(TC_CAM_MSD_FMT_BV_05()); + if (PICS_RELEASE2 and PICS_EXTENSIONSCONTAINER) { + execute(TC_CAM_MSD_FMT_BV_06()); + execute(TC_CAM_MSD_FMT_BV_07()); + execute(TC_CAM_MSD_FMT_BV_08()); + execute(TC_CAM_MSD_FMT_BV_09()); + } execute(TC_CAM_MSD_INA_BV_01_01()); execute(TC_CAM_MSD_INA_BV_01_02()); execute(TC_CAM_MSD_INA_BV_01_03()); @@ -105,6 +111,25 @@ module ItsCam_TestControl { if (PICS_SPECIALTRANS and PICS_SPECIALVEHICLECONTAINER) { execute(TC_CAM_MSD_SSP_BO_03()); } + if (PICS_SPECIALTRANS and PICS_DANGEROUSGOODS) { + execute(TC_CAM_MSD_SSP_BO_04()); + } + if (PICS_SPECIALTRANS and PICS_ROADWORKS) { + execute(TC_CAM_MSD_SSP_BO_05()); + } + if (PICS_SPECIALTRANS and PICS_RESCUE) { + execute(TC_CAM_MSD_SSP_BO_06()); + } + if (PICS_SPECIALTRANS and PICS_EMERGENCY) { + execute(TC_CAM_MSD_SSP_BO_07()); + } + if (PICS_SPECIALTRANS and PICS_SAFETY_CAR) { + execute(TC_CAM_MSD_SSP_BO_08()); + } + if (PICS_RELEASE2 and PICS_EXTENSIONSCONTAINER) { + execute(TC_CAM_MSD_SSP_BO_15()); + execute(TC_CAM_MSD_SSP_BO_16()); + } } } diff --git a/ItsCam_TpFunctions.ttcn b/ItsCam_TpFunctions.ttcn index 4c563f4..435aac0 100644 --- a/ItsCam_TpFunctions.ttcn +++ b/ItsCam_TpFunctions.ttcn @@ -72,11 +72,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -85,7 +85,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_FMT_BV_01 + } // End of function f_CAM_MSD_FMT_BV_01 /** * @desc TP Function for TC_CAM_MSD_FMT_BV_02 @@ -115,16 +115,16 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_LF_any )){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] camPort.receive(mw_camInd ( mw_camMsg_any )){ tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Expected CAM message not received ***"); + log("*** " & testcasename() & ": FAIL: Expected CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -133,7 +133,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_FMT_BV_02 + } // End of function f_CAM_MSD_FMT_BV_02 /** * @desc TP Function for TC_CAM_MSD_FMT_BV_03 @@ -168,11 +168,11 @@ module ItsCam_TpFunctions { [] camPort.receive(mw_camInd ( mw_camMsg_LF_any )){ tc_ac.stop; t_minTransInterval.start; - log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -187,7 +187,7 @@ module ItsCam_TpFunctions { tc_ac.stop; v_cntTime := v_cntTime + 1; if (v_cntTime == c_cntTimeLimit) { // Exit message loop - log("*** " & testcasename() & ": INFO: The subset of CAM messages including lowFrequencyContainer was received ***"); + log("*** " & testcasename() & ": INFO: The subset of CA messages including lowFrequencyContainer was received ***"); t_minTransInterval.start; v_nextCamWithLF := false; } @@ -217,19 +217,19 @@ module ItsCam_TpFunctions { repeat; } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } } - log("*** " & testcasename() & ": PASS: Generation of CAM messages including lowFrequencyContainer was successful ***"); + log("*** " & testcasename() & ": PASS: Generation of CA messages including lowFrequencyContainer was successful ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_FMT_BV_03 + } // End of function f_CAM_MSD_FMT_BV_03 /** * @desc TP Function for TC_CAM_MSD_FMT_BV_04 @@ -266,11 +266,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_SVC_any )){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -279,7 +279,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_FMT_BV_04 + } // End of function f_CAM_MSD_FMT_BV_04 /** * @desc TP Function for TC_CAM_MSD_FMT_BV_05 @@ -320,11 +320,11 @@ module ItsCam_TpFunctions { [] camPort.receive(mw_camInd ( mw_camMsg_SVC_any )){ tc_ac.stop; t_minTransInterval.start; - log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -339,7 +339,7 @@ module ItsCam_TpFunctions { tc_ac.stop; v_cntTime := v_cntTime + 1; if (v_cntTime == c_cntTimeLimit) { // Exit message loop - log("*** " & testcasename() & ": INFO: The subset of CAM messages including specialVehicleContainer was received ***"); + log("*** " & testcasename() & ": INFO: The subset of CA messages including specialVehicleContainer was received ***"); t_minTransInterval.start; v_nextCamWithSVC := false; } @@ -369,19 +369,270 @@ module ItsCam_TpFunctions { repeat; } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } } - log("*** " & testcasename() & ": PASS: Generation of CAM messages including SpecialVehicleContainer was successful ***"); + log("*** " & testcasename() & ": PASS: Generation of CA messages including SpecialVehicleContainer was successful ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_FMT_BV_05 + } // End of function f_CAM_MSD_FMT_BV_05 + + /** + * @desc TP Function for TC_CAM_MSD_FMT_BV_06 + */ + function f_CAM_MSD_FMT_BV_06() runs on ItsCam { + + // Local variables + + // Test control + if (not PICS_CAM_GENERATION or not PICS_RELEASE2 or PICS_RSU) { + log("*** " & testcasename() & ": PICS_CAM_GENERATION AND PICS_RELEASE2 AND NOT PICS_RSU required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cfUp(); + + // Test adapter configuration + + // Preamble + f_prInitialState(); + camPort.clear; + tc_ac.start; + alt { // Fisrt CAM + [] camPort.receive(mw_camInd ( mw_camMsg_LF_any )){ + tc_ac.stop; + log("*** " & testcasename() & ": INFO: First CA message received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] camPort.receive(mw_camInd ( mw_camMsg_any )){ + tc_ac.stop; + log("*** " & testcasename() & ": FAIL: Invalid first CA message ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: First CA message not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } + + // Test Body + tc_ac.start; + alt { // Second CAM + [] camPort.receive(mw_camInd ( mw_camMsg_ext_low_frequency_container_any )){ + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: CA message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // End of function f_CAM_MSD_FMT_BV_06 + + /** + * @desc TP Function for TC_CAM_MSD_FMT_BV_07 + */ + function f_CAM_MSD_FMT_BV_07() runs on ItsCam { + + // Local variables + timer t_minTransInterval := c_veryLowFrequencyGenerationTime * PX_INC_TIMER_CONTROL_FACTOR; + var CamInd v_camInd; + var boolean v_nextCamWithVLF := false; + + // Test control + if (not PICS_CAM_GENERATION or not PICS_RELEASE2 or PICS_RSU) { + log("*** " & testcasename() & ": PICS_CAM_GENERATION AND PICS_RELEASE2 AND NOT PICS_RSU required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cfUp(); + + // Test adapter configuration + + // Preamble + f_prInitialState(); + camPort.clear; + tc_ac.start; + alt { // last CAM with veryLowFrequency container + [] camPort.receive(mw_camInd ( mw_camMsg_ext_low_frequency_container_any )){ + tc_ac.stop; + t_minTransInterval.start; + log("*** " & testcasename() & ": INFO: Initial conditions: Last CA message with veryLowFrequencyContainer received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message with veryLowFrequencyContainer not received ***"); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); + } + } + + // Test Body + tc_ac.start; + alt { + [] camPort.receive(mw_camInd ( mw_camMsg_ext_low_frequency_container_any )) { + tc_ac.stop; + + if (v_nextCamWithVLF) { + log("*** " & testcasename() & ": PASS: CA message with veryLowFrequencyContainer received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } else { + log("*** " & testcasename() & ": FAIL: CA message with veryLowFrequencyContainer received too early ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } + } + [] camPort.receive(mw_camInd ( mw_camMsg_any )) -> value v_camInd { + tc_ac.stop; + if (ispresent(v_camInd.msgIn.cam.camParameters.extensionContainers)) { + if (lengthof(v_camInd.msgIn.cam.camParameters.extensionContainers) != 0) { + var boolean v_found := false; + for (var integer v_idx := 0; v_idx < lengthof(v_camInd.msgIn.cam.camParameters.extensionContainers); v_idx := v_idx + 1) { + if (v_camInd.msgIn.cam.camParameters.extensionContainers[v_idx].containerId == veryLowFrequencyContainer) { + v_found := true; + break; + } + } // End of 'for' statement + if (v_found) { + log("*** " & testcasename() & ": FAIL: CA message with veryLowFrequencyContainer is unexpected here ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_error); + } else { + tc_ac.start; + repeat; + } + } else { + tc_ac.start; + repeat; + } + } else { + tc_ac.start; + repeat; + } + } + [] t_minTransInterval.timeout { + v_nextCamWithVLF := true; + log("*** " & testcasename() & ": INFO: Next CAM shall contain veryLowFrequency container ***"); + repeat; + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: CA message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // End of function f_CAM_MSD_FMT_BV_07 + + /** + * @desc TP Function for TC_CAM_MSD_FMT_BV_08 + */ + function f_CAM_MSD_FMT_BV_08() runs on ItsCam { + + // Local variables + var StationType v_stationType := valueof(m_station_type(PX_IUT_STATION_TYPE)); + + // Test control + if (not PICS_CAM_GENERATION or not PICS_RELEASE2 or PICS_RSU) { + log("*** " & testcasename() & ": PICS_CAM_GENERATION AND PICS_RELEASE2 AND NOT PICS_RSU required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cfUp(); + + // Test adapter configuration + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Set vehicle role + f_utTriggerEvent(m_setStationType(v_stationType)); + + // Test Body + tc_ac.start; + alt { + [] camPort.receive(mw_camInd ( mw_camMsg_ext_two_wheelers_container_any )) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: CA message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // End of function f_CAM_MSD_FMT_BV_08 + + /** + * @desc TP Function for TC_CAM_MSD_FMT_BV_09 + */ + function f_CAM_MSD_FMT_BV_09() runs on ItsCam { + + // Local variables + var StationType v_stationType := valueof(m_station_type(PX_IUT_STATION_TYPE)); + + // Test control + if (not PICS_CAM_GENERATION or not PICS_RELEASE2 or PICS_RSU) { + log("*** " & testcasename() & ": PICS_CAM_GENERATION AND PICS_RELEASE2 AND NOT PICS_RSU required for executing the TC ***"); + setverdict(inconc); + stop; + } + + // Test component configuration + f_cfUp(); + + // Test adapter configuration + + // Preamble + f_prInitialState(); + f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); + + // Set vehicle role + f_utTriggerEvent(m_setStationType(v_stationType)); + + // Test Body + tc_ac.start; + alt { + [] camPort.receive(mw_camInd ( mw_camMsg_ext_two_wheelers_container_any )) { + tc_ac.stop; + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_success); + } + [] tc_ac.timeout { + log("*** " & testcasename() & ": INCONC: CA message not received ***"); + f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); + } + } + + // Postamble + f_poDefault(); + f_cfDown(); + + } // End of function f_CAM_MSD_FMT_BV_09 } // end group camMessageFormat @@ -400,7 +651,7 @@ module ItsCam_TpFunctions { log("*** " & testcasename() & ": Checking INFO==" & p_INFO & " ***"); if (lengthof(p_utTriggers) != lengthof(p_camPdus)) { - log("*** " & testcasename() & ": INCONC: Invalid testcase configuration: Number of event triggers and expected CAM messages differs ***"); + log("*** " & testcasename() & ": INCONC: Invalid testcase configuration: Number of event triggers and expected CA messages differs ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } @@ -412,15 +663,15 @@ module ItsCam_TpFunctions { [] camPort.receive( mw_camInd ( p_camPdus[v_cnt] )){ tc_ac.stop; if (v_cnt==lengthof(p_utTriggers)-1) { - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { - log("*** " & testcasename() & ": PRECONDITION: Expected CAM message received ***"); + log("*** " & testcasename() & ": PRECONDITION: Expected CA message received ***"); } } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -465,11 +716,11 @@ module ItsCam_TpFunctions { [] camPort.receive( mw_camInd ( mw_camMsg_HF_BV(mw_HF_BV_curvature(v_curVal)) )) -> value v_camInd { tc_ac.stop; if (v_initialReceived) { - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { - log("*** " & testcasename() & ": PRECONDITION: Expected CAM message received ***"); + log("*** " & testcasename() & ": PRECONDITION: Expected CA message received ***"); v_initialReceived := true; //change again the curvature value and set the expectation to the measured value if (v_camInd.msgIn.cam.camParameters.highFrequencyContainer.basicVehicleContainerHighFrequency.curvature.curvatureValue >= 0) { @@ -486,7 +737,7 @@ module ItsCam_TpFunctions { } } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -495,7 +746,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_01 + } // End of function f_CAM_MSD_INA_BV_01_01 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_02 @@ -531,7 +782,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_02 + } // End of function f_CAM_MSD_INA_BV_01_02 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_03 @@ -567,7 +818,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_03 + } // End of function f_CAM_MSD_INA_BV_01_03 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_04 @@ -603,7 +854,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_04 + } // End of function f_CAM_MSD_INA_BV_01_04 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_05 @@ -639,7 +890,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_05 + } // End of function f_CAM_MSD_INA_BV_01_05 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_06 @@ -675,7 +926,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_06 + } // End of function f_CAM_MSD_INA_BV_01_06 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_07 @@ -711,7 +962,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_07 + } // End of function f_CAM_MSD_INA_BV_01_07 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_08 @@ -747,7 +998,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_08 + } // End of function f_CAM_MSD_INA_BV_01_08 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_09 @@ -783,7 +1034,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_09 + } // End of function f_CAM_MSD_INA_BV_01_09 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_10 @@ -819,7 +1070,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_10 + } // End of function f_CAM_MSD_INA_BV_01_10 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_11 @@ -855,7 +1106,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_11 + } // End of function f_CAM_MSD_INA_BV_01_11 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_12 @@ -891,7 +1142,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_12 + } // End of function f_CAM_MSD_INA_BV_01_12 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_13 @@ -927,7 +1178,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_13 + } // End of function f_CAM_MSD_INA_BV_01_13 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_14 @@ -963,7 +1214,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_14 + } // End of function f_CAM_MSD_INA_BV_01_14 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_15 @@ -999,7 +1250,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_15 + } // End of function f_CAM_MSD_INA_BV_01_15 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_16 @@ -1035,7 +1286,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_16 + } // End of function f_CAM_MSD_INA_BV_01_16 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_17 @@ -1071,7 +1322,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_17 + } // End of function f_CAM_MSD_INA_BV_01_17 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_18 @@ -1107,7 +1358,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_18 + } // End of function f_CAM_MSD_INA_BV_01_18 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_19 @@ -1143,7 +1394,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_19 + } // End of function f_CAM_MSD_INA_BV_01_19 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_20 @@ -1179,7 +1430,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_20 + } // End of function f_CAM_MSD_INA_BV_01_20 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_21 @@ -1215,7 +1466,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_21 + } // End of function f_CAM_MSD_INA_BV_01_21 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_22 @@ -1251,7 +1502,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_22 + } // End of function f_CAM_MSD_INA_BV_01_22 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_23 @@ -1287,7 +1538,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_23 + } // End of function f_CAM_MSD_INA_BV_01_23 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_24 @@ -1323,7 +1574,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_24 + } // End of function f_CAM_MSD_INA_BV_01_24 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_25 @@ -1359,7 +1610,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_25 + } // End of function f_CAM_MSD_INA_BV_01_25 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_26 @@ -1395,7 +1646,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_26 + } // End of function f_CAM_MSD_INA_BV_01_26 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_27 @@ -1431,7 +1682,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_27 + } // End of function f_CAM_MSD_INA_BV_01_27 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_28 @@ -1467,7 +1718,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_28 + } // End of function f_CAM_MSD_INA_BV_01_28 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_29 @@ -1503,7 +1754,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_29 + } // End of function f_CAM_MSD_INA_BV_01_29 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_30 @@ -1539,7 +1790,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_30 + } // End of function f_CAM_MSD_INA_BV_01_30 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_31 @@ -1575,7 +1826,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_31 + } // End of function f_CAM_MSD_INA_BV_01_31 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_32 @@ -1615,11 +1866,11 @@ module ItsCam_TpFunctions { [] camPort.receive( mw_camInd ( mw_camMsg_HF_BV(mw_HF_BV_heading(v_headingVal)) )) -> value v_camInd { tc_ac.stop; if (v_initialReceived) { - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { - log("*** " & testcasename() & ": PRECONDITION: Expected CAM message received ***"); + log("*** " & testcasename() & ": PRECONDITION: Expected CA message received ***"); v_initialReceived := true; //change again the heading value and set the expectation to the measured value v_headingVal := (v_camInd.msgIn.cam.camParameters.highFrequencyContainer.basicVehicleContainerHighFrequency.heading.headingValue+c_headingValOffset) mod 3601; @@ -1629,7 +1880,7 @@ module ItsCam_TpFunctions { } } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1638,7 +1889,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_32 + } // End of function f_CAM_MSD_INA_BV_01_32 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_33 @@ -1678,11 +1929,11 @@ module ItsCam_TpFunctions { [] camPort.receive( mw_camInd ( mw_camMsg_HF_BV(mw_HF_BV_speed(v_speedVal)) )) -> value v_camInd { tc_ac.stop; if (v_initialReceived) { - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { - log("*** " & testcasename() & ": PRECONDITION: Expected CAM message received ***"); + log("*** " & testcasename() & ": PRECONDITION: Expected CA message received ***"); v_initialReceived := true; //change again the speed value and set the expectation to the measured value v_speedVal := (v_camInd.msgIn.cam.camParameters.highFrequencyContainer.basicVehicleContainerHighFrequency.speed.speedValue+c_speedValOffset) mod 16384; @@ -1692,7 +1943,7 @@ module ItsCam_TpFunctions { } } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1701,7 +1952,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_33 + } // End of function f_CAM_MSD_INA_BV_01_33 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_34 @@ -1739,11 +1990,11 @@ module ItsCam_TpFunctions { [] camPort.receive( mw_camInd ( mw_camMsg_HF_BV(mw_HF_BV_driveDirection(v_driveVal)) )) -> value v_camInd { tc_ac.stop; if (v_driveVal==forward) { - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { - log("*** " & testcasename() & ": PRECONDITION: Expected CAM message received ***"); + log("*** " & testcasename() & ": PRECONDITION: Expected CA message received ***"); //change again the drive direction and set the expectation to the measured value v_driveVal := forward; f_utTriggerEvent(m_setDriveDirection(v_driveVal)); @@ -1752,7 +2003,7 @@ module ItsCam_TpFunctions { } } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1761,7 +2012,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_34 + } // End of function f_CAM_MSD_INA_BV_01_34 /** * @desc TP Function for TC_CAM_MSD_INA_BV_01_35 @@ -1801,11 +2052,11 @@ module ItsCam_TpFunctions { [] camPort.receive( mw_camInd ( mw_camMsg_HF_BV(mw_HF_BV_yawRate(v_yawRateVal)) )) -> value v_camInd { tc_ac.stop; if (v_initialReceived) { - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { - log("*** " & testcasename() & ": PRECONDITION: Expected CAM message received ***"); + log("*** " & testcasename() & ": PRECONDITION: Expected CA message received ***"); v_initialReceived := true; //change again the yaw rate value and set the expectation to the measured value v_yawRateVal := v_camInd.msgIn.cam.camParameters.highFrequencyContainer.basicVehicleContainerHighFrequency.yawRate.yawRateValue; @@ -1822,7 +2073,7 @@ module ItsCam_TpFunctions { } } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1831,7 +2082,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_01_35 + } // End of function f_CAM_MSD_INA_BV_01_35 } // end group camInVehicleData @@ -1871,11 +2122,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_SVC( mw_publicTransport_any ))){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1884,7 +2135,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_02 + } // End of function f_CAM_MSD_INA_BV_02 /** * @desc TP Function for TC_CAM_MSD_INA_BV_03 @@ -1920,11 +2171,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_SVC( mw_specialTransport_any ))){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1933,7 +2184,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_03 + } // End of function f_CAM_MSD_INA_BV_03 /** * @desc TP Function for TC_CAM_MSD_INA_BV_04 @@ -1969,11 +2220,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_SVC( mw_dangerousGoods_any ))){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -1982,7 +2233,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_04 + } // End of function f_CAM_MSD_INA_BV_04 /** * @desc TP Function for TC_CAM_MSD_INA_BV_05 @@ -2018,11 +2269,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_SVC( mw_roadWorks_any ))){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2031,7 +2282,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_05 + } // End of function f_CAM_MSD_INA_BV_05 /** * @desc TP Function for TC_CAM_MSD_INA_BV_06 @@ -2067,11 +2318,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_SVC( mw_rescue_any ))){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2080,7 +2331,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_06 + } // End of function f_CAM_MSD_INA_BV_06 /** * @desc TP Function for TC_CAM_MSD_INA_BV_07 @@ -2116,11 +2367,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_SVC( mw_emergency_any ))){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2129,7 +2380,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_07 + } // End of function f_CAM_MSD_INA_BV_07 /** * @desc TP Function for TC_CAM_MSD_INA_BV_08 @@ -2165,11 +2416,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_SVC( mw_safetyCar_any ))){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2178,7 +2429,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_INA_BV_08 + } // End of function f_CAM_MSD_INA_BV_08 } // end group camInformationAdaptation @@ -2217,11 +2468,11 @@ module ItsCam_TpFunctions { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ tc_ac.stop; t_minTransInterval.start; - log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -2232,11 +2483,11 @@ module ItsCam_TpFunctions { v_ret := f_CAM_MSD_GFQ_TI_01_helper(t_minTransInterval); select (v_ret) { case (e_error) { - log("*** " & testcasename() & ": FAIL: CAM message received BEFORE expiry of the minimum generation timer interval ***"); + log("*** " & testcasename() & ": FAIL: CA message received BEFORE expiry of the minimum generation timer interval ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } case (e_timeout) { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2245,14 +2496,14 @@ module ItsCam_TpFunctions { f_changeSpeed(v_speedValues[v_cntSpeed]); } t_minTransInterval.stop; - log("*** " & testcasename() & ": PASS: Generation of CAM messages was successful ***"); + log("*** " & testcasename() & ": PASS: Generation of CA messages was successful ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_GFQ_TI_01 + } // End of function f_CAM_MSD_GFQ_TI_01 function f_CAM_MSD_GFQ_TI_01_helper(timer t_minTransInterval) runs on ItsCam return FncRetCode { @@ -2310,11 +2561,11 @@ module ItsCam_TpFunctions { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ tc_ac.stop; t_maxTransInterval.start; - log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -2324,24 +2575,24 @@ module ItsCam_TpFunctions { v_ret := f_CAM_MSD_GFQ_TI_02_helper(t_maxTransInterval); select (v_ret) { case (e_error) { - log("*** " & testcasename() & ": FAIL: No CAM message received BEFORE expiry of the maximum generation timer interval ***"); + log("*** " & testcasename() & ": FAIL: No CA message received BEFORE expiry of the maximum generation timer interval ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } case (e_timeout) { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } } t_maxTransInterval.stop; - log("*** " & testcasename() & ": PASS: Generation of CAM messages was successful ***"); + log("*** " & testcasename() & ": PASS: Generation of CA messages was successful ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); // Postamble f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_GFQ_TI_02 + } // End of function f_CAM_MSD_GFQ_TI_02 function f_CAM_MSD_GFQ_TI_02_helper(timer t_maxTransInterval) runs on ItsCam return FncRetCode { @@ -2399,11 +2650,11 @@ module ItsCam_TpFunctions { [] camPort.receive(mw_camInd ( mw_camMsg_any )) -> value v_camInd { v_receiveTime := int2float(v_camInd.recvTime) / 1000.0; tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message received ***"); log("*** " & testcasename() & ": DEBUG: v_receiveTime=" , v_receiveTime, " ***"); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -2417,10 +2668,10 @@ module ItsCam_TpFunctions { v_receiveTime := int2float(v_camInd.recvTime) / 1000.0; log("*** " & testcasename() & ": DEBUG: Elapsed time since last CAM: v_interval_1_measured=", v_interval_1_measured, " ***"); log("*** " & testcasename() & ": DEBUG: Elapsed time since last CAM: new v_receiveTime = ", v_receiveTime, " ***"); - log("*** " & testcasename() & ": INFO: Initial conditions: Condition 1 CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: Condition 1 CA message received ***"); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: Condition 1 CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: Condition 1 CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -2462,20 +2713,20 @@ module ItsCam_TpFunctions { var float v_measured := int2float(v_camInd.recvTime) / 1000.0 - v_receiveTime; log("*** " & testcasename() & ": DEBUG: v_measured=", v_measured, " ***"); if (v_measuredPICS_T_GENCAMMAX * PX_INC_TIMER_CONTROL_FACTOR) { - log("*** " & testcasename() & ": FAIL: Next CAM message not received AFTER T_GenCamMax expired ***"); + log("*** " & testcasename() & ": FAIL: Next CA message not received AFTER T_GenCamMax expired ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } else { - log("*** " & testcasename() & ": PASS: Next CAM message received AFTER T_GenCamMax expired ***"); + log("*** " & testcasename() & ": PASS: Next CA message received AFTER T_GenCamMax expired ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } [] tc_ac.timeout { - log("*** " & testcasename() & ": FAIL: Next CAM message not received AFTER T_GenCamMax expired ***"); + log("*** " & testcasename() & ": FAIL: Next CA message not received AFTER T_GenCamMax expired ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -2484,7 +2735,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_GFQ_TI_03 + } // End of function f_CAM_MSD_GFQ_TI_03 /** * @desc TP Function for TC_CAM_MSD_GFQ_BV_04 @@ -2519,10 +2770,10 @@ module ItsCam_TpFunctions { tc_ac.stop; v_headingValue := v_camPdu.msgIn.cam.camParameters.highFrequencyContainer.basicVehicleContainerHighFrequency.heading.headingValue; t_genCam_dcc.start; - log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message received ***"); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -2535,11 +2786,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_HF_BV ( mw_HF_BV_heading( (v_headingValue + v_changeHeadingValue) mod 3600) ) )){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: CAM message received ***"); + log("*** " & testcasename() & ": PASS: CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] t_genCam_min.timeout { - log("*** " & testcasename() & ": FAIL: CAM message not received ***"); + log("*** " & testcasename() & ": FAIL: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -2548,7 +2799,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_GFQ_BV_04 + } // End of function f_CAM_MSD_GFQ_BV_04 /** * @desc TP Function for TC_CAM_MSD_GFQ_BV_05 @@ -2583,10 +2834,10 @@ module ItsCam_TpFunctions { tc_ac.stop; v_referencePosition := v_camPdu.msgIn.cam.camParameters.basicContainer.referencePosition; t_genCam_dcc.start; - log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message received ***"); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -2607,11 +2858,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_BC_refPos ( v_expectedReferencePosition ) )){ t_genCam_dcc.stop; - log("*** " & testcasename() & ": PASS: CAM message received ***"); + log("*** " & testcasename() & ": PASS: CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] t_genCam_dcc.timeout { - log("*** " & testcasename() & ": FAIL: CAM message not received ***"); + log("*** " & testcasename() & ": FAIL: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -2620,7 +2871,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_GFQ_BV_05 + } // End of function f_CAM_MSD_GFQ_BV_05 /** * @desc TP Function for TC_CAM_MSD_GFQ_BV_06 @@ -2655,10 +2906,10 @@ module ItsCam_TpFunctions { tc_ac.stop; v_speedValue := v_camPdu.msgIn.cam.camParameters.highFrequencyContainer.basicVehicleContainerHighFrequency.speed.speedValue; t_genCam_dcc.start; - log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message received ***"); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -2671,11 +2922,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_HF_BV ( mw_HF_BV_speed( (v_speedValue + v_changeSpeedValue) mod 16384 ) ) )){ tc_ac.stop; - log("*** " & testcasename() & ": PASS: CAM message received ***"); + log("*** " & testcasename() & ": PASS: CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] t_genCam_min.timeout { - log("*** " & testcasename() & ": FAIL: CAM message not received ***"); + log("*** " & testcasename() & ": FAIL: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -2684,7 +2935,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_GFQ_BV_06 + } // End of function f_CAM_MSD_GFQ_BV_06 /** * @desc TP Function for TC_CAM_MSD_GFQ_TI_07 @@ -2720,10 +2971,10 @@ module ItsCam_TpFunctions { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ tc_ac.stop; t_genCam_measure.start; - log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message received ***"); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -2735,10 +2986,10 @@ module ItsCam_TpFunctions { tc_ac.stop; v_genCam_min := v_measured * 0.9; v_genCam_max := v_measured * 1.1; - log("*** " & testcasename() & ": INFO: Initial conditions: Anticipated CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: Anticipated CA message received ***"); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: Anticipated CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: Anticipated CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -2750,18 +3001,18 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ if (t_genCam_min.running) { - log("*** " & testcasename() & ": FAIL: Anticipated CAM message received BEFORE T_GenCam expired ***"); + log("*** " & testcasename() & ": FAIL: Anticipated CA message received BEFORE T_GenCam expired ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } t_genCam_max.stop; - log("*** " & testcasename() & ": PASS: Anticipated CAM message received ***"); + log("*** " & testcasename() & ": PASS: Anticipated CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] t_genCam_min.timeout { repeat; } [] t_genCam_max.timeout { - log("*** " & testcasename() & ": FAIL: Anticipated CAM message not received ***"); + log("*** " & testcasename() & ": FAIL: Anticipated CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } @@ -2770,7 +3021,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_GFQ_TI_07 + } // End of function f_CAM_MSD_GFQ_TI_07 /** * @desc TP Function for TC_CAM_MSD_GFQ_TI_08 @@ -2798,11 +3049,11 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ tc_ac.stop; - log("*** " & testcasename() & ": INFO: Initial conditions: First CAM message received ***"); + log("*** " & testcasename() & ": INFO: Initial conditions: First CA message received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: Initial conditions: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: Initial conditions: CA message not received ***"); f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_timeout); } } @@ -2813,17 +3064,17 @@ module ItsCam_TpFunctions { [] camPort.receive(mw_camInd ( mw_camMsg_any )){ if ( ( tc_ac.read > c_minTime )) { tc_ac.stop; - log("*** " & testcasename() & ": PASS: CAM message received in time***"); + log("*** " & testcasename() & ": PASS: CA message received in time***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { tc_ac.stop; - log("*** " & testcasename() & ": FAIL: CAM message not received in time***"); + log("*** " & testcasename() & ": FAIL: CA message not received in time***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] tc_ac.timeout { - log("*** " & testcasename() & ": FAIL: CAM message not received ***"); + log("*** " & testcasename() & ": FAIL: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2832,7 +3083,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_GFQ_TI_08 + } // End of function f_CAM_MSD_GFQ_TI_08 } // end group camGenerationFrequency @@ -2867,7 +3118,7 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camIndWithGnParameters(mw_camMsg_any, c_gnNhBtpB)) { tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message encapsultated in BTP-B packet received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message encapsultated in BTP-B packet received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] camPort.receive(mw_camIndWithGnParameters(mw_camMsg_any, omit)) { @@ -2877,11 +3128,11 @@ module ItsCam_TpFunctions { } [] camPort.receive(mw_camInd(mw_camMsg_any)) { tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Expected CAM message received, but not encapsulated in BTP-B packet ***"); + log("*** " & testcasename() & ": FAIL: Expected CA message received, but not encapsulated in BTP-B packet ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2890,7 +3141,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_PAR_BV_01 + } // End of function f_CAM_MSD_PAR_BV_01 /** * @desc TP Function for TC_CAM_MSD_PAR_BV_02 @@ -2922,7 +3173,7 @@ module ItsCam_TpFunctions { alt { [] camPort.receive(mw_camIndWithGnParameters(mw_camMsg_any, -, c_gnHtTsb, c_GnHstSingleHop)) { tc_ac.stop; - log("*** " & testcasename() & ": PASS: Expected CAM message encapsulated in SHB packet received ***"); + log("*** " & testcasename() & ": PASS: Expected CA message encapsulated in SHB packet received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } [] camPort.receive(mw_camIndWithGnParameters(mw_camMsg_any, -, omit, omit)) { @@ -2932,11 +3183,11 @@ module ItsCam_TpFunctions { } [] camPort.receive(mw_camInd(mw_camMsg_any)) { tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Expected CAM message received, but not encapsulated in SHB packet ***"); + log("*** " & testcasename() & ": FAIL: Expected CA message received, but not encapsulated in SHB packet ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2945,7 +3196,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_PAR_BV_02 + } // End of function f_CAM_MSD_PAR_BV_02 /** * @desc TP Function for TC_CAM_MSD_PAR_BV_03 @@ -2981,16 +3232,16 @@ module ItsCam_TpFunctions { f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } if(v_camInd.gnLifetime <= 1000) { - log("*** " & testcasename() & ": PASS: Expected CAM message received encapsulted in GN packet with correct lifetime value ***"); + log("*** " & testcasename() & ": PASS: Expected CA message received encapsulted in GN packet with correct lifetime value ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } else { - log("*** " & testcasename() & ": FAIL: Expected CAM message received encapsulted in GN packet with incorrect lifetime value ***"); + log("*** " & testcasename() & ": FAIL: Expected CA message received encapsulted in GN packet with incorrect lifetime value ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } } [] tc_ac.timeout { - log("*** " & testcasename() & ": INCONC: CAM message not received ***"); + log("*** " & testcasename() & ": INCONC: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_timeout); } } @@ -2999,7 +3250,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_PAR_BV_03 + } // End of function f_CAM_MSD_PAR_BV_03 } // end group camLowerLayerParameters group camGenerationSSP { @@ -3062,11 +3313,11 @@ module ItsCam_TpFunctions { pmw_ssp )) { tc_ac.stop; - log("*** " & testcasename() & ": FAIL: Expected CAM message received ***"); + log("*** " & testcasename() & ": FAIL: Expected CA message received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_error); } [] tc_ac.timeout { - log("*** " & testcasename() & ": PASS: CAM message not received ***"); + log("*** " & testcasename() & ": PASS: CA message not received ***"); f_selfOrClientSyncAndVerdict(c_tbDone, e_success); } } @@ -3075,7 +3326,7 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSD_SSP_BO_XX + } // End of function f_CAM_MSD_SSP_BO_XX function f_CAM_MSD_SSP_BO_01() runs on ItsCam { @@ -3084,11 +3335,11 @@ module ItsCam_TpFunctions { setverdict(inconc); stop; - } // end f_CAM_MSD_SSP_BO_01 + } // End of function f_CAM_MSD_SSP_BO_01 function f_CAM_MSD_SSP_BO_02() runs on ItsCam { - if (not PICS_SPECIALVEHICLECONTAINER and not PICS_PUBLICTRANS) { + if (not PICS_SPECIALVEHICLECONTAINER or not PICS_PUBLICTRANS) { testcase.stop(testcasename() & ": PICS_SPECIALVEHICLECONTAINER and PICS_PUBLICTRANS need to be set to true"); } @@ -3098,11 +3349,11 @@ module ItsCam_TpFunctions { mw_camMsg_SVC ( mw_publicTransport_any ) ); - } // end f_CAM_MSD_SSP_BO_02 + } // End of function f_CAM_MSD_SSP_BO_02 function f_CAM_MSD_SSP_BO_03() runs on ItsCam { - if (not PICS_SPECIALVEHICLECONTAINER and not PICS_SPECIALTRANS) { + if (not PICS_SPECIALVEHICLECONTAINER or not PICS_SPECIALTRANS) { testcase.stop(testcasename() & ": PICS_SPECIALVEHICLECONTAINER and PICS_SPECIALTRANS need to be set to true"); } @@ -3111,7 +3362,99 @@ module ItsCam_TpFunctions { m_setVehicleRole(specialTransport), mw_camMsg_SVC ( mw_specialTransport_any ) ); - } // end f_CAM_MSD_SSP_BO_03 + } // End of function f_CAM_MSD_SSP_BO_03 + + function f_CAM_MSD_SSP_BO_04() runs on ItsCam { + + if (not PICS_SPECIALVEHICLECONTAINER and not PICS_DANGEROUSGOODS) { + testcase.stop(testcasename() + & ": PICS_SPECIALVEHICLECONTAINER and PICS_DANGEROUSGOODS need to be set to true"); + } + + f_CAM_MSD_SSP_BO_XX(PX_CERT_IUT_CAM_04, + m_setVehicleRole(dangerousGoods), + mw_camMsg_SVC ( mw_specialTransport_any ) + ); + } // End of function f_CAM_MSD_SSP_BO_04 + + function f_CAM_MSD_SSP_BO_05() runs on ItsCam { + + if (not PICS_SPECIALVEHICLECONTAINER and not PICS_ROADWORKS) { + testcase.stop(testcasename() + & ": PICS_SPECIALVEHICLECONTAINER and PICS_ROADWORKS need to be set to true"); + } + + f_CAM_MSD_SSP_BO_XX(PX_CERT_IUT_CAM_05, + m_setVehicleRole(roadWork), + mw_camMsg_SVC ( mw_specialTransport_any ) + ); + } // End of function f_CAM_MSD_SSP_BO_05 + + function f_CAM_MSD_SSP_BO_06() runs on ItsCam { + + if (not PICS_SPECIALVEHICLECONTAINER and not PICS_RESCUE) { + testcase.stop(testcasename() + & ": PICS_SPECIALVEHICLECONTAINER and PICS_RESCUE need to be set to true"); + } + + f_CAM_MSD_SSP_BO_XX(PX_CERT_IUT_CAM_06, + m_setVehicleRole(rescue), + mw_camMsg_SVC ( mw_specialTransport_any ) + ); + } // End of function f_CAM_MSD_SSP_BO_06 + + function f_CAM_MSD_SSP_BO_07() runs on ItsCam { + + if (not PICS_SPECIALVEHICLECONTAINER and not PICS_EMERGENCY) { + testcase.stop(testcasename() + & ": PICS_SPECIALVEHICLECONTAINER and PICS_EMERGENCY need to be set to true"); + } + + f_CAM_MSD_SSP_BO_XX(PX_CERT_IUT_CAM_07, + m_setVehicleRole(emergency), + mw_camMsg_SVC ( mw_specialTransport_any ) + ); + } // End of function f_CAM_MSD_SSP_BO_07 + + function f_CAM_MSD_SSP_BO_08() runs on ItsCam { + + if (not PICS_SPECIALVEHICLECONTAINER and not PICS_SAFETY_CAR) { + testcase.stop(testcasename() + & ": PICS_SPECIALVEHICLECONTAINER and PICS_SAFETY_CAR need to be set to true"); + } + + f_CAM_MSD_SSP_BO_XX(PX_CERT_IUT_CAM_08, + m_setVehicleRole(safetyCar), + mw_camMsg_SVC ( mw_specialTransport_any ) + ); + } // End of function f_CAM_MSD_SSP_BO_08 + + function f_CAM_MSD_SSP_BO_15() runs on ItsCam { + + if (not PICS_RELEASE2 or not PICS_EXTENSIONSCONTAINER) { + testcase.stop(testcasename() + & ": PICS_RELEASE2 and PICS_EXTENSIONSCONTAINER need to be set to true"); + } + + f_CAM_MSD_SSP_BO_XX(PX_CERT_IUT_CAM_15, + m_setStationType(StationType_motorcycle_), + mw_camMsg_ext_two_wheelers_container_any + ); + } // End of function f_CAM_MSD_SSP_BO_15 + + function f_CAM_MSD_SSP_BO_16() runs on ItsCam { + + if (not PICS_RELEASE2 or not PICS_EXTENSIONSCONTAINER) { + testcase.stop(testcasename() + & ": PICS_RELEASE2 and PICS_EXTENSIONSCONTAINER need to be set to true"); + } + + f_CAM_MSD_SSP_BO_XX(PX_CERT_IUT_CAM_16, + m_setStationType(StationType_cyclist_), + mw_camMsg_ext_two_wheelers_container_any + ); + } // End of function f_CAM_MSD_SSP_BO_16 + } } // end group camSSP @@ -3172,13 +3515,13 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSP_BV_01 + } // End of function f_CAM_MSP_BV_01 group camProcessingSSP{ /** * @desc TP Function for TC_CAM_MSP_SSP_BV_XX - * @param p_certName Certificate to be used to sign the CAM message + * @param p_certName Certificate to be used to sign the CA message * @param p_camMsg CAM value template to be sent to IUT * @param p_discarded Set to true if the message shallbe discarded */ @@ -3247,14 +3590,14 @@ module ItsCam_TpFunctions { f_poDefault(); f_cfDown(); - } // end f_CAM_MSP_SSP_BV_XX + } // End of function f_CAM_MSP_SSP_BV_XX function f_CAM_MSP_SSP_BV_01() runs on ItsCam { log("*** " & testcasename() & ": This TC is not implemented yet ***"); setverdict(inconc); stop; - } // end f_CAM_MSP_SSP_BV_01 + } // End of function f_CAM_MSP_SSP_BV_01 function f_CAM_MSP_SSP_BV_02() runs on ItsCam { @@ -3265,7 +3608,7 @@ module ItsCam_TpFunctions { m_tsPosition ) ); - } // end f_CAM_MSP_SSP_BV_03 + } // End of function f_CAM_MSP_SSP_BV_03 function f_CAM_MSP_SSP_BV_03() runs on ItsCam { @@ -3276,7 +3619,7 @@ module ItsCam_TpFunctions { m_tsPosition ) ); - } // end f_CAM_MSP_SSP_BV_03 + } // End of function f_CAM_MSP_SSP_BV_03 }// end group camProcessingSSP } // end group camMessageProcessing diff --git a/lib/LibItsCam_Pics.ttcn b/lib/LibItsCam_Pics.ttcn index 839a7a7..bba11b3 100644 --- a/lib/LibItsCam_Pics.ttcn +++ b/lib/LibItsCam_Pics.ttcn @@ -17,76 +17,88 @@ module LibItsCam_Pics { group camPics { /** - * @desc Is the IUT RSU? + * @desc Does the IUT support CAMv2? * @see ETSI TS 102 868-1 Table A.1 */ + modulepar boolean PICS_RELEASE2 := true; + + /** + * @desc Is the IUT RSU? + * @see ETSI TS 102 868-1 Table A.2 + */ modulepar boolean PICS_RSU := false; /** * @desc Is the IUT running in secured mode? - * @see ETSI TS 102 868-1 Table A.1 + * @see ETSI TS 102 868-1 Table A.7 */ modulepar boolean PICS_IS_IUT_SECURED := false; /** * @desc Is IUT a public transport vehicle - * @see ETSI TS 102 868-1 Table A.2 + * @see ETSI TS 102 868-1 Table A.4 */ modulepar boolean PICS_PUBLICTRANS := false; /** * @desc Is IUT a special transport vehicle - * @see ETSI TS 102 868-1 Table A.2 + * @see ETSI TS 102 868-1 Table A.4 */ modulepar boolean PICS_SPECIALTRANS := false; /** * @desc Is IUT a dangerous goods vehicle - * @see ETSI TS 102 868-1 Table A.2 + * @see ETSI TS 102 868-1 Table A.4 */ modulepar boolean PICS_DANGEROUSGOODS := false; /** * @desc Is IUT a road works vehicle - * @see ETSI TS 102 868-1 Table A.2 + * @see ETSI TS 102 868-1 Table A.4 */ modulepar boolean PICS_ROADWORKS := false; /** * @desc Is IUT a rescue vehicle - * @see ETSI TS 102 868-1 Table A.2 + * @see ETSI TS 102 868-1 Table A.4 */ modulepar boolean PICS_RESCUE := false; /** * @desc Is IUT an emergency vehicle - * @see ETSI TS 102 868-1 Table A.2 + * @see ETSI TS 102 868-1 Table A.4 */ modulepar boolean PICS_EMERGENCY := false; /** * @desc Is IUT a safety car vehicle - * @see ETSI TS 102 868-1 Table A.2 + * @see ETSI TS 102 868-1 Table A.4 */ modulepar boolean PICS_SAFETY_CAR := false; /** * @desc Does IUT support 'specialVehicleContainer' in CamParameters? - * @see ETSI TS 102 868-1 Table A.2 + * @see ETSI TS 102 868-1 Table A.4 */ modulepar boolean PICS_SPECIALVEHICLECONTAINER := true; + /** + * @desc Does IUT support 'extensionsContainer' in CamParameters? + * @see ETSI TS 102 868-1 Table A.5 + */ + modulepar boolean PICS_EXTENSIONSCONTAINER := true; + /** * @desc Maximum time interval between CAM generations (in seconds). * Default value, as per base standard: 1.0s - * @see ETSI TS 102 868-1 Table A.5 + * @see ETSI TS 102 868-1 Table A.8 */ modulepar float PICS_T_GENCAMMAX := 1.000; /** * @desc Minimum time interval between CAM generations (in seconds). * Default value, as per base standard: 0.1s - * @see ETSI TS 102 868-1 Table A.5 + * @see ETSI TS 102 868-1 Table A.8 */ modulepar float PICS_T_GENCAMMIN := 0.100; @@ -95,19 +107,19 @@ module LibItsCam_Pics { * according to the requirements of the * Decentralized Congestion Control(DCC). * Default value, as per base standard: 0.1s - * @see ETSI TS 102 868-1 Table A.5 + * @see ETSI TS 102 868-1 Table A.8 */ modulepar float PICS_T_GENCAMDCC := 0.100; /** * @desc Support for CAM generation - * @see ETSI TS 102 868-1 Table A.3 + * @see ETSI TS 102 868-1 Table A.6 */ modulepar boolean PICS_CAM_GENERATION := true; /** * @desc Support for CAM reception - * @see ETSI TS 102 868-1 Table A.3 + * @see ETSI TS 102 868-1 Table A.6 */ modulepar boolean PICS_CAM_RECEPTION := true; diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index e9f2fd7..9ff1c0f 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -37,7 +37,7 @@ module LibItsCam_Templates { * @param p_camMsg Expected CAM Message */ template CamInd mw_camInd ( - in template (present) CAM p_camMsg + template (present) CAM p_camMsg ) := { msgIn := p_camMsg, recvTime := ?, @@ -62,7 +62,7 @@ module LibItsCam_Templates { * @param p_gnTrafficClass GN traffic class value */ template CamInd mw_camIndWithGnParameters ( - in template (present) CAM p_camMsg, + template (present) CAM p_camMsg, in template UInt8 p_gnNextHeader := *, in template UInt8 p_gnHeaderType := *, in template UInt8 p_gnHeaderSubtype := *, @@ -98,7 +98,7 @@ module LibItsCam_Templates { * @param p_btpInfo BTP destination port info value (if BTP-B) or BTP source port value (if BTP-A) */ template CamInd mw_camIndWithBtpParameters ( - in template (present) CAM p_camMsg, + template (present) CAM p_camMsg, in template UInt16 p_btpDestinationPort := *, in template UInt16 p_btpInfo := * ) modifies mw_camInd := { @@ -196,6 +196,14 @@ module LibItsCam_Templates { setVehicleRole := p_vehicleRole } + /** + * @desc Set the station type + * @param p_stationType The station type + */ + template (value) UtCamTrigger m_setStationType(StationType p_stationType) := { + setStationType := p_stationType + } + /** * @desc Set the dangerous good description * @param p_dangerousGoods The dangerous good description @@ -454,7 +462,7 @@ module LibItsCam_Templates { * @param p_extLights The exterior lights */ template(present) BasicVehicleContainerLowFrequency mw_LF_BV_extLights( - in template (present) ExteriorLights p_extLights + template (present) ExteriorLights p_extLights ) modifies mw_LF_BV_any := { exteriorLights := p_extLights @@ -484,7 +492,7 @@ module LibItsCam_Templates { * @param p_specialVehicleContainer The expected specialVehicleContainer */ template (present) CAM mw_camMsg_SVC( - in template (present) SpecialVehicleContainer p_specialVehicleContainer + template (present) SpecialVehicleContainer p_specialVehicleContainer ) modifies mw_camMsg_SVC_any := { cam := { camParameters := { @@ -493,6 +501,62 @@ module LibItsCam_Templates { } } + template (present) CAM mw_camMsg_ext_two_wheelers_container_any( + template (present) TwoWheelerContainer p_twoWheelerContainer := ? + ) modifies mw_camMsg_SVC_any := { + cam := { + camParameters := { + extensionContainers := + { + *, + { + containerId := twoWheelerContainer, + containerData := { TwoWheelerContainer := p_twoWheelerContainer } + }, + * + } + } + } + } + + template (present) CAM mw_camMsg_ext_location_sharing_container_any( + template (present) EHorizonLocationSharingContainer p_eHorizonLocationSharingContainer := ? + ) modifies mw_camMsg_SVC_any := { + cam := { + camParameters := { + extensionContainers := + { + *, + { + containerId := eHorizonLocationSharingContainer, + containerData := { EHorizonLocationSharingContainer := p_eHorizonLocationSharingContainer } + }, + * + } + } + } + } + + template (present) CAM mw_camMsg_ext_low_frequency_container_any( + template (present) VeryLowFrequencyContainer p_veryLowFrequencyContainer := ? + ) modifies mw_camMsg_any := { + cam := { + camParameters := { + basicContainer := ?, + highFrequencyContainer := ?, + extensionContainers := + { + *, + { + containerId := veryLowFrequencyContainer, + containerData := { VeryLowFrequencyContainer := p_veryLowFrequencyContainer } + }, + * + } + } + } + } + /** * @desc Receive template for specialVehicleContainer public transport */ diff --git a/lib/LibItsCam_TypesAndValues.ttcn b/lib/LibItsCam_TypesAndValues.ttcn index e703671..a82e76d 100644 --- a/lib/LibItsCam_TypesAndValues.ttcn +++ b/lib/LibItsCam_TypesAndValues.ttcn @@ -23,6 +23,7 @@ module LibItsCam_TypesAndValues { const float c_lowFrequencyGenerationTime := 0.5; //500 ms const float c_specialVehicleGenerationTime := 0.5; //500 ms + const float c_veryLowFrequencyGenerationTime := 10.0; //10 s const AccelerationControl c_accCtrlIdle := '0000000'B; @@ -56,6 +57,19 @@ module LibItsCam_TypesAndValues { const charstring PX_CERT_IUT_CAM_02 := "CERT_IUT_CAM_BO_02_AT"; const charstring PX_CERT_IUT_CAM_03 := "CERT_IUT_CAM_BO_03_AT"; + const charstring PX_CERT_IUT_CAM_04 := "CERT_IUT_CAM_BO_04_AT"; + const charstring PX_CERT_IUT_CAM_05 := "CERT_IUT_CAM_BO_05_AT"; + const charstring PX_CERT_IUT_CAM_06 := "CERT_IUT_CAM_BO_06_AT"; + const charstring PX_CERT_IUT_CAM_07 := "CERT_IUT_CAM_BO_07_AT"; + const charstring PX_CERT_IUT_CAM_08 := "CERT_IUT_CAM_BO_08_AT"; + const charstring PX_CERT_IUT_CAM_09 := "CERT_IUT_CAM_BO_09_AT"; + const charstring PX_CERT_IUT_CAM_10 := "CERT_IUT_CAM_BO_10_AT"; + const charstring PX_CERT_IUT_CAM_11 := "CERT_IUT_CAM_BO_11_AT"; + const charstring PX_CERT_IUT_CAM_12 := "CERT_IUT_CAM_BO_12_AT"; + const charstring PX_CERT_IUT_CAM_13 := "CERT_IUT_CAM_BO_13_AT"; + const charstring PX_CERT_IUT_CAM_14 := "CERT_IUT_CAM_BO_14_AT"; + const charstring PX_CERT_IUT_CAM_15 := "CERT_IUT_CAM_BO_15_AT"; + const charstring PX_CERT_IUT_CAM_16 := "CERT_IUT_CAM_BO_16_AT"; } -- GitLab From a9f066064922e0c062b3a439cbd714f7f5a8b76a Mon Sep 17 00:00:00 2001 From: garciay Date: Wed, 12 Feb 2025 10:25:12 +0100 Subject: [PATCH 24/28] Editorial changes --- lib/LibItsCam_Templates.ttcn | 2 +- lib/asn1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index 9ff1c0f..ededa4a 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -77,7 +77,7 @@ module LibItsCam_Templates { }; /** - * @desc Receive template for CA Message (DenmPort Primitive) + * @desc Receive template for CA Message (CamPort Primitive) * @param p_caMsg The expected CA Message * @param p_ssp SSP security parameter * @param p_its_aid ITS-AID value diff --git a/lib/asn1 b/lib/asn1 index 8b6efe7..822615a 160000 --- a/lib/asn1 +++ b/lib/asn1 @@ -1 +1 @@ -Subproject commit 8b6efe773f68b0824975af612ee764f5465e7bc3 +Subproject commit 822615ab131d6dc3548bbbad58aea62df46d97e0 -- GitLab From ab268c681dd7dc448661a6754dcdfcb3f4d0e909 Mon Sep 17 00:00:00 2001 From: garciay Date: Thu, 27 Mar 2025 17:09:54 +0100 Subject: [PATCH 25/28] Add missing field in template --- lib/LibItsCam_Templates.ttcn | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index ededa4a..48b2456 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -672,7 +672,8 @@ module LibItsCam_Templates { } }, lowFrequencyContainer := omit, - specialVehicleContainer := omit + specialVehicleContainer := omit, + extensionContainers := omit } } }; // End of template m_camMsg_vehicle_HF_BV -- GitLab From b8c1b4afe44467d24a64eb91e892e37e5bac9c9e Mon Sep 17 00:00:00 2001 From: garciay Date: Wed, 21 May 2025 14:13:19 +0200 Subject: [PATCH 26/28] Add missing field in template --- lib/LibItsCam_Templates.ttcn | 15 ++++++++++----- lib/asn1 | 2 +- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/LibItsCam_Templates.ttcn b/lib/LibItsCam_Templates.ttcn index 48b2456..480845c 100644 --- a/lib/LibItsCam_Templates.ttcn +++ b/lib/LibItsCam_Templates.ttcn @@ -271,7 +271,8 @@ module LibItsCam_Templates { }, highFrequencyContainer := ?, lowFrequencyContainer := *, - specialVehicleContainer := * + specialVehicleContainer := *, + extensionContainers := * } } } @@ -295,7 +296,8 @@ module LibItsCam_Templates { basicVehicleContainerHighFrequency := p_basicVehicleContainer }, lowFrequencyContainer := *, - specialVehicleContainer := * + specialVehicleContainer := *, + extensionContainers := * } } } @@ -421,7 +423,8 @@ module LibItsCam_Templates { basicContainer := ?, highFrequencyContainer := ?, lowFrequencyContainer := ?, - specialVehicleContainer := * + specialVehicleContainer := *, + extensionContainers := * } } } @@ -441,7 +444,8 @@ module LibItsCam_Templates { lowFrequencyContainer := { basicVehicleContainerLowFrequency := p_basicVehicleContainer }, - specialVehicleContainer := * + specialVehicleContainer := *, + extensionContainers := * } } } @@ -482,7 +486,8 @@ module LibItsCam_Templates { basicContainer := ?, highFrequencyContainer := ?, lowFrequencyContainer := *, - specialVehicleContainer := ? + specialVehicleContainer := ?, + extensionContainers := * } } } diff --git a/lib/asn1 b/lib/asn1 index 822615a..fb39a9a 160000 --- a/lib/asn1 +++ b/lib/asn1 @@ -1 +1 @@ -Subproject commit 822615ab131d6dc3548bbbad58aea62df46d97e0 +Subproject commit fb39a9aa555303183fa0159bbc2d9f217e6033b3 -- GitLab From baaf7a9055d9fdab1d31df03ac9b54c53c13c4b2 Mon Sep 17 00:00:00 2001 From: garciay Date: Tue, 8 Jul 2025 08:49:46 +0200 Subject: [PATCH 27/28] Update README with version 2.1.1 --- README.md | 2 +- lib/LibItsCam_Pics.ttcn | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a7ba876..f4290b6 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Cooperative Awareness Message TTCN-3 test suite -Cooperative Awareness Message abstract test suite (ATS) as defined in [ETSI TS 102 868-3 v1.5.1](https://www.etsi.org/deliver/etsi_ts/102800_102899/10286803/01.05.01_60/ts_10286803v010501p.pdf) +Cooperative Awareness Message abstract test suite (ATS) as defined in [ETSI TS 102 868-3 v2.1.1](https://www.etsi.org/deliver/etsi_ts/102800_102899/10286803/01.05.01_60/ts_10286803v010501p.pdf) This code is a part of the ETSI ITS test suite, available on https://forge.etsi.org/rep/ITS/TS.ITS and cannot be run independently. Please clone the main ETSI ITS test suite repository and compile and follow the compilation instructions. diff --git a/lib/LibItsCam_Pics.ttcn b/lib/LibItsCam_Pics.ttcn index bba11b3..6a803e9 100644 --- a/lib/LibItsCam_Pics.ttcn +++ b/lib/LibItsCam_Pics.ttcn @@ -84,9 +84,45 @@ module LibItsCam_Pics { /** * @desc Does IUT support 'extensionsContainer' in CamParameters? - * @see ETSI TS 102 868-1 Table A.5 + * @see ETSI TS 102 868-1 Table A.5/1 */ modulepar boolean PICS_EXTENSIONSCONTAINER := true; + + /** + * @desc Does IUT support 'extensionsContainer' in CamParameters? + * @see ETSI TS 102 868-1 Table A.5/2 + */ + modulepar boolean PICS_GENERALIZEDLANEPOSITIONSCONTAINER := true; + + /** + * @desc Does IUT support 'extensionsContainer' in CamParameters? + * @see ETSI TS 102 868-1 Table A.5/3 + */ + modulepar boolean PICS_PATHPREDICTIONCONTAINER := true; + + /** + * @desc Does IUT support 'extensionsContainer' in CamParameters? + * @see ETSI TS 102 868-1 Table A.5/4 + */ + modulepar boolean PICS_TWOWHEELERCONTAINER := true; + + /** + * @desc Does IUT support 'extensionsContainer' in CamParameters? + * @see ETSI TS 102 868-1 Table A.5/5 + */ + modulepar boolean PICS_EHORIZONLOCATIONSHARINGCONTAINER := true; + + /** + * @desc Does IUT support 'extensionsContainer' in CamParameters? + * @see ETSI TS 102 868-1 Table A.5/6 + */ + modulepar boolean PICS_GENERALIZEDLANEPOSITIONSCONTAINER := true; + + /** + * @desc Does IUT support 'extensionsContainer' in CamParameters? + * @see ETSI TS 102 868-1 Table A.5/7 + */ + modulepar boolean PICS_VEHICLEMOVEMENTCONTROLCONTAINER := true; /** * @desc Maximum time interval between CAM generations (in seconds). -- GitLab From d551da8d04f9ac7066ece452f99d1e61ea778fc7 Mon Sep 17 00:00:00 2001 From: garciay Date: Tue, 8 Jul 2025 08:57:18 +0200 Subject: [PATCH 28/28] Remove duplicated PICS --- lib/LibItsCam_Pics.ttcn | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lib/LibItsCam_Pics.ttcn b/lib/LibItsCam_Pics.ttcn index 6a803e9..d33ddf3 100644 --- a/lib/LibItsCam_Pics.ttcn +++ b/lib/LibItsCam_Pics.ttcn @@ -116,12 +116,6 @@ module LibItsCam_Pics { * @desc Does IUT support 'extensionsContainer' in CamParameters? * @see ETSI TS 102 868-1 Table A.5/6 */ - modulepar boolean PICS_GENERALIZEDLANEPOSITIONSCONTAINER := true; - - /** - * @desc Does IUT support 'extensionsContainer' in CamParameters? - * @see ETSI TS 102 868-1 Table A.5/7 - */ modulepar boolean PICS_VEHICLEMOVEMENTCONTROLCONTAINER := true; /** -- GitLab