module test_LibItsCam_TypesAndValues /*language "TTCN-3:2009 Advanced Parameterization"*/ { // 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_TypesAndValues all; // AtsCam import from LibItsCam_TestSystem all; import from LibItsCam_Templates all; import from LibItsCam_TypesAndValues all; import from LibItsCam_Functions all; import from LibItsCommon_Functions all; import from test_CommonCodec all; group LibItsCam_testCases { group camTemplates { template (value) CAM m_camMsg( StationID p_stationId, GenerationDeltaTime p_generationTime ) := { header := { protocolVersion := 1, messageID := 2, stationID := p_stationId }, cam := { generationDeltaTime := p_generationTime, camParameters := { basicContainer := { stationType := c_stationType_passengerCar, referencePosition := { latitude := f_integer2Latitude(f_getTsLatitude()), longitude := f_integer2Longitude(f_getTsLongitude()), positionConfidenceEllipse := { semiMajorConfidence := c_semiAxisLengthOneCentimeter, semiMinorConfidence := c_semiAxisLengthOneCentimeter, semiMajorOrientation := c_headingValue_wgs84North }, altitude := { altitudeValue := c_altitudeValue_seaLevel, altitudeConfidence := unavailable } } }, highFrequencyContainer := { basicVehicleContainerHighFrequency := { heading := { headingValue := c_headingValue_wgs84North, //0 headingConfidence := 10 }, speed := { speedValue := 45, speedConfidence := 5 }, driveDirection := forward, vehicleLength := { vehicleLengthValue := 50, vehicleLengthConfidenceIndication := noTrailerPresent }, vehicleWidth := 21, longitudinalAcceleration := { longitudinalAccelerationValue := c_longitudinalAccelerationValue_unavailable, longitudinalAccelerationConfidence := c_accelerationConfidence_unavailable }, curvature := { curvatureValue := c_curvatureValue_straight, curvatureConfidence := unavailable }, curvatureCalculationMode := yawRateUsed, yawRate := { yawRateValue := c_yawRateValue_straight, yawRateConfidence := unavailable }, accelerationControl := omit, lanePosition := omit, steeringWheelAngle := omit, lateralAcceleration := omit, verticalAcceleration := omit, performanceClass := omit, cenDsrcTollingZone := omit } }, lowFrequencyContainer := omit, specialVehicleContainer := omit } } }; } // End of group camTemplates group testUtEvent { testcase tc_UtCamInitialize() runs on TCType system TCType { test_PDU(m_camInitialize, false); } testcase tc_changeHeading() runs on TCType system TCType { test_PDU(m_changeHeading(5), false); } testcase tc_changePosition() runs on TCType system TCType { test_PDU( m_changePosition( UtChangePosition: { latitude := 49845, longitude := 631, elevation := 512 } ), false); } testcase tc_changeSpeed() runs on TCType system TCType { test_PDU(m_changeSpeed(2), false); } // testcase tc_setCrashSignal() runs on TCType system TCType { // test_PDU(m_setCrashSignal(c_activated), false); // } // // testcase tc_setDangerousGoodsStatus() runs on TCType system TCType { // test_PDU(m_setDangerousGoodsStatus(8191), false); // } // // testcase tc_setLengthWidthPrecision() runs on TCType system TCType { // test_PDU(m_setLengthWidthPrecision(c_precisely), false); // } // // testcase tc_setDistanceToStopLine() runs on TCType system TCType { // test_PDU(m_setDistanceToStopLine(65535), false); // } // // testcase tc_setTurnAdvice() runs on TCType system TCType { // test_PDU(m_setTurnAdvice({ f_bitPositionRandom(7), 65535 }), false); // } // // testcase tc_changeCurvature() runs on TCType system TCType { // test_PDU(m_changeCurvature(-1023), false); // } // // testcase tc_setOccupancy() runs on TCType system TCType { // test_PDU(m_setOccupancy(255), false); // } // // testcase tc_setDoorStatus() runs on TCType system TCType { // test_PDU(m_setDoorStatus(c_driverDoor), false); // } // // testcase tc_setLightBarStatus() runs on TCType system TCType { // test_PDU(m_setLightBarStatus(unavailable), false); // } // // testcase tc_setSireneStatus() runs on TCType system TCType { // test_PDU(m_setSireneStatus(engaged), false); // } // // testcase tc_setTrafficLightPriority() runs on TCType system TCType { // test_PDU(m_setTrafficLightPriority(7), false); // } // // testcase tc_setScheduleDeviation() runs on TCType system TCType { // test_PDU(m_setScheduleDeviation(-900), false); // } // // testcase tc_setPtLineDescription() runs on TCType system TCType { // test_PDU(m_setPtLineDescription(PTLineDescription:{"CourseOfJourney", "LineRef", "RouteRef"}), false); // } // // testcase tc_setExteriorLightsStatus() runs on TCType system TCType { // test_PDU(m_setExteriorLightsStatus(c_lowBeamHeadlightsOn), false); // } // // testcase tc_checkLdmBasic() runs on TCType system TCType { // test_PDU(m_checkLdm(m_camMsg_irs ( // 28147497, // 42949, // { true, true, true }, // { // longitude := {hemisphere := east, degree := 0}, // latitude := {hemisphere := north, degree := 0}, // elevation := 0, // heading := omit, // streetName := omit, // positionConfidence := omit, // elevationConfidence := omit, // roadSegmentID :=0 // } // )), false); // } // testcase tc_checkLdmFull_BasicVehicle() runs on TCType system TCType { // test_PDU(m_checkLdm(m_camMsg_valid_With_Parameters( // 28147495, // 42946, // { true, true, true }, // { // longitude := {hemisphere := east, degree := 0}, // latitude := {hemisphere := north, degree := 0}, // elevation := 1530, // heading := 95, // streetName := "Street name", // positionConfidence := 15, // elevationConfidence := 14, // roadSegmentID :=0 // }, // End of ReferencePosition // { // vehicleType := 3, // stationLength := 1456, // stationLengthConfidence := 9, // stationWidth := 125, // stationWidthConfidence := 11, // vehicleSpeed := 55, // vehicleSpeedConfidence := 13, // longAcceleration := -500, // longAccelerationConfidence := 12, // accelerationControl := '001000'B, // yawRate := { // yawDirection := right, // yawRateValue := 16584 // }, // yawRateConfidence := 11, // exteriorLights := '00100000'B, // turnAdvice := { // direction := '00000100'B, // distance := 4556 // }, // distanceToStopLine := 150, // occupancy := 57, // doorOpen := '0001'B, // posConfidenceEllipse := { // semiMajorConfidence := 7, // semiMinorConfidence := 9, // semiMajorOrientation := 11 // }, // curvature := -156, // curvatureChange := 53, // curvatureConfidence := 10, // crashStatus := false, // headingConfidence := 9, // dangerousGoods := 799 // }, // End of VehicleCommonParameters // m_profileParameters_BasicVehicle // )), false); // } // // testcase tc_checkLdmFull_PublicVehicle() runs on TCType system TCType { // test_PDU(m_checkLdm(m_camMsg_valid_With_Parameters( // 1307531915453, // 111111, // { true, true, true }, // { // longitude := { // hemisphere := east, // degree := 0 // }, // latitude := { // hemisphere := north, // degree := 0 // }, // elevation := 0, // heading := 0, // streetName := omit, // positionConfidence := omit, // elevationConfidence := omit, // roadSegmentID := omit // }, // End of ReferencePosition // { // vehicleType := 0, // stationLength := 0, // stationLengthConfidence := 0, // stationWidth := 0, // stationWidthConfidence := 0, // vehicleSpeed := 0, // vehicleSpeedConfidence := 0, // longAcceleration := 0, // longAccelerationConfidence := 0, // accelerationControl := '000000'B, // yawRate := { // yawDirection := right, // yawRateValue := 0 // }, // yawRateConfidence := 0, // exteriorLights := '00000000'B, // turnAdvice := omit, // distanceToStopLine := omit, // occupancy := omit, // doorOpen := omit, // posConfidenceEllipse := { // semiMajorConfidence := 0, // semiMinorConfidence := 0, // semiMajorOrientation := 0 // }, // curvature := 0, // curvatureChange := omit, // curvatureConfidence := 0, // crashStatus := omit, // headingConfidence := 0, // dangerousGoods := omit // }, // End of VehicleCommonParameters // m_profileParameters_BasicVehicle // )), false); // } // // testcase tc_checkLdmFull_Paris() runs on TCType system TCType { // test_PDU(m_checkLdm(m_camMsg_irs ( // 5434534, // 5424, // { true, false, true }, // { // longitude := {hemisphere := east, degree := 200000000}, // latitude := {hemisphere := north, degree := 480000000}, // elevation := 910, // heading := 7200, // streetName := "Montmartre", // positionConfidence := 5, // elevationConfidence := 7, // roadSegmentID := 1234567 // } // )), false); // } // // testcase tc_checkLdmFull_LaPaz() runs on TCType system TCType { // test_PDU(m_checkLdm(m_camMsg_irs ( // 6546424, // 35445334, // { false, false, false }, // { // longitude := {hemisphere := west, degree := 220000000}, // latitude := {hemisphere := south, degree := 270000000}, // elevation := 36600, // heading := 21600, // streetName := "El Alto", // positionConfidence := omit, // elevationConfidence := omit, // roadSegmentID := 3546345 // } // )), false); // } // // template (value) CAM m_camMsg_valid_With_Parameters( // StationID p_stationId, // GenerationDeltaTime p_generationTime, // template (value) ReferencePosition p_referencePosition // ) := { // header := { // protocolVersion := 1, // messageID := 2, // stationID := p_stationId // }, // cam := { // generationDeltaTime := p_generationTime, // camParameters := { // basicContainer := { // stationType := c_stationType_passengerCar, // referencePosition := p_referencePosition // }, // highFrequencyContainer := { // basicVehicleContainerHighFrequency := { // heading := { // headingValue := c_headingValue_wgs84North, //0 // headingConfidence := 10 // }, // speed := { // speedValue := 45, // speedConfidence := 5 // }, // driveDirection := forward, // vehicleLength := { // vehicleLengthValue := 50, // vehicleLengthConfidenceIndication := noTrailerPresent // }, // vehicleWidth := 21, // longitudinalAcceleration := { // longitudinalAccelerationValue := c_longitudinalAccelerationValue_unavailable, // longitudinalAccelerationConfidence := c_accelerationConfidence_unavailable // }, // curvature := { // curvatureValue := c_curvatureValue_straight, // curvatureConfidence := unavailable // }, // curvatureCalculationMode := yawRateUsed, // yawRate := { // yawRateValue := c_yawRateValue_straight, // yawRateConfidence := unavailable // }, // accelerationControl := omit, // steeringWheelAngle := omit, // lateralAcceleration := omit, // verticalAcceleration := omit, // performanceClass := omit // } // }, // lowFrequencyContainer := { // basicVehicleContainerLowFrequency := { // vehicleRole := default_, // exteriorLights := c_exteriorLights_daytimeRunningLightsOn, // pathHistory := {} // } // }, // specialVehicleContainer := omit // } // } // } // // template (value) ProfileParameters m_profileParameters_BasicVehicle := { // basicVehicle := { // } //// emergencyVehicle := { //// lightBarInUse := 2, //// sireneInUse := 3, //// emergencyResponseType := 1 //// } //// publicTransportVehicle := { //// publicVehicleType := 3, //// pTLineDescription := { //// courseOfJourney := "Course Of Journey", //// lineRef := 10, //// routeRef := "Route Ref" //// }, //// ScheduleDeviation scheduleDeviation optional, //// TrafficLightPriority trafficLightPriority optional //// } // End of PublicTransportVehicle // } // End of template m_profileParameters_BasicVehicle // // template (value) ProfileParameters m_profileParameters_EmergencyVehicle := { // emergencyVehicle := { // lightBarInUse := enabled, // sireneInUse := engaged, // emergencyResponseType := rightOfWay // } // } // End of template m_profileParameters_EmergencyVehicle // // template (value) ProfileParameters m_profileParameters_PublicTransportVehicle := { // publicTransportVehicle := { // publicVehicleType := 3, // pTLineDescription := { // courseOfJourney := "Course Of Journey", // lineRef := "Line Ref", // routeRef := "Route Ref" // }, // scheduleDeviation := -200, // trafficLightPriority := 7 // } // } // End of template m_profileParameters_PublicTransportVehicle // } // End of group testUtEvent group testCamPrimitiveMessages { testcase tc_CamReq() runs on TCType system TCType { log("v_camReq=", m_camReq( m_camMsg( f_getTsStationId(), 35000 // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime ) )); log("v_camReq=", bit2oct(encvalue(m_camReq( m_camMsg( f_getTsStationId(), 35000 // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime ) )))); test_PDU( m_camReq( m_camMsg( f_getTsStationId(), 35000 // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime ) ), true, oct2bit('01020001B20788B80059F48D95CDEFC8C5E0020020002461A83C000004805A100C4528399D4C387FFF80'O) ); } testcase tc_encodeCamTemplate() runs on TCType system TCType { var template (value) CamReq v_camReq := m_camReq( m_camMsg_vehicle_HF_BV( f_getTsStationId(), f_getCurrentTime() mod 65536, // See ETSI EN 302 637-2 V1.3.0 - Clause B.3 generationDelatTime m_tsPosition ) ); log("v_camReq=", v_camReq); log("v_camReq=", bit2oct(encvalue(v_camReq))); } } // End of group testCamPrimitiveMessages } // End of group LibItsCam_testCases }