ITS: ISO TS 19321 (IVI) updated to version 2

Change-Id: Ia865f9d56c891d10ac910ab60a6432f7eca01a58
Reviewed-on: https://code.wireshark.org/review/37843
Petri-Dish: Anders Broman <a.broman58@gmail.com>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
This commit is contained in:
Tomas Kukosa 2020-07-13 07:05:22 +02:00 committed by Anders Broman
parent 2b6f38b37d
commit 7f09a6fd81
6 changed files with 5405 additions and 3649 deletions

View File

@ -21,8 +21,8 @@ set( ASN_FILE_LIST
ISO_TS_24534-3.asn
ISO_TS_17419.asn
ISO_TS_14906_Application.asn
ISO_TS_19321.asn
ISO_TS_19091.asn
ISO19321IVIv2.asn
ETSI_TS_103301.asn
CAMv1.asn
CAM.asn

View File

@ -0,0 +1,880 @@
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ISO TS 19321
--
-- Published version location:
-- https://standards.iso.org/iso/ts/19321/ed-2/en/ISO19321IVIv2.asn
--
-- Changes to original version:
-- - add this header
-- - rename imported module CITSdataDictionary1 -> CITSapplMgmtIDs
-- - do not import GDD
-- - define ISO 14823 attributes InternationalSign-* instead of importing them from GDD
-- (definitions taken from previous ISO_TS_19321.asn in this directory)
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
IVI {iso (1) standard (0) ivi (19321) version2 (2)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
ActionID, Altitude, DangerousGoodsBasic , DeltaLatitude, DeltaLongitude, DeltaReferencePosition, Heading, HeadingValue, Latitude, LanePosition, Longitude, ReferencePosition, RoadType, SpecialTransportType, Speed, SpeedValue, StationType, TimestampIts, VehicleRole
FROM ITS-Container { itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cdd (2) version (2) }
AxleWeightLimits, DieselEmissionValues, ExhaustEmissionValues, EngineCharacteristics, EnvironmentalCharacteristics, PassengerCapacity , Provider, SoundLevel, VehicleDimensions, VehicleWeightLimits
FROM EfcDsrcApplication {iso(1) standard(0) 14906 application(0) version6(6)}
EuVehicleCategoryCode, Iso3833VehicleType
FROM ElectronicRegistrationIdentificationVehicleDataModule {iso(1) standard(0) iso24534 (24534) vehicleData (1) version1 (1)}
VarLengthNumber
FROM CITSapplMgmtIDs {iso(1) standard(0) cits-applMgmt (17419) dataDictionary (1) version1 (1)}
RoadSegmentReferenceID, IntersectionReferenceID, LaneID
FROM DSRC {iso (1) standard (0) signalizedIntersection (19091) profilec(2) dsrc (2) version2 (2)}
--InternationalSign-applicablePeriod, InternationalSign-exemptedApplicablePeriod, InternationalSign-directionalFlowOfLane, InternationalSign-applicableVehicleDimensions, InternationalSign-speedLimits, InternationalSign-rateOfIncline, InternationalSign-distanceBetweenVehicles, InternationalSign-destinationInformation
--FROM GDD {iso (1) standard (0) gdd(14823) version1 (0)}
;
-- Definition of IVI structure
IviStructure::= SEQUENCE{
mandatory IviManagementContainer,
optional IviContainers OPTIONAL
}
IviContainers ::= SEQUENCE (SIZE (1..8,...)) OF IviContainer
--Definition of Containers
IviContainer::= CHOICE {
glc GeographicLocationContainer,
giv GeneralIviContainer,
rcc RoadConfigurationContainer,
tc TextContainer,
lac LayoutContainer,
..., -- original extension indicator of V1
[[ -- Extension in V2
avc AutomatedVehicleContainer,
mlc MapLocationContainer,
rsc RoadSurfaceContainer ]]
}
IviManagementContainer::= SEQUENCE {
serviceProviderId Provider,
iviIdentificationNumber IviIdentificationNumber,
timeStamp TimestampIts OPTIONAL,
validFrom TimestampIts OPTIONAL,
validTo TimestampIts OPTIONAL,
connectedIviStructures IviIdentificationNumbers OPTIONAL,
iviStatus IviStatus,
..., -- original extension indicator of V1
connectedDenms ConnectedDenms OPTIONAL -- Extension in V2
}
GeographicLocationContainer::= SEQUENCE {
referencePosition ReferencePosition,
referencePositionTime TimestampIts OPTIONAL,
referencePositionHeading Heading OPTIONAL,
referencePositionSpeed Speed OPTIONAL,
parts GlcParts,
...
}
GlcParts ::= SEQUENCE (SIZE (1..16,...)) OF GlcPart
GlcPart::= SEQUENCE {
zoneId Zid,
laneNumber LanePosition OPTIONAL,
zoneExtension INTEGER (0..255) OPTIONAL,
zoneHeading HeadingValue OPTIONAL,
zone Zone OPTIONAL,
...
}
GeneralIviContainer::= SEQUENCE (SIZE (1..16,...)) OF GicPart
GicPart::= SEQUENCE {
detectionZoneIds ZoneIds OPTIONAL,
its-Rrid VarLengthNumber OPTIONAL,
relevanceZoneIds ZoneIds OPTIONAL,
direction Direction OPTIONAL,
driverAwarenessZoneIds ZoneIds OPTIONAL,
minimumAwarenessTime INTEGER (0..255) OPTIONAL,
applicableLanes LanePositions OPTIONAL,
iviType IviType,
iviPurpose IviPurpose OPTIONAL,
laneStatus LaneStatus OPTIONAL,
vehicleCharacteristics VehicleCharacteristicsList OPTIONAL,
driverCharacteristics DriverCharacteristics OPTIONAL,
layoutId INTEGER(1..4,...) OPTIONAL,
preStoredlayoutId INTEGER(1..64,...) OPTIONAL,
roadSignCodes RoadSignCodes,
extraText ConstraintTextLines1 OPTIONAL,
...
}
RoadConfigurationContainer::= SEQUENCE (SIZE (1..16,...)) OF RccPart
RccPart::= SEQUENCE{
relevanceZoneIds ZoneIds,
roadType RoadType,
laneConfiguration LaneConfiguration,
...
}
RoadSurfaceContainer::= SEQUENCE (SIZE (1..16,...)) OF RscPart
RscPart::= SEQUENCE{
detectionZoneIds ZoneIds OPTIONAL,
relevanceZoneIds ZoneIds,
direction Direction OPTIONAL,
roadSurfaceStaticCharacteristics RoadSurfaceStaticCharacteristics OPTIONAL,
roadSurfaceDynamicCharacteristics RoadSurfaceDynamicCharacteristics OPTIONAL
} (WITH COMPONENTS {..., roadSurfaceStaticCharacteristics PRESENT} |
WITH COMPONENTS {..., roadSurfaceDynamicCharacteristics PRESENT})
TextContainer::= SEQUENCE (SIZE (1..16,...)) OF TcPart
TcPart::= SEQUENCE {
detectionZoneIds ZoneIds OPTIONAL,
relevanceZoneIds ZoneIds,
direction Direction OPTIONAL,
driverAwarenessZoneIds ZoneIds OPTIONAL,
minimumAwarenessTime INTEGER (0..255) OPTIONAL,
applicableLanes LanePositions OPTIONAL,
layoutId INTEGER(1..4,...) OPTIONAL,
preStoredlayoutId INTEGER(1..64,...) OPTIONAL,
text TextLines OPTIONAL,
data OCTET STRING,
...,
[[ --extension in V2
iviType IviType,
laneStatus LaneStatus OPTIONAL,
vehicleCharacteristics VehicleCharacteristicsList OPTIONAL ]]
}
LayoutContainer::=SEQUENCE{
layoutId INTEGER(1..4,...),
height INTEGER(10..73) OPTIONAL,
width INTEGER(10..265) OPTIONAL,
layoutComponents LayoutComponents,
...
}
AutomatedVehicleContainer::= SEQUENCE (SIZE (1..16,...)) OF AvcPart -- new container in V2
AvcPart::= SEQUENCE { -- new container part in V2
detectionZoneIds ZoneIds OPTIONAL,
relevanceZoneIds ZoneIds,
direction Direction OPTIONAL,
applicableLanes LanePositions OPTIONAL,
vehicleCharacteristics VehicleCharacteristicsList OPTIONAL,
automatedVehicleRules AutomatedVehicleRules OPTIONAL,
platooningRules PlatooningRules OPTIONAL,
...
} (WITH COMPONENTS {..., automatedVehicleRules PRESENT} |
WITH COMPONENTS {..., platooningRules PRESENT})
MapLocationContainer::=SEQUENCE{ -- new container in V2
reference MapReference,
parts MlcParts
}
MlcParts::= SEQUENCE (SIZE (1..16,...)) OF MlcPart -- new container part in V2
MlcPart::= SEQUENCE{ -- new container part in V2
zoneId Zid,
laneIds LaneIds OPTIONAL
}
-- Definition of data frames which are lists of data frames
-- note: those definitions are to avoid "implicit type definitions" but are bit compatible with V1
AbsolutePositions ::= SEQUENCE (SIZE (1..8,...)) OF AbsolutePosition
AbsolutePositionsWAltitude ::= SEQUENCE (SIZE (1..8,...)) OF AbsolutePositionWAltitude
AutomatedVehicleRules::= SEQUENCE (SIZE (1..5)) OF AutomatedVehicleRule -- new DF in V2
ConnectedDenms::= SEQUENCE (SIZE(1..8, ...)) OF ActionID -- new DF in V2
DeltaPositions ::= SEQUENCE (SIZE (1..32,...,100)) OF DeltaPosition --size extension in V2
DeltaReferencePositions ::= SEQUENCE (SIZE (1..32,..., 100)) OF DeltaReferencePosition --size extension in V2
ConstraintTextLines1 ::= SEQUENCE (SIZE (1..4),...) OF Text (WITH COMPONENTS {layoutComponentId, language, textContent (SIZE(1..32))})
ConstraintTextLines2::= SEQUENCE (SIZE (1..4),...) OF Text (WITH COMPONENTS {..., textContent (SIZE(1..32))})
IviIdentificationNumbers ::= SEQUENCE (SIZE(1..8)) OF IviIdentificationNumber
ISO14823Attributes::= SEQUENCE (SIZE(1..8),...) OF ISO14823Attribute
LaneConfiguration ::= SEQUENCE (SIZE (1..16,...)) OF LaneInformation
LaneIds::= SEQUENCE (SIZE (1..16,...)) OF LaneID
LanePositions ::= SEQUENCE (SIZE (1..8,...)) OF LanePosition
LayoutComponents ::= SEQUENCE SIZE (1..4,...) OF LayoutComponent
PlatooningRules::= SEQUENCE (SIZE (1..5)) OF PlatooningRule -- new DF in V2
RoadSignCodes ::= SEQUENCE (SIZE (1..4),...) OF RSCode
TextLines::= SEQUENCE (SIZE (1..4),...) OF Text
TrailerCharacteristicsList ::= SEQUENCE (SIZE (1..3)) OF TrailerCharacteristics
TrailerCharacteristicsFixValuesList ::= SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues (WITH COMPONENTS {..., euroAndCo2value ABSENT, engineCharacteristics ABSENT})
TrailerCharacteristicsRangesList ::= SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsRanges (WITH COMPONENTS {comparisonOperator, limits (WITH COMPONENTS {..., exhaustEmissionValues ABSENT, dieselEmissionValues ABSENT, soundLevel ABSENT})})
SaeAutomationLevels::= SEQUENCE (SIZE (1..5)) OF SaeAutomationLevel -- new DF in V2
VehicleCharacteristicsFixValuesList ::= SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsFixValues
VehicleCharacteristicsList ::= SEQUENCE (SIZE (1..8, ...)) OF CompleteVehicleCharacteristics
VehicleCharacteristicsRangesList ::= SEQUENCE (SIZE (1..4,...)) OF VehicleCharacteristicsRanges
ValidityPeriods ::= SEQUENCE (SIZE (1..8),...) OF InternationalSign-applicablePeriod
ZoneIds ::= SEQUENCE (SIZE (1..8,...)) OF Zid
-- Definition of Data Frames
AbsolutePosition::= SEQUENCE{
latitude Latitude,
longitude Longitude
}
AbsolutePositionWAltitude::= SEQUENCE{
latitude Latitude,
longitude Longitude,
altitude Altitude
}
AnyCatalogue::=SEQUENCE{
owner Provider,
version INTEGER(0..255),
pictogramCode INTEGER(0..65535),
value INTEGER (0..65535) OPTIONAL,
unit RSCUnit OPTIONAL,
attributes ISO14823Attributes OPTIONAL
}
AutomatedVehicleRule::= SEQUENCE { -- new DF in V2
priority PriorityLevel,
allowedSaeAutomationLevels SaeAutomationLevels,
minGapBetweenVehicles GapBetweenVehicles OPTIONAL,
recGapBetweenVehicles GapBetweenVehicles OPTIONAL,
automatedVehicleMaxSpeedLimit SpeedValue OPTIONAL,
automatedVehicleMinSpeedLimit SpeedValue OPTIONAL,
automatedVehicleSpeedRecommendation SpeedValue OPTIONAL,
roadSignCodes RoadSignCodes OPTIONAL,
extraText ConstraintTextLines2 OPTIONAL,
...
}
CompleteVehicleCharacteristics::= SEQUENCE{
tractor TractorCharacteristics OPTIONAL,
trailer TrailerCharacteristicsList OPTIONAL,
train TrainCharacteristics OPTIONAL
}
ComputedSegment::= SEQUENCE {
zoneId Zid,
laneNumber LanePosition,
laneWidth IviLaneWidth,
offsetDistance INTEGER (-32768..32767) OPTIONAL,
offsetPosition DeltaReferencePosition OPTIONAL
}
DeltaPosition::=SEQUENCE{
deltaLatitude DeltaLatitude,
deltaLongitude DeltaLongitude
}
ISO14823Attribute::= CHOICE{
dtm InternationalSign-applicablePeriod, -- Date/Time/Period
edt InternationalSign-exemptedApplicablePeriod,-- Exemption status of Date/Time/Period
dfl InternationalSign-directionalFlowOfLane,-- Directional Flow of Lane
ved InternationalSign-applicableVehicleDimensions,-- Vehicle Dimensions
spe InternationalSign-speedLimits,-- Speed
roi InternationalSign-rateOfIncline,-- Rate of Incline
dbv InternationalSign-distanceBetweenVehicles,-- Distance Between Vehicles
ddd InternationalSign-destinationInformation-- Destination/Direction/Distance
}
ISO14823Code ::= SEQUENCE{
pictogramCode SEQUENCE {
countryCode OCTET STRING (SIZE (2)) OPTIONAL,
serviceCategoryCode CHOICE {
trafficSignPictogram ENUMERATED {dangerWarning, regulatory, informative,...},
publicFacilitiesPictogram ENUMERATED {publicFacilities, ...},
ambientOrRoadConditionPictogram ENUMERATED {ambientCondition, roadCondition,...},
...},
pictogramCategoryCode SEQUENCE {
nature INTEGER (1..9),
serialNumber INTEGER (0..99)
}},
attributes ISO14823Attributes OPTIONAL
}
LaneInformation::= SEQUENCE{
laneNumber LanePosition,
direction Direction,
validity InternationalSign-applicablePeriod OPTIONAL,
laneType LaneType,
laneTypeQualifier CompleteVehicleCharacteristics OPTIONAL,
laneStatus LaneStatus,
laneWidth IviLaneWidth OPTIONAL,
...,
[[ --extension in V2
detectionZoneIds ZoneIds OPTIONAL,
relevanceZoneIds ZoneIds OPTIONAL,
laneCharacteristics LaneCharacteristics OPTIONAL,
laneSurfaceStaticCharacteristics RoadSurfaceStaticCharacteristics OPTIONAL,
laneSurfaceDynamicCharacteristics RoadSurfaceDynamicCharacteristics OPTIONAL ]]
}
LaneCharacteristics::= SEQUENCE{
zoneDefinitionAccuracy DefinitionAccuracy,
existinglaneMarkingStatus LaneMarkingStatus,
newlaneMarkingColour MarkingColour,
laneDelimitationLeft LaneDelimitation,
laneDelimitationRight LaneDelimitation,
mergingWith Zid
}
LayoutComponent::=SEQUENCE{
layoutComponentId INTEGER(1..8,...),
height INTEGER(10..73),
width INTEGER(10..265),
x INTEGER(10..265),
y INTEGER(10..73),
textScripting INTEGER {horizontal (0), vertical (1)}(0..1)
}
LoadType::= SEQUENCE{
goodsType GoodsType,
dangerousGoodsType DangerousGoodsBasic,
specialTransportType SpecialTransportType
}
MapReference::= CHOICE { -- new DF in V2
roadsegment RoadSegmentReferenceID,
intersection IntersectionReferenceID
}
PlatooningRule::= SEQUENCE { -- new DF in V2
priority PriorityLevel,
allowedSaeAutomationLevels SaeAutomationLevels,
maxNoOfVehicles MaxNoOfVehicles OPTIONAL,
maxLenghtOfPlatoon MaxLenghtOfPlatoon OPTIONAL,
minGapBetweenVehicles GapBetweenVehicles OPTIONAL,
platoonMaxSpeedLimit SpeedValue OPTIONAL,
platoonMinSpeedLimit SpeedValue OPTIONAL,
platoonSpeedRecommendation SpeedValue OPTIONAL,
roadSignCodes RoadSignCodes OPTIONAL,
extraText ConstraintTextLines2 OPTIONAL,
...
}
PolygonalLine::= CHOICE {
deltaPositions DeltaPositions,
deltaPositionsWithAltitude DeltaReferencePositions,
absolutePositions AbsolutePositions,
absolutePositionsWithAltitude AbsolutePositionsWAltitude,
...
}
RoadSurfaceDynamicCharacteristics::= SEQUENCE{
condition Condition,
temperature Temperature,
iceOrWaterDepth Depth,
treatment TreatmentType
}
RoadSurfaceStaticCharacteristics::= SEQUENCE{
frictionCoefficient FrictionCoefficient,
material MaterialType,
wear WearLevel,
avBankingAngle BankingAngle
}
RSCode::= SEQUENCE{
layoutComponentId INTEGER(1..4,...) OPTIONAL,
code CHOICE {
viennaConvention VcCode, -- see Vienna Convention Annex A
iso14823 ISO14823Code,
itisCodes INTEGER (0..65535), -- see SAE J2540
anyCatalogue AnyCatalogue,
...
}}
Segment::= SEQUENCE {
line PolygonalLine,
laneWidth IviLaneWidth OPTIONAL
}
Text::= SEQUENCE {
layoutComponentId INTEGER(1..4,...) OPTIONAL,
language BIT STRING (SIZE(10)),
textContent UTF8String
}
TractorCharacteristics::=SEQUENCE{
equalTo VehicleCharacteristicsFixValuesList OPTIONAL,
notEqualTo VehicleCharacteristicsFixValuesList OPTIONAL,
ranges VehicleCharacteristicsRangesList OPTIONAL
}
TrailerCharacteristics::=SEQUENCE{
equalTo TrailerCharacteristicsFixValuesList OPTIONAL,
notEqualTo TrailerCharacteristicsFixValuesList OPTIONAL,
ranges TrailerCharacteristicsRangesList OPTIONAL
}
TrainCharacteristics::= TractorCharacteristics
VcCode::= SEQUENCE {
roadSignClass VcClass, -- see Vienna Convention
roadSignCode INTEGER (1..64),
vcOption VcOption, -- e.g. the "a" in H, 3a
validity ValidityPeriods OPTIONAL,
value INTEGER (0..65535) OPTIONAL,
unit RSCUnit OPTIONAL
}
VehicleCharacteristicsFixValues::= CHOICE{
simpleVehicleType StationType,
euVehicleCategoryCode EuVehicleCategoryCode,
iso3833VehicleType Iso3833VehicleType,
euroAndCo2value EnvironmentalCharacteristics,
engineCharacteristics EngineCharacteristics,
loadType LoadType,
usage VehicleRole,
...
}
VehicleCharacteristicsRanges::= SEQUENCE{
comparisonOperator ComparisonOperator,
limits CHOICE{
numberOfAxles INTEGER(0..7),
vehicleDimensions VehicleDimensions,
vehicleWeightLimits VehicleWeightLimits,
axleWeightLimits AxleWeightLimits,
passengerCapacity PassengerCapacity,
exhaustEmissionValues ExhaustEmissionValues,
dieselEmissionValues DieselEmissionValues,
soundLevel SoundLevel,
...
}
}
Zone::= CHOICE {
segment Segment,
area PolygonalLine,
computedSegment ComputedSegment,
...
}
-- Defition of IVI specific data elements
BankingAngle::=INTEGER (-20..21)
ComparisonOperator ::= INTEGER {
greaterThan (0),
greaterThanOrEqualTo (1),
lessThan (2),
lessThanOrEqualTo (3)
} (0..3)
Condition::=INTEGER{
dry (0),
moist (1),
wet (2),
standingWater (3),
frost (4),
ice (5),
snow (6),
slush (7),
unvailable (8)
-- values 9 to 15 reserved for future use
} (0..15, ...)
DefinitionAccuracy::= INTEGER{
oneCm (0),
twoCm (1),
fiveCm (2),
tenCm (3),
twentyCm (4),
fiftyCm (5),
oneMeter (6),
unavailable (7)
} (0..7, ...)
Depth::= INTEGER (0..255)
Direction::= INTEGER{
sameDirection (0),
oppositeDirection (1),
bothDirections (2),
valueNotUsed (3)
} (0..3)
DriverCharacteristics::= INTEGER{
unexperiencedDrivers (0),
experiencedDrivers (1),
rfu1 (2),
rfu2 (3)
} (0..3)
FrictionCoefficient::= INTEGER (0..101)
GapBetweenVehicles::= INTEGER (0..255) -- new DE in V2
GoodsType::= INTEGER {
ammunition (0),
chemicals (1),
empty (2),
fuel (3),
glass (4),
dangerous (5),
liquid (6),
liveStock (7),
dangerousForPeople (8),
dangerousForTheEnvironment (9),
dangerousForWater (10),
perishableProducts (11),
pharmaceutical (12),
vehicles (13)
-- other values reserved for future use
} (0..15,...)
IviIdentificationNumber::= INTEGER(1..32767,...)
IviLaneWidth::= INTEGER (0..1023) -- only renamed from V1, no change
IviPurpose::= INTEGER {
safety (0),
environmental (1),
trafficOptimisation (2)
} (0..3)
IviStatus::= INTEGER {
new (0),
update (1),
cancellation (2),
negation (3)
-- other values reserved for future use
}(0..7)
IviType::= INTEGER {
immediateDangerWarningMessages (0),
regulatoryMessages (1),
trafficRelatedInformationMessages (2),
pollutionMessages (3),
notTrafficRelatedInformationMessages (4)
-- other values reserved for future use
} (0..7)
LaneDelimitation::=INTEGER {
noDelimitation (0),
lowLaneSeparator (1),
highLaneSeparator (2),
wall (3),
curb (4),
unpaved (5),
guardrail (6)
-- value 7 reserved for future use
} (0..7, ...)
LaneMarkingStatus::= BOOLEAN
LaneStatus::= INTEGER {
open (0),
closed (1),
mergeR (2),
mergeL (3),
mergeLR (4),
provisionallyOpen (5),
diverging (6)
-- value 7 reserved for future use
} (0..7, ...)
LaneType::= INTEGER{
traffic (0),
through (1),
reversible (2),
acceleration (3),
deceleration (4),
leftHandTurning (5),
rightHandTurning (6),
dedicatedVehicle (7),
bus (8),
taxi (9),
hov (10),
hot (11),
pedestrian (12),
bikeLane (13),
median (14),
striping (15),
trackedVehicle (16),
parking (17),
emergency (18),
verge (19),
minimumRiskManoeuvre(20)
-- values 21 to 31 reserved for future use
}(0..31)
MarkingColour::=INTEGER {
white (0),
yellow (1),
orange (2),
red (3),
blue (4),
unavailable (7)
-- value 5,6 reserved for future use
} (0..7, ...)
MaterialType::=INTEGER {
asphalt (0),
concrete (1),
cobblestone (2),
gravel (3),
unavailable (7)
-- value 4, 5,6 reserved for future use
} (0..7, ...)
MaxLenghtOfPlatoon::= INTEGER (1..64) -- new DE in V2
MaxNoOfVehicles::= INTEGER (2..64) -- new DE in V2
PriorityLevel::=INTEGER (0..2) -- new DE in V2
RSCUnit::= INTEGER {
kmperh (0),
milesperh (1),
kilometer (2),
meter (3),
decimeter (4),
centimeter (5),
mile (6),
yard (7),
foot (8),
minutesOfTime (9),
tonnes (10), --1000 kg, not Ton!
hundredkg (11),
pound (12), --lbs
rateOfIncline (13)
-- other value reserved for future use
} (0..15)
SaeAutomationLevel::= INTEGER (0..5) -- new DE in V2
Temperature::=INTEGER (-100..151)
TreatmentType ::= INTEGER {
no (0),
antiskid (1),
anti-icing (2),
de-icing (3),
unavailable (7)
-- value 4 to 6 reserved for future use
} (0..7)
VcClass::= INTEGER {
classA (0),
classB (1),
classC (2),
classD (3),
classE (4),
classF (5),
classG (6),
classH (7)
} (0..7)
VcOption::= INTEGER {
none (0),
a (1),
b (2),
c (3),
d (4),
e (5),
f (6),
g (7)
} (0..7)
WearLevel::=INTEGER {
new (0),
good (1),
bad (2),
hasPotholes (3),
unavailable (7)
-- value 4, 5,6 reserved for future use
} (0..7, ...)
Zid::= INTEGER (1..32,...)
-- Definition of the single ISO 14823 Attributes
Distance::= SEQUENCE {
value INTEGER(1..16384),
unit RSCUnit (2..4|6..8)
}
DistanceOrDuration::= SEQUENCE {
value INTEGER(1..16384),
unit RSCUnit (2..9)
}
Weight::= SEQUENCE {
value INTEGER(1..16384),
unit RSCUnit (10..12)
}
InternationalSign-applicablePeriod ::= SEQUENCE {
year SEQUENCE { -- contains SYR and EYR
syr INTEGER(2000..2127,...),
eyr INTEGER(2000..2127,...)
} OPTIONAL,
month-day SEQUENCE { -- contains SMD and EMD
smd MonthDay,
emd MonthDay
} OPTIONAL,
pmd PMD OPTIONAL,
hourMinutes SEQUENCE { -- contains SHM and EHM
shm HoursMinutes,
ehm HoursMinutes
} OPTIONAL,
dayOfWeek DayOfWeek OPTIONAL, -- corresponds to SDY and EDY
period HoursMinutes OPTIONAL -- corresponds to LDM
}
MonthDay ::= SEQUENCE {
month INTEGER (1..12),
day INTEGER (1..31)
}
PMD::= BIT STRING {national-holiday (0), even-days(1), odd-days(2), market-day(3) } (SIZE (4))
HoursMinutes ::= SEQUENCE {
hours INTEGER (0..23), -- number of hours after midnight
mins INTEGER (0..59) -- number of minutes after the hour
}
-- Prefix IVI added due to naming collision with data element DayOfWeek of Module DSRC
DayOfWeek ::= BIT STRING {unused(0), monday(1), tuesday(2), wednesday(3), thursday(4), friday(5), saturday(6), sunday(7)} (SIZE (8))
InternationalSign-exemptedApplicablePeriod ::= InternationalSign-applicablePeriod
InternationalSign-directionalFlowOfLane ::= INTEGER {
sDL (1) , -- Straight Direction Only
sLT (2) , -- Straight and Left Turn Only
sRT (3) , -- Straight and Right Turn Only
lTO (4) , -- Left Turn Only
rTO (5) , -- Right Turn Only
cLL (6) , -- Convergence from the Left Lane
cRI (7) , -- Convergence from the Right Lane
oVL (8) -- Oncoming Vehicles Lane
} (1..8)
InternationalSign-applicableVehicleDimensions ::=SEQUENCE{
hei Distance OPTIONAL,
wid Distance OPTIONAL,
vln Distance OPTIONAL,
wei Weight OPTIONAL
}
InternationalSign-speedLimits ::=SEQUENCE{
spm INTEGER(0..250) OPTIONAL,
mns INTEGER(0..250) OPTIONAL,
unit RSCUnit(0..1)
}
InternationalSign-rateOfIncline ::= INTEGER(1..32)
InternationalSign-distanceBetweenVehicles ::= Distance
-- changes: from DDD_IO to DDD-IO
InternationalSign-destinationInformation ::= SEQUENCE{
dcj INTEGER(1..128) OPTIONAL,
dcr INTEGER(1..128)OPTIONAL,
tpl INTEGER(1..128)OPTIONAL,
ioList SEQUENCE (SIZE (1..8,...)) OF DDD-IO
}
-- changes: from DDD_IO to DDD-IO
DDD-IO::= SEQUENCE{
drn INTEGER(0..7),
dp SEQUENCE (SIZE (1..4,...)) OF DestinationPlace OPTIONAL,
dr SEQUENCE (SIZE (1..4,...)) OF DestinationRoad OPTIONAL,
rne INTEGER(1..999) OPTIONAL,
stnId INTEGER(1..999) OPTIONAL,
stnText UTF8String OPTIONAL,
dcp DistanceOrDuration OPTIONAL,
ddp DistanceOrDuration OPTIONAL
}
-- changes: from DDD_DEP to DDD-DEP
DestinationPlace::= SEQUENCE{
depType DDD-DEP,
-- Encoding problem: to be checked if the statement is ASN.1 compatible
-- depRSCode ISO14823Code (WITH COMPONENTS {..., attributes ABSENT}) OPTIONAL,
depRSCode ISO14823Code OPTIONAL,
depBlob OCTET STRING OPTIONAL,
plnId INTEGER(1..999) OPTIONAL,
plnText UTF8String OPTIONAL
}
-- changes: from DDD_DER to DDD-DER
DestinationRoad::=SEQUENCE{
derType DDD-DER,
ronId INTEGER(1..999) OPTIONAL,
ronText UTF8String OPTIONAL
}
-- changes: from DDD_DER to DDD-DER
DDD-DER::= INTEGER {
none (0),
nationalHighway (1),
localHighway (2),
tollExpresswayMotorway (3),
internationalHighway (4),
highway (5),
expressway (6),
nationalRoad (7),
regionalProvincialRoad (8),
localRoad (9),
motorwayJunction (10),
diversion (11),
rfu1 (12),
rfu2 (13),
rfu3 (14),
rfu4 (15)
} (0..15, ...)
-- changes: from DDD_DEP to DDD-DEP
DDD-DEP::= INTEGER {
none (0),
importantArea (1),
principalArea (2),
generalArea (3),
wellKnownPoint (4),
country (5),
city (6),
street (7),
industrialArea (8),
historicArea (9),
touristicArea (10),
culturalArea (11),
touristicRoute (12),
recommendedRoute (13),
touristicAttraction (14),
geographicArea (15)
} (0..15, ...)
END

View File

@ -755,7 +755,7 @@ TrafficConditionSubCauseCode
# RCUnit subtypes bodies implemented manually as asn2wrs is not able to handle subtype constraint
#
#.FN_BODY SPE/unit
#.FN_BODY InternationalSign-speedLimits/unit
offset = dissect_per_constrained_integer(%(TVB)s, %(OFFSET)s, %(ACTX)s, %(TREE)s, %(HF_INDEX)s,
0U, 1U, %(VAL_PTR)s, FALSE);
#.END

View File

@ -119,6 +119,7 @@ static int proto_its_cam = -1;
static int proto_its_camv1 = -1;
static int proto_its_evcsn = -1;
static int proto_its_evrsr = -1;
static int proto_its_ivimv1 = -1;
static int proto_its_ivim = -1;
static int proto_its_tistpg = -1;
static int proto_its_ssem = -1;
@ -616,6 +617,7 @@ void proto_register_its(void)
proto_its_camv1 = proto_register_protocol_in_name_only("ITS message - CAMv1", "CAMv1", "its.message.camv1", proto_its, FT_BYTES);
proto_its_spatem = proto_register_protocol_in_name_only("ITS message - SPATEM", "SPATEM", "its.message.spatem", proto_its, FT_BYTES);
proto_its_mapem = proto_register_protocol_in_name_only("ITS message - MAPEM", "MAPEM", "its.message.mapem", proto_its, FT_BYTES);
proto_its_ivimv1 = proto_register_protocol_in_name_only("ITS message - IVIMv1", "IVIMv1", "its.message.ivimv1", proto_its, FT_BYTES);
proto_its_ivim = proto_register_protocol_in_name_only("ITS message - IVIM", "IVIM", "its.message.ivim", proto_its, FT_BYTES);
proto_its_evrsr = proto_register_protocol_in_name_only("ITS message - EVRSR", "EVRSR", "its.message.evrsr", proto_its, FT_BYTES);
proto_its_srem = proto_register_protocol_in_name_only("ITS message - SREM", "SREM", "its.message.srem", proto_its, FT_BYTES);
@ -644,6 +646,7 @@ void proto_register_its(void)
#define ITS_DENM_PROT_VERv1 1
#define ITS_SPATEM_PROT_VER 2
#define ITS_MAPEM_PROT_VER 2
#define ITS_IVIM_PROT_VERv1 1
#define ITS_IVIM_PROT_VER 2
#define ITS_SREM_PROT_VER 2
#define ITS_SSEM_PROT_VER 2
@ -670,6 +673,7 @@ void proto_reg_handoff_its(void)
dissector_add_uint("its.msg_id", (ITS_CAM_PROT_VERv1 << 16) + ITS_CAM, create_dissector_handle( dissect_camv1_CoopAwarenessV1_PDU, proto_its_camv1));
dissector_add_uint("its.msg_id", (ITS_SPATEM_PROT_VER << 16) + ITS_SPATEM, create_dissector_handle( dissect_dsrc_SPAT_PDU, proto_its_spatem ));
dissector_add_uint("its.msg_id", (ITS_MAPEM_PROT_VER << 16) + ITS_MAPEM, create_dissector_handle( dissect_dsrc_MapData_PDU, proto_its_mapem ));
dissector_add_uint("its.msg_id", (ITS_IVIM_PROT_VERv1 << 16) + ITS_IVIM, create_dissector_handle( dissect_ivi_IviStructure_PDU, proto_its_ivimv1 ));
dissector_add_uint("its.msg_id", (ITS_IVIM_PROT_VER << 16) + ITS_IVIM, create_dissector_handle( dissect_ivi_IviStructure_PDU, proto_its_ivim ));
dissector_add_uint("its.msg_id", ITS_EV_RSR, create_dissector_handle( dissect_evrsr_EV_RSR_MessageBody_PDU, proto_its_evrsr ));
dissector_add_uint("its.msg_id", (ITS_SREM_PROT_VER << 16) + ITS_SREM, create_dissector_handle( dissect_dsrc_SignalRequestMessage_PDU, proto_its_srem ));

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
/* Do not modify this file. Changes will be overwritten. */
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
/* packet-its.h */
/* asn2wrs.py -o its -c ./its.cnf -s ./packet-its-template -D . -O ../.. ITS-Container.asn ITS-ContainerV1.asn ISO_TS_14816.asn ISO_TS_24534-3.asn ISO_TS_17419.asn ISO_TS_14906_Application.asn ISO_TS_19321.asn ISO_TS_19091.asn ETSI_TS_103301.asn CAMv1.asn CAM.asn DENMv1.asn DENM.asn TIS_TPG_Transactions_Descriptions.asn EVCSN-PDU-Descriptions.asn EV-RSR-PDU-Descriptions.asn */
/* asn2wrs.py -o its -c ./its.cnf -s ./packet-its-template -D . -O ../.. ITS-Container.asn ITS-ContainerV1.asn ISO_TS_14816.asn ISO_TS_24534-3.asn ISO_TS_17419.asn ISO_TS_14906_Application.asn ISO_TS_19091.asn ISO19321IVIv2.asn ETSI_TS_103301.asn CAMv1.asn CAM.asn DENMv1.asn DENM.asn TIS_TPG_Transactions_Descriptions.asn EVCSN-PDU-Descriptions.asn EV-RSR-PDU-Descriptions.asn */
/* Input file: packet-its-template.h */
@ -43,9 +43,6 @@
/* --- Module EfcDsrcApplication --- --- --- */
/* --- Module IVI --- --- --- */
/* --- Module DSRC --- --- --- */
@ -55,6 +52,9 @@
/* --- Module REGION --- --- --- */
/* --- Module IVI --- --- --- */
/* --- Module SPATEM-PDU-Descriptions --- --- --- */
@ -164,9 +164,6 @@ typedef enum _CauseCodeType_enum {
/* --- Module EfcDsrcApplication --- --- --- */
/* --- Module IVI --- --- --- */
/* --- Module DSRC --- --- --- */
#define mapData 18
@ -188,6 +185,9 @@ typedef enum _RegionId_enum {
/* --- Module REGION --- --- --- */
/* --- Module IVI --- --- --- */
/* --- Module SPATEM-PDU-Descriptions --- --- --- */