Commit 07fbfc83 authored by kovacsa's avatar kovacsa
Browse files

asn1 update

parent 48940bb5
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
-- This ASN.1 specification has been checked for conformance with the ASN.1 standard by the OSS ASN.1 Tools

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

DEFINITIONS AUTOMATIC TAGS ::= 
@@ -9,8 +9,8 @@ DEFINITIONS AUTOMATIC TAGS ::=
BEGIN

IMPORTS 
   ItsPduHeader, CauseCode, ReferencePosition, AccelerationControl, Curvature, CurvatureAccuracy, CurvatureCalculationMode, Direction, DirectionConfidence, IncidentRule, LaneNumber, Percentage, Priority, PtLineRoute, PtScheduleDelay, EmbarkationStatus, Movement, DriveDirection, LongitudinalAcceleration, StationType, ExteriorLights, DangerousGoods, SpecialTransportType, LightBarSirenInUse, VehicleRole, VehicleLength, VehicleLengthConfidenceIndication, PathHistory, RoadworkType, LaneInfo, TrafficRule, SpeedLimit FROM ITS-Container {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (0) version (2) 
   ItsPduHeader, CauseCode, ReferencePosition, AccelerationControl, Curvature, CurvatureConfidence, CurvatureCalculationMode, Direction, DirectionConfidence, LaneNumber, Percentage, Priority, PtLineRoute, PtScheduleDelay, EmbarkationStatus, Movement, DriveDirection, LongitudinalAcceleration, StationType, ExteriorLights, DangerousGoodsBasic, SpecialTransportType, LightBarSirenInUse, VehicleRole, VehicleLength, VehicleWidth, VehicleLengthConfidenceIndication, PathHistory, RoadworkType, LaneInfo, TrafficRule, SpeedLimit FROM ITS-Container {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cc (0) version (1) 
};


@@ -65,14 +65,14 @@ CamPdu ::= SEQUENCE {
 }
 
 BasicVehicleContainerHighFrequency  ::= SEQUENCE {
  heading Direction,
  headingConfidence DirectionConfidence,
  direction Direction,
  directionConfidence DirectionConfidence,
  movement Movement,
  driveDirection DriveDirection,
  longitudinalAcceleration LongitudinalAcceleration,
  accelerationControl AccelerationControl,
  curvature Curvature,
  curvatureAccuracy CurvatureAccuracy,
  curvatureConfidence CurvatureConfidence,
  curvatureCalculationMode CurvatureCalculationMode,
  laneNumber LaneNumber OPTIONAL
 }
@@ -81,6 +81,7 @@ CamPdu ::= SEQUENCE {
  vehicleRole VehicleRole,
  vehicleLength VehicleLength,
  vehicleLengthConfidenceIndication VehicleLengthConfidenceIndication,
  vehicleWidth VehicleWidth,
  exteriorLights ExteriorLights,
  pathHistory PathHistory
 }
@@ -98,15 +99,15 @@ CamPdu ::= SEQUENCE {
 }

 DangerousGoodsContainer ::= SEQUENCE {
  dangerousGoods DangerousGoods
  dangerousGoodsBasic DangerousGoodsBasic
 }
 
 RoadWorksContainer ::= SEQUENCE {
  lightBarSirenInUse LightBarSirenInUse,
  roadworkType RoadworkType OPTIONAL,
  laneInfo LaneInfo OPTIONAL,
  trafficRule TrafficRule OPTIONAL,
  speedLimit SpeedLimit OPTIONAL,
  lightBarSirenInUse LightBarSirenInUse,
  incidentIndication CauseCode OPTIONAL
 }

+62 −48
Original line number Diff line number Diff line
ITS-Container {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (0) version (2) 
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cc (0) version (1) 
}

DEFINITIONS AUTOMATIC TAGS ::= 

BEGIN


ItsPduHeader ::= SEQUENCE {
	protocolVersion		INTEGER{ currentVersion(2) } (0..255),
	protocolVersion		INTEGER{ currentVersion(1) } (0..255),
	messageID 		INTEGER{ denm(1),cam(2), poi(3) } (0..255),
	stationID StationID
}
@@ -29,11 +28,11 @@ DeltaReferencePosition ::= SEQUENCE {
  deltaElevation DeltaElevation
}

Longitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10), unknown(1800000001) } (-1800000000..1800000001) -- multiples of 0.1 microdegree
Longitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10) } (-1800000000..1800000001) -- multiples of 0.1 microdegree

Latitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10), unknown(900000001) } (-900000000..900000001) -- multiples of 0.1 microdegree
Latitude ::= INTEGER { oneMicrodegreeNorth (10), oneMicrodegreeSouth (-10) } (-900000000..900000001) -- multiples of 0.1 microdegree

Elevation ::= INTEGER { seaLevel(0),oneMeter (1), unknown(7191) } (-1000..7191)
Elevation ::= INTEGER { seaLevel(0),oneMeter (1) } (-1000..7191)

DeltaLongitude ::= INTEGER { oneMicrodegreeEast (10), oneMicrodegreeWest (-10) } (-131072..131071) -- multiples of 0.1 microdegree

@@ -50,7 +49,7 @@ PosConfidenceEllipse ::= SEQUENCE {

PathPoint ::= SEQUENCE {
 pathPosition DeltaReferencePosition,
 pathDeltaTime PathDeltaTime
 pathDeltaTime PathDeltaTime OPTIONAL -- omitted for path  recommended by infrastructure 
}

PathDeltaTime ::= INTEGER { tenMilliSecondsInPast(1) } (0..65535, ...)    -- timing of predicted future path will be using the range extension
@@ -80,6 +79,7 @@ SemiAxisLength ::= INTEGER{ oneCentimeter(1), notValid(4095) } (0..4095)
  precipitation PrecipitationSubCauseCode,
  slowVehicleWarning SlowVehicleWarningSubCauseCode,
  stationaryVehicleIndication StationaryVehicleIndicationSubCauseCode,
  humanProblem HumanProblemSubCauseCode,
  emergencyVehicleApproachingIndication EmergencyVehicleApproachingIndicationSubCauseCode,
  hazardousLocation HazardousLocationSubCauseCode,
  collisionRiskWarning CollisionRiskWarningSubCauseCode,
@@ -104,7 +104,9 @@ SemiAxisLength ::= INTEGER{ oneCentimeter(1), notValid(4095) } (0..4095)
 
 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, ...)
 StationaryVehicleIndicationSubCauseCode ::= INTEGER {unknown(0),  accidentSignalledByManualECall(1), accidentSignalledByAutomaticECall(2), unknownVehicleProblem(3), lackOfFuel(4), lackOfBattery(5), engineProblem(6), transmissionProblem(7), engineCoolingProblem(8), brakingSystemProblem(9), steeringProblem(10), tyrePressureProblem(11) }  (0..11, ...)
 
 HumanProblemSubCauseCode ::= INTEGER { unknown(0), unknownHumanProblem(1), glycemiaProblem(2), heartProblem(3) } (0..3, ...)
 
 EmergencyVehicleApproachingIndicationSubCauseCode ::= INTEGER {unknown(0), emergencyVehicleApproaching(1), prioritizedVehicleApproaching(2) }  (0..2, ...)
 
@@ -119,17 +121,15 @@ SemiAxisLength ::= INTEGER{ oneCentimeter(1), notValid(4095) } (0..4095)

Curvature ::= INTEGER{ straight(0), reciprocalOf1MeterRadiusToRight(1), reciprocalOf1MeterRadiusToLeft(-1) } (-30000..30000)

CurvatureChange  ::=  INTEGER{ noChange(0) } (-1020..1020)	-- removing this type is under discussion

CurvatureAccuracy ::= INTEGER { lessThanOnePercentDeviation(0), onePercentDeviatfion(1), tenPercentDeviation(10), overTenPercentDeviation(11), notAvailable(12) } (0..12)
CurvatureConfidence ::= INTEGER { lessThanOnePercentDeviation(0), onePercentDeviation(1), tenPercentDeviation(10), overTenPercentDeviation(11), notAvailable(12) } (0..12)

CurvatureCalculationMode ::= ENUMERATED { yawRateNotAvailable(0), yawRateAvailable(1), ... }

Direction ::= INTEGER {north(0), east(900), south(1800), west(2700)} (0..3599)

DirectionConfidence ::= INTEGER { notValid(127), withinOneDegree(1), withinTenDegree(10) } (0..127)
DirectionConfidence ::= INTEGER { withinZeroPointOneDegree(1), withinOneDegree(10), notValid(127) } (1..127)

ElevationConfidence ::= INTEGER { notValid(127) } (0..127)
ElevationConfidence ::= INTEGER { withinOneMeter(1), notValid(127) } (1..127)

LaneNumber ::= INTEGER { offTheRoad(0) } (0..15)

@@ -139,9 +139,9 @@ LaneNumberConfidence ::= Percentage

Percentage ::= INTEGER (0..100)

VehicleSpeed ::= INTEGER { standstill(0), oneCentimeterPerSec(1), unknown(16383)  } (0..16383)
VehicleSpeed ::= INTEGER { standstill(0), oneCentimeterPerSec(1)  } (0..16383)

VehicleSpeedConfidence ::= INTEGER { notValid(127) } (0..127)
VehicleSpeedConfidence ::= INTEGER { withinOneCentimeterPerSec(1), withinOneMeterPerSec(100), outOfRange(126), notValid(127) } (1..127)

VehicleMass ::= INTEGER  { hundredKg(1), notValid(1024) } (1..1024) 

@@ -164,22 +164,47 @@ ExteriorLights ::= BIT STRING {
 highBeamHeadlightsOn     (1),
 leftTurnSignalOn         (2),
 rightTurnSignalOn        (3), 
 
 daytimeRunningLightsOn   (4),
 

 reverseLightOn           (5),
 

 fogLightOn               (6),
 


 parkingLightsOn          (7)
} (SIZE(8))


DangerousGoods ::= ENUMERATED { unknown(0), explosives(1), flammableGases(2), toxicGases(3), flammableLiquids(4), flammalbeSolids(5), substancesLiableToSpontaneousCombustion(6), substancesEmittingFlammableGasesUponContactWithWater(7), oxidizingSubstances(8), organicPeroxides(9), toxicSubstances(10), infectiousSubstances(11), radioactiveMaterial(12), corrosiveSubstances(13), miscellaneousDangerousSubstances(14) }
DangerousGoodsBasic::= ENUMERATED {
      explosives1(0),
      explosives2(1),
      explosives3(2),
      explosives4(3),
      explosives5(4),
      explosives6(5),
      flammableGases(6),
      nonFlammableGases(7),
      toxicGases(8),
      flammableLiquids(9),
      flammableSolids(10),
      substancesLiableToSpontaneousCombustion(11),
      substancesEmittingFlammableGasesUponContactWithWater(12),
      oxidizingSubstances(13),
      organicPeroxides(14),
      toxicSubstances(15),
      infectiousSubstances(16),
      radioactiveMaterial(17),
      corrosiveSubstances(18),
      miscellaneousDangerousSubstances(19)
}

DangerousGoodsExtended ::= SEQUENCE {
   dangerousGoodsType  DangerousGoodsBasic
   unNumber            INTEGER (0..9999),
   emergencyActionCode IA5String OPTIONAL,
   phoneNumber         IA5String OPTIONAL,
   companyName         IA5String OPTIONAL,
   elevatedTemperature BOOLEAN,
   tunnelsRestricted   BOOLEAN,
   limitedQuantity     BOOLEAN
}


SpecialTransportType  ::= ENUMERATED { heavyLoad(0), excessWidth(1) } 

@@ -192,9 +217,9 @@ HeightLonCarr ::= INTEGER { oneCentimeter(1) } (0..100)

PosLonCarr ::= INTEGER { oneCentimeter(1) } (0..127)

PosPillar ::= INTEGER { tenCentimeters(1), notUsed(30) } (0..30)
PosPillar ::= INTEGER { tenCentimeters(1), unknown(30) } (0..30)

PosCentMass ::= INTEGER { tenCentimeters(1), notUsed(63) } (0..63)
PosCentMass ::= INTEGER { tenCentimeters(1), unknown(63) } (0..63)

RoadworkType ::= ENUMERATED { winterService(0),
 streetCleaning(1)
@@ -202,6 +227,8 @@ RoadworkType ::= ENUMERATED { winterService(0),

SpeedLimit ::= INTEGER { oneKmPerHour(1) } (0..150)

Temperature ::= INTEGER { oneDegreeCelsius(1) } (-60..67)

TrafficRule ::= ENUMERATED { noPassing(0),
 noPassingForTrucks(1)
 }
@@ -221,21 +248,17 @@ PositionOfOccupants ::= BIT STRING {
 tier2MidOccupied     (5),
 tier3LeftOccupied    (6),
 tier3RightOccupied   (7),
 tier3MidOccupied     (8),
 tier3NotDetectable   (9)
 tier3MidOccupied     (8)
}

VehicleLength  ::= INTEGER { tenCentimeters(1), outOfRange(1022), unknown(1023) }  (0..1023)
VehicleLength  ::= INTEGER { tenCentimeters(1), outOfRange(1022), unknown(1023) }  (1..1023)

VehicleLengthConfidenceIndication ::= ENUMERATED { noTrailerPresent(0), trailerPresentWithUnknownLength(1), 
trailerPresenceIsUnknown(2) }

PathHistory::=  SEQUENCE SIZE(0..23) OF PathPoint

VehicleWidth  ::= INTEGER { tenCentimeters(1), outOfRange(30), unknown(31) }  (1..31)

IncidentRule ::= BIT STRING {
 leftLaneClosed (0), rightLaneClosed (1), noPassing (2), noPassingForTrucks (3)
}
PathHistory::=  SEQUENCE (SIZE(0..40)) OF PathPoint

Priority ::= INTEGER { lowest(0), highest(3) }  (0..3)

@@ -254,16 +277,7 @@ highway(5),
reserved(6), 
unknown(7) }

TimestampUtc ::= SEQUENCE {
   year INTEGER (2010..2130, ...),
   mon INTEGER (1..12),
   day INTEGER (1..31),
   hh INTEGER (0..23),
   min INTEGER (0..59),
   sec INTEGER (0..60), -- Note upper limit 60 to account for leap seconds
   msec INTEGER (0..999)
}

TimestampUtc ::= TIME (SETTINGS "Basic=Date-Time Date=YMD Year=Basic Time=HMSF3 Local-or-UTC=Z")

VehicleRole ::= ENUMERATED { default(0), 
publicTransport(1), 
+27 −9
Original line number 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 {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (1) version (2) 
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) denm (1) version (1) 
}

DEFINITIONS AUTOMATIC TAGS ::= 
@@ -9,8 +9,8 @@ DEFINITIONS AUTOMATIC TAGS ::=
BEGIN

IMPORTS 
   ItsPduHeader, CauseCode, Percentage, StationID, TimestampUtc, Movement,InformationQuality, ReferencePosition, Direction, DirectionConfidence, LaneNumber, LaneNumberConfidence, StationID, PathHistory, RoadClass, HeightLonCarr, PosLonCarr, PosPillar, PosCentMass, WheelBaseVehicle, TurningRadius, PosFrontAx, PositionOfOccupants, VehicleMass  FROM ITS-Container {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) cc (0) version (2) 
   ItsPduHeader, CauseCode, Percentage, StationID, TimestampUtc, Movement,InformationQuality, ReferencePosition, DangerousGoodsExtended, Direction, DirectionConfidence, LaneNumber, LaneNumberConfidence, StationID, PathHistory, RoadClass, HeightLonCarr, PosLonCarr, PosPillar, PosCentMass, WheelBaseVehicle, TurningRadius, PosFrontAx, PositionOfOccupants, Temperature, VehicleMass  FROM ITS-Container {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) en (302637) cc (0) version (1) 
};


@@ -36,7 +36,7 @@ ManagementContainer ::= SEQUENCE {
	situationTime	TimestampUtc,
	validityDuration	ValidityDuration DEFAULT maxValidity,
	isNegation	BOOLEAN,
	frequency	Frequency
	transmissionInterval	TransmissionInterval OPTIONAL 
}


@@ -62,10 +62,7 @@ ImpactReductionContainer ::= SEQUENCE {
  heightLonCarrRight HeightLonCarr,
  posLonCarrLeft PosLonCarr,
  posLonCarrRight PosLonCarr,
  posAPillar PosPillar,
  posBPillar PosPillar,
  posCPillar PosPillar,
  posDPillar PosPillar,
  positionOfPillars PositionOfPillars,
  posCentMass PosCentMass,
  wheelBaseVehicle WheelBaseVehicle,
  turningRadius TurningRadius,
@@ -74,10 +71,31 @@ ImpactReductionContainer ::= SEQUENCE {
  vehicleMass VehicleMass 
}

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

 RoadWorksContainer ::= SEQUENCE {
  lightBarSirenInUse LightBarSirenInUse OPTIONAL,
  roadworkType RoadworkType OPTIONAL,
  closedLanes LaneSets OPTIONAL,
  restriction RestrictedTypes OPTIONAL
  speedLimit SpeedLimit OPTIONAL,
  incidentIndication CauseCode OPTIONAL,
  recommendedPaths Traces OPTIONAL	--Traces without timestamps
 }

LaneSets ::= SEQUENCE OF LaneNumber

LaneSets ::= SEQUENCE OF StationType


AlacarteContainer ::= SEQUENCE {
	laneNumber LaneNumber OPTIONAL,
	laneNumberConfidence LaneNumberConfidence OPTIONAL,
	impactReduction	ImpactReductionContainer OPTIONAL,
	externalTemperature Temperature OPTIONAL,
	roadWorks RoadWorksContainer OPTIONAL,
	positioningSolution PositioningSolutionType OPTIONAL,
	dangerousGoodsExtended DangerousGoodsExtended OPTIONAL
	...
}

@@ -97,7 +115,7 @@ AlacarteContainer ::= SEQUENCE {
 
 Traces ::= SEQUENCE SIZE(0..7) OF PathHistory
    
 Frequency ::= INTEGER { unknown(0), oneHz(10), thousandHz(10000) } (0..10000)
 TransmissionInterval ::= INTEGER { oneMilliSecond(1), tenSeconds(10000) } (1..10000)
 
 RelevanceDistance ::= ENUMERATED { lessThan50m(0)
, lessThan100m(1), lessThan200m(2), lessThan500m(3), lessThan1000m(4), lessThan5km(5), lessThan10km(6), over10km(7) }