ITS DEFINITIONS AUTOMATIC TAGS ::= BEGIN -- Message ºÎºÐ -- ISO14827-MESSAGE ::= CLASS { &id OBJECT IDENTIFIER, &MessageBody } Message ISO14827-MESSAGE ::= { {&id {1 0 14827 1 1 1}, &MessageBody SEQUENCE OF CurrentLinkStateList} | {&id {1 0 14827 1 1 2}, &MessageBody SEQUENCE OF EventIdentityList} | {&id {1 0 15784 1 1 3}, &MessageBody SEQUENCE OF IncidentIdentityList}| {&id {1 0 14827 1 1 4}, &MessageBody SEQUENCE OF IncidentConditionsList} } --ISO14827-MESSAGE ::= CLASS { -- &name PrintableString (SIZE (0..255)), -- &definition PrintableString (SIZE (0..65535)), -- &remarks PrintableString (SIZE (0..2000)) OPTIONAL, -- &MessageBody, -- &messageType ENUMERATED -- { -- publication, -- subscription -- }, -- &subscriptionType ENUMERATED -- { -- single , -- event-driven, -- single-or-event, -- periodic, -- single-or-periodic, -- event-or-periodic, -- ingle-event-periodic -- } OPTIONAL, -- &initialPublication PrintableString (SIZE (0..255)) OPTIONAL, -- &subsequentPublications PrintableString (SIZE (0..255)) OPTIONAL, -- &id OBJECT IDENTIFIER --} EndApplicationMessage ::= SEQUENCE { endApplication-Message-id ISO14827-MESSAGE.&id, endApplication-Message-msg ISO14827-MESSAGE.&MessageBody } DatexDataPacket ::= SEQUENCE { datex-Version-number ENUMERATED { experimental (0), version1 (1), ... }, datex-Data OCTET STRING, datex-Crc-nbr OCTET STRING (SIZE (2)) } C2CAuthenticatedMessage ::= SEQUENCE { datex-AuthenticationInfo-text OCTET STRING (SIZE (0..255)), datex-DataPacket-number INTEGER (0..4294967295), datex-DataPacketPriority-number INTEGER (0..10), options HeaderOptions, pdu PDUs } HeaderOptions ::= SEQUENCE { datex-Origin-text UTF8String (SIZE (0..40)) OPTIONAL, datex-OriginAddress-location OCTET STRING OPTIONAL, datex-Sender-text UTF8String (SIZE (0..40)) OPTIONAL, datex-SenderAddress-location OCTET STRING OPTIONAL, datex-Destination-text UTF8String (SIZE (0..40)) OPTIONAL, datex-DestinationAddress-location OCTET STRING OPTIONAL, datex-Cost Cost OPTIONAL, datex-DataPacket-time Time OPTIONAL } Cost ::= SEQUENCE { amount-Currency-code OCTET STRING (SIZE (3)), amount-Factor-quantity INTEGER, amount-Quantity-quantity INTEGER } PDUs ::= CHOICE { datex-Initiate-null Initiate, login Login, fred FrED, terminate Terminate, logout Logout, subscription Subscription, publication Publication, transfer-done TransferDone, accept Accept, reject Reject } Initiate ::= SEQUENCE { datex-Sender-txt UTF8String (SIZE (0..40)), datex-Destination-txt UTF8String (SIZE (0..40)) } Login ::= SEQUENCE { datex-Sender-txt UTF8String (SIZE (0..40)), datex-Destination-txt UTF8String (SIZE (0..40)), datexLogin-UserName-txt OCTET STRING, datexLogin-Password-txt OCTET STRING, datexLogin-EncodingRules-id SEQUENCE OF OBJECT IDENTIFIER, datexLogin-HeartbeatDurationMax-qty INTEGER (0..65535), datexLogin-ResponseTimeOut-qty INTEGER (0..255), datexLogin-Initiator-cd ENUMERATED { serverInitiated, clientInitiated, ... }, datexLogin-DatagramSize-qty INTEGER (0..65535) } FrED ::= INTEGER(0..4294967295) -- datexFrED-ConfirmPacket-nbr Terminate ::= ENUMERATED { -- datexTerminate-Reason-cd other, serverRequested, clientRequested, serverShutdown, clientShutdown, serverCommProblems, clientCommProblems, ... } Logout ::= ENUMERATED { -- datexLogout-Reason-cd other, serverRequested, clientRequested, serverShutdown, clientShutdown, serverCommProblems, clientCommProblems, ... } Subscription ::= SEQUENCE { datexSubscribe-Serial-nbr INTEGER (0..4294967295), datexSubscribe-Type SubscriptionType, ... } --SubscriptionType-PR ::= ENUMERATED { -- subscription-type-pr-nothing, -- subscription-type-pr-subscription, -- subscription-type-pr-datex-subscribe-cancel-reason-cd, -- ... --} --SubscriptionType ::= SEQUENCE { --present SubscriptionType-PR, --present INTEGER (1..10), -- choice SubscriptionType-U --} SubscriptionType ::= CHOICE { subscription SubscriptionData, datexSubscribe-CancelReason-cd ENUMERATED { other, dataNotNeeded, errorsInPublication, pendingLogout, processingMgmt, bandwidthMgmt, ... } } SubscriptionData ::= SEQUENCE { datexSubscribe-Persistent-bool BOOLEAN, datexSubscribe-Status-cd ENUMERATED { new, update }, datexSubscribe-Mode SubscriptionMode, datexSubscribe-PublishFormat-cd ENUMERATED { other, ftp, tftp, dataPacket, ... }, datexSubscription-Priority-nbr INTEGER (1..10), datexSubscribe-Guarantee-bool BOOLEAN, datexSubscribe-Pdu EndApplicationMessage } SubscriptionMode ::= CHOICE { single NULL, event-driven Registered, periodic Registered } Registered ::= CHOICE { continuous SEQUENCE { datexRegistered-UpdateDelay-qty INTEGER(0..424967295) DEFAULT 0, -- 0 means as soon as possible datexRegistered-StartTime Time OPTIONAL, -- defaults to immediate datexRegistered-EndTime Time OPTIONAL -- defaults to "until cancelled" }, daily SEQUENCE { datexRegistered-UpdateDelay-qty INTEGER(0..424967295) DEFAULT 0, -- 0 means as soon as possible datexRegistered-DaysOfWeek-cd BIT STRING { other(0), sunday(1), monday(2), tuesday(3), wednesday(4), thursday(5), friday(6), saturday(7) }(SIZE (8)), datexRegistered-StartDate Time OPTIONAL, -- defaults to immediate datexRegistered-EndDate Time OPTIONAL, -- defaults to "until cancelled" datexRegistered-StartTime Time OPTIONAL, -- defaults to midnight datexRegistered-Duration-qty INTEGER(0..65535) OPTIONAL -- defaults to 1440 (i.e., 24 hours) } } Time ::= SEQUENCE { time-Year-qty INTEGER(-32768..32767) OPTIONAL, -- defaults to current year unless otherwise specified time-Month-qty INTEGER (1..12) OPTIONAL, -- defaults to current month unless otherwise specified time-Day-qty INTEGER (1..31) OPTIONAL, -- defaults to current day unless otherwise specified time-Hour-qty INTEGER (0..23) DEFAULT 0, time-Minute-qty INTEGER (0..59) DEFAULT 0, time-Second-qty INTEGER (0..60) DEFAULT 0, time-SecondFractions CHOICE { deci-seconds INTEGER (0..9), centi-seconds INTEGER (0..99), milliseconds INTEGER (0..999), ... } DEFAULT {0}, time-Timezone SEQUENCE { timezone-Hour-qty INTEGER (-13..13) DEFAULT 0, time-Minute-qty INTEGER (0..59) DEFAULT 0 } OPTIONAL -- defaults to UTC } Publication ::= SEQUENCE { datexPublish-Guaranteed-bool BOOLEAN, datexPublish-Format Publish-Format } Publish-Format ::= CHOICE { datexPublish-Data SEQUENCE OF PublicationData, datexPublish-FileName-txt UTF8String (SIZE (0..2000)) } PublicationData ::= SEQUENCE { datexPublish-SubscribeSerial-nbr INTEGER (0..4294967295), datexPublish-Serial-nbr INTEGER (0..4294967295), datexPublish-LatePublicationFlag BOOLEAN, datexPublish-Type PublicationType } PublicationType ::= CHOICE { datexPublication-Management-cd ENUMERATED { temporarilySuspended, resume, terminate-other, terminate-dataNoLongerAvailable, terminate-publicationsBeingRejected, terminate-PendingShutdown, terminate-processingMgmt, terminate-bandwidthMgmt, terminate-accessDenied, unknownRequest, ... }, datexPublish-Data EndApplicationMessage } TransferDone ::= SEQUENCE { datexTransferDone-Publication-nbr INTEGER (0..4294967295), datexTransferDone-FileName-txt UTF8String (SIZE (0..2000)), datexTransferDone-Sucess-bool BOOLEAN } Accept ::= SEQUENCE { datexAccept-Packet-nbr INTEGER (0..4294967295), datexAccept-Type CHOICE { logIn OBJECT IDENTIFIER, single-subscription NULL, registered-subscription INTEGER (0..4294967295), publication NULL } } Reject ::= SEQUENCE { datexReject-Packet-nbr INTEGER (0..4294967295), datexReject-Type RejectType, datexReject-AlternateRequest AlternateRequest OPTIONAL } RejectType ::= CHOICE { datexReject-Login-cd ENUMERATED { other, unknownDomainName, accessDenied, invalidNamePassword, timeoutTooSmall, timeoutTooLarge, heartbeatTooSmall, heartbeatTooLarge, sessionExists, maxSessionsReached, ... }, datexReject-Subscription-cd ENUMERATED { other, unknownSubscriptionNbr, invalidTimes, frequencyTooSmall, frequencyTooLarge, invalid-mode, publishFormatNotSupported, unknowSubscriptionMsgId, invalidSubscriptionMsgId, invalidSubscriptionContent, ... }, datexReject-Publication-cd ENUMERATED { other, unknownSubscription, unknownPublicationNbr, invalidPublishFormat, unknownPublicationMsgId, invalidPublicationMsgId, invalidPublicationMsgContent, repeatedPublicationNbr, ... } } AlternateRequest ::= SubscriptionType -- ±³Åë¼ÒÅëÁ¤º¸ CurrentLinkStateList::=SEQUENCE OF CurrentLinkState CurrentLinkState ::= SEQUENCE { link-LinkIdNumber UTF8String(SIZE(1..40)), link-SpeedRate INTEGER(0..300), link-VolumeRate INTEGER(0..100000) OPTIONAL, link-DensityRate INTEGER(0..2000) OPTIONAL, link-TravelTimeQuantity INTEGER(0..10800) OPTIONAL, link-DelayQuanity INTEGER(0..12000) OPTIONAL, tfdt-VehicleQueueLengthQuantity INTEGER(0..500000) OPTIONAL, tfdt-OccupancyPercent INTEGER(0..100) } -- ±³ÅëÅëÁ¦Á¤º¸ EventIdentityList::=SEQUENCE OF EventIdentity EventIdentity ::= SEQUENCE { node-NodeIdNumber UTF8String(SIZE(1..40)), link-LinkIdNumber UTF8String(SIZE(1..40)), evnt-IdentificationNumber INTEGER(0..4294967295) OPTIONAL, evnt-LocationJurisdictionNameText UTF8String (SIZE(1..256)), evnt-LocationLinkIdNumber UTF8String(SIZE(1..40)), evnt-LocationNodeIdNumber UTF8String(SIZE(1..40)), evnt-LocationRoadwayNameText UTF8String (SIZE(1..256)), evnt-DescriptionTypeEventCode ENUMERATED { none (0), other (1), constructions (2), planned-roadway-closure (3), special-event (4) } OPTIONAL, evnt-DescriptionTypeSpecialEventCode ENUMERATED { none (0), other (1), parade (2), sporting-event (3), demonstration (4), festival (5), performing-arts (6), dignitary-visit (7) } OPTIONAL, evnt-DescriptionPlannedRoadwayClosureCode ENUMERATED { none (0), other (1), long-term-construction (2), short-term-construction (3), maintenance (4), emergency-maintenance (5) } OPTIONAL, evnt-LanesBlockedOrClosedNumber INTEGER (0..255), evnt-LanesShouldersBlockedCode BIT STRING { none (0), other (1), right-shoulder (2), left-shoulder (3), both-shoulder (4) }, evnt-TimelineStartGeneralizedTime VisibleString, evnt-TimelineEndGeneralizedTime VisibleString, evnt-TimelineDurationTime INTEGER(0..4294967295) } -- µ¹¹ß»óȲÁ¤º¸ IncidentConditionsList::=SEQUENCE OF IncidentConditions IncidentConditions ::= SEQUENCE { node-NodeIdNumber UTF8String(SIZE(1..40)), link-LinkIdNumber UTF8String(SIZE(1..40)), orgn-ContactOrganizationNameText UTF8String(SIZE(1..128)), evnt-DescriptionTypeIncidentCode ENUMERATED { other-no-additional-information-required (0), other-additional-information-required (1), vehicular-accident (2), weather-related-incident (3), stalled-vehicle (4), vehicle-fire (5), roadway-debris (6), hazmat-spill (7), earthquake (8), landslide (9), flood (10), typhoon (11), unplanned-demonstration (12), increased-traffic-volume (13) }, evnt-DescriptionTypeIncidentOther UTF8String(SIZE(1..256)) OPTIONAL, evnt-IncidentVehiclesInvolvedCode BIT STRING { other-no-additional-information-required (0), other-additional-information-required (1), cycle-motorcycle (2), car (3), bus (4), single-Unit-Truck (5), trailer (6) }, evnt-IncidentVehiclesInvolvedOther UTF8String(SIZE(1..256)) OPTIONAL, evnt-IncidentStatusCode ENUMERATED { other-no-additional-information-required (0), other-additional-information-required (1), incident-detected (2), confirmed-and-responding (3), cleared-and-recovering (4), over-and-done (5), other (6) }, evnt-IncidentStatusOther UTF8String(SIZE(1..256)) OPTIONAL, evnt-UpdateTypeCode ENUMERATED { other-no-additional-information-required (0), other-additional-information-required (1), new (2), update (3), delete (4), clear-or-closed (5) }, evnt-UpdateTypeOther UTF8String(SIZE(1..256)) OPTIONAL } -- µ¹¹ßÁ¤º¸ IncidentIdentityList::=SEQUENCE OF IncidentIdentity IncidentIdentity ::= SEQUENCE { node-NodeIdNumber UTF8String(SIZE(1..40)), link-LinkIdNumber UTF8String(SIZE(1..40)), evnt-LocationLinearDistanceOffsetBeginNumber INTEGER(0..999) OPTIONAL, evnt-LocationLinearDistanceOffsetEndNumber INTEGER(0..999) OPTIONAL, evnt-UpdateGeneralizedTime VisibleString, evnt-IncidentHumanFatalitiesCountQuantity INTEGER(0..255) OPTIONAL, evnt-IncidentHumanInjuriesCountQuantity INTEGER(0..255) OPTIONAL, evnt-IncidentPropertyDamageCode BIT STRING { other-no-additional-information-required (0), other-additional-information-required (1), guard-rail-damage (2), light-pole-damage (3), pavement-damage (4), structure-damage (5), traffic-equipment-damage (6) }, evnt-IncidentPropertyDamageOther UTF8String(SIZE(1..256)) OPTIONAL } END