/** * @author ETSI / STF405 * @version $URL$ * $Id$ * @desc Module containing type and value definitions for DENM * */ module LibItsDenm_TypesAndValues { //LibIts import from DENM_PDU_Descriptions language "ASN.1:1997" all; import from CAM_PDU_Descriptions language "ASN.1:1997" all; group actionTypes { /** * @desc Indication of whether event cancellation has to be raised by the test system or iut */ type enumerated Trigger { e_ets(0), e_iut(1) } } // end group actionTypes group denmConstants { const ItsPduHeader.protocolVersion c_protocolVersionDenm := 0; const ItsPduHeader.messageID c_messageId := 1; const DataVersion c_dataVersionCancellation := 255; group trafficFlowEffects { const TrafficFlowEffect c_tfeTrafficFlowUnknown := 1; const TrafficFlowEffect c_tfeFreeTrafficFlow := 2; const TrafficFlowEffect c_tfeSlowTraffic := 3; const TrafficFlowEffect c_tfeHeavyTraffic := 4; const TrafficFlowEffect c_tfeQueuingTraffic := 5; const TrafficFlowEffect c_tfeStationaryTraffic := 6; const TrafficFlowEffect c_tfeNoTrafficFlow := 7; } // end group causeCodes /** * @remark check this values */ group causeCodes { const DENM_PDU_Descriptions.CauseCode c_causeReserved := 0; const DENM_PDU_Descriptions.CauseCode c_causeTrafficJam := 1; const DENM_PDU_Descriptions.CauseCode c_causeAccident := 2; const DENM_PDU_Descriptions.CauseCode c_causeRoadWork := 3; const DENM_PDU_Descriptions.CauseCode c_causeHazardousDrivingCondition := 25; const DENM_PDU_Descriptions.CauseCode c_causeWrongWayDriving := 35; const DENM_PDU_Descriptions.CauseCode c_causeRescueOnTheWay := 36; const DENM_PDU_Descriptions.CauseCode c_causeExtremWeatherCondition := 42; const DENM_PDU_Descriptions.CauseCode c_causeVisibilityReduced := 43; const DENM_PDU_Descriptions.CauseCode c_causePrecipitation := 45; const DENM_PDU_Descriptions.CauseCode c_causeSlowVehicle := 62; const DENM_PDU_Descriptions.CauseCode c_causeDangerousDriving := 101; const DENM_PDU_Descriptions.CauseCode c_causeIntersectionViolation := 102; const DENM_PDU_Descriptions.CauseCode c_causeVehicleProblem := 103; const DENM_PDU_Descriptions.CauseCode c_causeIntersectionCollision := 104; const DENM_PDU_Descriptions.CauseCode c_causeHazardousLocation := 105; } // end group causeCodes /** * @remark check this values */ group subCauseCodes { const SubCauseCode c_subCauseUnknown := 0; const SubCauseCode c_subCauseHardBrakeVehicle := 1; const SubCauseCode c_subCauseStopSignViolation := 1; const SubCauseCode c_subCauseTrafficLightViolation := 2; const SubCauseCode c_subCauseTurningRegulationViolation := 3; const SubCauseCode c_subCauseBrakeDownVehicle := 1; const SubCauseCode c_subCauseVehicleSpeedReducedWithSafetyLightsOn := 2; const SubCauseCode c_subCauseLeftTurnCollisionRisk := 1; const SubCauseCode c_subCauseRightTurnCollisionRisk := 2; const SubCauseCode c_subCauseCrossingCollisionRisk := 3; const SubCauseCode c_subCauseMergingCollisionRisk := 4; const SubCauseCode c_subCauseDangerousCurve := 1; const SubCauseCode c_subCauseObstacleOnTheRoad := 2; const SubCauseCode c_subCauseHeavyRain := 1; const SubCauseCode c_subCauseHeavySnow := 2; const SubCauseCode c_subCauseStrongSideWind := 1; const SubCauseCode c_subCauseStrongWindFromBack := 2; const SubCauseCode c_subCauseLowRoadAdhesion := 1; const SubCauseCode c_subCauseBlackIce := 2; const SubCauseCode c_subCauseBadVisibilityDueToFrost := 1; const SubCauseCode c_subCauseBadVisibilityDueToStorm := 4; const SubCauseCode c_subCauseEmergencyVehicle := 1; const SubCauseCode c_subCauseMedicalAssistanceVahicle := 2; } // end group subCauseCodes } // end group denmConstants group denmTimeConstants { // in milliseconds const TimeStamp c_duration20000ms := 20000; const TimeStamp c_duration40000ms := 40000; const float c_eventFrequencyMultiplier := 0.1; } // end denmTimeConstants group utPrimitives { /** * @desc Upper Tester message to initialize DENM IUT */ type record UtDenmInitialize { } /** * @desc Upper Tester message to trigger an action on DENM IUT */ type record UtDenmTrigger { UtDenmEvent utEvent } /** * @desc Upper Tester message to check event/status on DENM IUT */ type record UtDenmCheck { UtDenmEvent utEvent } /** * @desc DENM Upper Tester response message */ type boolean UtDenmResult; /** * @desc Upper Tester message describing a DENM action/event */ type record UtDenmEvent { Situation situation, EventOption eventOption optional } /** * @desc Upper Tester options for DENM action/event */ type union EventOption { ActionID eventCancellation, ActionID eventNegation, TrafficFlowEffect eventTrafficFlowEffect, Situation eventLinkedCause, TimeStamp eventExpirationTime, EventTimeFrequency eventExpirationTimeFrequency, DecentralizedSituation.eventCharact eventCharact } /** * @desc Upper Tester time/frequency option for DENM action/event */ type record EventTimeFrequency { TimeStamp expirationTime, DecentralizedSituationManagement.frequency frequency } } // end utPrimitives } with { encode "LibItsDenm_TypesAndValues" }