123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653 |
- /*****************************************************************
- * @source : ISO15784-3.ASN
- * @description : 기본교통정보 교환 기술기준III(안)
- * 국토해양부
- *****************************************************************
- * DATE AUTHOR DESCRIPTION
- * ---------------------------------------------------------------
- * 2011/02/22 조용문 최초작성
- *****************************************************************/
- /*
- 0x01 Initiate 초기 통신연결을 위한 개시 요청 데이터 패킷
- 0x02 Login 서버에 접속하기 위한 클라이언트의 로그인 데이터 패킷
- 0x03 FrED 서버와 클라이언트의 연결을 유지하기 위한 확인 데이터 패킷
- 0x04 Terminate 연결을 종료하고자 할 때, 서버에서 클라이언트에 요청하는 데이터 패킷
- 0x05 Logout 접속을 종료하기 위한 클라이언트의 로그아웃 데이터 패킷
- 0x06 Subscription 클라이언트가 서버에 정보를 요청할 경우 송신하는 데이터 패킷
- 0x07 TransferDone 클라이언트가 요청한 정보를 파일형태로 제공하기 위한 데이터 패킷
- 0x08 Accept 클라이언트의 요청에 대한 수용
- 0x09 Reject 클라이언트의 요청에 대한 거부
- 0x30 Publication 클라이언트가 요청한 정보를 제공하기 위한 데이터 패킷
- 0x31 RealTimeDisplayMessage 실시간정보표출메시지
- 0x32 ScheduledDisplayMessage 계획된정보표출메시지
- 0x33 DownloadGraphicDataMessage 그래픽데이터 다운로드 메시지
- 0x34 StatusControlMessage 상태제어메시지
- 0x35 StatusSettingMessage 상태설정메시지
- 0x36 GeneralStatusMessage 기본상태정보메시지
- 0x37 PowerStatusMessage 전원상태정보메시지
- 0x38 ModuleStatusMessage 모듈상태정보메시지
- 0x39 DotStatusMessage 도트상태정보메시지
- 0x3A ScreenStatusMessage 표출상태정보메시지
- 0x3B DisplayingDataMessage 표출정보메시지
- 0x3C GraphicDisplayingDataMessage 도형식 정보표출 메시지
- */
- /* 일반 구조 */
- ISO14827-2 {iso(1) standard(0) std14827(14827) part2(2)} DEFINITIONS AUTOMATIC TAGS ::= BEGIN
- 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,
- subscripiton Subscription,
- publication Publication,
- transfer-done TransferDone,
- accept Accept,
- reject Reject
- }
- /* Initiate Data packet Structure */
- Initiate ::= SEQUENCE{
- datex-Sender-txt UTF8String (SIZE (0..40)),
- datex-Destinatin-txt UTF8String (SIZE (0..40))
- }
- /* Login Data packet Structure */
- Login ::= SEQUENCE{
- datex-Sender-txt UTF8String (SIZE (0..40)),
- datex-Destinatin-txt UTF8String (SIZE (0..40)),
- datexLogin-UserName-txt OCTET STRING,
- datexLogin-Password-txt OCTET STRING,
- datexLogin-EncodingRules-id SEQUENCE OF OBJECT IDENTIFIER,
- datexLogin-HearteatDurationMax-qty INTEGER (0..65535),
- datexLogin-ResponseTimeOut-qty INTEGER (0..255),
- datexLogin-Initiator-cd ENUMERATED
- { serverInitiated,
- clientInitiated,
- ...
- },
- datexLogin-DatagramSize-qty INTEGER (0..65535)
- }
- /* FrED Data packet Structure */
- FrED ::= INTEGER (0..4294967295) -- datexFrED-ConfirmPacket-nbr
- /* Terminate Data packet Structure */
- Terminate ::= ENUMERATED -- datexTerminate-Reason-cd
- { other,
- serverRequested,
- clientRequested,
- serverShutdown,
- clientShutdown,
- serverCommProblems,
- clientCommProblems,
- ...
- }
- /* Logout Data packet Structure */
- Logout ::= ENUMERATED -- datexLogout-Reason-cd
- { other,
- serverRequested,
- clientRequested,
- serverShutdown,
- clientShutdown,
- serverCommProblems,
- clientCommProblems,
- ...
- }
- /* Subscription Data packet Structure */
- Subscription ::= SEQUENCE {
- datexSubscribe-Serial-nbr INTEGER (0..4294967295),
- datexSubscribe-Type SubscriptionType,
- ...
- }
- 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 Data packet Structure */
- 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
- }
- /* Transfer Done Data packet Structure */
- TransferDone ::= SEQUENCE{
- datexTransferDone-Publication-nbr INTEGER (0..4294967295),
- datexTransferDone-FileName-txt UTF8String (SIZE (0..2000)),
- datexTransferDone-Sucess-bool BOOLEAN
- }
- /* Accept Data packet Structure */
- 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 Data packet Structure */
- 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,
- ...
- }
- }
- /* AlternateProposal ::= SubscriptionType */
- AlternateRequest ::= SubscriptionType
- EndApplicationMessage ::= SEQUENCE {
- endApplication-Message-id ISO15784-MESSAGE.&id ({Message}),
- endApplication-Message-msg ISO15784-MESSAGE.&MessageBody ({Message}{@endApplication-Message-id})
- }
- ISO15784-MESSAGE ::= CLASS {
- &id OBJECT IDENTIFIER,
- &MessageBody
- }
- MessageBodyRealTimeDisplayMessage ::= SEQUENCE OF RealTimeDisplayMessage
- MessageBodyScheduledDisplayMessage ::= SEQUENCE OF ScheduledDisplayMessage
- MessageBodyDownloadGraphicDataMessage ::= SEQUENCE OF DownloadGraphicDataMessage
- MessageBodyStatusControlMessage ::= SEQUENCE OF StatusControlMessage
- MessageBodyStatusSettingMessage ::= SEQUENCE OF StatusSettingMessage
- MessageBodyGeneralStatusMessage ::= SEQUENCE OF GeneralStatusMessage
- MessageBodyPowerStatusMessage ::= SEQUENCE OF PowerStatusMessage
- MessageBodyModuleStatusMessage ::= SEQUENCE OF ModuleStatusMessage
- MessageBodyDotStatusMessage ::= SEQUENCE OF DotStatusMessage
- MessageBodyScreenStatusMessage ::= SEQUENCE OF ScreenStatusMessage
- MessageBodyDisplayingDataMessage ::= SEQUENCE OF DisplayingDataMessage
- /*MessageBodyGraphicDisplayingDataMessage ::= SEQUENCE OF GraphicDisplayingDataMessage*/
- /*
- Message ISO15784-MESSAGE ::= {
- {&id {1 0 15784 3 0 1}, &MessageBody SEQUENCE OF RealTimeDisplayMessage} |
- {&id {1 0 15784 3 0 2}, &MessageBody SEQUENCE OF ScheduledDisplayMessage} |
- {&id {1 0 15784 3 0 3}, &MessageBody SEQUENCE OF DownloadGraphicDataMessage} |
- {&id {1 0 15784 3 0 4}, &MessageBody SEQUENCE OF StatusControlMessage} |
- {&id {1 0 15784 3 0 5}, &MessageBody SEQUENCE OF StatusSettingMessage} |
- {&id {1 0 15784 3 0 6}, &MessageBody SEQUENCE OF GeneralStatusMessage} |
- {&id {1 0 15784 3 0 7}, &MessageBody SEQUENCE OF PowerStatusMessage} |
- {&id {1 0 15784 3 0 8}, &MessageBody SEQUENCE OF ModuleStatusMessage} |
- {&id {1 0 15784 3 0 9}, &MessageBody SEQUENCE OF DotStatusMessage} |
- {&id {1 0 15784 3 1 0}, &MessageBody SEQUENCE OF ScreenStatusMessage} |
- {&id {1 0 15784 3 1 1}, &MessageBody SEQUENCE OF DisplayingDataMessage} |
- {&id {1 0 15784 3 1 2}, &MessageBody SEQUENCE OF GraphicDisplayingDataMessage}
- }
- */
- /*
- EndApplicationMessage ::= SEQUENCE {
- endApplication-Message-id ISO14827-MESSAGE.&id,
- endApplication-Message-msg ISO14827-MESSAGE.&MessageBody
- }
- 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
- }
- */
- /*
- Publication
- */
- -- 301 실시간 정보표출메시지(RealTime Display Message)
- RealTimeDisplayMessage ::= SEQUENCE{
- message-serialID OCTET STRING,
- display-DurationQty INTEGER,
- display-ModeCode ENUMERATED {
- stationary,
- shift,
- scroll,
- wipe,
- curtain-up,
- curtain-down,
- curtain-left,
- curtain-right,
- trace,
- blind,
- blinking
- },
- display-DirectionCode ENUMERATED{
- none,
- up,
- down,
- left,
- right
- },
- background-ColorCode ENUMERATED{
- black,
- red,
- green,
- amber
- },
- object-Nbr INTEGER,
- objects SEQUENCE OF Object
- }
- Object ::= SEQUENCE{
- object-TypeCode ENUMERATED{
- text-object,
- graphic-object,
- graphic-id-object
- },
- blinking-Code ENUMERATED{
- off,
- on
- },
- x-Coordinate INTEGER,
- y-Coordinate INTEGER,
- data-BackgroundColor ENUMERATED{
- black,
- red,
- green,
- amber
- },
- object-Data ObjectData
- }
- ObjectData ::= CHOICE{
- text-object-data TextObjectData,
- graphic-object-data GraphicObjectData,
- graphicID-object-data GraphicIDObjectData
- }
- TextObjectData ::= SEQUENCE{
- font-ColorCode ENUMERATED{
- black,
- red,
- green,
- amber
- },
- font-Size INTEGER,
- font-TypeCode OCTET STRING,
- font-Thickness ENUMERATED{
- normal,
- bold
- },
- text-Data UTF8String
- }
- GraphicObjectData ::= SEQUENCE {
- graphic-Type ENUMERATED{
- bitmap,
- gif,
- jpg,
- pcx
- },
- graphic-Width INTEGER,
- graphic-Height INTEGER,
- graphic-Data OCTET STRING
- }
- GraphicIDObjectData ::= SEQUENCE {
- graphic-Type ENUMERATED{
- bitmap,
- gif,
- jpg,
- pcx
- },
- graphic-Width INTEGER,
- graphic-Height INTEGER,
- graphic-DataID OCTET STRING
- }
- -- 302 계획된 정보표출메시지(Scheduled Display Message)
- ScheduledDisplayMessage ::= SEQUENCE{
- message-Nbr INTEGER,
- message-serialIDs SEQUENCE OF OCTET STRING
- }
- -- 303 그래픽다운로드메시지(GraphicData Download Message)
- DownloadGraphicDataMessage ::= SEQUENCE{
- download-GraphicData-ID OCTET STRING,
- download-GraphicData OCTET STRING
- }
- -- 304 상태제어메시지(Status Control Message)
- StatusControlMessage ::= SEQUENCE{
- modulePower-ControlCode ENUMERATED{
- on,
- off,
- auto
- },
- luminance-ControlCode INTEGER,
- fan-ControlCode ENUMERATED{
- on,
- off,
- auto
- },
- heater-ControlCode ENUMERATED{
- on,
- off,
- auto
- },
- externalLight-ControlCode ENUMERATED{
- on,
- off,
- auto
- } OPTIONAL,
- alarmLight-ControlCode ENUMERATED{
- on,
- off
- } OPTIONAL,
- speaker-ControlCode ENUMERATED{
- on,
- off
- } OPTIONAL,
- controller-Reset BOOLEAN OPTIONAL,
- controllerTime-Reset GeneralizedTime OPTIONAL
- }
- -- 305 상태설정메시지(Status Setting Message)
- StatusSettingMessage ::= SEQUENCE{
- scheduledMessage-OperatingTimeQty INTEGER,
- module-OperatingTemperatureQty INTEGER,
- fan-OperatingTemperatureQty INTEGER,
- heater-OperatingTemperatureQty INTEGER,
- externalLight-OperatingLuminanceQty INTEGER OPTIONAL,
- module-BasicFailureRate INTEGER OPTIONAL,
- maximum-RetryQty INTEGER OPTIONAL,
- response-TimeOutQty INTEGER OPTIONAL,
- blinking-CycleTime INTEGER OPTIONAL
- }
- -- 306 기본상태정보메시지(General Status Message)
- GeneralStatusMessage ::= SEQUENCE{
- door-StatusCode ENUMERATED{
- open,
- closed
- },
- modulePower-StatusCode ENUMERATED{
- on,
- off,
- auto
- },
- body-TemperatureQty INTEGER,
- luminance-StatusQty INTEGER,
- fan-StatusCode ENUMERATED{
- on,
- off,
- auto
- },
- heater-StatusCode ENUMERATED{
- on,
- off,
- auto
- },
- externalLight-StatusCode ENUMERATED{
- on,
- off,
- auto
- } OPTIONAL,
- alarmLight-StatusCode ENUMERATED{
- on,
- off
- } OPTIONAL,
- speaker-StatusCode ENUMERATED{
- on,
- off
- } OPTIONAL,
- controller-CurrentTime GeneralizedTime OPTIONAL,
- scheduledmessage-OperatingTime INTEGER,
- module-OperatingTemperatureQty INTEGER,
- fan-OperatingTemperatureQty INTEGER,
- heater-OperatingTemperatureQty INTEGER,
- externalLight-OperatingLuminanceQty INTEGER OPTIONAL,
- module-BasicFailureRate INTEGER OPTIONAL,
- maximum-RetryQty INTEGER OPTIONAL,
- response-TimeOutQty INTEGER OPTIONAL,
- blinking-CycleTime INTEGER OPTIONAL
- }
- -- 307 전원상태정보메시지(Power Status Message)
- PowerStatusMessage ::= SEQUENCE{
- power-Qty INTEGER,
- power-Status BIT STRING
- }
- -- 308 모듈상태정보메시지(Module Status Message)
- ModuleStatusMessage ::= SEQUENCE{
- module-HorizontalQty INTEGER,
- module-VerticalQty INTEGER,
- module-Status BIT STRING
- }
- -- 309 도트상태정보메시지(Dots Status Message)
- DotStatusMessage ::= SEQUENCE {
- dot-HorizontalQty INTEGER,
- dot-VerticalQty INTEGER,
- dots-Status BIT STRING
- }
- -- 310 영상정보메시지(Screen Status Message)
- ScreenStatusMessage ::= SEQUENCE{
- capture-Time GeneralizedTime,
- screen-StatusData OCTET STRING
- }
- -- 311 표출정보메시지(Displaying Data Message)
- DisplayingDataMessage ::= RealTimeDisplayMessage
- -- 312 도형식 정보표출 메시지(Graphic Displaying Data Message)
- /*
- GraphicDisplayingDataMessage ::= SEQUENCE{
- TravelTime-DisplayFlag BOOLEAN,
- GraphicModule-Data SEQUENCE OF GraphicModuleDispData
- }
- GraphicModuleDispData ::= SEQUENCE {
- Module-number INTEGER,
- Display-Data INTEGER
- }
- */
- END
|