DENM.asn 6.9 KB
Newer Older
mullers's avatar
mullers committed
-- This ASN.1 specification has been checked for conformance with the ASN.1 standard by the Objective Systems ASN.1 Tools

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

DEFINITIONS AUTOMATIC TAGS ::= 

BEGIN

IMPORTS 
   ItsPduHeader, Percentage, StationID, Timestamp, VehicleSpeed,InformationQuality, ReferencePosition, Direction, DirectionConfidence, LaneCount, LaneCountConfidence, StationID, PathHistory, RoadClass, Mass, HeightLonCarr, PosLonCarr, PosPillar, PosCentMass, WheelBaseVehicle, TurningRadius, PosFrontAx, PositionOfOccupants  FROM ITS-Container {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (3) version (3) 
};


DenmPdu ::= SEQUENCE {
	header	ItsPduHeader,
	denm	DecentralizedEnvironmentalNotificationMessage

}

DecentralizedEnvironmentalNotificationMessage ::= SEQUENCE {
	
	management	ManagementContainer,
	situation	SituationContainer OPTIONAL,
  	location	LocationContainer OPTIONAL,
   	alacarte	AlacarteContainer OPTIONAL
}


ManagementContainer ::= SEQUENCE {
	generationTime  Timestamp,
	actionID	ActionID,
	dataVersion	DataVersion,
	detectionTime	Timestamp,
	expiryTime	ExpiryTime,
	isNegation	BOOLEAN,
	frequency	Frequency
}


SituationContainer ::= SEQUENCE {
	informationQuality InformationQuality,
	situation Situation
}

LocationContainer ::= SEQUENCE {
	eventPosition ReferencePosition,
	eventPositionHeading Direction OPTIONAL,
	eventPositionHeadingConfidence DirectionConfidence OPTIONAL,
	laneCount LaneCount OPTIONAL,
	laneCountConfidence LaneCountConfidence OPTIONAL,
	vehicleSpeed	VehicleSpeed OPTIONAL,
	pathHistoryID PathHistoryID,
	pathHistory PathHistory,
	roadClass RoadClass OPTIONAL,
	relevanceDistance RelevanceDistance,
	disseminationDirection Direction
}

ImpactReductionContainer ::= SEQUENCE {
  heightLonCarrLeft HeightLonCarr,
  heightLonCarrRight HeightLonCarr,
  posLonCarrLeft PosLonCarr,
  posLonCarrRight PosLonCarr,
  posAPillar PosPillar,
  posBPillar PosPillar,
  posCPillar PosPillar,
  posDPillar PosPillar,
  posCentMass PosCentMass,
  wheelBaseVehicle WheelBaseVehicle,
  turningRadius TurningRadius,
  posFrontAx PosFrontAx,
  positionOfOccupants PositionOfOccupants
}

AlacarteContainer ::= SEQUENCE {
	impactReduction	ImpactReductionContainer OPTIONAL,
	...
}

 ActionID ::= SEQUENCE {

  originatorStationID StationID,
  sequenceNumber SequenceNumber
 }

 SequenceNumber ::=	INTEGER (0..65535)

 DataVersion ::= INTEGER {firstVersion(0),secondVersion(1) } (0..255)
 
 ExpiryTime ::=	INTEGER { timeOfDetection(0), oneSecondAfterDetection(1) } (0..86400)
  
 Situation ::= SEQUENCE {
  causeCode CauseCode,
  subCauseCode SubCauseCode
 }
 
 CauseCode ::=	INTEGER { reserved(0), trafficCondition(1), accident(2), roadworks(3), peopleOnTheRoad(12), wrongWayDrivingWarning(14), adverseWeatherConditionIndication(17), visibilityReduced(18), precipitation(19), slowVehicleWarning(26), stationaryVehicleIndication(94), emergencyVehicleApproachingIndication(95), hazardousLocation(96), collisionRiskWarning(97), signalViolationWarning(98), emergencyElectronicBrakeLights(99) } (0..127, ...)
 
 SubCauseCode ::= CHOICE {
  reserved NULL,
  trafficCondition TrafficConditionSubCauseCode,
  accident AccidentSubCauseCode,
  roadworks RoadworksSubCauseCode,
  peopleOnTheRoad PeopleOnTheRoadSubCauseCode,
  wrongWayDrivingWarning NULL,
  adverseWeatherConditionIndication AdverseWeatherConditionIndicationSubCauseCode,
  visibilityReduced VisibilityReducedSubCauseCode,
  precipitation PrecipitationSubCauseCode,
  slowVehicleWarning SlowVehicleWarningSubCauseCode,
  stationaryVehicleIndication StationaryVehicleIndicationSubCauseCode,
  emergencyVehicleApproachingIndication EmergencyVehicleApproachingIndicationSubCauseCode,
  hazardousLocation HazardousLocationSubCauseCode,
  collisionRiskWarning CollisionRiskWarningSubCauseCode,
  signalViolationWarning SignalViolationWarningSubCauseCode,
  emergencyElectronicBrakeLights EmergencyElectronicBrakeLightsSubCauseCode,
  ...
 }

 TrafficConditionSubCauseCode ::= INTEGER {unknown(0), increasedVolumeOfTraffic(1) }  (0..1, ...)
 
 AccidentSubCauseCode ::= INTEGER {unknown(0), multiVehicleAccident(1), heavyAccident(2), accidentInvolvingLorry(3), accidentInvolvingBus(4), accidentInvolvingHazardousMaterials(5), accidentOnOppositeLane(6), unsecuredAccident(7), assistanceRequested(8) } (0..8, ...)
 
 RoadworksSubCauseCode ::= INTEGER {unknown(0), majorRoadworks(1), roadMarkingWork(2), slowMovingRoadMaintenance(3) }  (0..3, ...)
 
 PeopleOnTheRoadSubCauseCode ::= INTEGER {unknown(0), childrenOnRoadway(1), cyclistOnRoadway(2), motorcyclistOnRoadway(3) }  (0..3, ...)
 
 AdverseWeatherConditionIndicationSubCauseCode ::= INTEGER {unknown(0), strongWinds(1), damagingHail(2), hurricane(3), thunderstorm(4), tornado(5), blizzard(6) }  (0..6, ...)
 
 VisibilityReducedSubCauseCode ::= INTEGER {unknown(0), fog(1), smoke(2), heavySnowfall(3), heavyRain(4), heavyHail(5), lowSunGlare(6), sandstorms(7), swarmsOfInsects(8) }  (0..8, ...)
 
 PrecipitationSubCauseCode ::= INTEGER {unknown(0), heavyRain(1), heavySnowfall(2), heavyHail(3) }  (0..3, ...)
 
 SlowVehicleWarningSubCauseCode ::= INTEGER {unknown(0), maintenanceVehicle(1), vehiclesSlowingToLookAtAccident(2), abnormalLoad(3), abnormalWideLoad(4), convoy(5), snowplough(6), deicing(7), saltingVehicles(8) }  (0..8, ...)
 
 StationaryVehicleIndicationSubCauseCode ::= INTEGER {unknown(0), unknownHumanProblem(1), glycemiaProblem(2), heartProblem(3), accidentSignalledByManualECall(4), accidentSignalledByAutomaticECall(5), unknownVehicleProblem(6), lackOfFuel(7), lackOfBattery(8), engineProblem(9), transmissionProblem(10), engineCoolingProblem(11), brakingSystemProblem(12), steeringProblem(13), tyrePressureProblem(14) }  (0..14, ...)
 
 EmergencyVehicleApproachingIndicationSubCauseCode ::= INTEGER {unknown(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2) }  (0..2, ...)
 
 HazardousLocationSubCauseCode ::= INTEGER {unknown(0), dangerousCurve(1) }  (0..1, ...)
 
 CollisionRiskWarningSubCauseCode ::= INTEGER {unknown(0), longitudinalCollisionRisk(1), crossingCollisionRisk(2), lateralCollisionRisk(3), vulnerableRoadUser(4) }  (0..4, ...)
 
 SignalViolationWarningSubCauseCode ::= INTEGER {unknown(0), stopSignViolation(1), trafficLightViolation(2), turningRegulationViolation(3) }  (0..3, ...)
 
 EmergencyElectronicBrakeLightsSubCauseCode ::= INTEGER {unknown(0), hardBrakingVehicle(1) }  (0..1, ...)
 
 
 PathHistoryID ::= INTEGER { pathHistory
(0), alternativePath1(1), alternativePath7(7) } (0..7)
 
 Frequency ::= INTEGER { unknown(0), oneHz(10), thousandHz(10000) } (0..10000)
 
 RelevanceDistance ::= ENUMERATED { lessThan50m(0)
, between50to100m(1), between100to200m(2), between200to500m(3), between500to1000m(4), between1to5km(5), between5to10km(6), over10km(7) }
  

END