Commit 1f1f74e4 authored by tepelmann's avatar tepelmann
Browse files

Initial commit of STF449:

- moving to EN 302 637-3
- implemented TC_DEN_MSGF_BV_01
parent e75cbb5c
Loading
Loading
Loading
Loading
+129 −413
Original line number Original line Diff line number Diff line
-- This ASN.1 specification has been checked for conformance with the ASN.1 standard by the Objective Systems ASN.1 Tools

DENM-PDU-Descriptions {
DENM-PDU-Descriptions {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2) 
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) denm (1) version (1) 
}
}


DEFINITIONS AUTOMATIC TAGS ::= 
DEFINITIONS AUTOMATIC TAGS ::= 


BEGIN
BEGIN


DenmPdu ::= SEQUENCE {
IMPORTS 
   ItsPduHeader, CauseCode, Percentage, StationID, Movement, InformationQuality, ReferencePosition, DangerousGoodsExtended, Direction, LaneCount, LaneNumber, LightBarSirenInUse, PathHistory, RoadClass, HeightLonCarr, PosLonCarr, PosPillar, PosCentMass, PositioningSolutionType, StationType, SpeedLimit, StationarySince, TimestampIts, WheelBaseVehicle, TurningRadius, PosFrontAx, PositionOfOccupants, Temperature, VehicleMass, VehicleIdentification, EnergyStorageType FROM ITS-Container {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cc (0) version (1) 
};


DENM ::= SEQUENCE {
	header	ItsPduHeader,
	header	ItsPduHeader,
	denm	DecentralizedEnvironmentalNotificationMessage
	denm	DecentralizedEnvironmentalNotificationMessage


@@ -16,398 +20,110 @@ DenmPdu ::= SEQUENCE {


DecentralizedEnvironmentalNotificationMessage ::= SEQUENCE {
DecentralizedEnvironmentalNotificationMessage ::= SEQUENCE {
	
	
	management	DecentralizedSituationManagement,	--  container with DEN management and version control
	management	ManagementContainer,
	situation	DecentralizedSituation,  			-- container with event description, incl. type, severity
	situation	SituationContainer OPTIONAL,
	location	DecentralizedSituationLocation,		-- container with event location, location referencing with more detailed location description and the relevance area
  	location	LocationContainer OPTIONAL,
	
   	alacarte	AlacarteContainer OPTIONAL
	...
}
}


DecentralizedSituationManagement::= SEQUENCE {
ManagementContainer ::= SEQUENCE {
	-- unique identifier about an event from one originator ITS station, combination of node ID and a sequence number
	actionID	ActionID,
	actionID	ActionID,	-- 6 byte
	dataVersion	DataVersion,
	
	detectionTime	TimestampIts,
	-- version of the DENM indicating updates from the same originator ITS station; value of 255 is used for the  cancellation message sent from the originator ITS station
	isNegation	BOOLEAN,
	
	eventPosition	ReferencePosition,
	dataVersion	DataVersion,  	-- 1 byte
	relevanceDistance	RelevanceDistance,
	-- time when the DENM is deleted from the DEN management and the information related to the event is set as invalid.. If it is not provided, it indicates that the expiry time is unkown by the originator ITS station	
	relevanceTrafficDirection RelevanceTrafficDirection,
	expiryTime	TimeStamp  	OPTIONAL, 	-- 6 byte
	validityDuration	ValidityDuration DEFAULT defaultValidity,
	frequency	INTEGER (0..255)	OPTIONAL, 	--units of 0.1 Hz
	transmissionInterval	TransmissionInterval OPTIONAL 
	-- probability of the detected event to  be true, varies  from 0 to 100, with maximum value as full reliability
	reliability	INTEGER(0..100), 	-- 7 bits
	-- negates the existence of an event at the event position by a third part ITS station that have received DENMs previously.		 
	isNegation	BOOLEAN    		-- 1 bit	
}
}


-- event description derived from [3]
SituationContainer ::= SEQUENCE {
DecentralizedSituation::= SEQUENCE {
	informationQuality InformationQuality,
	-- traffic status near the event position, defined based on [3], TPEG table tec001 
	eventType CauseCode,
	trafficFlowEffect 	TrafficFlowEffect	OPTIONAL,	 -- 1 byte. 
	linkedCause CauseCode OPTIONAL
	-- event direct cause and sub cause description as defined in tab6.1 and in [3]
	situation	Situation,
	-- linked cause if information is available.
	linkedCause	Situation		OPTIONAL,	-- 2 Byte, 
	-- severity value of the event, defined in [3], TPEG table tec003			
	severity	Severity,	-- 1 byte
	-- characteristics of the event 
	eventCharact	SEQUENCE -- EventCharact 1 byte 
	{
		-- event mobility description, set to TRUE if the event is in mobility 
		eventmobility	BOOLEAN,
		-- whether the event is caused by the originator ITS station
		causeType   ENUMERATED { itsStation, geographicalRegion },
		-- whether the event is physicalling relevant to the  receiving ITS station.
		relevance ENUMERATED {physicallyRelevant, difficultDrivingConditions },
		-- whether the event is time critical road safety event, set to TRUE if it is the case.
		timeCriticality	BOOLEAN,
		-- more characteristics may be added in future.
		...
	} OPTIONAL,
		
	vehicleCommonParameters	VehicleCommonParameters OPTIONAL,
	profile ProfileParameters    OPTIONAL
}
}


DecentralizedSituationLocation::= SEQUENCE {
LocationContainer ::= SEQUENCE {
	-- description of the event position
	eventSpeed Movement OPTIONAL,
	eventPosition	CHOICE	{
	eventPositionHeading Direction OPTIONAL,
		-- the geographical position of the reference position 
	traces Traces,
		eventPositionCurrentDefinition	EventPosition,
	roadClass RoadClass OPTIONAL
		...
	},
	-- location referencing of the event position
	locationRef	CHOICE {
		-- consequence position of the trace location referencing mechanism
		trace	TraceLocData,
		-- more location referencing mechanism to be added
		...
	},
	...,
	-- description of  the relevance area for the  DENM dissemination
	[[relevanceArea RelevanceArea]]
}
}


EventPosition ::= SEQUENCE {
ImpactReductionContainer ::= SEQUENCE {
		refPosition	ReferencePosition,
  heightLonCarrLeft HeightLonCarr,
		eventSpeed	Speed OPTIONAL	-- event speed, either equal to or different from the vehicle speed
  heightLonCarrRight HeightLonCarr,
  posLonCarrLeft PosLonCarr,
  posLonCarrRight PosLonCarr,
  positionOfPillars PositionOfPillars,
  posCentMass PosCentMass,
  wheelBaseVehicle WheelBaseVehicle,
  turningRadius TurningRadius,
  posFrontAx PosFrontAx,
  positionOfOccupants PositionOfOccupants,
  vehicleMass VehicleMass 
}
}


PositionOfPillars ::= SEQUENCE (SIZE(1..3, ...)) OF PosPillar


ActionID ::= SEQUENCE {
 RoadWorksContainerExtended ::= SEQUENCE {
	stationID 	StationID,	-- a 4 byte value
  lightBarSirenInUse LightBarSirenInUse OPTIONAL,
	sequenceNo 	SequenceNo	-- a 2 byte value
  closedLanes LaneSets OPTIONAL,
  restriction RestrictedTypes OPTIONAL,
  speedLimit SpeedLimit OPTIONAL,
  incidentIndication CauseCode OPTIONAL,
  recommendedPath ItineraryPath OPTIONAL	--Traces without timestamps
 }
 }


Elevation ::= INTEGER (-10000..16767215) -- multiples of 0.1 m
LaneSets ::= SEQUENCE OF LaneNumber

ItsPduHeader ::= SEQUENCE {
	-- protocolVersion fixed to 0
	protocolVersion		INTEGER(0..255),


	-- message type ID associated to CAM = 0, DENM=1
RestrictedTypes ::= SEQUENCE OF StationType
	messageID 		INTEGER(0..255),


	-- milliseconds elapsed since midnight January 1st, 1970 UTC
StationaryVehicleContainer ::= SEQUENCE {
	generationTime	TimeStamp
 stationType StationType,
 stationarySince StationarySince OPTIONAL,
 stationaryCause CauseCode OPTIONAL,
 carryingDangerousGoods DangerousGoodsExtended OPTIONAL,
 numberOfOccupants INTEGER(0..127) OPTIONAL,
 vehicleIdentification VehicleIdentification OPTIONAL,
 energyStorageType EnergyStorageType OPTIONAL
}
}


Latitude ::= SEQUENCE {
  hemisphere ENUMERATED { north (0), south (1) },
  degree  INTEGER (0..900000000) -- multiples of 0.1 microdegree
} 

Longitude ::= SEQUENCE {
  hemisphere ENUMERATED { east (0), west (1) },
  degree  INTEGER (0..1800000000) -- multiples of 0.1 microdegree
}


ReferencePosition ::= SEQUENCE {
AlacarteContainer ::= SEQUENCE {
  longitude Longitude,
	laneCount LaneCount OPTIONAL,
  latitude Latitude,
	impactReduction	ImpactReductionContainer OPTIONAL,
  elevation Elevation,
	externalTemperature Temperature OPTIONAL,
  heading Direction OPTIONAL, --present if mobileItsStation flag is TRUE
	roadWorks RoadWorksContainerExtended OPTIONAL,
  streetName StreetName OPTIONAL,
	positioningSolution PositioningSolutionType OPTIONAL,
  positionConfidence Confidence OPTIONAL, --present if mobileItsStation flag is TRUE
	stationaryVehicle StationaryVehicleContainer OPTIONAL,
  elevationConfidence Confidence OPTIONAL, --present if mobileItsStation flag is TRUE
  roadSegmentID RoadSegmentID OPTIONAL
}

RelevanceArea ::= SEQUENCE {
  geoAreaCenterLatitude Latitude,
  geoAreaCenterLongitude Longitude,
  shape CHOICE {circle Circle, rectangle Rectangle, ellipse Ellipse},
  directionalityFilter DirectionalityFilter OPTIONAL,
  disseminationAreaSize RelativeSize DEFAULT same,
	...
	...
}
}


Circle ::= SEQUENCE {	-- reference EN 302 931
 ActionID ::= SEQUENCE {
 radius Distance
}

Rectangle ::= SEQUENCE {	-- reference EN 302 931
 aSemiAxis Distance,
 bSemiAxis Distance,
 azimuthAngle Direction		-- aSemiAxis directionality
}


Ellipse ::= SEQUENCE {		-- reference EN 302 931
  originatorStationID StationID,
 aSemiAxis Distance,
  sequenceNumber SequenceNumber
 bSemiAxis Distance,
 azimuthAngle Direction		-- aSemiAxis directionality
 }
 }


DirectionalityFilter ::= ENUMERATED { noFilter (0), approachingCenter (1), leavingCenter (2) }
 SequenceNumber ::=	INTEGER (0..65535)

RelativeSize ::= ENUMERATED { same (0), oneAndHalfSize (1), doubleSize (2), tripleSize (3) }


SequenceNo ::=	INTEGER (0..65535)		-- increased by 1 each time a new event is detected by the same ITS  station.


 DataVersion ::= INTEGER {firstVersion(0),secondVersion(1), cancellation(255) } (0..255)
 DataVersion ::= INTEGER {firstVersion(0),secondVersion(1), cancellation(255) } (0..255)


TrafficFlowEffect ::= 	INTEGER (0..7)
 defaultValidity INTEGER ::= 600

Situation ::= SEQUENCE {
	cause 		CauseCode, 	-- 1 byte
	subCause	SubCauseCode	-- 1 byte
}

-- 1 to 100 indicates causecode defined within [3]
-- 101 – 255 indicates causecode without being defined by [3]
CauseCode ::= INTEGER {reserved(0),dangerousDriving(101),intersectionViolation(102),vehicleProblem(103),intersectionCollision(104),hazardousLocation(105) } (0..255)

SubCauseCode ::= INTEGER {unknown(0)} (0..255)

Severity ::= ENUMERATED 		-- 1 byte
{
	informative		(1), 
	-- Text example: <Attention, there is a dangerous obstruction due to fog>
	obstacles		(2),	--danger level 1
	-- Text example: <Attention, there a danger due to fog>
	danger	(3),			--danger level 2: 
	-- Text example: <Attention, highest danger due to fog>
	highestDanger	(4)		--danger level 3: 
}

Speed ::= INTEGER (-32765..32765)  -- multiples of 0.01 m/s 

StationID ::=   INTEGER(0..4294967295)

TraceLocData ::=	SEQUENCE {
	--3 bits, identifier of the trace
	traceID	INTEGER(0 .. 7),	
	--5 bits, number of waypoint positions included in the trace
	waypoints	SEQUENCE (SIZE(0..31)) OF	Waypoint
}

TimeStamp ::=	INTEGER (0.. 281474976710655)		-- units of milliseconds, 6 byte

Waypoint  ::=		SEQUENCE{
	--  waypoint positions included in the trace.	
	ptLat 	Latitude,							--a 4 bytes value 
	ptLong 	Longitude,						--a 4 bytes value
	ptAlt 	Elevation,
	...
}
 
 
 ValidityDuration ::=	INTEGER { timeOfDetection(0), oneSecondAfterDetection(1) } (0..86400)
 
 
-- common and profile dependent parameter definitions follow
 Traces ::= SEQUENCE SIZE(0..7) OF PathHistory
    
    
ProfileParameters ::= CHOICE {
 ItineraryPath ::= SEQUENCE SIZE(0..40) OF ReferencePosition
	basicVehicle	    BasicVehicle,
    emergencyVehicle        EmergencyVehicle,
    publicTransportVehicle  PublicTransportVehicle,
    ...
}
 
 
VehicleCommonParameters ::= SEQUENCE {
 TransmissionInterval ::= INTEGER { oneMilliSecond(1), tenSeconds(10000) } (1..10000)
     vehicleType                     VehicleType,
     stationLength                   StationLength,
     stationLengthConfidence         Confidence OPTIONAL,
     stationWidth                    StationWidth,
     stationWidthConfidence          Confidence OPTIONAL,
     vehicleSpeed                    VehicleSpeed,
     vehicleSpeedConfidence          Confidence,
     longAcceleration                LongAcceleration,
     longAccelerationConfidence	     Confidence,
     accelerationControl             AccelerationControl,
     yawRate			     		 YawRate,
     yawRateConfidence	     	     Confidence,
     exteriorLights                  ExteriorLights,
     turnAdvice                      TurnAdvice OPTIONAL,
     distanceToStopLine              DistanceToStopLine OPTIONAL,
     occupancy                       Occupancy OPTIONAL,
     doorOpen                        DoorOpen OPTIONAL,
     posConfidenceEllipse            PosConfidenceEllipse,
     curvature                       Curvature,
     curvatureChange               	 CurvatureChange OPTIONAL,
     curvatureConfidence	     	 Confidence,
     crashStatus                     CrashStatus OPTIONAL,
     headingConfidence               Confidence,
     dangerousGoods                  DangerousGoods OPTIONAL,
     ...
}
 
 
 RelevanceDistance ::= ENUMERATED { lessThan50m(0)
, lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7) }
  
  
BasicVehicle ::= SEQUENCE {
 RelevanceTrafficDirection ::= ENUMERATED { unavailable(0), upstreamTraffic(1), downstreamTraffic(2), allTrafficDirection(3) }
     ...
}

EmergencyVehicle ::= SEQUENCE {
     lightBarInUse                   LightBarInUse OPTIONAL,
     sireneInUse                     SireneInUse OPTIONAL,
     emergencyResponseType           EmergencyResponseType,
     ...
}

PublicTransportVehicle ::= SEQUENCE {
     publicVehicleType              PublicVehicleType,
     pTLineDescription              PTLineDescription OPTIONAL,
     scheduleDeviation              ScheduleDeviation OPTIONAL,
     trafficLightPriority           TrafficLightPriority OPTIONAL,
     ...
}

AccelerationControl ::= BIT STRING {
 brakePedal    (0),
 throttlePedal (1),
 cruiseControl (2),
 acc           (3),
 limiter       (4),
 brakeAssist   (5)
} 

AmbientAirTemperature ::= Temperature 

Confidence ::= INTEGER (0..15) 

CourseOfJourney ::= IA5String(SIZE(0..32)) 

CrashStatus ::= BOOLEAN

Curvature ::= INTEGER (-32765..32765)

CurvatureChange ::= INTEGER (-1023..1023)

DataReference ::= IA5String(SIZE(1..128))

DangerousGoods ::= INTEGER (0..8191)

Dimension ::= INTEGER (0..16383)

Direction ::= INTEGER{north(0), east(7200), south(14400), west(21600)} (0..28799)

Distance ::= INTEGER (0..65535) -- multiples of 1.0m

DistanceToStopLine ::= Distance

DoorOpen ::= BIT STRING {
  driver (0),
  passenger (1), -- any passenger door
  maintenance (2), -- hood, other access to engine, or similar
  luggage (3)
} 

EmergencyResponseType ::= ENUMERATED {
 none         (0),
 staticSafeguard (1),   -- e.g. at accident spot
 movingSafeguard (2),   -- e.g. convoy or abnormal load
 rightOfWay      (3),   -- claiming right of way
 ...
} 

ExteriorLights ::= BIT STRING {
 lowBeamHeadlightsOn     (0),
 highBeamHeadlightsOn    (1),
 leftTurnSignalOn        (2),
 rightTurnSignalOn       (3),
 automaticLightControlOn (4),
 daytimeRunningLightsOn  (5),
 fogLightOn              (6),
 parkingLightsOn         (7)
 } 

LightBarInUse ::= SimpleSystemState 

LineRef ::= IA5String(SIZE(0..32)) 

LongAcceleration ::= INTEGER (-2000..2000)  -- multiples of 0.01 m/s^2 

Occupancy ::= INTEGER (0..255) 

PosConfidenceEllipse ::= SEQUENCE {
  semiMajorConfidence   Confidence,   -- confidence of the ellipse's major semi-axes
  semiMinorConfidence   Confidence,   -- confidence of the ellipse's minor semi-axes
  semiMajorOrientation   Direction
} 

Priority ::= INTEGER(0..7) 

PTLineDescription ::= SEQUENCE {
  courseOfJourney  CourseOfJourney,
  lineRef          LineRef,
  routeRef         RouteRef
} 

PublicVehicleType ::= INTEGER(0..255) 

RoadSegmentID ::= INTEGER (0..99999999) 

RouteRef ::= IA5String(SIZE(0..32)) 

ScheduleDeviation ::= INTEGER (-900..3600)  -- seconds, positiv delay; negative ahead of schedule 

SimpleSystemState ::= ENUMERATED {
  unavailable  (0), -- not equipped or out of order
  disabled  (1), -- switched off by user or due to driving situation, e.g. ACC below minimum speed
  enabled   (2), -- switched on but no action, e.g. ESP in normal operation, limiter below limit speed
  engaged   (3)  -- switched on and in action, e.g. light bar flashing, limiter limiting speed 
} 

SireneInUse ::= SimpleSystemState 

StationLength ::= Dimension 

StationWidth ::= Dimension 

StreetName ::= IA5String(SIZE(1..32)) 

Temperature ::= INTEGER (-40..215) 

TrafficLightPriority ::= Priority 

TurnAdvice ::= SEQUENCE {
  direction    TurnDirection,
  distance     Distance
} 

TurnDirection ::= BIT STRING {
  uTurn       (0),
  sharpRight  (1),
  right       (2),
  slightRight (3),
  straight    (4),
  slightLeft  (5),
  left        (6),
  sharpLeft   (7)
} 

VehicleSpeed ::= Speed 

VehicleType ::= INTEGER (0..255) 

WiperSystemFront ::= ENUMERATED {
  idle         (0),
  interval     (1),
  normal       (2),
  fast         (3),
  washerActive (4)
}

YawRate ::= SEQUENCE {
  yawDirection ENUMERATED { left (0), right (1) },
  yawRateValue  INTEGER (0..32765)  		-- multiples of 0.01deg/s
}


END
END
+370 −0

File added.

Preview size limit exceeded, changes collapsed.

+103 −1
Original line number Original line Diff line number Diff line
/**
/**
 *  @author      ETSI / STF405
 *  @author      ETSI / STF449
 *  @version     $URL$
 *  @version     $URL$
 *               $Id$
 *               $Id$
 *  @desc        Module containing common types and values for ITS Protocols
 *  @desc        Module containing common types and values for ITS Protocols
@@ -25,7 +25,109 @@ module LibItsCommon_TypesAndValues {
            UtIicpInitialize 
            UtIicpInitialize 
    };
    };
    
    
    import from ITS_Container language "ASN.1:1997" all;
    
    
    group commonConstants {
        
        const ItsPduHeader.protocolVersion c_protocolVersionDenm := 1;
        
        const ItsPduHeader.messageID c_messageId := 1;
        
        const ElevationValue c_seaLevel := 0; 
        const ElevationValue c_oneMeter := 1; 
        
        const ElevationConfidence c_withinOneMeter := 1; 
        const ElevationConfidence c_notValid := 127; 
        
        const SemiAxisLength c_semiAxisLengthOneCentimeter := 1; 
        const SemiAxisLength c_semiAxisLengthUnavailable := 4095; 
        
        const DirectionValue c_directionValueNorth := 0; 
        const DirectionValue c_directionValueEast := 900; 
        const DirectionValue c_directionValueSouth := 1800; 
        const DirectionValue c_directionValueWest := 2700; 
        const DirectionValue c_directionValueUnavailable := 3600; 
        
        const DirectionConfidence c_directConfidenceWithinZeroPointOneDegree := 1; 
        const DirectionConfidence c_directConfidenceWithinOneDegree := 10; 
        const DirectionConfidence c_directConfidenceUnavailable := 127; 
        
        /**
         * @remark check this values
         */
        group causeCodes {
            
            const CauseCodeType c_causeReserved := 0; 
            const CauseCodeType c_causeTrafficCondition := 1; 
            const CauseCodeType c_causeAccident := 2; 
            const CauseCodeType c_causeRoadworks := 3; 
            const CauseCodeType c_causeAdverseWeatherCondition_Adhesion := 6; 
            const CauseCodeType c_causeHazardousLocation_SurfaceCondition := 9; 
            const CauseCodeType c_causeHazardousLocation_ObstacleOnTheRoad := 10; 
            const CauseCodeType c_causeHazardousLocation_AnimalOnTheRoad := 11; 
            const CauseCodeType c_causeHumanPresenceOnTheRoad := 12; 
            const CauseCodeType c_causeWrongWayDriving := 14; 
            const CauseCodeType c_causeRescueAndRecoveryWorkInProgress := 15; 
            const CauseCodeType c_causeAdverseWeatherCondition_ExtremeWeatherCondition := 17; 
            const CauseCodeType c_causeAdverseWeatherCondition_Visibility := 18; 
            const CauseCodeType c_causeAdverseWeatherCondition_Precipitation := 19; 
            const CauseCodeType c_causeSlowVehicle := 26; 
            const CauseCodeType c_causeDangerousEndOfQueue := 27; 
            const CauseCodeType c_causeVehicleBreakdown := 91; 
            const CauseCodeType c_causePostCrash := 92; 
            const CauseCodeType c_causeHumanProblem := 93; 
            const CauseCodeType c_causeStationaryVehicle := 94; 
            const CauseCodeType c_causeEmergencyVehicleApproaching := 95; 
            const CauseCodeType c_causeHazardousLocation_DangerousCurve := 96; 
            const CauseCodeType c_causeCollisionRisk := 97; 
            const CauseCodeType c_causeSignalViolation := 98; 
            const CauseCodeType c_causeDangerousSituation := 99; 
            
        } // end group causeCodes
        
        /**
         * @remark check this values
         */
        group subCauseCodes {
            
            const SubCauseCodeType c_subCauseUnknown := 0; 
            
            const SubCauseCodeType c_subCauseHardBrakeVehicle := 1; 

            const SubCauseCodeType c_subCauseStopSignViolation := 1; 
            const SubCauseCodeType c_subCauseTrafficLightViolation := 2; 
            const SubCauseCodeType c_subCauseTurningRegulationViolation := 3; 

            const SubCauseCodeType c_subCauseBrakeDownVehicle := 1; 
            const SubCauseCodeType c_subCauseVehicleSpeedReducedWithSafetyLightsOn := 2; 

            const SubCauseCodeType c_subCauseLeftTurnCollisionRisk := 1; 
            const SubCauseCodeType c_subCauseRightTurnCollisionRisk := 2; 
            const SubCauseCodeType c_subCauseCrossingCollisionRisk := 3; 
            const SubCauseCodeType c_subCauseMergingCollisionRisk := 4; 

            const SubCauseCodeType c_subCauseDangerousCurve := 1; 
            const SubCauseCodeType c_subCauseObstacleOnTheRoad := 2; 

            const SubCauseCodeType c_subCauseHeavyRain := 1; 
            const SubCauseCodeType c_subCauseHeavySnow := 2; 

            const SubCauseCodeType c_subCauseStrongSideWind := 1; 
            const SubCauseCodeType c_subCauseStrongWindFromBack := 2; 

            const SubCauseCodeType c_subCauseLowRoadAdhesion := 1; 
            const SubCauseCodeType c_subCauseBlackIce := 2; 

            const SubCauseCodeType c_subCauseBadVisibilityDueToFrost := 1; 
            const SubCauseCodeType c_subCauseBadVisibilityDueToStorm := 4; 

            const SubCauseCodeType c_subCauseEmergencyVehicle := 1; 
            const SubCauseCodeType c_subCauseMedicalAssistanceVahicle := 2; 
            
        } // end group subCauseCodes
        
        
    } // end commonConstants
    
    
}
}
with {
with {
+69 −99

File changed.

Preview size limit exceeded, changes collapsed.

+174 −582

File changed.

Preview size limit exceeded, changes collapsed.

Loading