The Net is the Automation.
We bring people, systems and devices together.
NettedAutomation GmbH
Information & Communication Systems (NAICS)

back - menue - contact - search
news - solutions - standardization - seminars - marketing support
question & answers - discussion forum - glossary - links - about us


-> home > standardization > iso > tc 184 > sc5 > working group 2 > mms syntax > mms syntax iso ...

MMS Syntax (ISO 9506-2:1999)

Updated and fixed on 2006-08-11

ISO-9506-MMS-1 { iso standard 9506 part(2) mms-abstract-syntax-version1(1) }
DEFINITIONS ::= BEGIN

    -- The editor of this html document does not guarantee correctnes of the syntax.
    - Precise definition can be found in the standard 9506-2:1999

EXPORTS

IMPORTS


MMSpdu ::= CHOICE {

confirmed-RequestPDU [0] IMPLICIT Confirmed-RequestPDU,
confirmed-ResponsePDU [1] IMPLICIT Confirmed-ResponsePDU,
confirmed-ErrorPDU [2] IMPLICIT Confirmed-ErrorPDU,
unconfirmed-PDU [3] IMPLICIT Unconfirmed-PDU,
rejectPDU [4] IMPLICIT RejectPDU,
cancel-RequestPDU [5] IMPLICIT Cancel-RequestPDU,
cancel-ResponsePDU [6] IMPLICIT Cancel-ResponsePDU,
cancel-ErrorPDU [7] IMPLICIT Cancel-ErrorPDU,
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,
listOfModifiers SEQUENCE OF Modifier OPTIONAL,
service ConfirmedServiceRequest,
...,
service-ext [79] Request-Detail OPTIONAL

-- shall not be transmitted if value is the value
-- of a tagged type derived from NULL

}

ConfirmedServiceRequest ::= CHOICE {

status [0] IMPLICIT Status-Request,
getNameList [1] IMPLICIT GetNameList-Request,
identify [2] IMPLICIT Identify-Request,
rename [3] IMPLICIT Rename-Request,
read [4] IMPLICIT Read-Request,
write [5] IMPLICIT Write-Request,
getVariableAccessAttributes[6] GetVariableAccessAttributes-Request,
defineNamedVariable [7] IMPLICIT DefineNamedVariable-Request,
        -- [8] is reserved for a service defined in Annex E
defineScatteredAccess [8] IMPLICIT DefineScatteredAccess-Request,
        -- [9] is reserved for a service defined in Annex E
getScatteredAccessAttributes [9] IMPLICIT GetScatteredAccessAttributes-Request,
deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Request,
defineNamedVariableList [11] IMPLICIT DefineNamedVariableList-Request,
getNamedVariableListAttributes [12] GetNamedVariableListAttributes-Request,
deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-Request,
defineNamedType [14] IMPLICIT DefineNamedType-Request,
getNamedTypeAttributes [15] GetNamedTypeAttributes-Request,
deleteNamedType [16] IMPLICIT DeleteNamedType-Request,
input [17] IMPLICIT Input-Request,
output [18] IMPLICIT Output-Request,
takeControl [19] IMPLICIT TakeControl-Request,
relinquishControl [20] IMPLICIT RelinquishControl-Request,
defineSemaphore [21] IMPLICIT DefineSemaphore-Request,
deleteSemaphore [22] DeleteSemaphore-Request,
reportSemaphoreStatus [23] ReportSemaphoreStatus-Request,
reportPoolSemaphoreStatus [24] IMPLICIT ReportPoolSemaphoreStatus-Request,
reportSemaphoreEntryStatus [25] IMPLICIT ReportSemaphoreEntryStatus-Request,
initiateDownloadSequence [26] IMPLICIT InitiateDownloadSequence-Request,
downloadSegment [27] IMPLICIT DownloadSegment-Request,
terminateDownloadSequence [28] IMPLICIT TerminateDownloadSequence-Request,
initiateUploadSequence [29] IMPLICIT InitiateUploadSequence-Request,
uploadSegment [30] IMPLICIT UploadSegment-Request,
terminateUploadSequence [31] IMPLICIT TerminateUploadSequence-Request,
requestDomainDownload [32] IMPLICIT RequestDomainDownload-Request,
requestDomainUpload [33] IMPLICIT RequestDomainUpload-Request,
loadDomainContent [34] IMPLICIT LoadDomainContent-Request,
storeDomainContent [35] IMPLICIT StoreDomainContent-Request,
deleteDomain [36] IMPLICIT DeleteDomain-Request,
getDomainAttributes [37] IMPLICIT GetDomainAttributes-Request,
createProgramInvocation [38] IMPLICIT CreateProgramInvocation-Request,
deleteProgramInvocation [39] IMPLICIT DeleteProgramInvocation-Request,
start [40] IMPLICIT Start-Request,
stop [41] IMPLICIT Stop-Request,
resume [42] IMPLICIT Resume-Request,
reset [43] IMPLICIT Reset-Request,
kill [44] IMPLICIT Kill-Request,
getProgramInvocationAttributes [45] IMPLICIT GetProgramInvocationAttributes-Request,
obtainFile [46] IMPLICIT ObtainFile-Request,
defineEventCondition [47] IMPLICIT DefineEventCondition-Request,
deleteEventCondition [48] DeleteEventCondition-Request,
getEventConditionAttributes [49] GetEventConditionAttributes-Request,
reportEventConditionStatus [50] ReportEventConditionStatus-Request,
alterEventConditionMonitoring [51] IMPLICIT AlterEventConditionMonitoring-Request,
triggerEvent [52] IMPLICIT TriggerEvent-Request,
defineEventAction [53] IMPLICIT DefineEventAction-Request,
deleteEventAction [54] DeleteEventAction-Request,
getEventActionAttributes [55] GetEventActionAttributes-Request,
reportEventActionStatus [56] ReportEventActionStatus-Request,
defineEventEnrollment [57] IMPLICIT DefineEventEnrollment-Request,
deleteEventEnrollment [58] DeleteEventEnrollment-Request,
alterEventEnrollment [59] IMPLICIT AlterEventEnrollment-Request,
reportEventEnrollmentStatus [60] ReportEventEnrollmentStatus-Request,
getEventEnrollmentAttributes [61] IMPLICIT GetEventEnrollmentAttributes-Request,
acknowledgeEventNotification [62] IMPLICIT AcknowledgeEventNotification-Request,
getAlarmSummary [63] IMPLICIT GetAlarmSummary-Request,
getAlarmEnrollmentSummary [64] IMPLICIT GetAlarmEnrollmentSummary-Request,
readJournal [65] IMPLICIT ReadJournal-Request,
writeJournal [66] IMPLICIT WriteJournal-Request,
initializeJournal [67] IMPLICIT InitializeJournal-Request,
reportJournalStatus [68] ReportJournalStatus-Request,
createJournal [69] IMPLICIT CreateJournal-Request,
deleteJournal [70] IMPLICIT DeleteJournal-Request,
getCapabilityList [71] IMPLICIT GetCapabilityList-Request,
        -- choices [72] through [77] are reserved for use by services
        -- defined in annex D
fileOpen [72] IMPLICIT FileOpen-Request,
fileRead [73] IMPLICIT FileRead-Request,
fileClose [74] IMPLICIT FileClose-Request,
fileRename [75] IMPLICIT FileRename-Request,
fileDelete [76] IMPLICIT FileDelete-Request,
fileDirectory [77] IMPLICIT FileDirectory-Request,
additionalService [78] AdditionalService-Request,
        -- choice [79] is reserved
getDataExchangeAttributes [80] GetDataExchangeAttributes-Request,
        -- Shall not appear in minor version 1
exchangeData [81] IMPLICIT ExchangeData-Request,
        -- Shall not appear in minor version 1
defineAccessControlList [82] IMPLICIT DefineAccessControlList-Request,
        -- Shall not appear in minor version 1 or 2
getAccessControlListAttributes [83] IMPLICIT GetAccessControlListAttributes-Request,
        -- Shall not appear in minor version 1 or 2
reportAccessControlledObjects [84] IMPLICITReportAccessControlledObjects-Request,
        -- Shall not appear in minor version 1 or 2
deleteAccessControlList [85] IMPLICIT DeleteAccessControlList-Request,
        -- Shall not appear in minor version 1 or 2
changeAccessControl [86] IMPLICIT ChangeAccessControl-Request,
        -- Shall not appear in minor version 1 or 2
...,
reconfigureProgramInvocation [87] IMPLICIT ReconfigureProgramInvocation-Request
        -- Shall not appear in minor version 1 or 2
}

AdditionalService-Request ::= CHOICE {

VMDStop [0] IMPLICIT VMDStop-Request,
vMDReset [1] IMPLICIT VMDReset-Request,
select [2] IMPLICIT Select-Request,
alterPI [3] IMPLICIT AlterProgramInvocationAttributes-Request,
initiateUCLoad [4] IMPLICIT InitiateUnitControlLoad-Request,
uCLoad [5] IMPLICIT UnitControlLoadSegment-Request,
uCUpload [6] IMPLICIT UnitControlUpload-Request,
startUC [7] IMPLICIT StartUnitControl-Request,
stopUC [8] IMPLICIT StopUnitControl-Request,
createUC [9] IMPLICIT CreateUnitControl-Request,
addToUC [10] IMPLICIT AddToUnitControl-Request,
removeFromUC [11] IMPLICIT RemoveFromUnitControl-Request,
getUCAttributes [12] IMPLICIT GetUnitControlAttributes-Request,
loadUCFromFile [13] IMPLICIT LoadUnitControlFromFile-Request,
storeUCToFile [14] IMPLICIT StoreUnitControlToFile-Request,
deleteUC [15] IMPLICIT DeleteUnitControl-Request,
defineECL [16] IMPLICIT DefineEventConditionList-Request,
deleteECL [17] IMPLICIT DeleteEventConditionList-Request,
addECLReference [18] IMPLICIT AddEventConditionListReference-Request,
removeECLReference [19] IMPLICIT RemoveEventConditionListReference-Request,
getECLAttributes [20] IMPLICIT GetEventConditionListAttributes-Request,
reportECLStatus [21] IMPLICIT ReportEventConditionListStatus-Request,
alterECLMonitoring [22] IMPLICIT AlterEventConditionListMonitoring-Request
}

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,
createProgramInvocation [38] IMPLICIT CS-CreateProgramInvocation-Request,
start [40] IMPLICIT CS-Start-Request,
resume [42] IMPLICIT CS-Resume-Request,
defineEventCondition [47] IMPLICIT CS-DefineEventCondition-Request,
alterEventConditionMonitoring [51] IMPLICIT CS-AlterEventConditionMonitoring-Request,
defineEventEnrollment [57] IMPLICIT CS-DefineEventEnrollment-Request,
alterEventEnrollment [59] IMPLICIT CS-AlterEventEnrollment-Request
}

Unconfirmed-PDU ::= SEQUENCE {

service UnconfirmedService,
...,
service-ext [79] Unconfirmed-Detail OPTIONAL
        -- shall not be transmitted if value is the value
        -- of a tagged type derived from NULL
}

UnconfirmedService ::= CHOICE {

informationReport [0] IMPLICIT InformationReport,
unsolicitedStatus [1] IMPLICIT UnsolicitedStatus,
eventNotification [2] IMPLICIT EventNotification
}

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,
eventNotification [2] IMPLICIT CS-EventNotification
}

Confirmed-ResponsePDU ::= SEQUENCE {

invokeID Unsigned32,
service ConfirmedServiceResponse,
...,
service-ext [79] Response-Detail OPTIONAL
        -- shall not be transmitted if value is the value
        -- of a tagged type derived from NULL
}

ConfirmedServiceResponse ::= CHOICE {

status [0] IMPLICIT Status-Response,
getNameList [1] IMPLICIT GetNameList-Response,
identify [2] IMPLICIT Identify-Response,
rename [3] IMPLICIT Rename-Response,
read [4] IMPLICIT Read-Response,
write [5] IMPLICIT Write-Response,
getVariableAccessAttributes [6] IMPLICIT GetVariableAccessAttributes-Response,
defineNamedVariable [7] IMPLICIT DefineNamedVariable-Response
        -- choice [8] is reserved for a service defined in Annex E
defineScatteredAccess [8] IMPLICIT DefineScatteredAccess-Response,
        -- choice [9] is reserved for a service defined in Annex E
getScatteredAccessAttributes [9] IMPLICIT GetScatteredAccessAttributes-Response,
deleteVariableAccess [10] IMPLICIT DeleteVariableAccess-Response,
defineNamedVariableList [11] IMPLICIT DefineNamedVariableList-Response,
getNamedVariableListAttributes [12] IMPLICITGetNamedVariableListAttributes-Response,
deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-Response,
defineNamedType [14] IMPLICIT DefineNamedType-Response,
getNamedTypeAttributes [15] IMPLICIT GetNamedTypeAttributes-Response,
deleteNamedType [16] IMPLICIT DeleteNamedType-Response,
input [17] IMPLICIT Input-Response,
output [18] IMPLICIT Output-Response,
takeControl [19] TakeControl-Response,
relinquishControl [20] IMPLICIT RelinquishControl-Response,
defineSemaphore [21] IMPLICIT DefineSemaphore-Response,
deleteSemaphore [22] IMPLICIT DeleteSemaphore-Response,
reportSemaphoreStatus [23] IMPLICIT ReportSemaphoreStatus-Response,
reportPoolSemaphoreStatus [24] IMPLICIT ReportPoolSemaphoreStatus-Response,
reportSemaphoreEntryStatus [25] IMPLICIT ReportSemaphoreEntryStatus-Response,
initiateDownloadSequence [26] IMPLICIT InitiateDownloadSequence-Response,
downloadSegment [27] IMPLICIT DownloadSegment-Response,
terminateDownloadSequence [28] IMPLICIT TerminateDownloadSequence-Response,
initiateUploadSequence [29] IMPLICIT InitiateUploadSequence-Response,
uploadSegment [30] IMPLICIT UploadSegment-Response,
terminateUploadSequence [31] IMPLICIT TerminateUploadSequence-Response,
requestDomainDownload [32] IMPLICIT RequestDomainDownload-Response,
requestDomainUpload [33] IMPLICIT RequestDomainUpload-Response,
loadDomainContent [34] IMPLICIT LoadDomainContent-Response,
storeDomainContent [35] IMPLICIT StoreDomainContent-Response,
deleteDomain [36] IMPLICIT DeleteDomain-Response,
getDomainAttributes [37] IMPLICIT GetDomainAttributes-Response,
createProgramInvocation [38] IMPLICIT CreateProgramInvocation-Response,
deleteProgramInvocation [39] IMPLICIT DeleteProgramInvocation-Response,
start [40] IMPLICIT Start-Response,
stop [41] IMPLICIT Stop-Response,
resume [42] IMPLICIT Resume-Response,
reset [43] IMPLICIT Reset-Response,
kill [44] IMPLICIT Kill-Response,
getProgramInvocationAttributes [45] IMPLICIT GetProgramInvocationAttributes-Response,
obtainFile [46] IMPLICIT ObtainFile-Response,
defineEventCondition [47] IMPLICIT DefineEventCondition-Response,
deleteEventCondition [48] IMPLICIT DeleteEventCondition-Response,
getEventConditionAttributes [49] IMPLICIT GetEventConditionAttributes-Response,
reportEventConditionStatus [50] IMPLICIT ReportEventConditionStatus-Response,
alterEventConditionMonitoring [51] IMPLICIT AlterEventConditionMonitoring-Response,
triggerEvent [52] IMPLICIT TriggerEvent-Response,
defineEventAction [53] IMPLICIT DefineEventAction-Response,
deleteEventAction [54] IMPLICIT DeleteEventAction-Response,
getEventActionAttributes [55] IMPLICIT GetEventActionAttributes-Response,
reportEventActionStatus [56] IMPLICIT ReportEventActionStatus-Response,
defineEventEnrollment [57] IMPLICIT DefineEventEnrollment-Response,
deleteEventEnrollment [58] IMPLICIT DeleteEventEnrollment-Response,
alterEventEnrollment [59] IMPLICIT AlterEventEnrollment-Response,
reportEventEnrollmentStatus [60] IMPLICIT ReportEventEnrollmentStatus-Response,
getEventEnrollmentAttributes [61] IMPLICIT GetEventEnrollmentAttributes-Response,
acknowledgeEventNotification [62] IMPLICIT AcknowledgeEventNotification-Response,
getAlarmSummary [63] IMPLICIT GetAlarmSummary-Response,
getAlarmEnrollmentSummary [64] IMPLICIT GetAlarmEnrollmentSummary-Response,
readJournal [65] IMPLICIT ReadJournal-Response,
writeJournal [66] IMPLICIT WriteJournal-Response,
initializeJournal [67] IMPLICIT InitializeJournal-Response,
reportJournalStatus [68] IMPLICIT ReportJournalStatus-Response,
createJournal [69] IMPLICIT CreateJournal-Response,
deleteJournal [70] IMPLICIT DeleteJournal-Response,
getCapabilityList [71] IMPLICIT GetCapabilityList-Response,

-- choices [72] through [77] are reserved for use by services
-- defined in annex D

fileOpen [72] IMPLICIT FileOpen-Response,
fileRead [73] IMPLICIT FileRead-Response,
fileClose [74] IMPLICIT FileClose-Response,
fileRename [75] IMPLICIT FileRename-Response,
fileDelete [76] IMPLICIT FileDelete-Response,
fileDirectory [77] IMPLICIT FileDirectory-Response,
additionalService [78] AdditionalService-Response,

-- choice [79] is reserved

getDataExchangeAttributes [80] GetDataExchangeAttributes-Response,

-- Shall not appear in minor version 1

exchangeData [81] IMPLICIT ExchangeData-Response,

-- Shall not appear in minor version 1

defineAccessControlList [82] IMPLICIT DefineAccessControlList-Response,

-- Shall not appear in minor version 1 or 2

getAccessControlListAttributes [83] IMPLICIT GetAccessControlListAttributes-Response,

-- Shall not appear in minor version 1 or 2

reportAccessControlledObjects [84] IMPLICIT ReportAccessControlledObjects-Response,

-- Shall not appear in minor version 1 or 2

deleteAccessControlList [85] IMPLICIT DeleteAccessControlList-Response,

-- Shall not appear in minor version 1 or 2

changeAccessControl [86] IMPLICIT ChangeAccessControl-Response,

-- Shall not appear in minor version 1 or 2

...,
reconfigureProgramInvocation [87] IMPLICIT ReconfigureProgramInvocation-Response

-- Shall not appear in minor version 1 or 2

}

AdditionalService-Response ::= CHOICE {

vMDStop [0] IMPLICIT VMDStop-Response,
vMDReset [1] IMPLICIT VMDReset-Response,
select [2] IMPLICIT Select-Response,
alterPI [3] IMPLICIT AlterProgramInvocationAttributes-Response,
initiateUCLoad [4] IMPLICIT InitiateUnitControlLoad-Response,
uCLoad [5] IMPLICIT UnitControlLoadSegment-Response,
uCUpload [6] IMPLICIT UnitControlUpload-Response,
startUC [7] IMPLICIT StartUnitControl-Response,
stopUC [8] IMPLICIT StopUnitControl-Response,
createUC [9] IMPLICIT CreateUnitControl-Response,
addToUC [10] IMPLICIT AddToUnitControl-Response,
removeFromUC [11] IMPLICIT RemoveFromUnitControl-Response,
getUCAttributes [12] IMPLICIT GetUnitControlAttributes-Response,
loadUCFromFile [13] IMPLICIT LoadUnitControlFromFile-Response,
storeUCToFile [14] IMPLICIT StoreUnitControlToFile-Response,
deleteUC [15] IMPLICIT DeleteUnitControl-Response,
defineECL [16] IMPLICIT DefineEventConditionList-Response,
deleteECL [17] IMPLICIT DeleteEventConditionList-Response,
addECLReference [18] IMPLICIT AddEventConditionListReference-Response,
removeECLReference [19] IMPLICIT RemoveEventConditionListReference-Response,
getECLAttributes [20] IMPLICIT GetEventConditionListAttributes-Response,
reportECLStatus [21] IMPLICIT ReportEventConditionListStatus-Response,
alterECLMonitoring [22] IMPLICIT AlterEventConditionListMonitoring-Response
}

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,

status [0] IMPLICIT CS-Status-Response,
getProgramInvocationAttributes [45] IMPLICIT CS-GetProgramInvocationAttributes-Response,
getEventConditionAttributes [49] IMPLICIT CS-GetEventConditionAttributes-Response
}

Confirmed-ErrorPDU ::= SEQUENCE {

invokeID [0] IMPLICIT Unsigned32,
modifierPosition [1] IMPLICIT Unsigned32 OPTIONAL,
serviceError [2] IMPLICIT ServiceError
}

ServiceError ::= SEQUENCE {

errorClass [0] CHOICE {
        vmd-state [0] IMPLICIT INTEGER { -- VMD-STATE,

other (0), -- OTHER
vmd-state-conflict (1), -- VMD-STATE-CONFLICT
vmd-operational-problem (2), -- VMD-OPERATIONAL-PROBLEM
domain-transfer-problem (3), -- DOMAIN-TRANSFER-PROBLEM
state-machine-id-invalid (4) -- STATE-MACHINE-ID-INVALID

                           },
        application-reference [1] IMPLICIT INTEGER { -- APPLICATION REFERENCE

other (0), -- OTHER
application-unreachable (1), -- APPLICATION-UNREACHABLE
connection-lost (2), -- CONNECTION-LOST
application-reference-invalid (3), -- APPLICATION-REFERENCE-INVALID
context-unsupported (4) -- CONTEXT-UNSUPPORTED

                           },
        definition [2] IMPLICIT INTEGER { -- DEFINITION

other (0), -- OTHER
object-undefined (1), -- OBJECT-UNDEFINED
invalid-address (2), -- INVALID-ADDRESS
type-unsupported (3), -- TYPE-UNSUPPORTED
type-inconsistent (4), -- TYPE-INCONSISTENT
object-exists (5), -- OBJECT-EXISTS
object-attribute-inconsistent (6) -- OBJECT-ATTRIBUTE-INCONSISTENT

                           },
        resource [3] IMPLICIT INTEGER { -- RESOURCE

other (0), -- OTHER
memory-unavailable (1), -- MEMORY-UNAVAILABLE
processor-resource-unavailable (2), -- PROCESSOR-RESOURCE-UNAVAILABLE
mass-storage-unavailable (3), -- MASS-STORAGE-UNAVAILABLE
capability-unavailable (4), -- CAPABILITY-UNAVAILABLE
capability-unknown (5) -- CAPABILITY-UNKNOWN

                           },
        service [4] IMPLICIT INTEGER { -- SERVICE

other (0), -- OTHER
primitives-out-of-sequence (1), -- PRIMITIVES-OUT-OF-SEQUENCE
object-state-conflict (2), -- OBJECT-STATE-CONFLICT

-- Value 3 reserved for further definition

continuation-invalid (4), -- CONTINUATION-INVALID
object-constraint-conflict (5) -- OBJECT-CONSTRAINT-CONFLICT

                           },
        service-preempt [5] IMPLICIT INTEGER { -- SERVICE-PREEMPT

other (0), -- OTHER
timeout (1), -- TIMEOUT
deadlock (2), -- DEADLOCK
cancel (3) -- CANCEL

                           },
        time-resolution [6] IMPLICIT INTEGER { -- TIME-RESOLUTION

other (0), -- OTHER
unsupportable-time-resolution (1) -- UNSUPPORTABLE-TIME-RESOLUTION

                           },
        access [7] IMPLICIT INTEGER { -- ACCESS

other (0), -- OTHER
object-access-unsupported (1), -- OBJECT-ACCESS-UNSUPPORTED
object-non-existent (2), -- OBJECT-NON-EXISTENT
object-access-denied (3), -- OBJECT-ACCESS-DENIED
object-invalidated (4) -- OBJECT-INVALIDATED

                           },
        initiate [8] IMPLICIT INTEGER { -- INITIATE

other (0), -- OTHER

-- Values 1 and 2 are reserved for further definition

max-services-outstanding-calling-insufficient (3),

-- MAX-SERVICES-OUTSTANDING-CALLING-INSUFFICIENT

max-services-outstanding-called-insufficient (4),

-- MAX-SERVICES-OUTSTANDING-CALLED-INSUFFICIENT

service-CBB-insufficient (5), -- SERVICE-CBB-INSUFFICIENT
parameter-CBB-insufficient (6), -- PARAMETER-CBB-INSUFFICIENT
nesting-level-insufficient (7) -- NESTING-LEVEL-INSUFFICIENT

                           },
        conclude [9] IMPLICIT INTEGER { -- CONCLUDE

other (0), -- OTHER
further-communication-required (1) -- FURTHER-COMMUNICATION-REQUIRED

                           },
        cancel [10] IMPLICIT INTEGER { -- CANCEL

other (0), -- OTHER
invoke-id-unknown (1), -- INVOKE-ID-UNKNOWN
cancel-not-possible (2) -- CANCEL-NOT-POSSIBLE

                           },
        file [11] IMPLICIT INTEGER { -- FILE

other (0), -- OTHER
filename-ambiguous (1), -- FILENAME-AMBIGUOUS
file-busy (2), -- FILE-BUSY
filename-syntax-error (3), -- FILENAME-SYNTAX-ERROR
content-type-invalid (4), -- CONTENT-TYPE-INVALID
position-invalid (5), -- POSITION-INVALID
file-access-denied (6), -- FILE-ACCESS-DENIED
file-non-existent (7), -- FILE-NON-EXISTENT
duplicate-filename (8), -- DUPLICATE-FILENAME
insufficient-space-in-filestore (9) -- INSUFFICIENT-SPACE-IN-FILESTORE

                           },
        others [12] IMPLICIT INTEGER -- OTHERS
        } ,
additionalCode [1] IMPLICIT INTEGER OPTIONAL,
additionalDescription [2] IMPLICIT VisibleString OPTIONAL,
serviceSpecificInfo [3] CHOICE {
        obtainFile [0] IMPLICIT ObtainFile-Error,
        start [1] IMPLICIT Start-Error,
        stop [2] IMPLICIT Stop-Error,
        resume [3] IMPLICIT Resume-Error,
        reset [4] IMPLICIT Reset-Error,
        deleteVariableAccess [5] IMPLICIT DeleteVariableAccess-Error,
        deleteNamedVariableList [6] IMPLICIT DeleteNamedVariableList-Error,
        deleteNamedType [7] IMPLICIT DeleteNamedType-Error,
        defineEventEnrollment-Error [8] DefineEventEnrollment-Error,

            -- [9] Reserved for use by annex D

        fileRename [9] IMPLICIT FileRename-Error,
        additionalService [10] AdditionalService-Error,
        changeAccessControl [11] IMPLICIT ChangeAccessControl-Error
        } OPTIONAL
}

AdditionalService-Error ::= CHOICE {

defineEcl [0] DefineEventConditionList-Error,
addECLReference [1] AddEventConditionListReference-Error,
removeECLReference [2] RemoveEventConditionListReference-Error,
initiateUC [3] InitiateUnitControl-Error,
startUC [4] IMPLICIT StartUnitControl-Error,
stopUC [5] IMPLICIT StopUnitControl-Error,
deleteUC [6] IMPLICIT DeleteUnitControl-Error,
loadUCFromFile [7] IMPLICIT LoadUnitControlFromFile-Error
}

TimeOfDay ::= OCTET STRING (SIZE(4|6))

BasicIdentifier ::= 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..32))

LatinIdentifier ::= 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..32))

UnlimitedIdentifier ::= CHARACTER STRING (SIZE(1..32))

Identifier ::= CHOICE {

basic BasicIdentifier,
extended ExtendedIdentifier
}

ExtendedIdentifier ::= CHOICE {

latin [1] IMPLICIT LatinIdentifier,
unlimited UnlimitedIdentifier
}

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

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 CHOICE {
            basicVmd-specific [0] IMPLICIT BasicIdentifier,
            extndVMD-specific [3] ExtendedIdentifier
            },
domain-specific [1] IMPLICIT SEQUENCE {
            domainID Identifier,
            itemID Identifier
            },
aa-specific CHOICE {
            basicAA-specific [2] IMPLICIT BasicIdentifier,
            extndAA-specific [4] ExtendedIdentifier
            }
}

ObjectClass ::= CHOICE {

basicObjectClass [0] IMPLICIT INTEGER {
        namedVariable (0),

-- value 1 is reserved for definition in Annex E

        scatteredAccess (1),
        namedVariableList (2),
        namedType (3),
        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
        },
...,
csObjectClass [1] IMPLICIT INTEGER {
        eventConditionList (0),
        unitControl (1) }
        }

MMSString ::= CHOICE {

basic VisibleString,
extended ExtendedString
}

ExtendedString ::= CHOICE {

latin ISO10646String,
unlimited CHARACTER STRING
}

ISO10646String ::=

BMPString (FROM ( Level1 INTERSECTION(BasicLatin UNION Latin-1Supplement)))

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 ,
        ...,
        additionalSupportedCalling [3] IMPLICIT AdditionalSupportOptions,
        additionalCBBSupportedCalling [4] IMPLICIT AdditionalCBBOptions,
        privilegeClassIdentityCalling [5] MMSString
        }
}

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,
        ...,
        additionalSupportedCalled [3] IMPLICIT AdditionalSupportOptions,
        additionalCBBSupportedCalled [4] IMPLICIT AdditionalCBBOptions,
        privilegeClassIdentityCalled [5] MMSString
        }
}

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 { -- CONFIRMED-REQUESTPDU
                other (0), -- OTHER
                unrecognized-service (1), -- UNRECOGNIZED-SERVICE
                unrecognized-modifier (2), -- UNRECOGNIZED-MODIFIER
                invalid-invokeID (3), -- INVALID-INVOKEID
                invalid-argument (4), -- INVALID-ARGUMENT
                invalid-modifier (5), -- INVALID-MODIFIER
                max-serv-outstanding-exceeded (6),

-- MAX-SERV-OUTSTANDING-EXCEEDED
-- Value 7 reserved for further definition

                max-recursion-exceeded (8), -- MAX-RECURSION-EXCEEDED
                value-out-of-range (9) -- VALUE-OUT-OF-RANGE
                },
        confirmed-responsePDU [2] IMPLICIT INTEGER { --CONFIRMED-RESPONSEPDU
                other (0), -- OTHER
                unrecognized-service (1), -- UNRECOGNIZED-SERVICE
                invalid-invokeID (2), -- INVALID-INVOKEID
                invalid-result (3), -- INVALID-RESULT

-- Value 4 reserved for further definition

                max-recursion-exceeded (5), -- MAX-RECURSION-EXCEEDED
                value-out-of-range (6) -- VALUE-OUT-OF-RANGE
                },
        confirmed-errorPDU [3] IMPLICIT INTEGER { -- CONFIRMED-ERRORPDU
                other (0), -- OTHER
                unrecognized-service (1), -- UNRECOGNIZED-SERVICE
                invalid-invokeID (2), -- INVALID-INVOKEID
                invalid-serviceError (3), -- INVALID-SERVICEERROR
                value-out-of-range (4) -- VALUE-OUT-OF-RANGE
                },
        unconfirmedPDU [4] IMPLICIT INTEGER { -- UNCONFIRMEDPDU
                other (0), -- OTHER
                unrecognized-service (1), -- UNRECOGNIZED-SERVICE
                invalid-argument (2), -- INVALID-ARGUMENT
                max-recursion-exceeded (3), -- MAX-RECURSION-EXCEEDED
                value-out-of-range (4) -- VALUE-OUT-OF-RANGE
                },
        pdu-error [5] IMPLICIT INTEGER { -- PDU-ERROR
                unknown-pdu-type (0), -- UNKNOWN-PDU-TYPE
                invalid-pdu (1), -- INVALID-PDU
                illegal-acse-mapping (2) -- ILLEGAL-ACSE-MAPPING
                },
        cancel-requestPDU [6] IMPLICIT INTEGER { -- CANCEL-REQUESTPDU
                other (0), -- OTHER
                invalid-invokeID (1) -- INVALID-INVOKEID
                },
        cancel-responsePDU [7] IMPLICIT INTEGER { -- CANCEL-RESPONSEPDU
                other (0), -- OTHER
                invalid-invokeID (1) -- INVALID-INVOKEID
                },
        cancel-errorPDU [8] IMPLICIT INTEGER { -- CANCEL-ERRORPDU
                other (0), -- OTHER
                invalid-invokeID (1), -- INVALID-INVOKEID
                invalid-serviceError (2), -- INVALID-SERVICEERROR
                value-out-of-range (3) -- VALUE-OUT-OF-RANGE
                },
        conclude-requestPDU [9] IMPLICIT INTEGER { -- CONCLUDE-REQUESTPDU
                other (0), -- OTHER
                invalid-argument (1) -- INVALID-ARGUMENT
                },
        conclude-responsePDU [10] IMPLICIT INTEGER { -- CONCLUDE-RESPONSEPDU
                other (0), -- OTHER
                invalid-result (1) -- INVALID-RESULT
                },
        conclude-errorPDU [11] IMPLICIT INTEGER { -- CONCLUDE-ERRORPDU
                other (0), -- OTHER
                invalid-serviceError (1), -- INVALID-SERVICEERROR
                value-out-of-range (2) -- VALUE-OUT-OF-RANGE
                }
        }
}

DefineAccessControlList-Request ::= SEQUENCE {

accessControlListName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
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] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
vMD [1] IMPLICIT NULL,
namedObject [2] IMPLICIT SEQUENCE {
        objectClass [0] ObjectClass,
        objectName [1] ObjectName
        }
}

GetAccessControlListAttributes-Response ::= SEQUENCE {

name [0] Identifier, -- Access Control List name
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
        },
accessControlList [4] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL

-- shall be included if and only if
-- aco has been negotiated

}

ReportAccessControlledObjects-Request ::= SEQUENCE {

accessControlList [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
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,

    -- SPECIFIC
    -- Names of the objects (of class objectClass)
    -- whose access is to be changed

                        aa-specific [1] IMPLICIT NULL, -- AA-SPECIFIC
                        domain [2] CHOICE {
                                basic BasicIdentifier,
                                extended ExtendedIdentifier
                        }, -- DOMAIN

        -- Name of the Domain whose elements
        -- are to be changed

                vmd [3] IMPLICIT NULL -- VMD
                }
        }
},
accessControlListName [2] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
}

-- 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 -- numberChanged

StatusResponse ::= SEQUENCE {
        vmdLogicalStatus [0] IMPLICIT INTEGER {
                state-changes-allowed (0),
                no-state-changes-allowed (1),
                limited-services-permitted (2),
                support-services-allowed (3)
                },
        vmdPhysicalStatus [1] IMPLICIT INTEGER {
                operational (0),
                partially-operational (1),
                inoperable (2),
                needs-commissioning (3)
                },
localDetail [2] IMPLICIT BIT STRING (SIZE(0..128)) OPTIONAL

-- not to exceed 128 bits in length

}

CS-Status-Response ::= CHOICE {

full SEQUENCE {
        operationState [0] IMPLICIT OperationState,
        extendedStatus [1] IMPLICIT ExtendedStatus,
        extendedStatusMask [2] IMPLICIT ExtendedStatus DEFAULT '1111'B,
        selectedProgramInvocation CHOICE {
                programInvocation [3] CHOICE {
                        basic BasicIdentifier,
                        extended ExtendedIdentifier
                        },
                noneSelected [4] IMPLICIT NULL
                }
        },
null NULL
}

OperationState ::= INTEGER {

idle (0),
loaded (1),
ready (2),
executing (3),
motion-paused (4),
manualInterventionRequired (5)
}

ExtendedStatus ::= BIT STRING {

safetyInterlocksViolated (0),
anyPhysicalResourcePowerOn (1),
allPhysicalResourcesCalibrated (2),
localControl (3) }

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] CHOICE {
                basic BasicIdentifier,
                extended ExtendedIdentifier
                },
        aaSpecific [2] IMPLICIT NULL },
        continueAfter [2] CHOICE {
                basic BasicIdentifier,
                extended ExtendedIdentifier
        } OPTIONAL
}

GetNameList-Response ::= SEQUENCE {

listOfIdentifier [0] IMPLICIT SEQUENCE OF Identifier,
moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE
}

Identify-Request ::= NULL

Identify-Response ::= SEQUENCE {

vendorName CHOICE {
        basic [0] IMPLICIT VisibleString,
        extended [4] IMPLICIT ExtendedString
        },
modelName CHOICE {
        basic [1] IMPLICIT VisibleString,
        extended [5] IMPLICIT ExtendedString
        },
revision CHOICE {
        basic [2] IMPLICIT VisibleString,
        extended [7] IMPLICIT ExtendedString
        },
listOfAbstractSyntaxes [3] IMPLICIT SEQUENCE OF OBJECT IDENTIFIER OPTIONAL
}

Rename-Request ::= SEQUENCE {

objectClass [0] ObjectClass,
currentName [1] ObjectName,
newIdentifier [2] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        }
}

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] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
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] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
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] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
listOfCapabilities [1] IMPLICIT SEQUENCE OF MMSString OPTIONAL,
sharable [2] IMPLICIT BOOLEAN,
fileName [4] IMPLICIT FileName
}

RequestDomainDownload-Response ::= NULL

RequestDomainUpload-Request ::= SEQUENCE {

domainName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
fileName [1] IMPLICIT FileName
}

RequestDomainUpload-Response ::= NULL

LoadDomainContent-Request ::= SEQUENCE {

domainName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
listOfCapabilities [1] IMPLICIT SEQUENCE OF MMSString OPTIONAL,
sharable [2] IMPLICIT BOOLEAN,
fileName [4] IMPLICIT FileName,
thirdParty [5] IMPLICIT ApplicationReference OPTIONAL
-- TPY
}

LoadDomainContent-Response ::= NULL

StoreDomainContent-Request ::= SEQUENCE {

domainName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
fileName [1] IMPLICIT FileName,
thirdParty [2] IMPLICIT ApplicationReference OPTIONAL
-- TPY
}

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,
accessControlList [6] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL

-- Shall not appear in minor version one or two

}

CreateProgramInvocation-Request ::= SEQUENCE {

programInvocationName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
listOfDomainNames [1] IMPLICIT SEQUENCE OF Identifier,
reusable [2] IMPLICIT BOOLEAN DEFAULT TRUE,
monitorType [3] IMPLICIT BOOLEAN OPTIONAL

-- TRUE indicates PERMANENT monitoring,
-- FALSE indicates CURRENT monitoring

}

CreateProgramInvocation-Response ::= NULL

CS-CreateProgramInvocation-Request ::= INTEGER {

normal (0),
controlling (1),
controlled (2)
}

DeleteProgramInvocation-Request ::= Identifier

-- Program Invocation Name

DeleteProgramInvocation-Response ::= NULL

Start-Request ::= SEQUENCE {

programInvocationName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
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] MMSString 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] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        }
}

Stop-Response ::= NULL

Stop-Error ::= ProgramInvocationState

Resume-Request ::= SEQUENCE {

programInvocationName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
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 {
        modechoice CHOICE {
                continueMode [0] IMPLICIT NULL,
                changeMode [1] StartCount
                }
        }
}

Reset-Request ::= SEQUENCE {

programInvocationName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        }
}

Reset-Response ::= NULL

Reset-Error ::= ProgramInvocationState

Kill-Request ::= SEQUENCE {

programInvocationName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        }
}

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
        },
accessControlList [6] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL

-- Shall not appear in minor version one or two

}

CS-GetProgramInvocationAttributes-Response ::= SEQUENCE {

errorCode [0] IMPLICIT INTEGER,
control [1] CHOICE {
        controlling [0] IMPLICIT SEQUENCE {
                controlledPI [0] IMPLICIT SEQUENCE OF Identifier,
                programLocation [1] MMSString OPTIONAL, runningMode
                [2] CHOICE {
                        freeRunning [0] IMPLICIT NULL,
                        cycleLimited [1] IMPLICIT INTEGER,
                        stepLimited [2] IMPLICIT INTEGER
                        }
                },
        controlled [1] CHOICE {
                controllingPI [0] CHOICE {
                        basic BasicIdentifier,
                        extended ExtendedIdentifier
                        }, -- Reference to Controlling
                none [1] IMPLICIT NULL -- uncontrolled
                },
        normal [2] IMPLICIT NULL
        }
}

Select-Request ::= SEQUENCE {

controlling [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } 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] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
startCount [1] IMPLICIT StartCount DEFAULT cycleCount: 1
}

AlterProgramInvocationAttributes-Response ::= NULL

ReconfigureProgramInvocation-Request ::= SEQUENCE {

oldProgramInvocationName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
newProgramInvocationName [1] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL,
domainsToAdd [2] IMPLICIT SEQUENCE OF Identifier,
domainsToRemove [3] IMPLICIT SEQUENCE OF Identifier
}

ReconfigureProgramInvocation-Response ::= NULL

ControlElement ::= CHOICE {

beginDomainDef [0] SEQUENCE {
        domainName [1] CHOICE {
                basic BasicIdentifier,
                extended ExtendedIdentifier
                },
        capabilities [2] IMPLICIT SEQUENCE OF MMSString,
        sharable [3] IMPLICIT BOOLEAN,
        loadData [4] LoadData OPTIONAL
        },
continueDomainDef [1] SEQUENCE {
        domainName [1] CHOICE {
                basic BasicIdentifier,
                extended ExtendedIdentifier
                },
        loadData [3] LoadData
        },
endDomainDef [2] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
piDefinition [3] IMPLICIT SEQUENCE {
        piName [0] CHOICE {
                basic BasicIdentifier,
                extended ExtendedIdentifier
                },
        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] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
programInvocation [1] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        }
}

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] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },         -- Unit Control Name
continueAfter CHOICE {
        domain [1] CHOICE {
                basic BasicIdentifier,
                extended ExtendedIdentifier
                },
        ulsmID [2] IMPLICIT INTEGER,
        programInvocation [3] CHOICE {
                basic BasicIdentifier,
                extended ExtendedIdentifier
                }
        } OPTIONAL
}

UnitControlUpload-Response ::= SEQUENCE {

controlElements [0] IMPLICIT SEQUENCE OF ControlElement,
nextElement CHOICE {
        domain [1] CHOICE {
                basic BasicIdentifier,
                extended ExtendedIdentifier
                },
        ulsmID [2] IMPLICIT INTEGER,
        programInvocation [3] CHOICE {
                basic BasicIdentifier,
                extended ExtendedIdentifier
                }
        } OPTIONAL
}

StartUnitControl-Request ::= SEQUENCE {

unitControlName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },         -- Unit Control Name
executionArgument CHOICE {
        simpleString [1] IMPLICIT MMSString,
        encodedString EXTERNAL,
        enmbeddedString EMBEDDED PDV
        } OPTIONAL
}

StartUnitControl-Response ::= NULL

StartUnitControl-Error ::= SEQUENCE {

programInvocationName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
programInvocationState [1] IMPLICIT ProgramInvocationState
}

StopUnitControl-Request ::= Identifier -- Unit Control Name

StopUnitControl-Response ::= NULL

StopUnitControl-Error ::= SEQUENCE {

programInvocationName [0] CHOICE {
        bas basic BasicIdentifier,
        extended ExtendedIdentifier
        },
programInvocationState [1] IMPLICIT ProgramInvocationState
}

CreateUnitControl-Request ::= SEQUENCE {

unitControl [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },         -- Unit Control Name
domains [1] IMPLICIT SEQUENCE OF Identifier,
programInvocations [2] IMPLICIT SEQUENCE OF Identifier
}

CreateUnitControl-Response ::= NULL

AddToUnitControl-Request ::= SEQUENCE {

unitControl [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },         -- Unit Control Name
domains [1] IMPLICIT SEQUENCE OF Identifier,
programInvocations [2] IMPLICIT SEQUENCE OF Identifier
}

AddToUnitControl-Response ::= NULL

RemoveFromUnitControl-Request ::= SEQUENCE {

unitControl [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        }        , -- 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] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
fileName [1] IMPLICIT FileName,
thirdParty [2] IMPLICIT ApplicationReference OPTIONAL
}

LoadUnitControlFromFile-Response ::= NULL

LoadUnitControlFromFile-Error ::= CHOICE {

none [0] IMPLICIT NULL,
domain [1] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
programInvocation [2] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        }
}

StoreUnitControlToFile-Request ::= SEQUENCE {

unitControlName [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
fileName [1] IMPLICIT FileName,
thirdParty [2] IMPLICIT ApplicationReference OPTIONAL
}

StoreUnitControlToFile-Response ::= NULL

DeleteUnitControl-Request ::= Identifier -- Unit Control Name

DeleteUnitControl-Response ::= NULL

DeleteUnitControl-Error ::= CHOICE {

domain [0] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        },
programInvocation [1] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        }
}

TypeSpecification ::= CHOICE {

typeName [0] ObjectName,
typeDescription TypeDescription
}

AlternateAccess ::= SEQUENCE OF CHOICE {

unnamed AlternateAccessSelection,
named [5] IMPLICIT SEQUENCE {
        componentName [0] CHOICE {
                basic BasicIdentifier,
                extended ExtendedIdentifier
                },
        access AlternateAccessSelection
        }
}

AlternateAccessSelection ::= CHOICE {

selectAlternateAccess [0] IMPLICIT SEQUENCE {
        accessSelection CHOICE {
                component [0] CHOICE {
                        basic BasicIdentifier,
                        extended ExtendedIdentifier
                        },         -- component
                index [1] IMPLICIT Unsigned32, -- 1 array element
                indexRange [2] IMPLICIT SEQUENCE { -- array elements
                        lowIndex [0] IMPLICIT Unsigned32,
                        numberOfElements [1] IMPLICIT Unsigned32
                        },
                allElements [3] IMPLICIT NULL -- all array elements
                },
        alternateAccess AlternateAccess
        },
selectAccess CHOICE {
        component [1] CHOICE {
                basic BasicIdentifier,
                extended ExtendedIdentifier
                },         -- component
        index [2] IMPLICIT Unsigned32, -- 1 array element
        indexRange [3] IMPLICIT SEQUENCE { -- array elements
                lowIndex [0] IMPLICIT Unsigned32,
                numberOfElements [1] IMPLICIT Unsigned32
                },
        allElements [4] IMPLICIT NULL -- all array elements
        }
}

AccessResult ::= CHOICE {

failure [0] IMPLICIT DataAccessError,
success Data
}

Data ::= CHOICE {

-- context tag 0 is reserved for AccessResult

array [1] IMPLICIT SEQUENCE OF Data,
structure [2] IMPLICIT SEQUENCE OF Data,
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] MMSString
}

FloatingPoint ::= OCTET STRING

DataAccessError ::= INTEGER {

object-invalidated (0), -- OBJECT-INVALIDATED
hardware-fault (1), -- HARDWARE-FAULT
temporarily-unavailable (2), -- TEMPORARILY-UNAVAILABLE
object-access-denied (3), -- OBJECT-ACCESS-DENIED
object-undefined (4), -- OBJECT-UNDEFINED
invalid-address (5), -- INVALID-ADDRESS
type-unsupported (6), -- TYPE-UNSUPPORTED
type-inconsistent (7), -- TYPE-INCONSISTENT
object-attribute-inconsistent (8), -- OBJECT-ATTRIBUTE-INCONSISTENT
object-access-unsupported (9), -- OBJECT-ACCESS-UNSUPPORTED
object-non-existent (10), -- OBJECT-NON-EXISTENT
object-value-invalid (11) -- OBJECT-VALUE-INVALID"
}

VariableAccessSpecification ::= CHOICE {

listOfVariable [0] IMPLICIT SEQUENCE OF SEQUENCE {
        variableSpecificationVariableSpecification,
        alternateAccess [5] IMPLICIT AlternateAccess OPTIONAL
        },
variableListName [1] ObjectName
}

VariableSpecification ::= CHOICE {

name [0] ObjectName,
address [1] Address,
variableDescription [2] IMPLICIT SEQUENCE {
        address Address,
        typeSpecificationTypeSpecification
        },

-- the following element is present only to support the services
-- defined in annex E

scatteredAccessDescription [3] IMPLICIT ScatteredAccessDescription,
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 {

variableAccessSpecificationVariableAccessSpecification,
listOfAccessResult [0] IMPLICIT SEQUENCE OF AccessResult
}

GetVariableAccessAttributes-Request ::= CHOICE {

name [0] ObjectName,
address [1] Address
}

GetVariableAccessAttributes-Response ::= SEQUENCE {

mmsDeletable [0] IMPLICIT BOOLEAN,
address [1] Address OPTIONAL,
typeDescription [2] TypeDescription,
accessControlList [3] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL,

-- Shall not appear in minor version one or two

meaning [4] ObjectName OPTIONAL
}

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), -- SPECIFIC
        aa-specific (1), -- AA-SPECIFIC
        domain (2), -- DOMAIN
        vmd (3) -- VMD
        } DEFAULT specific,
listOfName [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
domainName [2] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } 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 {
        variableSpecificationVariableSpecification,
        alternateAccess [5] IMPLICIT AlternateAccess OPTIONAL
        }
}

DefineNamedVariableList-Response ::= NULL

GetNamedVariableListAttributes-Request ::= ObjectName -- VariableListName

GetNamedVariableListAttributes-Response ::= SEQUENCE {

mmsDeletable [0] IMPLICIT BOOLEAN,
listOfVariable [1] IMPLICIT SEQUENCE OF SEQUENCE {
        variableSpecificationVariableSpecification,
        alternateAccess [5] IMPLICIT AlternateAccess OPTIONAL
        },
accessControlList [2] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL

-- Shall not appear in minor version one or two

}

DeleteNamedVariableList-Request ::= SEQUENCE {

scopeOfDelete [0] IMPLICIT INTEGER {
        specific (0), -- SPECIFIC
        aa-specific (1), -- AA-SPECIFIC
        domain (2), -- DOMAIN
        vmd (3) -- VMD
        } DEFAULT specific,
listOfVariableListName [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
domainName [2] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } 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,
accessControlList [1] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL,

-- Shall not appear in minor version one or two

meaning [4] ObjectName OPTIONAL
}

DeleteNamedType-Request ::= SEQUENCE {

scopeOfDelete [0] IMPLICIT INTEGER {
        specific (0), -- SPECIFIC
        aa-specific (1), -- AA-SPECIFIC
        domain (2), -- DOMAIN
        vmd (3) -- VMD
        } DEFAULT specific,
listOfTypeName [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
domainName [2] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } 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

-- Data Exchange Type Name

GetDataExchangeAttributes-Response ::= SEQUENCE {

inUse [0] IMPLICIT BOOLEAN,
listOfRequestTypeDescriptions [1] IMPLICIT SEQUENCE OF TypeDescription,
listOfResponseTypeDescriptions [2] IMPLICIT SEQUENCE OF TypeDescription,
programInvocation [3] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL,
accessControlList [4] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL

-- Shall not appear in minor version one or two

}

TakeControl-Request ::= SEQUENCE {

semaphoreName [0] CHOICE {
        basic [0] IMPLICIT BasicIdentifier,
        extended ExtendedIdentifier
        },
namedToken CHOICE {
        basic [1] IMPLICIT BasicIdentifier,
        extended [2] ExtendedIdentifier
        } 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,
applicationToPreempt [7] IMPLICIT ApplicationReference OPTIONAL
}

TakeControl-Response ::= CHOICE {

noResult [0] IMPLICIT NULL,
namedToken CHOICE {
        basic [1] IMPLICIT BasicIdentifier,
        extended [2] ExtendedIdentifier
        }
}

 

RelinquishControl-Request ::= SEQUENCE {

semaphoreName [0] ObjectName,
namedToken CHOICE {
        basic [1] IMPLICIT BasicIdentifier,
        extended [2] ExtendedIdentifier
        } OPTIONAL
}

RelinquishControl-Response ::= NULL 

DefineSemaphore-Request ::= SEQUENCE {

semaphoreName [0] CHOICE {
        basic [0] IMPLICIT BasicIdentifier,
        extended ExtendedIdentifier
        },
numberOfTokens [1] IMPLICIT Unsigned16
}

DefineSemaphore-Response ::= NULL 

DeleteSemaphore-Request ::= CHOICE {

basic [0] IMPLICIT BasicIdentifier,
extended ExtendedIdentifier
} -- 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)
        },
numberOfTokens [2] IMPLICIT Unsigned16,
numberOfOwnedTokens [3] IMPLICIT Unsigned16,
numberOfHungTokens [4] IMPLICIT Unsigned16,
accessControlList [5] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL

-- Shall not appear in minor version one or two

}

ReportPoolSemaphoreStatus-Request ::= SEQUENCE {

semaphoreName [0] CHOICE {
        basic [0] IMPLICIT BasicIdentifier,
        extended ExtendedIdentifier
        },
nameToStartAfter CHOICE {
        basic [1] IMPLICIT BasicIdentifier,
        extended [2] ExtendedIdentifier
        } OPTIONAL
}

ReportPoolSemaphoreStatus-Response ::= SEQUENCE {

listOfNamedTokens [0] IMPLICIT SEQUENCE OF CHOICE {
        freeNamedToken CHOICE {
                basic [0] IMPLICIT BasicIdentifier,
                extended [3] ExtendedIdentifier
                },
        ownedNamedToken CHOICE {
                basic [1] IMPLICIT BasicIdentifier,
                extended [4] ExtendedIdentifier
                },
        hungNamedToken CHOICE {
                basic [2] IMPLICIT BasicIdentifier,
                extended [5] ExtendedIdentifier
                }
        },
moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE
}

ReportSemaphoreEntryStatus-Request ::= SEQUENCE {

semaphoreName [0] CHOICE {
        basic [0] IMPLICIT BasicIdentifier,
        extended ExtendedIdentifier
        },
state [1] IMPLICIT INTEGER {
        queued (0),
        owner (1),
        hung (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)
        },
applicationReference [2] ApplicationReference,
namedToken CHOICE {
        basic [3] IMPLICIT BasicIdentifier,
        extended [8] ExtendedIdentifier
        } 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] CHOICE {
        basic [0] IMPLICIT BasicIdentifier,
        extended ExtendedIdentifier
        },
namedToken CHOICE {
        basic [1] IMPLICIT BasicIdentifier,
        extended [7] ExtendedIdentifier
        } OPTIONAL,
priority [2] IMPLICIT Priority DEFAULT normalPriority,
acceptableDelay [3] IMPLICIT Unsigned32 OPTIONAL,
controlTimeOut [4] IMPLICIT Unsigned32OPTIONAL,
abortOnTimeOut [5] IMPLICIT BOOLEAN OPTIONAL,
relinquishIfConnectionLost [6] IMPLICIT BOOLEAN DEFAULT TRUE
}

Input-Request ::= SEQUENCE {

operatorStationName CHOICE {
        basic [0] IMPLICIT BasicIdentifier,
        extended [4] ExtendedIdentifier
        },
echo [1] IMPLICIT BOOLEAN DEFAULT TRUE,
listOfPromptData [2] IMPLICIT SEQUENCE OF MMSString OPTIONAL,
inputTimeOut [3] IMPLICIT Unsigned32 OPTIONAL
}

Input-Response ::= MMSString -- Input String

Output-Request ::= SEQUENCE {

operatorStationName CHOICE {
        basic [0] IMPLICIT BasicIdentifier,
        extended [2] ExtendedIdentifier
        },
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,
                        cs-Response-Detail [79] Response-Detail OPTIONAL

        -- shall not be transmitted if value is the
        -- value of a tagged type derived from NULL

                        },
                failure [1] IMPLICIT SEQUENCE {
                        modifierPosition [0] IMPLICIT Unsigned32 OPTIONAL,
                        serviceError [1] IMPLICIT ServiceError
                        }
                }
        } OPTIONAL
}

CS-EventNotification ::= [0] CHOICE {

string [0] MMSString,
index [1] IMPLICIT INTEGER,
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), -- NOT-ACKED
        acked (1), -- ACKED
        all (2) -- ALL
        } 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), -- NONE
        active (1), -- ACTIVE
        idle (2), -- IDLE
        both (3) -- BOTH
        },
displayEnhancement [4] EN-Additional-Detail OPTIONAL,

-- shall not be transmitted if the value is NULL

timeOfLastTransitionToActive [5] EventTime OPTIONAL,
timeOfLastTransitionToIdle [6] EventTime OPTIONAL
}

EN-Additional-Detail ::= [0] C

HOICE {
        string [0] MMSString,
        index [1] IMPLICIT INTEGER,
        noEnhancement NULL
        }

GetAlarmEnrollmentSummary-Request ::= SEQUENCE {

enrollmentsOnly [0] IMPLICIT BOOLEAN DEFAULT TRUE,
activeAlarmsOnly [1] IMPLICIT BOOLEAN DEFAULT TRUE,
acknowledgementFilter [2] IMPLICIT INTEGER {
        not-acked (0), -- NOT-ACKED
        acked (1), -- ACKED
        all (2) -- ALL
        } 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,
clientApplication [2] ApplicationReference OPTIONAL,
severity [3] IMPLICIT Unsigned8,
currentState [4] IMPLICIT EC-State,
displayEnhancement [5] EN-Additional-Detail OPTIONAL,

-- shall not be transmitted if the value is NULL

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 {

string [0] MMSString,
index [1] IMPLICIT INTEGER,
noEnhancement NULL
}

DeleteEventCondition-Request ::= CHOICE {

specific [0] IMPLICIT SEQUENCE OF ObjectName,
aa-specific [1] IMPLICIT NULL,
domain CHOICE {
        basic [2] IMPLICIT BasicIdentifier,
        extended [4] ExtendedIdentifier
        },
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,
accessControlList CHOICE {
        basic [8] IMPLICIT BasicIdentifier,
        extended [9] ExtendedIdentifier
        } OPTIONAL

-- 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 {
        string [0] MMSString,
        index [1] IMPLICIT INTEGER,
        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,
evaluationInterval [4] IMPLICIT Unsigned32 OPTIONAL

-- At least one of enabled, priority, alarmSummaryReports, or
-- evaluationInterval shall be present.

}

AlterEventConditionMonitoring-Response ::= NULL

CS-AlterEventConditionMonitoring-Request ::= SEQUENCE {

changeDisplay CHOICE {
        string [0] MMSString,
        index [1] IMPLICIT INTEGER,
        noEnhancement [2] NULL
        } OPTIONAL
}

DefineEventAction-Request ::= SEQUENCE {

eventActionName [0] ObjectName,
listOfModifier [1] IMPLICIT SEQUENCE OF Modifier OPTIONAL,
confirmedServiceRequest [2] ConfirmedServiceRequest
}

DefineEventAction-Response ::= NULL

DeleteEventAction-Request ::= CHOICE {

specific [0] IMPLICIT SEQUENCE OF ObjectName,
aa-specific [1] IMPLICIT NULL,
domain CHOICE {
        basic [3] IMPLICIT BasicIdentifier,
        extended [5] ExtendedIdentifier
        },
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,
accessControlList CHOICE {
        basic [3] IMPLICIT BasicIdentifier,
        extended [4] ExtendedIdentifier
        } OPTIONAL

-- 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,
clientApplication [5] ApplicationReference OPTIONAL

}
 

DefineEventEnrollment-Response ::= NULL

DefineEventEnrollment-Error ::= ObjectName

CS-DefineEventEnrollment-Request ::= [0] CHOICE {

string [0] MMSString,
index [1] IMPLICIT INTEGER,
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)
        } DEFAULT client,
eventEnrollmentNames [1] IMPLICIT SEQUENCE OF ObjectName OPTIONAL,
clientApplication [2] ApplicationReference OPTIONAL,
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,
clientApplication [3] ApplicationReference OPTIONAL,
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,
displayEnhancement [9] CHOICE {
        string [0] MMSString,
        index [1] IMPLICIT INTEGER,
        noEnhancement NULL
        },

-- shall not be transmitted if the value is NULL

accessControlList [11] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL

-- shall not appear in minor version one or two

}

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 {
        string [0] MMSString,
        index [1] IMPLICIT INTEGER,
        noEnhancement [2] NULL
        } OPTIONAL
}

EE-State ::= INTEGER {

disabled (0), -- DISABLED
idle (1), -- IDLE
active (2), -- ACTIVE
activeNoAckA (3), -- ACTIVE-NO-ACK-A
idleNoAckI (4), -- IDLE-NO-ACK-I
idleNoAckA (5), -- IDLE-NO-ACK-A
idleAcked (6), -- IDLE-ACKED
activeAcked (7), -- ACTIVE-ACKED
undefined (8) -- UNDEFINED
}

DefineEventConditionList-Request ::= SEQUENCE {

eventConditionListName [0] ObjectName,
listOfEventConditionName [1] IMPLICIT SEQUENCE OF ObjectName,
listOfEventConditionListName [2] IMPLICIT SEQUENCE OF ObjectNameOPTIONAL

-- shall appear if an only if recl has been negotiated.

}

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,
listOfEventConditionListName [2] IMPLICIT SEQUENCE OF ObjectName OPTIONAL

-- shall appear if an only if recl has been negotiated.

}

AddEventConditionListReference-Response ::= NULL

AddEventConditionListReference-Error ::= ObjectName

RemoveEventConditionListReference-Request ::= SEQUENCE {

eventConditionListName [0] ObjectName,
listOfEventConditionName [1] IMPLICIT SEQUENCE OF ObjectName,
listOfEventConditionListName [2] IMPLICIT SEQUENCE OF ObjectNameOPTIONAL

-- shall appear if an only if recl has been negotiated.

}

RemoveEventConditionListReference-Response ::= NULL

RemoveEventConditionListReference-Error ::= CHOICE {

eventCondition [0] ObjectName,
eventConditionList [1] ObjectName
}

GetEventConditionListAttributes-Request ::= ObjectName

GetEventConditionListAttributes-Response ::= SEQUENCE {

listOfEventConditionName [1] IMPLICIT SEQUENCE OF ObjectName,
listOfEventConditionListName [2] IMPLICIT SEQUENCE OF ObjectName OPTIONAL

-- shall appear if an only if recl has been negotiated.

}

ReportEventConditionListStatus-Request ::= SEQUENCE {

eventConditionListName [0] ObjectName, -- Event Condition List Name
continueAfter CHOICE {
        basic [1] IMPLICIT BasicIdentifier,
        extended [2] ExtendedIdentifier
        } 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,
accessControlList CHOICE {
        basic [2] IMPLICIT BasicIdentifier,
        extended [3] ExtendedIdentifier
        } OPTIONAL

-- Shall not appear in minor version one or two

}

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
        }
}

ObtainFile-Request ::= SEQUENCE {

sourceFileServer [0] IMPLICIT ApplicationReference OPTIONAL,

-- TPY

sourceFile [1] IMPLICIT FileName,
destinationFile [2] IMPLICIT FileName
}

ObtainFile-Response ::= NULL

ObtainFile-Error ::= INTEGER {

source-file (0), -- SOURCE-FILE
destination-file (1) -- DESTINATION-FILE
}

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), -- SOURCE-FILE
destination-file (1) -- DESTINATION-FILE
}

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] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL,
variableSpecification [1] VariableSpecification,
alternateAccess [2] IMPLICIT AlternateAccess OPTIONAL
}

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,
accessControlList [2] CHOICE {
        basic BasicIdentifier,
        extended ExtendedIdentifier
        } OPTIONAL

-- Shall not appear in minor version one or two

        }



11.08.2006


The Net is the Automation.
© 2000-2002 NettedAutomation
composed by JohnBlack '01

back - menue - contact - search
news - solutions - standardization - seminars - marketing support
question & answers - discussion forum - glossary - links - about us