--Quelle: http://isotc.iso.org/livelink/livelink/8434785/protocol.txt?func=doc.Fetch&nodeid=8434785 ISO-9506-MMS-1 { iso standard 9506 part(2) mms-abstract-syntax-version1(1) } DEFINITIONS ::= BEGIN EXPORTS AlternateAccess, AttachToEventCondition, AttachToSemaphore, ConfirmedServiceRequest, Data, EE-State, FileName, Identifier, Integer8, Integer32, MMSString, MMS255String, ObjectName, TimeOfDay, TypeSpecification, Unsigned32, Unsigned8, VariableSpecification; IMPORTS ApplicationReference, Authentication-value FROM MMS-Environment-1 { iso standard 9506 part(2) mms-environment-version1 (4) } ObtainFile-Request, ObtainFile-Response, ObtainFile-Error, FileOpen-Request, FileOpen-Response, FileRead-Request, FileRead-Response, FileClose-Request, FileClose-Response, FileRename-Request, FileRename-Response, FileRename-Error, FileDelete-Request, FileDelete-Response, FileDirectory-Request, FileDirectory-Response, DefineScatteredAccess-Request, DefineScatteredAccess-Response, ScatteredAccessDescription, GetScatteredAccessAttributes-Request, GetScatteredAccessAttributes-Response FROM ISO-9506-MMS-1A { iso standard 9506 part(2) mms-annex-version1(3) } AccessCondition, AdditionalCBBOptions, AdditionalSupportOptions, Address, AlarmAckRule, Control-State, DomainState, EC-State, EC-Class, EE-Duration, EE-Class, EventTime, Journal-Variable, LogicalStatus, Modifier, normalPriority, normalSeverity, ParameterSupportOptions, PhysicalStatus, Priority, ProgramInvocationState, Running-Mode, ServiceSupportOptions, Severity, Transitions, TypeDescription, ULState, VMDState FROM MMS-Object-Module-1 { iso standard 9506 part(1) mms-object-model-version1(2) }; MMSpdu ::= CHOICE { confirmed-RequestPDU [0] IMPLICIT Confirmed-RequestPDU, confirmed-ResponsePDU [1] IMPLICIT Confirmed-ResponsePDU, confirmed-ErrorPDU [2] IMPLICIT Confirmed-ErrorPDU, IF ( unsolicitedStatus informationReport eventNotification ) unconfirmed-PDU [3] IMPLICIT Unconfirmed-PDU, ELSE unconfirmed-PDU [3] IMPLICIT NULL, ENDIF rejectPDU [4] IMPLICIT RejectPDU, IF (cancel) cancel-RequestPDU [5] IMPLICIT Cancel-RequestPDU, cancel-ResponsePDU [6] IMPLICIT Cancel-ResponsePDU, cancel-ErrorPDU [7] IMPLICIT Cancel-ErrorPDU, ELSE cancel-RequestPDU [5] IMPLICIT NULL, cancel-ResponsePDU [6] IMPLICIT NULL, cancel-ErrorPDU [7] IMPLICIT NULL, ENDIF initiate-RequestPDU [8] IMPLICIT Initiate-RequestPDU, initiate-ResponsePDU [9] IMPLICIT Initiate-ResponsePDU, initiate-ErrorPDU [10] IMPLICIT Initiate-ErrorPDU, conclude-RequestPDU [11] IMPLICIT Conclude-RequestPDU, conclude-ResponsePDU [12] IMPLICIT Conclude-ResponsePDU, conclude-ErrorPDU [13] IMPLICIT Conclude-ErrorPDU } Confirmed-RequestPDU ::= SEQUENCE { invokeID Unsigned32, IF (attachToEventCondition attachToSemaphore ) listOfModifiers SEQUENCE OF Modifier OPTIONAL, ENDIF service ConfirmedServiceRequest, ... IF ( csr cspi ), service-ext [79] Request-Detail OPTIONAL ENDIF -- shall not be transmitted if value is the value -- of a tagged type derived from NULL } ConfirmedServiceRequest ::= CHOICE { IF ( status ) status [0] IMPLICIT Status-Request ELSE status [0] IMPLICIT NULL ENDIF IF ( getNameList ) , getNameList [1] IMPLICIT GetNameList-Request ELSE , getNameList [1] IMPLICIT NULL ENDIF IF ( identify ) , identify [2] IMPLICIT Identify-Request ELSE , identify [2] IMPLICIT NULL ENDIF IF ( rename ) , rename [3] IMPLICIT Rename-Request ELSE , rename [3] IMPLICIT NULL ENDIF IF ( read ) , read [4] IMPLICIT Read-Request ELSE , read [4] IMPLICIT NULL ENDIF IF ( write ) , write [5] IMPLICIT Write-Request ELSE , write [5] IMPLICIT NULL ENDIF IF ( vnam vadr ) IF ( getVariableAccessAttributes ) , getVariableAccessAttributes [6] GetVariableAccessAttributes-Request ELSE , getVariableAccessAttributes [6] IMPLICIT NULL ENDIF ELSE , getVariableAccessAttributes [6] IMPLICIT NULL ENDIF IF ( vnam ) IF ( vadr ) IF ( defineNamedVariable ) , defineNamedVariable [7] IMPLICIT DefineNamedVariable-Request ELSE , defineNamedVariable [7] IMPLICIT NULL ENDIF ELSE , defineNamedVariable [7] IMPLICIT NULL ENDIF ELSE , defineNamedVariable [7] IMPLICIT NULL ENDIF IF ( vsca ) -- [8] is reserved for a service defined in Annex E IF ( defineScatteredAccess ) , defineScatteredAccess [8] IMPLICIT DefineScatteredAccess-Request ELSE , defineScatteredAccess [8] IMPLICIT NULL ENDIF -- [9] is reserved for a service defined in Annex E IF ( getScatteredAccessAttributes ) , getScatteredAccessAttributes [9] GetScatteredAccessAttributes-Request ELSE , getScatteredAccessAttributes [9] IMPLICIT NULL ENDIF ELSE , defineScatteredAccess [8] IMPLICIT NULL, getScatteredAccessAttributes [9] IMPLICIT NULL ENDIF IF ( vnam ) IF ( deleteVariableAccess ) , deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Request ELSE , deleteVariableAccess [10] IMPLICIT NULL ENDIF ELSE , deleteVariableAccess [10] IMPLICIT NULL ENDIF IF ( vlis ) IF ( vnam ) IF ( defineNamedVariableList ) , defineNamedVariableList [11] IMPLICIT DefineNamedVariableList-Request ELSE , defineNamedVariableList [11] IMPLICIT NULL ENDIF IF ( getNamedVariableListAttributes ) , getNamedVariableListAttributes [12] GetNamedVariableListAttributes-Request ELSE , getNamedVariableListAttributes [12] IMPLICIT NULL ENDIF IF ( deleteNamedVariableList ) , deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-Request ELSE , deleteNamedVariableList [13] IMPLICIT NULL ENDIF ELSE , defineNamedVariableList [11] IMPLICIT NULL, getNamedVariableListAttribute [12] IMPLICIT NULL, deleteNamedVariableList [13] IMPLICIT NULL ENDIF ELSE , defineNamedVariableList [11] IMPLICIT NULL, getNamedVariableListAttributes [12] IMPLICIT NULL, deleteNamedVariableList [13] IMPLICIT NULL ENDIF ENDIF IF ( vnam ) IF ( defineNamedType ) , defineNamedType [14] IMPLICIT DefineNamedType-Request ELSE , defineNamedType [14] IMPLICIT NULL ENDIF IF ( getNamedTypeAttributes ) , getNamedTypeAttributes [15] GetNamedTypeAttributes-Request ELSE , getNamedTypeAttributes [15] IMPLICIT NULL ENDIF IF ( deleteNamedType ) , deleteNamedType [16] IMPLICIT DeleteNamedType-Request ELSE , deleteNamedType [16] IMPLICIT NULL ENDIF ELSE , defineNamedType [14] IMPLICIT NULL, getNamedTypeAttributes [15] IMPLICIT NULL, deleteNamedType [16] IMPLICIT NULL ENDIF IF ( input ) , input [17] IMPLICIT Input-Request ELSE , input [17] IMPLICIT NULL ENDIF IF ( output ) , output [18] IMPLICIT Output-Request ELSE , output [18] IMPLICIT NULL ENDIF IF ( takeControl ) , takeControl [19] IMPLICIT TakeControl-Request ELSE , takeControl [19] IMPLICIT NULL ENDIF IF ( relinquishControl ) , relinquishControl [20] IMPLICIT RelinquishControl-Request ELSE , relinquishControl [20] IMPLICIT NULL ENDIF IF ( defineSemaphore ) , defineSemaphore [21] IMPLICIT DefineSemaphore-Request ELSE , defineSemaphore [21] IMPLICIT NULL ENDIF IF ( deleteSemaphore ) , deleteSemaphore [22] DeleteSemaphore-Request ELSE , deleteSemaphore [22] IMPLICIT NULL ENDIF IF ( reportSemaphoreStatus ) , reportSemaphoreStatus [23] ReportSemaphoreStatus-Request ELSE , reportSemaphoreStatus [23] IMPLICIT NULL ENDIF IF ( reportPoolSemaphoreStatus ) , reportPoolSemaphoreStatus [24] IMPLICIT ReportPoolSemaphoreStatus-Request ELSE , reportPoolSemaphoreStatus [24] IMPLICIT NULL ENDIF IF ( reportSemaphoreEntryStatus ) , reportSemaphoreEntryStatus [25] IMPLICIT ReportSemaphoreEntryStatus-Request ELSE , reportSemaphoreEntryStatus [25] IMPLICIT NULL ENDIF IF ( initiateDownloadSequence ) , initiateDownloadSequence [26] IMPLICIT InitiateDownloadSequence-Request, downloadSegment [27] IMPLICIT DownloadSegment-Request, terminateDownloadSequence [28] IMPLICIT TerminateDownloadSequence-Request ELSE , initiateDownloadSequence [26] IMPLICIT NULL, downloadSegment [27] IMPLICIT NULL, terminateDownloadSequence [28] IMPLICIT NULL ENDIF IF ( initiateUploadSequence ) , initiateUploadSequence [29] IMPLICIT InitiateUploadSequence-Request, uploadSegment [30] IMPLICIT UploadSegment-Request, terminateUploadSequence [31] IMPLICIT TerminateUploadSequence-Request ELSE , initiateUploadSequence [29] IMPLICIT NULL, uploadSegment [30] IMPLICIT NULL, terminateUploadSequence [31] IMPLICIT NULL ENDIF IF ( requestDomainDownload ) , requestDomainDownload [32] IMPLICIT RequestDomainDownload-Request ELSE , requestDomainDownload [32] IMPLICIT NULL ENDIF IF ( requestDomainUpload ) , requestDomainUpload [33] IMPLICIT RequestDomainUpload-Request ELSE , requestDomainUpload [33] IMPLICIT NULL ENDIF IF ( loadDomainContent ) , loadDomainContent [34] IMPLICIT LoadDomainContent-Request ELSE , loadDomainContent [34] IMPLICIT NULL ENDIF IF ( storeDomainContent ) , storeDomainContent [35] IMPLICIT StoreDomainContent-Request ELSE , storeDomainContent [35] IMPLICIT NULL ENDIF IF ( deleteDomain ) , deleteDomain [36] IMPLICIT DeleteDomain-Request ELSE , deleteDomain [36] IMPLICIT NULL ENDIF IF ( getDomainAttributes ) , getDomainAttributes [37] IMPLICIT GetDomainAttributes-Request ELSE , getDomainAttributes [37] IMPLICIT NULL ENDIF IF ( createProgramInvocation ) , createProgramInvocation [38] IMPLICIT CreateProgramInvocation-Request ELSE , createProgramInvocation [38] IMPLICIT NULL ENDIF IF ( deleteProgramInvocation ) , deleteProgramInvocation [39] IMPLICIT DeleteProgramInvocation-Request ELSE , deleteProgramInvocation [39] IMPLICIT NULL ENDIF IF ( start ) , start [40] IMPLICIT Start-Request ELSE , start [40] IMPLICIT NULL ENDIF IF ( stop ) , stop [41] IMPLICIT Stop-Request ELSE , stop [41] IMPLICIT NULL ENDIF IF ( resume ) , resume [42] IMPLICIT Resume-Request ELSE , resume [42] IMPLICIT NULL ENDIF IF ( reset ) , reset [43] IMPLICIT Reset-Request ELSE , reset [43] IMPLICIT NULL ENDIF IF ( kill ) , kill [44] IMPLICIT Kill-Request ELSE , kill [44] IMPLICIT NULL ENDIF IF ( getProgramInvocationAttributes ) , getProgramInvocationAttributes [45] IMPLICIT GetProgramInvocationAttributes-Request ELSE , getProgramInvocationAttributes [45] IMPLICIT NULL ENDIF IF ( obtainFile ) , obtainFile [46] IMPLICIT ObtainFile-Request ELSE , obtainFile [46] IMPLICIT NULL ENDIF IF ( defineEventCondition ) , defineEventCondition [47] IMPLICIT DefineEventCondition-Request ELSE , defineEventCondition [47] IMPLICIT NULL ENDIF IF ( deleteEventCondition ) , deleteEventCondition [48] DeleteEventCondition-Request ELSE , deleteEventCondition [48] IMPLICIT NULL ENDIF IF ( getEventConditionAttributes ) , getEventConditionAttributes [49] GetEventConditionAttributes-Request ELSE , getEventConditionAttributes [49] IMPLICIT NULL ENDIF IF ( reportEventConditionStatus ) , reportEventConditionStatus [50] ReportEventConditionStatus-Request ELSE , reportEventConditionStatus [50] IMPLICIT NULL ENDIF IF ( alterEventConditionMonitoring ) , alterEventConditionMonitoring [51] IMPLICIT AlterEventConditionMonitoring-Request ELSE , alterEventConditionMonitoring [51] IMPLICIT NULL ENDIF IF ( triggerEvent ) , triggerEvent [52] IMPLICIT TriggerEvent-Request ELSE , triggerEvent [52] IMPLICIT NULL ENDIF IF ( defineEventAction ) , defineEventAction [53] IMPLICIT DefineEventAction-Request ELSE , defineEventAction [53] IMPLICIT NULL ENDIF IF ( deleteEventAction ) , deleteEventAction [54] DeleteEventAction-Request ELSE , deleteEventAction [54] IMPLICIT NULL ENDIF IF ( getEventActionAttributes ) , getEventActionAttributes [55] GetEventActionAttributes-Request ELSE , getEventActionAttributes [55] IMPLICIT NULL ENDIF IF ( reportEventActionStatus ) , reportEventActionStatus [56] ReportEventActionStatus-Request ELSE , reportEventActionStatus [56] IMPLICIT NULL ENDIF IF ( defineEventEnrollment ) , defineEventEnrollment [57] IMPLICIT DefineEventEnrollment-Request ELSE , defineEventEnrollment [57] IMPLICIT NULL ENDIF IF ( deleteEventEnrollment ) , deleteEventEnrollment [58] DeleteEventEnrollment-Request ELSE , deleteEventEnrollment [58] IMPLICIT NULL ENDIF IF ( alterEventEnrollment ) , alterEventEnrollment [59] IMPLICIT AlterEventEnrollment-Request ELSE , alterEventEnrollment [59] IMPLICIT NULL ENDIF IF ( reportEventEnrollmentStatus ) , reportEventEnrollmentStatus [60] ReportEventEnrollmentStatus-Request ELSE , reportEventEnrollmentStatus [60] IMPLICIT NULL ENDIF IF ( getEventEnrollmentAttributes ) , getEventEnrollmentAttributes [61] IMPLICIT GetEventEnrollmentAttributes-Request ELSE , getEventEnrollmentAttributes [61] IMPLICIT NULL ENDIF IF ( acknowledgeEventNotification ) , acknowledgeEventNotification [62] IMPLICIT AcknowledgeEventNotification-Request ELSE , acknowledgeEventNotification [62] IMPLICIT NULL ENDIF IF ( getAlarmSummary ) , getAlarmSummary [63] IMPLICIT GetAlarmSummary-Request ELSE , getAlarmSummary [63] IMPLICIT NULL ENDIF IF ( getAlarmEnrollmentSummary ) , getAlarmEnrollmentSummary [64] IMPLICIT GetAlarmEnrollmentSummary-Request ELSE , getAlarmEnrollmentSummary [64] IMPLICIT NULL ENDIF IF ( readJournal ) , readJournal [65] IMPLICIT ReadJournal-Request ELSE , readJournal [65] IMPLICIT NULL ENDIF IF ( writeJournal ) , writeJournal [66] IMPLICIT WriteJournal-Request ELSE , writeJournal [66] IMPLICIT NULL ENDIF IF ( initializeJournal ) , initializeJournal [67] IMPLICIT InitializeJournal-Request ELSE , initializeJournal [67] IMPLICIT NULL ENDIF IF ( reportJournalStatus ) , reportJournalStatus [68] ReportJournalStatus-Request ELSE , reportJournalStatus [68] IMPLICIT NULL ENDIF IF ( createJournal ) , createJournal [69] IMPLICIT CreateJournal-Request ELSE , createJournal [69] IMPLICIT NULL ENDIF IF ( deleteJournal ) , deleteJournal [70] IMPLICIT DeleteJournal-Request ELSE , deleteJournal [70] IMPLICIT NULL ENDIF IF ( getCapabilityList ) , getCapabilityList [71] IMPLICIT GetCapabilityList-Request ELSE , getCapabilityList [71] IMPLICIT NULL ENDIF -- choices [72] through [77] are reserved for use by services -- defined in annex D IF ( fileOpen ) , fileOpen [72] IMPLICIT FileOpen-Request ELSE , fileOpen [72] IMPLICIT NULL ENDIF IF ( fileRead ) , fileRead [73] IMPLICIT FileRead-Request ELSE , fileRead [73] IMPLICIT NULL ENDIF IF ( fileClose ) , fileClose [74] IMPLICIT FileClose-Request ELSE , fileClose [74] IMPLICIT NULL ENDIF IF ( fileRename ) , fileRename [75] IMPLICIT FileRename-Request ELSE , fileRename [75] IMPLICIT NULL ENDIF IF ( fileDelete ) , fileDelete [76] IMPLICIT FileDelete-Request ELSE , fileDelete [76] IMPLICIT NULL ENDIF IF ( fileDirectory ) , fileDirectory [77] IMPLICIT FileDirectory-Request ELSE , fileDirectory [77] IMPLICIT NULL ENDIF ,... IF ( csr cspi ) , additionalService [78] AdditionalService-Request ENDIF -- choice [79] is reserved IF ( getDataExchangeAttributes ) , getDataExchangeAttributes [80] GetDataExchangeAttributes-Request -- Shall not appear in minor version 1 ENDIF IF ( exchangeData ) , exchangeData [81] IMPLICIT ExchangeData-Request -- Shall not appear in minor version 1 ENDIF IF ( defineAccessControlList ) , defineAccessControlList [82] IMPLICIT DefineAccessControlList-Request -- Shall not appear in minor version 1 or 2 ENDIF IF ( getAccessControlListAttributes ) , getAccessControlListAttributes [83] GetAccessControlListAttributes-Request -- Shall not appear in minor version 1 or 2 ENDIF IF ( reportAccessControlledObjects ) , reportAccessControlledObjects [84] IMPLICIT ReportAccessControlledObjects-Request -- Shall not appear in minor version 1 or 2 ENDIF IF ( deleteAccessControlList ) , deleteAccessControlList [85] IMPLICIT DeleteAccessControlList-Request -- Shall not appear in minor version 1 or 2 ENDIF IF ( changeAccessControl ) , changeAccessControl [86] IMPLICIT ChangeAccessControl-Request -- Shall not appear in minor version 1 or 2 ENDIF ,... } AdditionalService-Request ::= CHOICE { IF ( csr ) IF ( vMDStop ) vMDStop [0] IMPLICIT VMDStop-Request ELSE vMDStop [0] IMPLICIT NULL ENDIF IF ( vMDReset ) , vMDReset [1] IMPLICIT VMDReset-Request ELSE , vMDReset [1] IMPLICIT NULL ENDIF IF ( select ) , select [2] IMPLICIT Select-Request ELSE , select [2] IMPLICIT NULL ENDIF IF ( alterProgramInvocationAttributes ) , alterPI [3] IMPLICIT AlterProgramInvocationAttributes-Request ELSE , alterPI [3] IMPLICIT NULL ENDIF ELSE , vMDStop [0] IMPLICIT NULL, vMDReset [1] IMPLICIT NULL, select [2] IMPLICIT NULL, alterPI [3] IMPLICIT NULL ENDIF IF ( cspi ) IF ( initiateUnitControlLoad ) , initiateUCLoad [4] IMPLICIT InitiateUnitControlLoad-Request ELSE , initiateUCLoad [4] IMPLICIT NULL ENDIF IF ( unitControlLoadSegment ) , uCLoad [5] IMPLICIT UnitControlLoadSegment-Request ELSE , uCLoad [5] IMPLICIT NULL ENDIF IF ( unitControlUpload ) , uCUpload [6] IMPLICIT UnitControlUpload-Request ELSE , uCUpload [6] IMPLICIT NULL ENDIF IF ( startUnitControl ) , startUC [7] IMPLICIT StartUnitControl-Request ELSE , startUC [7] IMPLICIT NULL ENDIF IF ( stopUnitControl ) , stopUC [8] IMPLICIT StopUnitControl-Request ELSE , stopUC [8] IMPLICIT NULL ENDIF IF ( createUnitControl ) , createUC [9] IMPLICIT CreateUnitControl-Request ELSE , createUC [9] IMPLICIT NULL ENDIF IF ( addToUnitControl ) , addToUC [10] IMPLICIT AddToUnitControl-Request ELSE , addToUC [10] IMPLICIT NULL ENDIF IF ( removeFromUnitControl ) , removeFromUC [11] IMPLICIT RemoveFromUnitControl-Request ELSE , removeFromUC [11] IMPLICIT NULL ENDIF IF ( getUnitControlAttributes ) , getUCAttributes [12] IMPLICIT GetUnitControlAttributes-Request ELSE , getUCAttributes [12] IMPLICIT NULL ENDIF IF ( loadUnitControlFromFile ) , loadUCFromFile [13] IMPLICIT LoadUnitControlFromFile-Request ELSE , loadUCFromFile [13] IMPLICIT NULL ENDIF IF ( storeUnitControlToFile ) , storeUCToFile [14] IMPLICIT StoreUnitControlToFile-Request ELSE , storeUCToFile [14] IMPLICIT NULL ENDIF IF ( deleteUnitControl ) , deleteUC [15] IMPLICIT DeleteUnitControl-Request ELSE , deleteUC [15] IMPLICIT NULL ENDIF IF ( defineEventConditionList ) , defineECL [16] DefineEventConditionList-Request ELSE , defineECL [16] IMPLICIT NULL ENDIF IF ( deleteEventConditionList ) , deleteECL [17] DeleteEventConditionList-Request ELSE , deleteECL [17] IMPLICIT NULL ENDIF IF ( addEventConditionListReference ) , addECLReference [18] IMPLICIT AddEventConditionListReference-Request ELSE , addECLReference [18] IMPLICIT NULL ENDIF IF ( removeEventConditionListReference ) , removeECLReference [19] IMPLICIT RemoveEventConditionListReference-Request ELSE , removeECLReference [19] IMPLICIT NULL ENDIF IF ( getEventConditionListAttributes ) , getECLAttributes [20] GetEventConditionListAttributes-Request ELSE , getECLAttributes [20] IMPLICIT NULL ENDIF IF ( reportEventConditionListStatus ) , reportECLStatus [21] IMPLICIT ReportEventConditionListStatus-Request ELSE , reportECLStatus [21] IMPLICIT NULL ENDIF IF ( alterEventConditionListMonitoring ) , alterECLMonitoring [22] IMPLICIT AlterEventConditionListMonitoring-Request ELSE , alterECLMonitoring [22] IMPLICIT NULL ENDIF ELSE , initiateUCLoad [4] IMPLICIT NULL, uCLoad [5] IMPLICIT NULL, uCUpload [6] IMPLICIT NULL, startUC [7] IMPLICIT NULL, stopUC [8] IMPLICIT NULL, createUC [9] IMPLICIT NULL, addToUC [10] IMPLICIT NULL, removeFromUC [11] IMPLICIT NULL, getUCAttributes [12] IMPLICIT NULL, loadUCFromFile [13] IMPLICIT NULL, storeUCToFile [14] IMPLICIT NULL, deleteUC [15] IMPLICIT NULL, defineECL [16] IMPLICIT NULL, deleteECL [17] IMPLICIT NULL, addECLReference [18] IMPLICIT NULL, removeECLReference [19] IMPLICIT NULL, getECLAttributes [20] IMPLICIT NULL, reportECLStatus [21] IMPLICIT NULL, alterECLMonitoring [22] IMPLICIT NULL ENDIF } Request-Detail ::= CHOICE { -- this choice shall be selected if the tag value of the -- ConfirmedServiceRequest does not match any of the tags below otherRequests NULL IF ( createProgramInvocation ) , createProgramInvocation [38] IMPLICIT CS-CreateProgramInvocation-Request ELSE , createProgramInvocation [38] IMPLICIT NULL ENDIF IF ( start ) , start [40] IMPLICIT CS-Start-Request ELSE , start [40] IMPLICIT NULL ENDIF IF ( resume ) , resume [42] IMPLICIT CS-Resume-Request ELSE , resume [42] IMPLICIT NULL ENDIF IF ( defineEventCondition ) , defineEventCondition [47] IMPLICIT CS-DefineEventCondition-Request ELSE , defineEventCondition [47] IMPLICIT NULL ENDIF IF ( alterEventConditionMonitoring ) , alterEventConditionMonitoring [51] IMPLICIT CS-AlterEventConditionMonitoring-Request ELSE , alterEventConditionMonitoring [51] IMPLICIT NULL ENDIF IF ( defineEventEnrollment ) , defineEventEnrollment [57] IMPLICIT CS-DefineEventEnrollment-Request ELSE , defineEventEnrollment [57] IMPLICIT NULL ENDIF IF ( alterEventEnrollment ) , alterEventEnrollment [59] IMPLICIT CS-AlterEventEnrollment-Request ELSE , alterEventEnrollment [59] IMPLICIT NULL ENDIF } Unconfirmed-PDU ::= SEQUENCE { service UnconfirmedService, ... IF ( cspi ) , service-ext [79] Unconfirmed-Detail OPTIONAL ENDIF -- shall not be transmitted if value is the value -- of a tagged type derived from NULL } UnconfirmedService ::= CHOICE { IF (informationReport ) informationReport [0] IMPLICIT InformationReport ELSE informationReport [0] IMPLICIT NULL ENDIF IF ( unsolicitedStatus ) , unsolicitedStatus [1] IMPLICIT UnsolicitedStatus ELSE , unsolicitedStatus [1] IMPLICIT NULL ENDIF IF ( eventNotification ) , eventNotification [2] IMPLICIT EventNotification ELSE , eventNotification [2] IMPLICIT NULL ENDIF } Unconfirmed-Detail ::= CHOICE { -- this choice shall be selected if the tag value of the -- UnconfirmedService does not match any of the tags below otherRequests NULL IF ( cspi ) , eventNotification [2] IMPLICIT CS-EventNotification ENDIF } Confirmed-ResponsePDU ::= SEQUENCE { invokeID Unsigned32, service ConfirmedServiceResponse, ... IF ( csr cspi ), service-ext [79] Response-Detail OPTIONAL ENDIF -- shall not be transmitted if value is the value -- of a tagged type derived from NULL } ConfirmedServiceResponse ::= CHOICE { IF ( status ) status [0] IMPLICIT Status-Response ELSE status [0] IMPLICIT RejectPDU ENDIF IF ( getNameList ) , getNameList [1] IMPLICIT GetNameList-Response ELSE , getNameList [1] IMPLICIT RejectPDU ENDIF IF ( identify ) , identify [2] IMPLICIT Identify-Response ELSE , identify [2] IMPLICIT RejectPDU ENDIF IF ( rename ) , rename [3] IMPLICIT Rename-Response ELSE , rename [3] IMPLICIT RejectPDU ENDIF IF ( read ) , read [4] IMPLICIT Read-Response ELSE , read [4] IMPLICIT RejectPDU ENDIF IF ( write ) , write [5] IMPLICIT Write-Response ELSE , write [5] IMPLICIT RejectPDU ENDIF IF ( vnam vadr ) IF ( getVariableAccessAttributes ) , getVariableAccessAttributes [6] IMPLICIT GetVariableAccessAttributes-Response ELSE , getVariableAccessAttributes [6] IMPLICIT RejectPDU ENDIF ELSE , getVariableAccessAttributes [6] IMPLICIT RejectPDU ENDIF IF ( vnam ) IF ( vadr ) IF ( defineNamedVariable ) , defineNamedVariable [7] IMPLICIT DefineNamedVariable-Response ELSE , defineNamedVariable [7] IMPLICIT RejectPDU ENDIF ELSE , defineNamedVariable [7] IMPLICIT RejectPDU ENDIF ELSE , defineNamedVariable [7] IMPLICIT RejectPDU ENDIF IF ( vsca ) -- choice [8] is reserved for a service defined in Annex E IF ( defineScatteredAccess ) , defineScatteredAccess [8] IMPLICIT DefineScatteredAccess-Response ELSE , defineScatteredAccess [8] IMPLICIT RejectPDU ENDIF -- choice [9] is reserved for a service defined in Annex E IF ( getScatteredAccessAttributes ) , getScatteredAccessAttributes [9] IMPLICIT GetScatteredAccessAttributes-Response ELSE , getScatteredAccessAttributes [9] IMPLICIT RejectPDU ENDIF ELSE , defineScatteredAccess [8] IMPLICIT RejectPDU, getScatteredAccessAttributes [9] IMPLICIT RejectPDU ENDIF IF ( vnam ) IF ( deleteVariableAccess ) , deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Response ELSE , deleteVariableAccess [10] IMPLICIT RejectPDU ENDIF ELSE , deleteVariableAccess [10] IMPLICIT RejectPDU ENDIF IF ( vlis ) IF ( vnam ) IF ( defineNamedVariableList ) , defineNamedVariableList [11] IMPLICIT DefineNamedVariableList-Response ELSE , defineNamedVariableList [11] IMPLICIT RejectPDU ENDIF IF ( getNamedVariableListAttributes ) , getNamedVariableListAttributes [12] IMPLICIT GetNamedVariableListAttributes-Response ELSE , getNamedVariableListAttributes [12] IMPLICIT RejectPDU ENDIF IF ( deleteNamedVariableList ) , deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-Response ELSE , deleteNamedVariableList [13] IMPLICIT RejectPDU ENDIF ELSE , defineNamedVariableList [11] IMPLICIT RejectPDU, getNamedVariableListAttributes [12] IMPLICIT RejectPDU, deleteNamedVariableList [13] IMPLICIT RejectPDU ENDIF ELSE , defineNamedVariableList [11] IMPLICIT RejectPDU, getNamedVariableListAttributes [12] IMPLICIT RejectPDU, deleteNamedVariableList [13] IMPLICIT RejectPDU ENDIF IF ( vnam ) IF ( defineNamedType ) , defineNamedType [14] IMPLICIT DefineNamedType-Response ELSE , defineNamedType [14] IMPLICIT RejectPDU ENDIF IF ( getNamedTypeAttributes ) , getNamedTypeAttributes [15] IMPLICIT GetNamedTypeAttributes-Response ELSE , getNamedTypeAttributes [15] IMPLICIT RejectPDU ENDIF IF ( deleteNamedType ) , deleteNamedType [16] IMPLICIT DeleteNamedType-Response ELSE , deleteNamedType [16] IMPLICIT RejectPDU ENDIF ELSE , defineNamedType [14] IMPLICIT RejectPDU, getNamedTypeAttributes [15] IMPLICIT RejectPDU, deleteNamedType [16] IMPLICIT RejectPDU ENDIF IF ( input ) , input [17] IMPLICIT Input-Response ELSE , input [17] IMPLICIT RejectPDU ENDIF IF ( output ) , output [18] IMPLICIT Output-Response ELSE , output [18] IMPLICIT RejectPDU ENDIF IF ( takeControl ) , takeControl [19] TakeControl-Response ELSE , takeControl [19] IMPLICIT RejectPDU ENDIF IF ( relinquishControl ) , relinquishControl [20] IMPLICIT RelinquishControl-Response ELSE , relinquishControl [20] IMPLICIT RejectPDU ENDIF IF ( defineSemaphore ) , defineSemaphore [21] IMPLICIT DefineSemaphore-Response ELSE , defineSemaphore [21] IMPLICIT RejectPDU ENDIF IF ( deleteSemaphore ) , deleteSemaphore [22] IMPLICIT DeleteSemaphore-Response ELSE , deleteSemaphore [22] IMPLICIT RejectPDU ENDIF IF ( reportSemaphoreStatus ) , reportSemaphoreStatus [23] IMPLICIT ReportSemaphoreStatus-Response ELSE , reportSemaphoreStatus [23] IMPLICIT RejectPDU ENDIF IF ( reportPoolSemaphoreStatus ) , reportPoolSemaphoreStatus [24] IMPLICIT ReportPoolSemaphoreStatus-Response ELSE , reportPoolSemaphoreStatus [24] IMPLICIT RejectPDU ENDIF IF ( reportSemaphoreEntryStatus ) , reportSemaphoreEntryStatus [25] IMPLICIT ReportSemaphoreEntryStatus-Response ELSE , reportSemaphoreEntryStatus [25] IMPLICIT RejectPDU ENDIF IF ( initiateDownloadSequence ) , initiateDownloadSequence [26] IMPLICIT InitiateDownloadSequence-Response, downloadSegment [27] IMPLICIT DownloadSegment-Response, terminateDownloadSequence [28] IMPLICIT TerminateDownloadSequence-Response ELSE , initiateDownloadSequence [26] IMPLICIT RejectPDU, downloadSegment [27] IMPLICIT RejectPDU, terminateDownloadSequence [28] IMPLICIT RejectPDU ENDIF IF ( initiateUploadSequence ) , initiateUploadSequence [29] IMPLICIT InitiateUploadSequence-Response, uploadSegment [30] IMPLICIT UploadSegment-Response, terminateUploadSequence [31] IMPLICIT TerminateUploadSequence-Response ELSE , initiateUploadSequence [29] IMPLICIT RejectPDU, uploadSegment [30] IMPLICIT RejectPDU, terminateUploadSequence [31] IMPLICIT RejectPDU ENDIF IF ( requestDomainDownload ) , requestDomainDownload [32] IMPLICIT RequestDomainDownload-Response ELSE , requestDomainDownload [32] IMPLICIT RejectPDU ENDIF IF ( requestDomainUpload ) , requestDomainUpload [33] IMPLICIT RequestDomainUpload-Response ELSE , requestDomainUpload [33] IMPLICIT RejectPDU ENDIF IF ( loadDomainContent ) , loadDomainContent [34] IMPLICIT LoadDomainContent-Response ELSE , loadDomainContent [34] IMPLICIT RejectPDU ENDIF IF ( storeDomainContent ) , storeDomainContent [35] IMPLICIT StoreDomainContent-Response ELSE , storeDomainContent [35] IMPLICIT RejectPDU ENDIF IF ( deleteDomain ) , deleteDomain [36] IMPLICIT DeleteDomain-Response ELSE , deleteDomain [36] IMPLICIT RejectPDU ENDIF IF ( getDomainAttributes ) , getDomainAttributes [37] IMPLICIT GetDomainAttributes-Response ELSE , getDomainAttributes [37] IMPLICIT RejectPDU ENDIF IF ( createProgramInvocation ) , createProgramInvocation [38] IMPLICIT CreateProgramInvocation-Response ELSE , createProgramInvocation [38] IMPLICIT RejectPDU ENDIF IF ( deleteProgramInvocation ) , deleteProgramInvocation [39] IMPLICIT DeleteProgramInvocation-Response ELSE , deleteProgramInvocation [39] IMPLICIT RejectPDU ENDIF IF ( start ) , start [40] IMPLICIT Start-Response ELSE , start [40] IMPLICIT RejectPDU ENDIF IF ( stop ) , stop [41] IMPLICIT Stop-Response ELSE , stop [41] IMPLICIT RejectPDU ENDIF IF ( resume ) , resume [42] IMPLICIT Resume-Response ELSE , resume [42] IMPLICIT RejectPDU ENDIF IF ( reset ) , reset [43] IMPLICIT Reset-Response ELSE , reset [43] IMPLICIT RejectPDU ENDIF IF ( kill ) , kill [44] IMPLICIT Kill-Response ELSE , kill [44] IMPLICIT RejectPDU ENDIF IF ( getProgramInvocationAttributes ) , getProgramInvocationAttributes [45] IMPLICIT GetProgramInvocationAttributes-Response ELSE , getProgramInvocationAttributes [45] IMPLICIT RejectPDU ENDIF IF ( obtainFile ) , obtainFile [46] IMPLICIT ObtainFile-Response ELSE , obtainFile [46] IMPLICIT RejectPDU ENDIF IF ( defineEventCondition ) , defineEventCondition [47] IMPLICIT DefineEventCondition-Response ELSE , defineEventCondition [47] IMPLICIT RejectPDU ENDIF IF ( deleteEventCondition ) , deleteEventCondition [48] IMPLICIT DeleteEventCondition-Response ELSE , deleteEventCondition [48] IMPLICIT RejectPDU ENDIF IF ( getEventConditionAttributes ) , getEventConditionAttributes [49] IMPLICIT GetEventConditionAttributes-Response ELSE , getEventConditionAttributes [49] IMPLICIT RejectPDU ENDIF IF ( reportEventConditionStatus ) , reportEventConditionStatus [50] IMPLICIT ReportEventConditionStatus-Response ELSE , reportEventConditionStatus [50] IMPLICIT RejectPDU ENDIF IF ( alterEventConditionMonitoring ) , alterEventConditionMonitoring [51] IMPLICIT AlterEventConditionMonitoring-Response ELSE , alterEventConditionMonitoring [51] IMPLICIT RejectPDU ENDIF IF ( triggerEvent ) , triggerEvent [52] IMPLICIT TriggerEvent-Response ELSE , triggerEvent [52] IMPLICIT RejectPDU ENDIF IF ( defineEventAction ) , defineEventAction [53] IMPLICIT DefineEventAction-Response ELSE , defineEventAction [53] IMPLICIT RejectPDU ENDIF IF ( deleteEventAction ) , deleteEventAction [54] IMPLICIT DeleteEventAction-Response ELSE , deleteEventAction [54] IMPLICIT RejectPDU ENDIF IF ( getEventActionAttributes ) , getEventActionAttributes [55] IMPLICIT GetEventActionAttributes-Response ELSE , getEventActionAttributes [55] IMPLICIT RejectPDU ENDIF IF ( reportEventActionStatus ) , reportEventActionStatus [56] IMPLICIT ReportEventActionStatus-Response ELSE , reportEventActionStatus [56] IMPLICIT RejectPDU ENDIF IF ( defineEventEnrollment ) , defineEventEnrollment [57] IMPLICIT DefineEventEnrollment-Response ELSE , defineEventEnrollment [57] IMPLICIT RejectPDU ENDIF IF ( deleteEventEnrollment ) , deleteEventEnrollment [58] IMPLICIT DeleteEventEnrollment-Response ELSE , deleteEventEnrollment [58] IMPLICIT RejectPDU ENDIF IF ( alterEventEnrollment ) , alterEventEnrollment [59] IMPLICIT AlterEventEnrollment-Response ELSE , alterEventEnrollment [59] IMPLICIT RejectPDU ENDIF IF ( reportEventEnrollmentStatus ) , reportEventEnrollmentStatus [60] IMPLICIT ReportEventEnrollmentStatus-Response ELSE , reportEventEnrollmentStatus [60] IMPLICIT RejectPDU ENDIF IF ( getEventEnrollmentAttributes ) , getEventEnrollmentAttributes [61] IMPLICIT GetEventEnrollmentAttributes-Response ELSE , getEventEnrollmentAttributes [61] IMPLICIT RejectPDU ENDIF IF ( acknowledgeEventNotification ) , acknowledgeEventNotification [62] IMPLICIT AcknowledgeEventNotification-Response ELSE , acknowledgeEventNotification [62] IMPLICIT RejectPDU ENDIF IF ( getAlarmSummary ) , getAlarmSummary [63] IMPLICIT GetAlarmSummary-Response ELSE , getAlarmSummary [63] IMPLICIT RejectPDU ENDIF IF ( getAlarmEnrollmentSummary ) , getAlarmEnrollmentSummary [64] IMPLICIT GetAlarmEnrollmentSummary-Response ELSE , getAlarmEnrollmentSummary [64] IMPLICIT RejectPDU ENDIF IF ( readJournal ) , readJournal [65] IMPLICIT ReadJournal-Response ELSE , readJournal [65] IMPLICIT RejectPDU ENDIF IF ( writeJournal ) , writeJournal [66] IMPLICIT WriteJournal-Response ELSE , writeJournal [66] IMPLICIT RejectPDU ENDIF IF ( initializeJournal ) , initializeJournal [67] IMPLICIT InitializeJournal-Response ELSE , initializeJournal [67] IMPLICIT RejectPDU ENDIF IF ( reportJournalStatus ) , reportJournalStatus [68] IMPLICIT ReportJournalStatus-Response ELSE , reportJournalStatus [68] IMPLICIT RejectPDU ENDIF IF ( createJournal ) , createJournal [69] IMPLICIT CreateJournal-Response ELSE , createJournal [69] IMPLICIT RejectPDU ENDIF IF ( deleteJournal ) , deleteJournal [70] IMPLICIT DeleteJournal-Response ELSE , deleteJournal [70] IMPLICIT RejectPDU ENDIF IF ( getCapabilityList ) , getCapabilityList [71] IMPLICIT GetCapabilityList-Response ELSE , getCapabilityList [71] IMPLICIT RejectPDU ENDIF -- choices [72] through [77] are reserved for use by services -- defined in annex D IF ( fileOpen ) , fileOpen [72] IMPLICIT FileOpen-Response ELSE , fileOpen [72] IMPLICIT RejectPDU ENDIF IF ( fileRead ) , fileRead [73] IMPLICIT FileRead-Response ELSE , fileRead [73] IMPLICIT RejectPDU ENDIF IF ( fileClose ) , fileClose [74] IMPLICIT FileClose-Response ELSE , fileClose [74] IMPLICIT RejectPDU ENDIF IF ( fileRename ) , fileRename [75] IMPLICIT FileRename-Response ELSE , fileRename [75] IMPLICIT RejectPDU ENDIF IF ( fileDelete ) , fileDelete [76] IMPLICIT FileDelete-Response ELSE , fileDelete [76] IMPLICIT RejectPDU ENDIF IF ( fileDirectory ) , fileDirectory [77] IMPLICIT FileDirectory-Response ELSE , fileDirectory [77] IMPLICIT RejectPDU ENDIF ,... IF ( csr cspi ) , additionalService [78] AdditionalService-Response -- choice [79] is reserved IF ( getDataExchangeAttributes ), , getDataExchangeAttributes [80] GetDataExchangeAttributes-Response -- Shall not appear in minor version 1 ENDIF IF ( exchangeData ), , exchangeData [81] IMPLICIT ExchangeData-Response -- Shall not appear in minor version 1 ENDIF IF ( defineAccessControlList ), , defineAccessControlList [82] IMPLICIT DefineAccessControlList-Response -- Shall not appear in minor version 1 or 2 ENDIF IF ( getAccessControlListAttributes ), , getAccessControlListAttributes [83] IMPLICIT GetAccessControlListAttributes-Response -- Shall not appear in minor version 1 or 2 ENDIF IF ( reportAccessControlledObjects ), , reportAccessControlledObjects [84] IMPLICIT ReportAccessControlledObjects-Response -- Shall not appear in minor version 1 or 2 ENDIF IF ( deleteAccessControlList ), , deleteAccessControlList [85] IMPLICIT DeleteAccessControlList-Response -- Shall not appear in minor version 1 or 2 ENDIF IF ( changeAccessControl ), , changeAccessControl [86] IMPLICIT ChangeAccessControl-Response -- Shall not appear in minor version 1 or 2 ENDIF ,... } AdditionalService-Response ::= CHOICE { IF ( csr ) IF ( vMDStop ) vMDStop [0] IMPLICIT VMDStop-Response ELSE vMDStop [0] IMPLICIT RejectPDU ENDIF IF ( vMDReset ) , vMDReset [1] IMPLICIT VMDReset-Response ELSE , vMDReset [1] IMPLICIT RejectPDU ENDIF IF ( select ) , select [2] IMPLICIT Select-Response ELSE , select [2] IMPLICIT RejectPDU ENDIF IF ( alterProgramInvocationAttributes ) , alterPI [3] IMPLICIT AlterProgramInvocationAttributes-Response ELSE , alterPI [3] IMPLICIT RejectPDU ENDIF ELSE , vMDStop [0] IMPLICIT RejectPDU, vMDReset [1] IMPLICIT RejectPDU, select [2] IMPLICIT RejectPDU, alterPI [3] IMPLICIT RejectPDU ENDIF IF ( cspi ) IF ( initiateUnitControlLoad ) , initiateUCLoad [4] IMPLICIT InitiateUnitControlLoad-Response ELSE , initiateUCLoad [4] IMPLICIT RejectPDU ENDIF IF ( unitControlLoadSegment ) , uCLoad [5] IMPLICIT UnitControlLoadSegment-Response ELSE , uCLoad [5] IMPLICIT RejectPDU ENDIF IF ( unitControlUpload ) , uCUpload [6] IMPLICIT UnitControlUpload-Response ELSE , uCUpload [6] IMPLICIT RejectPDU ENDIF IF ( startUnitControl ) , startUC [7] IMPLICIT StartUnitControl-Response ELSE , startUC [7] IMPLICIT RejectPDU ENDIF IF ( stopUnitControl ) , stopUC [8] IMPLICIT StopUnitControl-Response ELSE , stopUC [8] IMPLICIT RejectPDU ENDIF IF ( createUnitControl ) , createUC [9] IMPLICIT CreateUnitControl-Response ELSE , createUC [9] IMPLICIT RejectPDU ENDIF IF ( addToUnitControl ) , addToUC [10] IMPLICIT AddToUnitControl-Response ELSE , addToUC [10] IMPLICIT RejectPDU ENDIF IF ( removeFromUnitControl ) , removeFromUC [11] IMPLICIT RemoveFromUnitControl-Response ELSE , removeFromUC [11] IMPLICIT RejectPDU ENDIF IF ( getUnitControlAttributes ) , getUCAttributes [12] IMPLICIT GetUnitControlAttributes-Response ELSE , getUCAttributes [12] IMPLICIT RejectPDU ENDIF IF ( loadUnitControlFromFile ) , loadUCFromFile [13] IMPLICIT LoadUnitControlFromFile-Response ELSE , loadUCFromFile [13] IMPLICIT RejectPDU ENDIF IF ( storeUnitControlToFile ) , storeUCToFile [14] IMPLICIT StoreUnitControlToFile-Response ELSE , storeUCToFile [14] IMPLICIT RejectPDU ENDIF IF ( deleteUnitControl ) , deleteUC [15] IMPLICIT DeleteUnitControl-Response ELSE , deleteUC [15] IMPLICIT RejectPDU ENDIF IF ( defineEventConditionList ) , defineECL [16] IMPLICIT DefineEventConditionList-Response ELSE , defineECL [16] IMPLICIT RejectPDU ENDIF IF ( deleteEventConditionList ) , deleteECL [17] IMPLICIT DeleteEventConditionList-Response ELSE , deleteECL [17] IMPLICIT RejectPDU ENDIF IF ( addEventConditionListReference ) , addECLReference [18] IMPLICIT AddEventConditionListReference-Response ELSE , addECLReference [18] IMPLICIT RejectPDU ENDIF IF ( removeEventConditionListReference ) , removeECLReference [19] IMPLICIT RemoveEventConditionListReference-Response ELSE , removeECLReference [19] IMPLICIT RejectPDU ENDIF IF ( getEventConditionListAttributes ) , getECLAttributes [20] IMPLICIT GetEventConditionListAttributes-Response ELSE , getECLAttributes [20] IMPLICIT RejectPDU ENDIF IF ( reportEventConditionListStatus ) , reportECLStatus [21] IMPLICIT ReportEventConditionListStatus-Response ELSE , reportECLStatus [21] IMPLICIT RejectPDU ENDIF IF ( alterEventConditionListMonitoring ) , alterECLMonitoring [22] IMPLICIT AlterEventConditionListMonitoring-Response ELSE , alterECLMonitoring [22] IMPLICIT RejectPDU ENDIF ELSE , initiateUCLoad [4] IMPLICIT RejectPDU, uCLoad [5] IMPLICIT RejectPDU, uCUpload [6] IMPLICIT RejectPDU, startUC [7] IMPLICIT RejectPDU, stopUC [8] IMPLICIT RejectPDU, createUC [9] IMPLICIT RejectPDU, addToUC [10] IMPLICIT RejectPDU, removeFromUC [11] IMPLICIT RejectPDU, getUCAttributes [12] IMPLICIT RejectPDU, loadUCFromFile [13] IMPLICIT RejectPDU, storeUCToFile [14] IMPLICIT RejectPDU, deleteUC [15] IMPLICIT RejectPDU, defineECL [16] IMPLICIT RejectPDU, deleteECL [17] IMPLICIT RejectPDU, addECLReference [18] IMPLICIT RejectPDU, removeECLReference [19] IMPLICIT RejectPDU, getECLAttributes [20] IMPLICIT RejectPDU, reportECLStatus [21] IMPLICIT RejectPDU, alterECLMonitoring [22] IMPLICIT RejectPDU ENDIF } Response-Detail ::= CHOICE { -- this choice shall be selected if the tag value of the -- ConfirmedServiceResponse does not match any of the tags below otherRequests NULL IF ( status ) , status [0] CS-Status-Response ENDIF IF ( getProgramInvocationAttributes ) , getProgramInvocationAttributes [45] IMPLICIT CS-GetProgramInvocationAttributes-Response ENDIF IF ( getEventConditionAttributes ) , getEventConditionAttributes [49] IMPLICIT CS-GetEventConditionAttributes-Response ENDIF } Confirmed-ErrorPDU ::= SEQUENCE { invokeID [0] IMPLICIT Unsigned32, IF ( attachToEventCondition attachToSemaphore ) modifierPosition [1] IMPLICIT Unsigned32 OPTIONAL, ENDIF serviceError [2] IMPLICIT ServiceError } ServiceError ::= SEQUENCE { errorClass [0] CHOICE { vmd-state [0] IMPLICIT INTEGER { other (0), vmd-state-conflict (1), vmd-operational-problem (2), domain-transfer-problem (3), state-machine-id-invalid (4) } (0..4), application-reference [1] IMPLICIT INTEGER { other (0), application-unreachable (1), connection-lost (2), application-reference-invalid (3), context-unsupported (4) } (0..4), definition [2] IMPLICIT INTEGER { other (0), object-undefined (1), invalid-address (2), type-unsupported (3), type-inconsistent (4), object-exists (5), object-attribute-inconsistent (6) } (0..6), resource [3] IMPLICIT INTEGER { other (0), memory-unavailable (1), processor-resource-unavailable (2), mass-storage-unavailable (3), capability-unavailable (4), capability-unknown (5) } (0..5), service [4] IMPLICIT INTEGER { other (0), primitives-out-of-sequence (1), object-state-conflict (2), -- Value 3 reserved for further definition continuation-invalid (4), object-constraint-conflict (5) } (0..5), service-preempt [5] IMPLICIT INTEGER { other (0), timeout (1), deadlock (2), cancel (3) } (0..3), time-resolution [6] IMPLICIT INTEGER { other (0), unsupportable-time-resolution (1) } (0..1), access [7] IMPLICIT INTEGER { other (0), object-access-unsupported (1), object-non-existent (2), object-access-denied (3), object-invalidated (4) } (0..4), initiate [8] IMPLICIT INTEGER { other (0), -- Values 1 and 2 are reserved for further definition max-services-outstanding-calling-insufficient (3), max-services-outstanding-called-insufficient (4), service-CBB-insufficient (5), parameter-CBB-insufficient (6), nesting-level-insufficient (7) } (0..7), conclude [9] IMPLICIT INTEGER { other (0), further-communication-required (1) } (0..1) IF ( cancel ) , cancel [10] IMPLICIT INTEGER { other (0), invoke-id-unknown (1), cancel-not-possible (2) } (0..2) ELSE , cancel [10] IMPLICIT NULL ENDIF IF ( fileOpen fileClose fileRead fileRename fileDelete fileDirectory obtainFile ) , file [11] IMPLICIT INTEGER { other (0), filename-ambiguous (1), file-busy (2), filename-syntax-error (3), content-type-invalid (4), position-invalid (5), file-access-denied (6), file-non-existent (7), duplicate-filename (8), insufficient-space-in-filestore (9) } (0..9) ELSE , file [11] IMPLICIT NULL ENDIF , others [12] IMPLICIT INTEGER } , additionalCode [1] IMPLICIT INTEGER OPTIONAL, additionalDescription [2] IMPLICIT VisibleString OPTIONAL, serviceSpecificInfo [3] CHOICE { IF ( obtainFile ) obtainFile [0] IMPLICIT ObtainFile-Error ELSE obtainFile [0] IMPLICIT NULL ENDIF IF ( start ) , start [1] IMPLICIT Start-Error ELSE , start [1] IMPLICIT NULL ENDIF IF ( stop ) , stop [2] IMPLICIT Stop-Error ELSE , stop [2] IMPLICIT NULL ENDIF IF ( resume ) , resume [3] IMPLICIT Resume-Error ELSE , resume [3] IMPLICIT NULL ENDIF IF ( reset ) , reset [4] IMPLICIT Reset-Error ELSE , reset [4] IMPLICIT NULL ENDIF IF ( deleteVariableAccess ) , deleteVariableAccess [5] IMPLICIT DeleteVariableAccess-Error ELSE , deleteVariableAccess [5] IMPLICIT NULL ENDIF IF ( deleteNamedVariableList ) , deleteNamedVariableList [6] IMPLICIT DeleteNamedVariableList-Error ELSE , deleteNamedVariableList [6] IMPLICIT NULL ENDIF IF ( deleteNamedType ) , deleteNamedType [7] IMPLICIT DeleteNamedType-Error ELSE , deleteNamedType [7] IMPLICIT NULL ENDIF IF ( defineEventEnrollment ) , defineEventEnrollment-Error [8] DefineEventEnrollment-Error ELSE , defineEventEnrollment-Error [8] IMPLICIT NULL ENDIF -- [9] Reserved for use by annex D IF ( fileRename ) , fileRename [9] IMPLICIT FileRename-Error ELSE , fileRename [9] IMPLICIT NULL ENDIF IF ( csr cspi ) , additionalService [10] AdditionalService-Error ELSE , additionalService [10] IMPLICIT NULL ENDIF IF ( changeAccessControl ) , changeAccessControl [11] IMPLICIT ChangeAccessControl-Error ELSE changeAccessControl 11] IMPLICIT NULL ENDIF } OPTIONAL } AdditionalService-Error ::= CHOICE { IF ( defineEventConditionList ) defineEcl [0] DefineEventConditionList-Error ELSE defineEcl [0] IMPLICIT NULL ENDIF IF ( addEventConditionListReference ) , addECLReference [1] AddEventConditionListReference-Error ELSE , addECLReference [1] IMPLICIT NULL ENDIF IF ( removeEventConditionListReference ) , removeECLReference [2] RemoveEventConditionListReference-Error ELSE , removeECLReference [2] IMPLICIT NULL ENDIF IF ( initiateUnitControlLoad ) , initiateUC [3] InitiateUnitControl-Error ELSE , initiateUC [3] IMPLICIT NULL ENDIF IF ( startUnitControl ) , startUC [4] IMPLICIT StartUnitControl-Error ELSE , startUC [4] IMPLICIT NULL ENDIF IF ( stopUnitControl ) , stopUC [5] IMPLICIT StopUnitControl-Error ELSE , stopUC [5] IMPLICIT NULL ENDIF IF ( deleteUnitControl ) , deleteUC [6] DeleteUnitControl-Error ELSE , deleteUC [6] IMPLICIT NULL ENDIF IF ( loadUnitControlFromFile ) , loadUCFromFile [7] LoadUnitControlFromFile-Error ELSE , loadUCFromFile [7] IMPLICIT NULL ENDIF } TimeOfDay ::= OCTET STRING (SIZE(4|6)) maxIdentifier INTEGER ::= 32 Identifier ::= IF (char) UTF8String (SIZE(1..maxIdentifier)) ELSE VisibleString ( FROM ("A"|"a"|"B"|"b"|"C"|"c"|"D"|"d"|"E"|"e"|"F"|"f"| "G"|"g"|"H"|"h"|"I"|"i"|"J"|"j"|"K"|"k"|"L"|"l"| "M"|"m"|"N"|"n"|"O"|"o"|"P"|"p"|"Q"|"q"|"R"|"r"| "S"|"s"|"T"|"t"|"U"|"u"|"V"|"v"|"W"|"w"|"X"|"x"| "Y"|"y"|"Z"|"z"|"$"|"_"|"0"|"1"|"2"|"3"|"4"|"5"| "6"|"7"|"8"|"9") ) (SIZE(1..maxIdentifier)) ENDIF Integer8 ::= INTEGER(-128..127) -- range -128 <= i <= 127 Integer16 ::= INTEGER(-32768..32767) -- range -32,768 <= i <= 32,767 Integer32 ::= INTEGER(-2147483648..2147483647) -- range -2**31 <= i <= 2**31 - 1 Unsigned8 ::= INTEGER(0..127) -- range 0 <= i <= 127 Unsigned16 ::= INTEGER(0..32767) -- range 0 <= i <= 32767 Unsigned32 ::= INTEGER(0..2147483647) -- range 0 <= i <= 2**31 - 1 ObjectName ::= CHOICE { vmd-specific [0] IMPLICIT Identifier, domain-specific [1] IMPLICIT SEQUENCE { domainID Identifier, itemID Identifier }, aa-specific [2] IMPLICIT Identifier } ObjectClass ::= CHOICE { basicObjectClass [0] IMPLICIT INTEGER { IF ( vnam ) namedVariable (0) ENDIF -- value 1 is reserved for definition in Annex E IF ( vsca ) , scatteredAccess (1) ENDIF IF ( vlis ) , namedVariableList (2) ENDIF IF ( vnam ) , namedType (3) ENDIF , semaphore (4), eventCondition (5), eventAction (6), eventEnrollment (7), journal (8), domain (9), programInvocation (10), operatorStation (11), dataExchange (12), -- Shall not appear in minor version 1 accessControlList (13) -- Shall not appear in minor version 1 or 2 } (0..13), ... IF ( cspi ) , csObjectClass [1] IMPLICIT INTEGER { eventConditionList (0), unitControl (1) } (0..1) ENDIF } MMSString ::= IF ( char ) UTF8String ELSE VisibleString ENDIF MMS255String ::= IF ( char ) UTF8String (SIZE(1..255)) ELSE VisibleString (SIZE(1..255)) ENDIF FileName ::= SEQUENCE OF GraphicString Initiate-RequestPDU ::= SEQUENCE { localDetailCalling [0] IMPLICIT Integer32 OPTIONAL, proposedMaxServOutstandingCalling [1] IMPLICIT Integer16, proposedMaxServOutstandingCalled [2] IMPLICIT Integer16, proposedDataStructureNestingLevel [3] IMPLICIT Integer8 OPTIONAL, initRequestDetail [4] IMPLICIT SEQUENCE { proposedVersionNumber [0] IMPLICIT Integer16, proposedParameterCBB [1] IMPLICIT ParameterSupportOptions, servicesSupportedCalling [2] IMPLICIT ServiceSupportOptions , ... IF (csr cspi) , additionalSupportedCalling [3] IMPLICIT AdditionalSupportOptions ENDIF IF (cspi) , additionalCbbSupportedCalling [4] IMPLICIT AdditionalCBBOptions, privilegeClassIdentityCalling [5] IMPLICIT VisibleString ENDIF } } Initiate-ResponsePDU ::= SEQUENCE { localDetailCalled [0] IMPLICIT Integer32 OPTIONAL, negotiatedMaxServOutstandingCalling [1] IMPLICIT Integer16, negotiatedMaxServOutstandingCalled [2] IMPLICIT Integer16, negotiatedDataStructureNestingLevel [3] IMPLICIT Integer8 OPTIONAL, initResponseDetail [4] IMPLICIT SEQUENCE { negotiatedVersionNumber [0] IMPLICIT Integer16, negotiatedParameterCBB [1] IMPLICIT ParameterSupportOptions, servicesSupportedCalled [2] IMPLICIT ServiceSupportOptions, ... IF (csr cspi) , additionalSupportedCalled [3] IMPLICIT AdditionalSupportOptions ENDIF IF (cspi ) , additionalCbbSupportedCalled [4] IMPLICIT AdditionalCBBOptions, privilegeClassIdentityCalled [5] IMPLICIT VisibleString ENDIF } } Initiate-ErrorPDU ::= ServiceError Conclude-RequestPDU ::= NULL Conclude-ResponsePDU ::= NULL Conclude-ErrorPDU ::= ServiceError Cancel-RequestPDU ::= Unsigned32 -- originalInvokeID Cancel-ResponsePDU ::= Unsigned32 -- originalInvokeID Cancel-ErrorPDU ::= SEQUENCE { originalInvokeID [0] IMPLICIT Unsigned32, serviceError [1] IMPLICIT ServiceError } RejectPDU ::= SEQUENCE { originalInvokeID [0] IMPLICIT Unsigned32 OPTIONAL, rejectReason CHOICE { confirmed-requestPDU [1] IMPLICIT INTEGER { other (0), unrecognized-service (1), unrecognized-modifier (2), invalid-invokeID (3), invalid-argument (4), invalid-modifier (5), max-serv-outstanding-exceeded (6), -- Value 7 reserved for further definition max-recursion-exceeded (8), value-out-of-range (9) } (0..9), confirmed-responsePDU [2] IMPLICIT INTEGER { other (0), unrecognized-service (1), invalid-invokeID (2), invalid-result (3), -- Value 4 reserved for further definition max-recursion-exceeded (5), value-out-of-range (6) } (0..6), confirmed-errorPDU [3] IMPLICIT INTEGER { other (0), unrecognized-service (1), invalid-invokeID (2), invalid-serviceError (3), value-out-of-range (4) } (0..4), unconfirmedPDU [4] IMPLICIT INTEGER { other (0), unrecognized-service (1), invalid-argument (2), max-recursion-exceeded (3), value-out-of-range (4) } (0..4), pdu-error [5] IMPLICIT INTEGER { unknown-pdu-type (0), invalid-pdu (1), illegal-acse-mapping (2) }, IF ( cancel ) cancel-requestPDU [6] IMPLICIT INTEGER { other (0), invalid-invokeID (1) } (0..1), cancel-responsePDU [7] IMPLICIT INTEGER { other (0), invalid-invokeID (1) } (0..1), cancel-errorPDU [8] IMPLICIT INTEGER { other (0), invalid-invokeID (1), invalid-serviceError (2), value-out-of-range (3) } (0..3), ELSE cancel-requestPDU [6] IMPLICIT NULL, cancel-responsePDU [7] IMPLICIT NULL, cancel-errorPDU [8] IMPLICIT NULL, ENDIF conclude-requestPDU [9] IMPLICIT INTEGER { other (0), invalid-argument (1) } (0..1), conclude-responsePDU [10] IMPLICIT INTEGER { other (0), invalid-result (1) } (0..1), conclude-errorPDU [11] IMPLICIT INTEGER { other (0), invalid-serviceError (1), value-out-of-range (2) } (0..2) } } DefineAccessControlList-Request ::= SEQUENCE { accessControlListName [0] IMPLICIT Identifier, accessControlListElements [1] IMPLICIT SEQUENCE { readAccessCondition [0] AccessCondition OPTIONAL, storeAccessCondition [1] AccessCondition OPTIONAL, writeAccessCondition [2] AccessCondition OPTIONAL, loadAccessCondition [3] AccessCondition OPTIONAL, executeAccessCondition [4] AccessCondition OPTIONAL, deleteAccessCondition [5] AccessCondition OPTIONAL, editAccessCondition [6] AccessCondition OPTIONAL } } DefineAccessControlList-Response ::= NULL GetAccessControlListAttributes-Request ::= CHOICE { accessControlListName [0] IMPLICIT Identifier, vMD [1] IMPLICIT NULL, namedObject [2] IMPLICIT SEQUENCE { objectClass [0] ObjectClass, objectName [1] ObjectName } } GetAccessControlListAttributes-Response ::= SEQUENCE { name [0] Identifier, accessControlListElements [1] IMPLICIT SEQUENCE { readAccessCondition [0] AccessCondition OPTIONAL, storeAccessCondition [1] AccessCondition OPTIONAL, writeAccessCondition [2] AccessCondition OPTIONAL, loadAccessCondition [3] AccessCondition OPTIONAL, executeAccessCondition [4] AccessCondition OPTIONAL, deleteAccessCondition [5] AccessCondition OPTIONAL, editAccessCondition [6] AccessCondition OPTIONAL }, vMDuse [2] IMPLICIT BOOLEAN, references [3] IMPLICIT SEQUENCE OF SEQUENCE { objectClass [0] ObjectClass, objectCount [1] IMPLICIT INTEGER } IF ( aco ) , accessControlList [4] IMPLICIT Identifier OPTIONAL -- shall be included if and only if -- aco has been negotiated ENDIF } ReportAccessControlledObjects-Request ::= SEQUENCE { accessControlList [0] IMPLICIT Identifier, objectClass [1] ObjectClass, continueAfter [2] ObjectName OPTIONAL } ReportAccessControlledObjects-Response ::= SEQUENCE { listOfNames [0] IMPLICIT SEQUENCE OF ObjectName, moreFollows [1] IMPLICIT BOOLEAN DEFAULT FALSE } DeleteAccessControlList-Request ::= Identifier -- Name of Access Control List Object DeleteAccessControlList-Response ::= NULL ChangeAccessControl-Request ::= SEQUENCE { scopeOfChange CHOICE { vMDOnly [0] IMPLICIT NULL, listOfObjects [1] IMPLICIT SEQUENCE { objectClass [0] ObjectClass, objectScope [1] CHOICE { specific [0] IMPLICIT SEQUENCE OF ObjectName, -- Names of the objects (of class objectClass) -- whose access is to be changed aa-specific [1] IMPLICIT NULL, domain [2] IMPLICIT Identifier, -- Name of the Domain whose elements -- are to be changed vmd [3] IMPLICIT NULL } } }, accessControlListName [2] IMPLICIT Identifier -- name of the AccessControlList Object that contains -- the conditions for access control } ChangeAccessControl-Response ::= SEQUENCE { numberMatched [0] IMPLICIT Unsigned32, numberChanged [1] IMPLICIT Unsigned32 } ChangeAccessControl-Error ::= Unsigned32 StatusResponse ::= SEQUENCE { vmdLogicalStatus [0] IMPLICIT INTEGER { state-changes-allowed (0), no-state-changes-allowed (1), limited-services-permitted (2), support-services-allowed (3) } (0..3), vmdPhysicalStatus [1] IMPLICIT INTEGER { operational (0), partially-operational (1), inoperable (2), needs-commissioning (3) } (0..3), localDetail [2] IMPLICIT BIT STRING (SIZE(0..128)) OPTIONAL } CS-Status-Response ::= CHOICE { IF ( csr ) fullResponse SEQUENCE { operationState [0] IMPLICIT OperationState, extendedStatus [1] IMPLICIT ExtendedStatus, extendedStatusMask [2] IMPLICIT ExtendedStatus DEFAULT '1111'B, selectedProgramInvocation CHOICE { programInvocation [3] IMPLICIT Identifier, noneSelected [4] IMPLICIT NULL } } ENDIF IF ( csr cspi ) , ENDIF IF ( cspi ) noExtraResponse NULL ENDIF } OperationState ::= INTEGER { idle (0), loaded (1), ready (2), executing (3), motion-paused (4), manualInterventionRequired (5) } (0..5) ExtendedStatus ::= BIT STRING { safetyInterlocksViolated (0), anyPhysicalResourcePowerOn (1), allPhysicalResourcesCalibrated (2), localControl (3) } (SIZE(4)) Status-Request ::= BOOLEAN -- Extended Derivation Status-Response ::= StatusResponse UnsolicitedStatus ::= StatusResponse GetNameList-Request ::= SEQUENCE { objectClass [0] ObjectClass, objectScope [1] CHOICE { vmdSpecific [0] IMPLICIT NULL, domainSpecific [1] IMPLICIT Identifier, aaSpecific [2] IMPLICIT NULL }, continueAfter [2] IMPLICIT Identifier OPTIONAL } GetNameList-Response ::= SEQUENCE { listOfIdentifier [0] IMPLICIT SEQUENCE OF Identifier, moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE } Identify-Request ::= NULL Identify-Response ::= SEQUENCE { vendorName [0] IMPLICIT MMSString, modelName [1] IMPLICIT MMSString, revision [2] IMPLICIT MMSString, listOfAbstractSyntaxes [3] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL } Rename-Request ::= SEQUENCE { objectClass [0] ObjectClass, currentName [1] ObjectName, newIdentifier [2] IMPLICIT Identifier } Rename-Response ::= NULL GetCapabilityList-Request ::= SEQUENCE { continueAfter MMSString OPTIONAL } GetCapabilityList-Response ::= SEQUENCE { listOfCapabilities [0] IMPLICIT SEQUENCE OF MMSString, moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE } VMDStop-Request ::= NULL VMDStop-Response ::= NULL VMDReset-Request ::= BOOLEAN -- Extended Derivation VMDReset-Response ::= StatusResponse InitiateDownloadSequence-Request ::= SEQUENCE { domainName [0] IMPLICIT Identifier, listOfCapabilities [1] IMPLICIT SEQUENCE OF MMSString, sharable [2] IMPLICIT BOOLEAN } InitiateDownloadSequence-Response ::= NULL DownloadSegment-Request ::= Identifier -- Domain Name DownloadSegment-Response ::= SEQUENCE { loadData LoadData, moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE } LoadData ::= CHOICE { non-coded [0] IMPLICIT OCTET STRING, coded EXTERNAL, embedded EMBEDDED PDV } TerminateDownloadSequence-Request ::= SEQUENCE { domainName [0] IMPLICIT Identifier, discard [1] IMPLICIT ServiceError OPTIONAL } TerminateDownloadSequence-Response ::= NULL InitiateUploadSequence-Request ::= Identifier -- Domain Name InitiateUploadSequence-Response ::= SEQUENCE { ulsmID [0] IMPLICIT Integer32, listOfCapabilities [1] IMPLICIT SEQUENCE OF MMSString } UploadSegment-Request ::= Integer32 -- ULSM ID UploadSegment-Response ::= SEQUENCE { loadData LoadData, moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE } TerminateUploadSequence-Request ::= Integer32 -- ULSM ID TerminateUploadSequence-Response ::= NULL RequestDomainDownload-Request ::= SEQUENCE { domainName [0] IMPLICIT Identifier, listOfCapabilities [1] IMPLICIT SEQUENCE OF MMSString OPTIONAL, sharable [2] IMPLICIT BOOLEAN, fileName [4] IMPLICIT FileName } RequestDomainDownload-Response ::= NULL RequestDomainUpload-Request ::= SEQUENCE { domainName [0] IMPLICIT Identifier, fileName [1] IMPLICIT FileName } RequestDomainUpload-Response ::= NULL LoadDomainContent-Request ::= SEQUENCE { domainName [0] IMPLICIT Identifier, listOfCapabilities [1] IMPLICIT SEQUENCE OF MMSString OPTIONAL, sharable [2] IMPLICIT BOOLEAN, fileName [4] IMPLICIT FileName IF ( tpy ) , thirdParty [5] IMPLICIT ApplicationReference OPTIONAL ENDIF } LoadDomainContent-Response ::= NULL StoreDomainContent-Request ::= SEQUENCE { domainName [0] IMPLICIT Identifier, fileName [1] IMPLICIT FileName IF ( tpy ) , thirdParty [2] IMPLICIT ApplicationReference OPTIONAL ENDIF } StoreDomainContent-Response ::= NULL DeleteDomain-Request ::= Identifier -- Domain Name DeleteDomain-Response ::= NULL GetDomainAttributes-Request ::= Identifier -- Domain Name GetDomainAttributes-Response ::= SEQUENCE { listOfCapabilities [0] IMPLICIT SEQUENCE OF MMSString, state [1] IMPLICIT DomainState, mmsDeletable [2] IMPLICIT BOOLEAN, sharable [3] IMPLICIT BOOLEAN, listOfProgramInvocations [4] IMPLICIT SEQUENCE OF Identifier, -- Program Invocation Names uploadInProgress [5] IMPLICIT Integer8 IF ( aco ) , accessControlList [6] IMPLICIT Identifier OPTIONAL -- Shall not appear in minor version one or two ENDIF } CreateProgramInvocation-Request ::= SEQUENCE { programInvocationName [0] IMPLICIT Identifier, listOfDomainNames [1] IMPLICIT SEQUENCE OF Identifier, reusable [2] IMPLICIT BOOLEAN DEFAULT TRUE IF ( eventNotification ) IF ( getProgramInvocationAttributes ) , monitorType [3] IMPLICIT BOOLEAN OPTIONAL -- TRUE indicates PERMANENT monitoring, -- FALSE indicates CURRENT monitoring ENDIF ENDIF } CreateProgramInvocation-Response ::= NULL CS-CreateProgramInvocation-Request ::= INTEGER { normal (0), controlling (1), controlled (2) } (0..2) DeleteProgramInvocation-Request ::= Identifier -- Program Invocation Name DeleteProgramInvocation-Response ::= NULL Start-Request ::= SEQUENCE { programInvocationName [0] IMPLICIT Identifier, executionArgument CHOICE { simpleString [1] IMPLICIT MMSString, encodedString EXTERNAL, embeddedString EMBEDDED PDV } OPTIONAL } Start-Response ::= NULL Start-Error ::= ProgramInvocationState CS-Start-Request ::= [0] CHOICE { normal NULL, controlling SEQUENCE { startLocation [0] IMPLICIT VisibleString OPTIONAL, startCount [1] StartCount DEFAULT cycleCount: 1 } } StartCount ::= CHOICE { noLimit [0] IMPLICIT NULL, cycleCount [1] IMPLICIT INTEGER, stepCount [2] IMPLICIT INTEGER } Stop-Request ::= SEQUENCE { programInvocationName [0] IMPLICIT Identifier } Stop-Response ::= NULL Stop-Error ::= ProgramInvocationState Resume-Request ::= SEQUENCE { programInvocationName [0] IMPLICIT Identifier, executionArgument CHOICE { simpleString [1] IMPLICIT MMSString, encodedString EXTERNAL, enmbeddedString EMBEDDED PDV } OPTIONAL } Resume-Response ::= NULL Resume-Error ::= ProgramInvocationState CS-Resume-Request ::= [0] CHOICE { normal NULL, controlling SEQUENCE { modeType CHOICE { continueMode [0] IMPLICIT NULL, changeMode [1] StartCount } } } Reset-Request ::= SEQUENCE { programInvocationName [0] IMPLICIT Identifier } Reset-Response ::= NULL Reset-Error ::= ProgramInvocationState Kill-Request ::= SEQUENCE { programInvocationName [0] IMPLICIT Identifier } Kill-Response ::= NULL GetProgramInvocationAttributes-Request ::= Identifier -- Program Invocation Name GetProgramInvocationAttributes-Response ::= SEQUENCE { state [0] IMPLICIT ProgramInvocationState, listOfDomainNames [1] IMPLICIT SEQUENCE OF Identifier, mmsDeletable [2] IMPLICIT BOOLEAN, reusable [3] IMPLICIT BOOLEAN, monitor [4] IMPLICIT BOOLEAN, executionArgument CHOICE { simpleString [5] IMPLICIT MMSString, encodedString EXTERNAL, enmbeddedString EMBEDDED PDV } IF ( aco ) , accessControlList [6] IMPLICIT Identifier OPTIONAL -- Shall not appear in minor version one or two ENDIF } CS-GetProgramInvocationAttributes-Response ::= SEQUENCE { errorCode [0] IMPLICIT INTEGER, control [1] CHOICE { controlling [0] IMPLICIT SEQUENCE { controlledPI [0] IMPLICIT SEQUENCE OF Identifier, programLocation [1] IMPLICIT VisibleString OPTIONAL, runningMode [2] CHOICE { freeRunning [0] IMPLICIT NULL, cycleLimited [1] IMPLICIT INTEGER, stepLimited [2] IMPLICIT INTEGER } }, controlled [1] CHOICE { controllingPI [0] IMPLICIT Identifier, none [1] IMPLICIT NULL }, normal [2] IMPLICIT NULL } } Select-Request ::= SEQUENCE { controlling [0] IMPLICIT Identifier OPTIONAL, controlled [1] IMPLICIT SEQUENCE OF Identifier OPTIONAL -- this field shall appear if and only if the controlling field is included } Select-Response ::= NULL AlterProgramInvocationAttributes-Request ::= SEQUENCE { programInvocation [0] IMPLICIT Identifier, startCount [1] StartCount DEFAULT cycleCount: 1 } AlterProgramInvocationAttributes-Response ::= NULL ReconfigureProgramInvocation-Request ::= SEQUENCE { oldProgramInvocationName [0] IMPLICIT Identifier, newProgramInvocationName [1] IMPLICIT Identifier OPTIONAL, domainsToAdd [2] IMPLICIT SEQUENCE OF Identifier, domainsToRemove [3] IMPLICIT SEQUENCE OF Identifier } ReconfigureProgramInvocation-Response ::= NULL ControlElement ::= CHOICE { beginDomainDef [0] SEQUENCE { domainName [1] IMPLICIT Identifier, capabilities [2] IMPLICIT SEQUENCE OF MMSString, sharable [3] IMPLICIT BOOLEAN, loadData [4] LoadData OPTIONAL }, continueDomainDef [1] SEQUENCE { domainName [1] IMPLICIT Identifier, loadData [3] LoadData }, endDomainDef [2] IMPLICIT Identifier, piDefinition [3] IMPLICIT SEQUENCE { piName [0] IMPLICIT Identifier, listOfDomains [1] IMPLICIT SEQUENCE OF Identifier, reusable [2] IMPLICIT BOOLEAN DEFAULT TRUE, monitorType [3] IMPLICIT BOOLEAN OPTIONAL, pIState [4] IMPLICIT ProgramInvocationState OPTIONAL } } InitiateUnitControlLoad-Request ::= Identifier -- Unit Control Name InitiateUnitControlLoad-Response ::= NULL InitiateUnitControl-Error ::= CHOICE { domain [0] IMPLICIT Identifier, programInvocation [1] IMPLICIT Identifier } UnitControlLoadSegment-Request ::= Identifier -- Unit Control Name UnitControlLoadSegment-Response ::= SEQUENCE { controlElements [0] IMPLICIT SEQUENCE OF ControlElement, moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE } UnitControlUpload-Request ::= SEQUENCE { unitControlName [0] IMPLICIT Identifier, -- Unit Control Name continueAfter CHOICE { domain [1] IMPLICIT Identifier, ulsmID [2] IMPLICIT INTEGER, programInvocation [3] IMPLICIT Identifier } OPTIONAL } UnitControlUpload-Response ::= SEQUENCE { controlElements [0] IMPLICIT SEQUENCE OF ControlElement, nextElement CHOICE { domain [1] IMPLICIT Identifier, ulsmID [2] IMPLICIT INTEGER, programInvocation [3] IMPLICIT Identifier } OPTIONAL } StartUnitControl-Request ::= SEQUENCE { unitControlName [0] IMPLICIT Identifier, -- Unit Control Name executionArgument CHOICE { simpleString [1] IMPLICIT MMSString, encodedString EXTERNAL, enmbeddedString EMBEDDED PDV } OPTIONAL } StartUnitControl-Response ::= NULL StartUnitControl-Error ::= SEQUENCE { programInvocationName [0] IMPLICIT Identifier, programInvocationState [1] IMPLICIT ProgramInvocationState } StopUnitControl-Request ::= Identifier -- Unit Control Name StopUnitControl-Response ::= NULL StopUnitControl-Error ::= SEQUENCE { programInvocationName [0] IMPLICIT Identifier, programInvocationState [1] IMPLICIT ProgramInvocationState } CreateUnitControl-Request ::= SEQUENCE { unitControl [0] IMPLICIT Identifier, -- Unit Control Name domains [1] IMPLICIT SEQUENCE OF Identifier, programInvocations [2] IMPLICIT SEQUENCE OF Identifier } CreateUnitControl-Response ::= NULL AddToUnitControl-Request ::= SEQUENCE { unitControl [0] IMPLICIT Identifier, -- Unit Control Name domains [1] IMPLICIT SEQUENCE OF Identifier, programInvocations [2] IMPLICIT SEQUENCE OF Identifier } AddToUnitControl-Response ::= NULL RemoveFromUnitControl-Request ::= SEQUENCE { unitControl [0] IMPLICIT Identifier, -- Unit Control Name domains [1] IMPLICIT SEQUENCE OF Identifier, programInvocations [2] IMPLICIT SEQUENCE OF Identifier } RemoveFromUnitControl-Response ::= NULL GetUnitControlAttributes-Request ::= Identifier -- Unit Control Name GetUnitControlAttributes-Response ::= SEQUENCE { domains [0] IMPLICIT SEQUENCE OF Identifier, programInvocations [1] IMPLICIT SEQUENCE OF Identifier } LoadUnitControlFromFile-Request ::= SEQUENCE { unitControlName [0] IMPLICIT Identifier, fileName [1] IMPLICIT FileName IF ( tpy ) , thirdParty [2] IMPLICIT ApplicationReference OPTIONAL ENDIF } LoadUnitControlFromFile-Response ::= NULL LoadUnitControlFromFile-Error ::= CHOICE { none [0] IMPLICIT NULL, domain [1] IMPLICIT Identifier, programInvocation [2] IMPLICIT Identifier } StoreUnitControlToFile-Request ::= SEQUENCE { unitControlName [0] IMPLICIT Identifier, fileName [1] IMPLICIT FileName IF ( tpy ) , thirdParty [2] IMPLICIT ApplicationReference OPTIONAL ENDIF } StoreUnitControlToFile-Response ::= NULL DeleteUnitControl-Request ::= Identifier -- Unit Control Name DeleteUnitControl-Response ::= NULL DeleteUnitControl-Error ::= CHOICE { domain [0] IMPLICIT Identifier, programInvocation [1] IMPLICIT Identifier } TypeSpecification ::= CHOICE { typeName [0] ObjectName, typeDescription TypeDescription } AlternateAccess ::= SEQUENCE OF CHOICE { unnamed AlternateAccessSelection IF ( str2 ) , named [5] IMPLICIT SEQUENCE { componentName [0] IMPLICIT Identifier, access AlternateAccessSelection } ENDIF } AlternateAccessSelection ::= CHOICE { selectAlternateAccess [0] IMPLICIT SEQUENCE { accessSelection CHOICE { IF ( str2 ) component [0] IMPLICIT Identifier, ELSE component [0] IMPLICIT NULL, ENDIF IF ( str1 ) index [1] IMPLICIT Unsigned32, indexRange [2] IMPLICIT SEQUENCE { lowIndex [0] IMPLICIT Unsigned32, numberOfElements [1] IMPLICIT Unsigned32 }, ELSE index [1] IMPLICIT NULL, indexRange [2] IMPLICIT NULL, ENDIF allElements [3] IMPLICIT NULL }, alternateAccess AlternateAccess }, selectAccess CHOICE { IF ( str2 ) component [1] IMPLICIT Identifier, ELSE component [1] IMPLICIT NULL, ENDIF IF ( str1 ) index [2] IMPLICIT Unsigned32, indexRange [3] IMPLICIT SEQUENCE { lowIndex [0] IMPLICIT Unsigned32, numberOfElements [1] IMPLICIT Unsigned32 }, ELSE index [2] IMPLICIT NULL, indexRange [3] IMPLICIT NULL, ENDIF allElements [4] IMPLICIT NULL } } AccessResult ::= CHOICE { failure [0] IMPLICIT DataAccessError, success Data } Data ::= CHOICE { -- context tag 0 is reserved for AccessResult IF ( str1 ) array [1] IMPLICIT SEQUENCE OF Data, ELSE array [1] IMPLICIT NULL, ENDIF IF ( str2 ) structure [2] IMPLICIT SEQUENCE OF Data, ELSE structure [2] IMPLICIT NULL, ENDIF boolean [3] IMPLICIT BOOLEAN, bit-string [4] IMPLICIT BIT STRING, integer [5] IMPLICIT INTEGER, unsigned [6] IMPLICIT INTEGER, -- shall not be negative floating-point [7] IMPLICIT FloatingPoint, -- [8] is reserved octet-string [9] IMPLICIT OCTET STRING, visible-string [10] IMPLICIT VisibleString, generalized-time [11] IMPLICIT GeneralizedTime, binary-time [12] IMPLICIT TimeOfDay, bcd [13] IMPLICIT INTEGER, -- shall not be negative booleanArray [14] IMPLICIT BIT STRING, objId [15] IMPLICIT OBJECT IDENTIFIER, ..., mMSString [16] IMPLICIT MMSString } FloatingPoint ::= OCTET STRING DataAccessError ::= INTEGER { object-invalidated (0), hardware-fault (1), temporarily-unavailable (2), object-access-denied (3), object-undefined (4), invalid-address (5), type-unsupported (6), type-inconsistent (7), object-attribute-inconsistent (8), object-access-unsupported (9), object-non-existent (10), object-value-invalid (11) } (0..11) VariableAccessSpecification ::= CHOICE { listOfVariable [0] IMPLICIT SEQUENCE OF SEQUENCE { variableSpecification VariableSpecification, IF ( valt ) alternateAccess [5] IMPLICIT AlternateAccess OPTIONAL ENDIF } IF ( vlis ) , variableListName [1] ObjectName ENDIF } VariableSpecification ::= CHOICE { IF ( vnam ) name [0] ObjectName, ENDIF IF ( vadr ) address [1] Address, variableDescription [2] IMPLICIT SEQUENCE { address Address, typeSpecification TypeSpecification }, ENDIF -- the following element is only present to support the services -- defined in annex E IF ( vsca ) scatteredAccessDescription [3] IMPLICIT ScatteredAccessDescription, ELSE scatteredAccessDescription [3] IMPLICIT NULL, ENDIF invalidated [4] IMPLICIT NULL } Read-Request ::= SEQUENCE { specificationWithResult [0] IMPLICIT BOOLEAN DEFAULT FALSE, variableAccessSpecification [1] VariableAccessSpecification } Read-Response ::= SEQUENCE { variableAccessSpecification [0] VariableAccessSpecification OPTIONAL, listOfAccessResult [1] IMPLICIT SEQUENCE OF AccessResult } Write-Request ::= SEQUENCE { variableAccessSpecification VariableAccessSpecification, listOfData [0] IMPLICIT SEQUENCE OF Data } Write-Response ::= SEQUENCE OF CHOICE { failure [0] IMPLICIT DataAccessError, success [1] IMPLICIT NULL } InformationReport ::= SEQUENCE { variableAccessSpecification VariableAccessSpecification, listOfAccessResult [0] IMPLICIT SEQUENCE OF AccessResult } GetVariableAccessAttributes-Request ::= CHOICE { IF ( vnam ) name [0] ObjectName IF ( vadr ) , ENDIF IF ( vadr) address [1] Address ENDIF } GetVariableAccessAttributes-Response ::= SEQUENCE { mmsDeletable [0] IMPLICIT BOOLEAN, IF ( vadr ) address [1] Address OPTIONAL, ENDIF typeDescription [2] TypeDescription IF ( aco ) , accessControlList [3] IMPLICIT Identifier OPTIONAL -- Shall not appear in minor version one or two ENDIF IF ( sem ) , meaning [4] IMPLICIT VisibleString OPTIONAL ENDIF } DefineNamedVariable-Request ::= SEQUENCE { variableName [0] ObjectName, address [1] Address, typeSpecification [2] TypeSpecification OPTIONAL } DefineNamedVariable-Response ::= NULL DeleteVariableAccess-Request ::= SEQUENCE { scopeOfDelete [0] IMPLICIT INTEGER { specific (0), aa-specific (1), domain (2), vmd (3) } (0..3) DEFAULT specific, listOfName [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL, domainName [2] IMPLICIT Identifier OPTIONAL } DeleteVariableAccess-Response ::= SEQUENCE { numberMatched [0] IMPLICIT Unsigned32, numberDeleted [1] IMPLICIT Unsigned32 } DeleteVariableAccess-Error ::= Unsigned32 -- numberDeleted DefineNamedVariableList-Request ::= SEQUENCE { variableListName ObjectName, listOfVariable [0] IMPLICIT SEQUENCE OF SEQUENCE { variableSpecification VariableSpecification IF (valt) , alternateAccess [5] IMPLICIT AlternateAccess OPTIONAL ENDIF } } DefineNamedVariableList-Response ::= NULL GetNamedVariableListAttributes-Request ::= ObjectName -- VariableListName GetNamedVariableListAttributes-Response ::= SEQUENCE { mmsDeletable [0] IMPLICIT BOOLEAN, listOfVariable [1] IMPLICIT SEQUENCE OF SEQUENCE { variableSpecification VariableSpecification IF ( valt ) , alternateAccess [5] IMPLICIT AlternateAccess OPTIONAL } ENDIF IF ( aco ) , accessControlList [2] IMPLICIT Identifier OPTIONAL -- Shall not appear in minor version one or two ENDIF } DeleteNamedVariableList-Request ::= SEQUENCE { scopeOfDelete [0] IMPLICIT INTEGER { specific (0), aa-specific (1), domain (2), vmd (3) } (0..3) DEFAULT specific, listOfVariableListName [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL, domainName [2] IMPLICIT Identifier OPTIONAL } DeleteNamedVariableList-Response ::= SEQUENCE { numberMatched [0] IMPLICIT Unsigned32, numberDeleted [1] IMPLICIT Unsigned32 } DeleteNamedVariableList-Error ::= Unsigned32 -- numberDeleted DefineNamedType-Request ::= SEQUENCE { typeName ObjectName, typeSpecification TypeSpecification } DefineNamedType-Response ::= NULL GetNamedTypeAttributes-Request ::= ObjectName --TypeName GetNamedTypeAttributes-Response ::= SEQUENCE { mmsDeletable [0] IMPLICIT BOOLEAN, typeSpecification TypeSpecification IF ( aco ) , accessControlList [1] IMPLICIT Identifier OPTIONAL -- Shall not appear in minor version one or two ENDIF IF ( sem ) , meaning [4] IMPLICIT VisibleString OPTIONAL ENDIF } DeleteNamedType-Request ::= SEQUENCE { scopeOfDelete [0] IMPLICIT INTEGER { specific (0), aa-specific (1), domain (2), vmd (3) } (0..3) DEFAULT specific, listOfTypeName [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL, domainName [2] IMPLICIT Identifier OPTIONAL } DeleteNamedType-Response ::= SEQUENCE { numberMatched [0] IMPLICIT Unsigned32, numberDeleted [1] IMPLICIT Unsigned32 } DeleteNamedType-Error ::= Unsigned32 -- numberDeleted ExchangeData-Request ::= SEQUENCE { dataExchangeName [0] ObjectName, listOfRequestData [1] IMPLICIT SEQUENCE OF Data } ExchangeData-Response ::= SEQUENCE { listOfResponseData [0] IMPLICIT SEQUENCE OF Data } GetDataExchangeAttributes-Request ::= ObjectName GetDataExchangeAttributes-Response ::= SEQUENCE { inUse [0] IMPLICIT BOOLEAN, listOfRequestTypeDescriptions [1] IMPLICIT SEQUENCE OF TypeDescription, listOfResponseTypeDescriptions [2] IMPLICIT SEQUENCE OF TypeDescription, programInvocation [3] IMPLICIT Identifier OPTIONAL IF (aco) , accessControlList [4] IMPLICIT Identifier OPTIONAL ENDIF -- Shall not appear in minor version one or two } TakeControl-Request ::= SEQUENCE { semaphoreName [0] ObjectName, namedToken [1] IMPLICIT Identifier OPTIONAL, priority [2] IMPLICIT Priority DEFAULT normalPriority, acceptableDelay [3] IMPLICIT Unsigned32 OPTIONAL, controlTimeOut [4] IMPLICIT Unsigned32 OPTIONAL, abortOnTimeOut [5] IMPLICIT BOOLEAN OPTIONAL, relinquishIfConnectionLost [6] IMPLICIT BOOLEAN DEFAULT TRUE IF ( tpy ) , applicationToPreempt [7] IMPLICIT ApplicationReference OPTIONAL ENDIF } TakeControl-Response ::= CHOICE { noResult [0] IMPLICIT NULL, namedToken [1] IMPLICIT Identifier } RelinquishControl-Request ::= SEQUENCE { semaphoreName [0] ObjectName, namedToken [1] IMPLICIT Identifier OPTIONAL } RelinquishControl-Response ::= NULL DefineSemaphore-Request ::= SEQUENCE { semaphoreName [0] ObjectName, numberOfTokens [1] IMPLICIT Unsigned16 } DefineSemaphore-Response ::= NULL DeleteSemaphore-Request ::= ObjectName -- Semaphore Name DeleteSemaphore-Response ::= NULL ReportSemaphoreStatus-Request ::= ObjectName -- Semaphore Name ReportSemaphoreStatus-Response ::= SEQUENCE { mmsDeletable [0] IMPLICIT BOOLEAN, class [1] IMPLICIT INTEGER { token (0), pool (1) } (0..1), numberOfTokens [2] IMPLICIT Unsigned16, numberOfOwnedTokens [3] IMPLICIT Unsigned16, numberOfHungTokens [4] IMPLICIT Unsigned16 IF (aco) , accessControlList [5] IMPLICIT Identifier OPTIONAL -- Shall not appear in minor version one or two ENDIF } ReportPoolSemaphoreStatus-Request ::= SEQUENCE { semaphoreName [0] ObjectName, nameToStartAfter [1] IMPLICIT Identifier OPTIONAL } ReportPoolSemaphoreStatus-Response ::= SEQUENCE { listOfNamedTokens [0] IMPLICIT SEQUENCE OF CHOICE { freeNamedToken [0] IMPLICIT Identifier, ownedNamedToken [1] IMPLICIT Identifier, hungNamedToken [2] IMPLICIT Identifier }, moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE } ReportSemaphoreEntryStatus-Request ::= SEQUENCE { semaphoreName [0] ObjectName, state [1] IMPLICIT INTEGER { queued (0), owner (1), hung (2) } (0..2), entryIDToStartAfter [2] IMPLICIT OCTET STRING OPTIONAL } ReportSemaphoreEntryStatus-Response ::= SEQUENCE { listOfSemaphoreEntry [0] IMPLICIT SEQUENCE OF SemaphoreEntry, moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE } SemaphoreEntry ::= SEQUENCE { entryID [0] IMPLICIT OCTET STRING, entryClass [1] IMPLICIT INTEGER { simple (0), modifier (1) } (0..1), applicationReference [2] ApplicationReference, namedToken [3] IMPLICIT Identifier OPTIONAL, priority [4] IMPLICIT Priority DEFAULT normalPriority, remainingTimeOut [5] IMPLICIT Unsigned32 OPTIONAL, abortOnTimeOut [6] IMPLICIT BOOLEAN OPTIONAL, relinquishIfConnectionLost [7] IMPLICIT BOOLEAN DEFAULT TRUE } AttachToSemaphore ::= SEQUENCE { semaphoreName [0] ObjectName, namedToken [1] IMPLICIT Identifier OPTIONAL, priority [2] IMPLICIT Priority DEFAULT normalPriority, acceptableDelay [3] IMPLICIT Unsigned32 OPTIONAL, controlTimeOut [4] IMPLICIT Unsigned32 OPTIONAL, abortOnTimeOut [5] IMPLICIT BOOLEAN OPTIONAL, relinquishIfConnectionLost [6] IMPLICIT BOOLEAN DEFAULT TRUE } Input-Request ::= SEQUENCE { operatorStationName [0] IMPLICIT Identifier, echo [1] IMPLICIT BOOLEAN DEFAULT TRUE, IF (output) listOfPromptData [2] IMPLICIT SEQUENCE OF MMSString OPTIONAL, ENDIF inputTimeOut [3] IMPLICIT Unsigned32 OPTIONAL } Input-Response ::= MMSString -- Input String Output-Request ::= SEQUENCE { operatorStationName [0] IMPLICIT Identifier, listOfOutputData [1] IMPLICIT SEQUENCE OF MMSString } Output-Response ::= NULL TriggerEvent-Request ::= SEQUENCE { eventConditionName [0] ObjectName, priority [1] IMPLICIT Priority OPTIONAL } TriggerEvent-Response ::= NULL EventNotification ::= SEQUENCE { eventEnrollmentName [0] ObjectName, eventConditionName [1] ObjectName, severity [2] IMPLICIT Severity, currentState [3] IMPLICIT EC-State OPTIONAL, transitionTime [4] EventTime, notificationLost [6] IMPLICIT BOOLEAN DEFAULT FALSE, alarmAcknowledgmentRule [7] IMPLICIT AlarmAckRule OPTIONAL, actionResult [8] IMPLICIT SEQUENCE { eventActionName ObjectName, successOrFailure CHOICE { success [0] IMPLICIT SEQUENCE { confirmedServiceResponse ConfirmedServiceResponse IF ( csr cspi ) , cs-Response-Detail [79] Response-Detail OPTIONAL -- shall not be transmitted if value is the -- value of a tagged type derived from NULL ENDIF }, failure [1] IMPLICIT SEQUENCE { modifierPosition [0] IMPLICIT Unsigned32 OPTIONAL, serviceError [1] IMPLICIT ServiceError } } } OPTIONAL } CS-EventNotification ::= [0] CHOICE { IF ( des ) string [0] IMPLICIT VisibleString, ENDIF IF ( dei ) index [1] IMPLICIT INTEGER, ENDIF noEnhancement NULL } AcknowledgeEventNotification-Request ::= SEQUENCE { eventEnrollmentName [0] ObjectName, acknowledgedState [2] IMPLICIT EC-State, timeOfAcknowledgedTransition [3] EventTime } AcknowledgeEventNotification-Response ::= NULL GetAlarmSummary-Request ::= SEQUENCE { enrollmentsOnly [0] IMPLICIT BOOLEAN DEFAULT TRUE, activeAlarmsOnly [1] IMPLICIT BOOLEAN DEFAULT TRUE, acknowledgementFilter [2] IMPLICIT INTEGER { not-acked (0), acked (1), all (2) } (0..2) DEFAULT not-acked, severityFilter [3] IMPLICIT SEQUENCE { mostSevere [0] IMPLICIT Unsigned8, leastSevere [1] IMPLICIT Unsigned8 } DEFAULT { mostSevere 0, leastSevere 127 }, continueAfter [5] ObjectName OPTIONAL } GetAlarmSummary-Response ::= SEQUENCE { listOfAlarmSummary [0] IMPLICIT SEQUENCE OF AlarmSummary, moreFollows [1] IMPLICIT BOOLEAN DEFAULT FALSE } AlarmSummary ::= SEQUENCE { eventConditionName [0] ObjectName, severity [1] IMPLICIT Unsigned8, currentState [2] IMPLICIT EC-State, unacknowledgedState [3] IMPLICIT INTEGER { none (0), active (1), idle (2), both (3) } (0..3), IF ( csr cspi ) displayEnhancement [4] EN-Additional-Detail OPTIONAL, -- shall not be transmitted if the value is NULL ELSE displayEnhancement [4] NULL, ENDIF timeOfLastTransitionToActive [5] EventTime OPTIONAL, timeOfLastTransitionToIdle [6] EventTime OPTIONAL } EN-Additional-Detail ::= [0] CHOICE { IF ( des ) string [0] IMPLICIT VisibleString, ENDIF IF ( dei ) index [1] IMPLICIT INTEGER, ENDIF noEnhancement NULL } GetAlarmEnrollmentSummary-Request ::= SEQUENCE { enrollmentsOnly [0] IMPLICIT BOOLEAN DEFAULT TRUE, activeAlarmsOnly [1] IMPLICIT BOOLEAN DEFAULT TRUE, acknowledgementFilter [2] IMPLICIT INTEGER { not-acked (0), acked (1), all (2) } (0..2) DEFAULT not-acked, severityFilter [3] IMPLICIT SEQUENCE { mostSevere [0] IMPLICIT Unsigned8, leastSevere [1] IMPLICIT Unsigned8 } DEFAULT { mostSevere 0, leastSevere 127 }, continueAfter [5] ObjectName OPTIONAL } GetAlarmEnrollmentSummary-Response ::= SEQUENCE { listOfAlarmEnrollmentSummary [0] IMPLICIT SEQUENCE OF AlarmEnrollmentSummary, moreFollows [1] IMPLICIT BOOLEAN DEFAULT FALSE } AlarmEnrollmentSummary ::= SEQUENCE { eventEnrollmentName [0] ObjectName, IF ( tpy ) clientApplication [2] ApplicationReference OPTIONAL, ELSE clientApplication [2] NULL, ENDIF severity [3] IMPLICIT Unsigned8, currentState [4] IMPLICIT EC-State, IF ( cspi ) displayEnhancement [5] EN-Additional-Detail OPTIONAL, -- shall not be transmitted if the value is NULL ELSE displayEnhancement [5] NULL, ENDIF notificationLost [6] IMPLICIT BOOLEAN DEFAULT FALSE, alarmAcknowledgmentRule [7] IMPLICIT AlarmAckRule, enrollmentState [8] IMPLICIT EE-State OPTIONAL, timeOfLastTransitionToActive [9] EventTime OPTIONAL, timeActiveAcknowledged [10] EventTime OPTIONAL, timeOfLastTransitionToIdle [11] EventTime OPTIONAL, timeIdleAcknowledged [12] EventTime OPTIONAL } AttachToEventCondition ::= SEQUENCE { eventEnrollmentName [0] ObjectName, eventConditionName [1] ObjectName, causingTransitions [2] IMPLICIT Transitions, acceptableDelay [3] IMPLICIT Unsigned32 OPTIONAL } DefineEventCondition-Request ::= SEQUENCE { eventConditionName [0] ObjectName, class [1] IMPLICIT EC-Class, priority [2] IMPLICIT Priority DEFAULT normalPriority, severity [3] IMPLICIT Unsigned8 DEFAULT normalSeverity, alarmSummaryReports [4] IMPLICIT BOOLEAN OPTIONAL, monitoredVariable [6] VariableSpecification OPTIONAL, evaluationInterval [7] IMPLICIT Unsigned32 OPTIONAL } DefineEventCondition-Response ::= NULL CS-DefineEventCondition-Request ::= [0] CHOICE { IF ( des ) string [0] IMPLICIT VisibleString, ENDIF IF ( dei ) index [1] IMPLICIT INTEGER, ENDIF noEnhancement NULL } DeleteEventCondition-Request ::= CHOICE { specific [0] IMPLICIT SEQUENCE OF ObjectName, aa-specific [1] IMPLICIT NULL, domain [2] IMPLICIT Identifier, vmd [3] IMPLICIT NULL } DeleteEventCondition-Response ::= Unsigned32 --Candidates Not Deleted GetEventConditionAttributes-Request ::= ObjectName --Event Condition Name GetEventConditionAttributes-Response ::= SEQUENCE { mmsDeletable [0] IMPLICIT BOOLEAN DEFAULT FALSE, class [1] IMPLICIT EC-Class, priority [2] IMPLICIT Priority DEFAULT normalPriority, severity [3] IMPLICIT Unsigned8 DEFAULT normalSeverity, alarmSummaryReports [4] IMPLICIT BOOLEAN DEFAULT FALSE, monitoredVariable [6] CHOICE { variableReference [0] VariableSpecification, undefined [1] IMPLICIT NULL } OPTIONAL, evaluationInterval [7] IMPLICIT Unsigned32 OPTIONAL IF (aco), accessControlList [8] IMPLICIT Identifier OPTIONAL ENDIF -- Shall not appear in minor version one or two } CS-GetEventConditionAttributes-Response ::= SEQUENCE { groupPriorityOverride [0] CHOICE { priority [0] IMPLICIT Priority, undefined [1] IMPLICIT NULL } OPTIONAL, listOfReferencingECL [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL, displayEnhancement [2] CHOICE { IF ( des ) string [0] IMPLICIT VisibleString, ENDIF IF ( dei ) index [1] IMPLICIT INTEGER, ENDIF noEnhancement [2] IMPLICIT NULL } } ReportEventConditionStatus-Request ::= ObjectName --Event Condition Name ReportEventConditionStatus-Response ::= SEQUENCE { currentState [0] IMPLICIT EC-State, numberOfEventEnrollments [1] IMPLICIT Unsigned32, enabled [2] IMPLICIT BOOLEAN OPTIONAL, timeOfLastTransitionToActive [3] EventTime OPTIONAL, timeOfLastTransitionToIdle [4] EventTime OPTIONAL } AlterEventConditionMonitoring-Request ::= SEQUENCE { eventConditionName [0] ObjectName, enabled [1] IMPLICIT BOOLEAN OPTIONAL, priority [2] IMPLICIT Priority OPTIONAL, alarmSummaryReports [3] IMPLICIT BOOLEAN OPTIONAL IF ( cei ) , evaluationInterval [4] IMPLICIT Unsigned32 OPTIONAL ENDIF -- At least one of enabled, priority, alarmSummaryReports, or -- evaluationInterval shall be present. } AlterEventConditionMonitoring-Response ::= NULL CS-AlterEventConditionMonitoring-Request ::= SEQUENCE { changeDisplay CHOICE { IF ( des ) string [0] IMPLICIT VisibleString, ENDIF IF ( dei ) index [1] IMPLICIT INTEGER, ENDIF noEnhancement [2] NULL } OPTIONAL } DefineEventAction-Request ::= SEQUENCE { eventActionName [0] ObjectName, listOfModifier [1] IMPLICIT SEQUENCE OF Modifier OPTIONAL, confirmedServiceRequest [2] ConfirmedServiceRequest IF ( csr cspi ) , cs-extension [79] Request-Detail OPTIONAL -- shall not be transmitted if value is the value -- of a tagged type derived from NULL ENDIF } DefineEventAction-Response ::= NULL DeleteEventAction-Request ::= CHOICE { specific [0] IMPLICIT SEQUENCE OF ObjectName, aa-specific [1] IMPLICIT NULL, domain [3] IMPLICIT Identifier, vmd [4] IMPLICIT NULL } DeleteEventAction-Response ::= Unsigned32 --Candidates Not Deleted GetEventActionAttributes-Request ::= ObjectName --EventActionName GetEventActionAttributes-Response ::= SEQUENCE { mmsDeletable [0] IMPLICIT BOOLEAN DEFAULT FALSE, listOfModifier [1] IMPLICIT SEQUENCE OF Modifier, confirmedServiceRequest [2] ConfirmedServiceRequest IF ( csr cspi ) , cs-extension [79] Request-Detail OPTIONAL -- shall not be transmitted if value is the value -- of a tagged type derived from NULL ENDIF IF (aco) , accessControlList [3] IMPLICIT Identifier OPTIONAL ENDIF -- Shall not appear in minor version one or two } ReportEventActionStatus-Request ::= ObjectName -- Event Action Name ReportEventActionStatus-Response ::= Unsigned32 -- Number of Event Enrollments DefineEventEnrollment-Request ::= SEQUENCE { eventEnrollmentName [0] ObjectName, eventConditionName [1] ObjectName, eventConditionTransitions [2] IMPLICIT Transitions, alarmAcknowledgmentRule [3] IMPLICIT AlarmAckRule, eventActionName [4] ObjectName OPTIONAL IF ( tpy ) , clientApplication [5] ApplicationReference OPTIONAL ENDIF } DefineEventEnrollment-Response ::= NULL DefineEventEnrollment-Error ::= ObjectName CS-DefineEventEnrollment-Request ::= [0] CHOICE { IF ( des ) string [0] IMPLICIT VisibleString, ENDIF IF ( dei ) index [1] IMPLICIT INTEGER, ENDIF noEnhancement NULL } DeleteEventEnrollment-Request ::= CHOICE { specific [0] IMPLICIT SEQUENCE OF ObjectName, ec [1] ObjectName, ea [2] ObjectName } DeleteEventEnrollment-Response ::= Unsigned32 --Candidates Not Deleted GetEventEnrollmentAttributes-Request ::= SEQUENCE { scopeOfRequest [0] IMPLICIT INTEGER { specific (0), client (1), ec (2), ea (3) } (0..3) DEFAULT client, eventEnrollmentNames [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL, IF ( tpy ) clientApplication [2] ApplicationReference OPTIONAL, ELSE clientApplication [2] NULL, ENDIF eventConditionName [3] ObjectName OPTIONAL, eventActionName [4] ObjectName OPTIONAL, continueAfter [5] ObjectName OPTIONAL } GetEventEnrollmentAttributes-Response ::= SEQUENCE { listOfEEAttributes [0] IMPLICIT SEQUENCE OF EEAttributes, moreFollows [1] IMPLICIT BOOLEAN DEFAULT FALSE } EEAttributes ::= SEQUENCE { eventEnrollmentName [0] ObjectName, eventConditionName [1] CHOICE { eventCondition [0] ObjectName, undefined [1] IMPLICIT NULL }, eventActionName [2] CHOICE { eventAction [0] ObjectName, undefined [1] IMPLICIT NULL } OPTIONAL, IF ( tpy ) clientApplication [3] ApplicationReference OPTIONAL, ELSE clientApplication [3] NULL, ENDIF mmsDeletable [4] IMPLICIT BOOLEAN DEFAULT FALSE, enrollmentClass [5] IMPLICIT EE-Class, duration [6] IMPLICIT EE-Duration DEFAULT current, invokeID [7] IMPLICIT Unsigned32 OPTIONAL, remainingAcceptableDelay [8] IMPLICIT Unsigned32 OPTIONAL IF ( csr cspi ) , displayEnhancement [9] CHOICE { IF ( des ) string [0] IMPLICIT VisibleString, ENDIF IF ( dei ) index [1] IMPLICIT INTEGER, ENDIF noEnhancement NULL } -- shall not be transmitted if the value is NULL ELSE displayEnhancement [9] NULL IF ( aco ) , accessControlList [11] IMPLICIT Identifier -- shall not appear in minor version one or two ENDIF } ReportEventEnrollmentStatus-Request ::= ObjectName --Event Enrollment Name ReportEventEnrollmentStatus-Response ::= SEQUENCE { eventConditionTransitions [0] IMPLICIT Transitions, notificationLost [1] IMPLICIT BOOLEAN DEFAULT FALSE, duration [2] IMPLICIT EE-Duration, alarmAcknowledgmentRule [3] IMPLICIT AlarmAckRule OPTIONAL, currentState [4] IMPLICIT EE-State } AlterEventEnrollment-Request ::= SEQUENCE { eventEnrollmentName [0] ObjectName, eventConditionTransitions [1] IMPLICIT Transitions OPTIONAL, alarmAcknowledgmentRule [2] IMPLICIT AlarmAckRule OPTIONAL } AlterEventEnrollment-Response ::= SEQUENCE { currentState [0] CHOICE { state [0] IMPLICIT EE-State, undefined [1] IMPLICIT NULL }, transitionTime [1] EventTime } CS-AlterEventEnrollment-Request ::= SEQUENCE { changeDisplay CHOICE { IF ( des ) string [0] IMPLICIT VisibleString, ENDIF IF ( dei ) index [1] IMPLICIT INTEGER, ENDIF noEnhancement [2] NULL } OPTIONAL } EE-State ::= INTEGER { disabled (0), idle (1), active (2), activeNoAckA (3), idleNoAckI (4), idleNoAckA (5), idleAcked (6), activeAcked (7), undefined (8) } DefineEventConditionList-Request ::= SEQUENCE { eventConditionListName [0] ObjectName, listOfEventConditionName [1] IMPLICIT SEQUENCE OF ObjectName IF ( recl ), listOfEventConditionListName [2] IMPLICIT SEQUENCE OF ObjectName OPTIONAL -- shall appear if an only if recl has been negotiated. ENDIF } DefineEventConditionList-Response ::= NULL DefineEventConditionList-Error ::= ObjectName DeleteEventConditionList-Request ::= ObjectName -- EventConditionListName DeleteEventConditionList-Response ::= NULL AddEventConditionListReference-Request ::= SEQUENCE { eventConditionListName [0] ObjectName, listOfEventConditionName [1] IMPLICIT SEQUENCE OF ObjectName IF ( recl ) , listOfEventConditionListName [2] IMPLICIT SEQUENCE OF ObjectName OPTIONAL -- shall appear if an only if recl has been negotiated. ENDIF } AddEventConditionListReference-Response ::= NULL AddEventConditionListReference-Error ::= ObjectName RemoveEventConditionListReference-Request ::= SEQUENCE { eventConditionListName [0] ObjectName, listOfEventConditionName [1] IMPLICIT SEQUENCE OF ObjectName IF ( recl ) , listOfEventConditionListName [2] IMPLICIT SEQUENCE OF ObjectName -- shall appear if an only if recl has been negotiated. ENDIF } RemoveEventConditionListReference-Response ::= NULL RemoveEventConditionListReference-Error ::= CHOICE { eventCondition [0] ObjectName, eventConditionList [1] ObjectName } GetEventConditionListAttributes-Request ::= ObjectName -- eventConditionListName GetEventConditionListAttributes-Response ::= SEQUENCE { listOfEventConditionName [1] IMPLICIT SEQUENCE OF ObjectName IF ( recl ) , listOfEventConditionListName [2] IMPLICIT SEQUENCE OF ObjectName OPTIONAL -- shall appear if an only if recl has been negotiated. ENDIF } ReportEventConditionListStatus-Request ::= SEQUENCE { eventConditionListName [0] ObjectName, -- Event Condition List Name continueAfter [1] IMPLICIT Identifier OPTIONAL } ReportEventConditionListStatus-Response ::= SEQUENCE { listOfEventConditionStatus [1] IMPLICIT SEQUENCE OF EventConditionStatus, moreFollows [2] IMPLICIT BOOLEAN DEFAULT TRUE } EventConditionStatus ::= SEQUENCE { eventConditionName [0] ObjectName, currentState [1] IMPLICIT EC-State, numberOfEventEnrollments [2] IMPLICIT Unsigned32, enabled [3] IMPLICIT BOOLEAN OPTIONAL, timeOfLastTransitionToActive [4] EventTime OPTIONAL, timeOfLastTransitionToIdle [5] EventTime OPTIONAL } AlterEventConditionListMonitoring-Request ::= SEQUENCE { eventConditionListName [0] ObjectName, enabled [1] IMPLICIT BOOLEAN, priorityChange [2] CHOICE { priorityValue [0] IMPLICIT INTEGER, priorityReset [1] IMPLICIT NULL } OPTIONAL } AlterEventConditionListMonitoring-Response ::= NULL ReadJournal-Request ::= SEQUENCE { journalName [0] ObjectName, rangeStartSpecification [1] CHOICE { startingTime [0] IMPLICIT TimeOfDay, startingEntry [1] IMPLICIT OCTET STRING } OPTIONAL, rangeStopSpecification [2] CHOICE { endingTime [0] IMPLICIT TimeOfDay, numberOfEntries [1] IMPLICIT Integer32 } OPTIONAL, listOfVariables [4] IMPLICIT SEQUENCE OF VisibleString OPTIONAL, entryToStartAfter [5] IMPLICIT SEQUENCE { timeSpecification [0] IMPLICIT TimeOfDay, entrySpecification [1] IMPLICIT OCTET STRING } OPTIONAL } ReadJournal-Response ::= SEQUENCE { listOfJournalEntry [0] IMPLICIT SEQUENCE OF JournalEntry, moreFollows [1] IMPLICIT BOOLEAN DEFAULT FALSE } JournalEntry ::= SEQUENCE { entryIdentifier [0] IMPLICIT OCTET STRING, originatingApplication [1] ApplicationReference, entryContent [2] IMPLICIT EntryContent } WriteJournal-Request ::= SEQUENCE { journalName [0] ObjectName, listOfJournalEntry [1] IMPLICIT SEQUENCE OF EntryContent } WriteJournal-Response ::= NULL InitializeJournal-Request ::= SEQUENCE { journalName [0] ObjectName, limitSpecification [1] IMPLICIT SEQUENCE { limitingTime [0] IMPLICIT TimeOfDay, limitingEntry [1] IMPLICIT OCTET STRING OPTIONAL } OPTIONAL } InitializeJournal-Response ::= Unsigned32 -- Entries Deleted ReportJournalStatus-Request ::= ObjectName --Journal Name ReportJournalStatus-Response ::= SEQUENCE { currentEntries [0] IMPLICIT Unsigned32, mmsDeletable [1] IMPLICIT BOOLEAN IF ( aco ) , accessControlList [2] IMPLICIT Identifier OPTIONAL -- Shall not appear in minor version one or two ENDIF } CreateJournal-Request ::= SEQUENCE { journalName [0] ObjectName } CreateJournal-Response ::= NULL DeleteJournal-Request ::= SEQUENCE { journalName [0] ObjectName } DeleteJournal-Response ::= NULL EntryContent ::= SEQUENCE { occurrenceTime [0] IMPLICIT TimeOfDay, entryForm CHOICE { data [2] IMPLICIT SEQUENCE { event [0] IMPLICIT SEQUENCE { eventConditionName [0] ObjectName, currentState [1] IMPLICIT EC-State } OPTIONAL, listOfVariables [1] IMPLICIT SEQUENCE OF Journal-Variable OPTIONAL }, annotation [3] MMSString } } END MMS-Environment-1 { iso standard 9506 part(2) mms-environment-version1(4)} DEFINITIONS ::= BEGIN EXPORTS ApplicationReference, Authentication-value; IMPORTS AP-title, AP-invocation-identifier, AE-qualifier, AE-invocation-identifier, Authentication-value FROM ACSE-1 { joint-iso-itu-t association-control(2) modules(0) apdus(0) version1(1)}; ApplicationReference ::= SEQUENCE { ap-title [0] ACSE-1.AP-title OPTIONAL, ap-invocation-id [1] ACSE-1.AP-invocation-identifier OPTIONAL, ae-qualifier [2] ACSE-1.AE-qualifier OPTIONAL, ae-invocation-id [3] ACSE-1.AE-invocation-identifier OPTIONAL } END MMS-SCI-Module-1 { iso standard 9506 part(2) mms-file-record-version1(2) } DEFINITIONS ::= BEGIN IMPORTS ApplicationReference FROM MMS-Environment-1 { iso standard 9506 part(2) mms-environment-version1(4) } AccessCondition, AdditionalCBBOptions, AdditionalSupportOptions, Address, AlarmAckRule, Control-State, DomainState, EC-Class, EC-State, EE-Duration, EE-Class, LogicalStatus, Modifier, ParameterSupportOptions, PhysicalStatus, Priority, ProgramInvocationState, ServiceSupportOptions, Severity, Transitions, TypeDescription FROM MMS-Object-Module-1 { iso standard 9506 part(1) mms-object-model1(1) } AlternateAccess, ConfirmedServiceRequest, AttachToEventCondition, AttachToSemaphore, Data, EE-State, Identifier, Integer8, Integer32, MMSString, MMS255String, ObjectName, TimeOfDay, TypeSpecification, Unsigned32, Unsigned8 FROM ISO-9506-MMS-1 { iso standard 9506 part(2) mms-abstract-syntax-version1(1) }; SCI-Information ::= SEQUENCE { partOne [0] IMPLICIT VMD-File, partTwo [1] IMPLICIT Service-and-Parameter-CBBs } VMD-File ::= SEQUENCE { executiveFunction [0] IMPLICIT ApplicationReference, vendorName [1] MMSString, modelName [2] MMSString, revision [3] MMSString, abstractSyntaxes [4] IMPLICIT OBJECT IDENTIFIER, -- no TRANSACTIONs, -- no APPLICATION-ASSOCIATIONs, accessControl [5] IMPLICIT Access-Control-List-instance, logicalStatus [6] IMPLICIT LogicalStatus, capabilities [7] IMPLICIT SEQUENCE OF MMSString, physicalStatus [8] IMPLICIT PhysicalStatus, local-detail [9] IMPLICIT BIT STRING, accessControlLists [10] IMPLICIT SEQUENCE OF Access-Control-List-instance, domains [11] IMPLICIT SEQUENCE OF Domain-instance, programInvocations [12] IMPLICIT SEQUENCE OF Program-Invocation-instance, unitControls [13] IMPLICIT SEQUENCE OF Unit-Control-instance IF (vadr) , unnamedVariables [14] IMPLICIT SEQUENCE OF Unnamed-Variable-instance ELSE , unnamedVariables [14] IMPLICIT NULL ENDIF IF (vnam) , namedVariables [15] IMPLICIT SEQUENCE OF Named-Variable-instance IF (vlis) , namedVariableLists [16] IMPLICIT SEQUENCE OF Named-Variable-List-instance ELSE , namedVariableLists [16] IMPLICIT NULL ENDIF , namedTypes [17] IMPLICIT SEQUENCE OF Named-Type-instance ELSE , namedVariables [15] IMPLICIT NULL, namedVariableLists [16] IMPLICIT NULL, namedTypes [17] IMPLICIT NULL ENDIF , dataExchanges [18] IMPLICIT SEQUENCE OF Data-Exchange-instance, semaphores [19] IMPLICIT SEQUENCE OF Semaphore-instance, operatorStations [20] IMPLICIT SEQUENCE OF Operator-Station-instance, eventConditions [21] IMPLICIT SEQUENCE OF Event-Condition-instance, eventActions [22] IMPLICIT SEQUENCE OF Event-Action-instance, eventEnrollments [23] IMPLICIT SEQUENCE OF Event-Enrollment-instance IF (cspi) , eventConditionLists [24] IMPLICIT SEQUENCE OF Event-Condition-List-instance ELSE , eventConditionLists [24] IMPLICIT NULL ENDIF , journals [25] IMPLICIT SEQUENCE OF Journal-instance, ... IF (csr) , selected-Program-Invocation CHOICE { selectedProgram [26] IMPLICIT Program-Invocation-instance, noneSelected [27] IMPLICIT NULL } ENDIF } Access-Control-List-instance ::= SEQUENCE { name [0] IMPLICIT Identifier, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, readAccessCondition [4] AccessCondition OPTIONAL, storeAccessCondition [5] AccessCondition OPTIONAL, writeAccessCondition [6] AccessCondition OPTIONAL, loadAccessCondition [7] AccessCondition OPTIONAL, executeAccessCondition [8] AccessCondition OPTIONAL, deleteAccessCondition [9] AccessCondition OPTIONAL, editAccessCondition [10] AccessCondition OPTIONAL, -- -- The following fields are used to record lists of objects placed -- under the control of this ACCESS-CONTROL-LIST object. -- They will be referred to collectively as the Controlled Object Lists -- accessControlLists [11] IMPLICIT SEQUENCE OF Access-Control-List-instance, domains [12] IMPLICIT SEQUENCE OF Domain-instance, programInvocations [13] IMPLICIT SEQUENCE OF Program-Invocation-instance, unitControls [14] IMPLICIT SEQUENCE OF Unit-Control-instance IF (vadr) , unnamedVariables [15] IMPLICIT SEQUENCE OF Unnamed-Variable-instance ELSE , unnamedVariables [15] IMPLICIT NULL ENDIF IF (vnam) , namedVariables [16] IMPLICIT SEQUENCE OF Named-Variable-instance IF (vlis) , namedVariableLists [17] IMPLICIT SEQUENCE OF Named-Variable-List-instance ELSE , namedVariableLists [17] IMPLICIT NULL ENDIF , namedTypes [18] IMPLICIT SEQUENCE OF Named-Type-instance ELSE , namedVariables [16] IMPLICIT NULL, namedVariableLists [17] IMPLICIT NULL, namedTypes [18] IMPLICIT NULL ENDIF , dataExchanges [19] IMPLICIT SEQUENCE OF Data-Exchange-instance, semaphores [20] IMPLICIT SEQUENCE OF Semaphore-instance, operatorStations [21] IMPLICIT SEQUENCE OF Operator-Station-instance, eventConditions [22] IMPLICIT SEQUENCE OF Event-Condition-instance, eventActions [23] IMPLICIT SEQUENCE OF Event-Action-instance, eventEnrollments [24] IMPLICIT SEQUENCE OF Event-Enrollment-instance, journals [25] IMPLICIT SEQUENCE OF Journal-instance, ... IF (cspi) , eventConditionLists [26] IMPLICIT SEQUENCE OF Event-Condition-List-instance ENDIF } } } Domain-instance ::= SEQUENCE { name [0] IMPLICIT Identifier, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { capabilities [3] IMPLICIT SEQUENCE OF MMSString, state [4] IMPLICIT DomainState, -- The aAssociation is not included accessControl [5] IMPLICIT Access-Control-List-instance, sharable [6] IMPLICIT BOOLEAN, programInvocations [7] IMPLICIT SEQUENCE OF Program-Invocation-instance -- uploadsInProgress is not included IF (vnam) , namedVariables [8] IMPLICIT SEQUENCE OF Named-Variable-instance IF (vlis) , namedVariableLists [9] IMPLICIT SEQUENCE OF Named-Variable-List-instance ELSE , namedVariableLists [9] IMPLICIT NULL ENDIF , namedTypes [10] IMPLICIT SEQUENCE OF Named-Type-instance ELSE , namedVariables [8] IMPLICIT NULL, namedVariableLists [9] IMPLICIT NULL, namedTypes [10] IMPLICIT NULL ENDIF , eventConditions [11] IMPLICIT SEQUENCE OF Event-Condition-instance, eventActions [12] IMPLICIT SEQUENCE OF Event-Action-instance, eventEnrollments [13] IMPLICIT SEQUENCE OF Event-Enrollment-instance IF (cspi) , eventConditionLists [14] IMPLICIT SEQUENCE OF Event-Condition-List-instance ENDIF } } } Program-Invocation-instance ::= SEQUENCE { name [0] IMPLICIT Identifier, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { programInvocationState [3] IMPLICIT ProgramInvocationState, domains [4] IMPLICIT SEQUENCE OF Domain-instance, accessControl [5] IMPLICIT SEQUENCE OF Access-Control-List-instance, reusable [6] IMPLICIT BOOLEAN, monitor [7] IMPLICIT BOOLEAN, -- The following three fields shall all be present if the value of -- monitor is true. -- If present, the &name field of each object instance -- shall have a value equal to the -- &name field of this instance of the PROGRAM-INVOCATION. eventCondition [8] IMPLICIT SEQUENCE OF Event-Condition-instance OPTIONAL, eventAction [9] IMPLICIT SEQUENCE OF Event-Action-instance OPTIONAL, eventEnrollment [10] IMPLICIT SEQUENCE OF Event-Enrollment-instance OPTIONAL, executionArgument [11] MMSString, ... IF (csr) , control [12] IMPLICIT Control-State, controlling-Program-Invocation [13] IMPLICIT Program-Invocation-instance, -- The following field shall be present -- if and only if the value of the &control field is controlling. controlled-Program-Invocations [14] IMPLICIT SEQUENCE OF Program-Invocation-instance OPTIONAL ENDIF } } } Unit-Control-instance ::= SEQUENCE { name [0] IMPLICIT Identifier, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, domains [4] IMPLICIT SEQUENCE OF Domain-instance, programInvocations [5] IMPLICIT SEQUENCE OF Program-Invocation-instance } } } Unnamed-Variable-instance ::= SEQUENCE { address [0] Address, accessControl [1] IMPLICIT Access-Control-List-instance, typeDescription [2] TypeDescription } Named-Variable-instance ::= SEQUENCE { name [0] ObjectName, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, typeDescription [4] TypeDescription IF ( vadr ) , address [5] Address OPTIONAL ELSE , [5] NULL ENDIF IF ( sem ) , meaning [6] IMPLICIT VisibleString OPTIONAL ENDIF } } } Named-Variable-List-instance ::= SEQUENCE { name [0] ObjectName, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, listOfVariables [4] IMPLICIT SEQUENCE OF Variable-List-Item-instance } } } Variable-List-Item-instance ::= SEQUENCE { -- one and only one of the following two lines shall appear IF ( vadr ) unnamedItem [0] IMPLICIT Unnamed-Variable-instance OPTIONAL ELSE unnamedItem [0] IMPLICIT NULL OPTIONAL ENDIF IF ( vnam ) , namedItem [1] IMPLICIT Named-Variable-instance OPTIONAL ELSE , namedItem [1] IMPLICIT NULL OPTIONAL ENDIF IF (valt) -- the following specification may be included , alternateAccess [2] IMPLICIT AlternateAccess OPTIONAL ENDIF } Named-Type-instance ::= SEQUENCE { name [0] ObjectName, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, typeDescription [4] TypeDescription IF (sem) , meaning [5] IMPLICIT VisibleString OPTIONAL ENDIF } } } Data-Exchange-instance ::= SEQUENCE { name [0] IMPLICIT Identifier, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, request [4] IMPLICIT SEQUENCE OF TypeDescription, response [5] IMPLICIT SEQUENCE OF TypeDescription, linked [6] IMPLICIT BOOLEAN, -- The following attribute shall appear if an only if the value of &linked is true. programInvocation [7] IMPLICIT Program-Invocation-instance OPTIONAL } } } Semaphore-instance ::= SEQUENCE { name [0] IMPLICIT Identifier, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, class [4] IMPLICIT ENUMERATED { token, pool }, -- If the value of &class is token, the following field shall appear numberOfTokens [5] IMPLICIT INTEGER OPTIONAL, -- If the value of &class is pool, the following field shall appear namedTokens [6] IMPLICIT SEQUENCE OF VisibleString OPTIONAL, eventCondition [7] IMPLICIT Event-Condition-instance } } } Operator-Station-instance ::= SEQUENCE { name [0] IMPLICIT Identifier, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, stationType [4] IMPLICIT ENUMERATED { entry, display, entry-display } } } } Event-Condition-instance ::= SEQUENCE { name [0] ObjectName, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, ecClass [4] IMPLICIT EC-Class, ecState [5] IMPLICIT EC-State, priority [6] IMPLICIT Priority, severity [7] IMPLICIT Severity, eventEnrollments [8] IMPLICIT SEQUENCE OF Event-Enrollment-instance, -- The following fields shall be present -- if and only if the value of &ecClass is monitored. enabled [9] IMPLICIT BOOLEAN OPTIONAL, alarmSummaryReports [10] IMPLICIT BOOLEAN OPTIONAL, monitoredVariable CHOICE { named [11] IMPLICIT Named-Variable-instance, unnamed [12] IMPLICIT Unnamed-Variable-instance, unspecified [13] IMPLICIT NULL } OPTIONAL, evaluationInterval [14] IMPLICIT INTEGER OPTIONAL, ... IF (cspi) , displayEnhancement CHOICE { IF (des) text [15] MMSString ENDIF IF (dei) , number [16] IMPLICIT INTEGER ENDIF , none [17] IMPLICIT NULL }, group-Priority-Override CHOICE { priority [18] IMPLICIT Priority, undefined [19] IMPLICIT NULL } OPTIONAL, referencingEventConditionLists [20] IMPLICIT SEQUENCE OF Event-Condition-List-instance ENDIF } } } Event-Action-instance ::= SEQUENCE { name [0] ObjectName, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, confirmedServiceRequest [4] ConfirmedServiceRequest, modifiers [5] IMPLICIT SEQUENCE OF Modifier, eventEnrollments [6] IMPLICIT SEQUENCE OF Event-Enrollment-instance } } } Event-Enrollment-instance ::= SEQUENCE { name [0] ObjectName, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, eeClass [4] IMPLICIT EE-Class , eventCondition [5] IMPLICIT Event-Condition-instance, ecTransitions [6] IMPLICIT Transitions, -- The following parameter is present if and only if the -- value of &eeClass is modifier. remainingDelay CHOICE { time [7] IMPLICIT INTEGER, forever [8] IMPLICIT NULL } OPTIONAL, -- The remaining parameters are present if and only if the -- value of &eeClass is notification. eventAction [9] IMPLICIT Event-Action-instance OPTIONAL, duration [10] IMPLICIT EE-Duration OPTIONAL, clientApplication [11] IMPLICIT ApplicationReference OPTIONAL, aaRule [12] IMPLICIT AlarmAckRule OPTIONAL, ... IF (cspi) , displayEnhancement CHOICE { IF (des) text [13] MMSString ENDIF IF (dei) , number [14] IMPLICIT INTEGER ENDIF , none [15] IMPLICIT NULL } ENDIF } } } Event-Condition-List-instance ::= SEQUENCE { name [0] ObjectName, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, eventConditions [4] IMPLICIT SEQUENCE OF Event-Condition-instance IF (recl) , eventConditionLists [5] IMPLICIT SEQUENCE OF Event-Condition-List-instance, referencingEventConditionLists [6] IMPLICIT SEQUENCE OF Event-Condition-List-instance ENDIF } } } Journal-instance ::= SEQUENCE { name [0] ObjectName, definition CHOICE { reference [1] IMPLICIT OBJECT IDENTIFIER, details [2] IMPLICIT SEQUENCE { accessControl [3] IMPLICIT Access-Control-List-instance, entries [4] IMPLICIT SEQUENCE OF Journal-Entry-instance } } } Journal-Entry-instance ::= SEQUENCE { journal [0] IMPLICIT Journal-instance, entry [1] IMPLICIT OCTET STRING, clientApplication [2] IMPLICIT ApplicationReference, timeStamp [3] IMPLICIT TimeOfDay, orderOfReceipt [4] IMPLICIT INTEGER, informationType [5] IMPLICIT ENUMERATED { annotation, event-data, data }, -- The following attribute shall appear if and only if the -- value of &informationType is annotation. textComment [6] MMS255String OPTIONAL, --The following attribute shall appear if and only if the -- value of &informationType is event-data. eventTransitionRecord [7] IMPLICIT SEQUENCE { name [8] ObjectName, currentState [9] IMPLICIT EC-State } OPTIONAL, -- The following attribute shall appear if and only if the -- value of &informationType is data or event-data. journalVariables [10] IMPLICIT SEQUENCE OF SEQUENCE { variableTag [11] MMS255String, valueSpecification [12] Data } OPTIONAL } Service-and-Parameter-CBBs ::= SEQUENCE { services-Client [0] IMPLICIT ServiceSupportOptions, services-Server [1] IMPLICIT ServiceSupportOptions, parameters [2] IMPLICIT ParameterSupportOptions, nest [3] IMPLICIT INTEGER IF (csr cspi) , extendedServices-Client [4] IMPLICIT AdditionalSupportOptions, extendedServices-Server [5] IMPLICIT AdditionalSupportOptions ELSE , extendedServices-Client [4] IMPLICIT NULL, extendedServices-Server [5] IMPLICIT NULL ENDIF IF (cspi) , extendedParameters [6] IMPLICIT AdditionalCBBOptions ELSE , extendedParameters [6] IMPLICIT NULL ENDIF , generalManagement [7] IMPLICIT GeneralManagementParameters, vMDSupport [8] IMPLICIT VMDSupportParameters, domainManagement [9] IMPLICIT DomainManagementParameters, programInvocation [10] IMPLICIT ProgramInvocationManagementParameters, variableAccess [11] IMPLICIT VariableAccessParameters, dataParameters [12] IMPLICIT DataParameters, semaphoreManagement [13] IMPLICIT SemaphoreManagementParameters, operatorCommunication [14] IMPLICIT OperatorCommunicationParameters, errors [15] IMPLICIT ErrorParameters, fileManagement [16] IMPLICIT FileManagementParameters } GeneralManagementParameters ::= SEQUENCE { localDetail [0] MMSString, supportForTime [1] IMPLICIT SEQUENCE { timeOfDay [2] IMPLICIT BOOLEAN, timeSequence [3] IMPLICIT BOOLEAN }, granularityOfTime [4] IMPLICIT INTEGER } VMDSupportParameters ::= SEQUENCE { localDetail [0] MMSString, extendedDerivation [1] MMSString -- method used to perform extended derivation } DomainManagementParameters ::= SEQUENCE { loadDataOctet [0] MMSString, -- description of the format of Load Data if the octet string form is used loadDataSyntax [1] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER, -- identifier of the Abstract Syntaxes used maxUploads [2] IMPLICIT INTEGER } ProgramInvocationManagementParameters ::= SEQUENCE { executionArgMaxSize [0] IMPLICIT INTEGER, executionArgParseRules [1] MMSString, executionArgSyntaxes [2] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER, programLoction [3] MMSString, -- syntax of the program Location notation stepMode [4] IMPLICIT BOOLEAN -- if true, step Mode is supported } VariableAccessParameters ::= SEQUENCE { uninterruptibleAccess [0] MMSString, -- conditions under which it is guaranteed singleMode [1] IMPLICIT BOOLEAN, unnamedMode [2] IMPLICIT BOOLEAN } DataParameters ::= SEQUENCE { bit-string [0] IMPLICIT INTEGER OPTIONAL, integer [1] IMPLICIT INTEGER OPTIONAL, unsigned [2] IMPLICIT INTEGER OPTIONAL, floating-point [3] IMPLICIT SEQUENCE { total [4] IMPLICIT INTEGER, exponent [5] IMPLICIT INTEGER } OPTIONAL, octet-string [10] IMPLICIT INTEGER OPTIONAL, visible-string [11] IMPLICIT INTEGER OPTIONAL, binary-time [12] IMPLICIT BOOLEAN OPTIONAL, bcd [13] IMPLICIT INTEGER OPTIONAL, mmsString [14] IMPLICIT INTEGER OPTIONAL } SemaphoreManagementParameters ::= SEQUENCE { algorithm [0] IMPLICIT MMSString -- method of processing the &priority field } OperatorCommunicationParameters ::= SEQUENCE { input-time-out [0] IMPLICIT INTEGER } ErrorParameters ::= SEQUENCE { additionalCode [0] MMSString, additionalDetial [1] IMPLICIT SEQUENCE { size [2] IMPLICIT INTEGER, syntax [3] MMSString } } FileManagementParameters ::= SEQUENCE { fileName [0] MMSString } END ISO-9506-MMS-1A { iso standard 9506 part(2) mms-annex-version1(3) } DEFINITIONS ::= BEGIN EXPORTS ObtainFile-Request, ObtainFile-Response, ObtainFile-Error, FileOpen-Request, FileOpen-Response, FileRead-Request, FileRead-Response, FileClose-Request, FileClose-Response, FileRename-Request, FileRename-Response, FileRename-Error, FileDelete-Request, FileDelete-Response, FileDirectory-Request, FileDirectory-Response, ScatteredAccessDescription, DefineScatteredAccess-Request, DefineScatteredAccess-Response, GetScatteredAccessAttributes-Request, GetScatteredAccessAttributes-Response; IMPORTS FileName, ObjectName, AlternateAccess, VariableSpecification, Identifier, Integer32, Unsigned32 FROM ISO-9506-MMS-1 { iso standard 9506 part(2) mms-abstract-syntax-version1(1) } ApplicationReference FROM MMS-Environment-1 { iso standard 9506 part(2) mms-environment-version1 (4) }; ObtainFile-Request ::= SEQUENCE { IF ( tpy ) sourceFileServer [0] IMPLICIT ApplicationReference OPTIONAL, ENDIF sourceFile [1] IMPLICIT FileName, destinationFile [2] IMPLICIT FileName } ObtainFile-Response ::= NULL ObtainFile-Error ::= INTEGER { source-file (0), destination-file (1) } (0..1) FileOpen-Request ::= SEQUENCE { fileName [0] IMPLICIT FileName, initialPosition [1] IMPLICIT Unsigned32 } FileOpen-Response ::= SEQUENCE { frsmID [0] IMPLICIT Integer32, fileAttributes [1] IMPLICIT FileAttributes } FileRead-Request ::= Integer32 -- FRSM ID FileRead-Response ::= SEQUENCE { fileData [0] IMPLICIT OCTET STRING, moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE } FileClose-Request ::= Integer32 -- FRSM ID FileClose-Response ::= NULL FileRename-Request ::= SEQUENCE { currentFileName [0] IMPLICIT FileName, newFileName [1] IMPLICIT FileName } FileRename-Response ::= NULL FileRename-Error ::= INTEGER { source-file (0), destination-file (1) } (0..1) FileDelete-Request ::= FileName FileDelete-Response ::= NULL FileDirectory-Request ::= SEQUENCE { fileSpecification [0] IMPLICIT FileName OPTIONAL, continueAfter [1] IMPLICIT FileName OPTIONAL } FileDirectory-Response ::= SEQUENCE { listOfDirectoryEntry [0] SEQUENCE OF DirectoryEntry, moreFollows [1] IMPLICIT BOOLEAN DEFAULT FALSE } DirectoryEntry ::= SEQUENCE { fileName [0] IMPLICIT FileName, fileAttributes [1] IMPLICIT FileAttributes } FileAttributes ::= SEQUENCE { sizeOfFile [0] IMPLICIT Unsigned32, -- in octets lastModified [1] IMPLICIT GeneralizedTime OPTIONAL } ScatteredAccessDescription ::=SEQUENCE OF SEQUENCE { componentName [0] IMPLICIT Identifier OPTIONAL, variableSpecification [1] VariableSpecification IF ( valt ) , alternateAccess [2] IMPLICIT AlternateAccess OPTIONAL ENDIF } DefineScatteredAccess-Request ::= SEQUENCE { scatteredAccessName [0] ObjectName, scatteredAccessDescription [1] IMPLICIT ScatteredAccessDescription } DefineScatteredAccess-Response ::= NULL GetScatteredAccessAttributes-Request ::= ObjectName -- ScatteredAccessName GetScatteredAccessAttributes-Response ::= SEQUENCE { mmsDeletable [0] IMPLICIT BOOLEAN, scatteredAccessDescription [1] IMPLICIT ScatteredAccessDescription IF ( aco ) , accessControlList [2] IMPLICIT Identifier OPTIONAL -- Shall not appear in minor version one or two ENDIF } END