removed duplicate files that were mistakenly copied when repository was moved to github

pull/3/head
Stefan Feuerhahn 8 years ago
parent 6254d9ff36
commit 92c56aba0f

@ -1,5 +0,0 @@
#!/bin/sh
rm ../../src/main/java-gen/org/openmuc/josistack/internal/acse/asn1/*
jasn1-compiler -o "../../src/main/java-gen/" -p "org.openmuc.josistack.internal.acse" -f iso-acse-layer.asn

@ -1,272 +0,0 @@
-- Module ACSE_1 (X.227:04/1995)
ASN1 {joint_iso_itu_t association_control(2) modules(0) apdus(0) version1(1)}
-- ACSE_1 refers to ACSE version 1
DEFINITIONS ::=
BEGIN
EXPORTS
acse_as_id, ACSE_apdu, aCSE_id, Application_context_name, AP_title,
AE_qualifier, AE_title, AP_invocation_identifier, AE_invocation_identifier,
Mechanism_name, Authentication_value, ACSE_requirements, ObjectSet;
-- The data types Name and RelativeDistinguishedName are imported from ISO/IEC 9594_2.
-- object identifier assignments
acse_as_id OBJECT IDENTIFIER ::=
{joint-iso-itu-t association-control(2) abstract-syntax(1) apdus(0)
version1(1)}
-- may be used to reference the abstract syntax of the ACSE APDUs
aCSE_id OBJECT IDENTIFIER ::=
{joint-iso-itu-t association-control(2) ase-id(3) acse-ase(1) version(1)}
-- may be used to identify the Association Control ASE.
-- top level CHOICE
ACSE_apdu ::= CHOICE {
aarq AARQ_apdu,
aare AARE_apdu,
rlrq RLRQ_apdu,
rlre RLRE_apdu
}
AARQ_apdu ::= [APPLICATION 0] IMPLICIT SEQUENCE {
protocol_version [0] IMPLICIT BIT STRING OPTIONAL,
application_context_name [1] EXPLICIT OBJECT IDENTIFIER,
called_AP_title [2] AP_title OPTIONAL,
called_AE_qualifier [3] AE_qualifier OPTIONAL,
called_AP_invocation_identifier [4] EXPLICIT AP_invocation_identifier OPTIONAL,
called_AE_invocation_identifier [5] EXPLICIT AE_invocation_identifier OPTIONAL,
calling_AP_title [6] AP_title OPTIONAL,
calling_AE_qualifier [7] AE_qualifier OPTIONAL,
calling_AP_invocation_identifier [8] AP_invocation_identifier OPTIONAL,
calling_AE_invocation_identifier [9] AE_invocation_identifier OPTIONAL,
-- The following field shall not be present if only the Kernel is used.
sender_acse_requirements [10] IMPLICIT ACSE_requirements OPTIONAL,
-- The following field shall only be present if the Authentication functional unit is selected.
mechanism_name [11] IMPLICIT Mechanism_name OPTIONAL,
-- The following field shall only be present if the Authentication functional unit is selected.
calling_authentication_value [12] EXPLICIT Authentication_value OPTIONAL,
application_context_name_list
[13] IMPLICIT Application_context_name_list OPTIONAL,
-- The above field shall only be present if the Application Context Negotiation functional unit is selected
implementation_information [29] IMPLICIT Implementation_data OPTIONAL,
user_information [30] IMPLICIT Association_information OPTIONAL
}
AARE_apdu ::= [APPLICATION 1] IMPLICIT SEQUENCE {
--changed by Stefan Feuerhahn
protocol_version [0] IMPLICIT BIT STRING OPTIONAL,
application_context_name [1] EXPLICIT OBJECT IDENTIFIER,
result [2] EXPLICIT Associate_result,
result_source_diagnostic [3] EXPLICIT Associate_source_diagnostic,
responding_AP_title [4] EXPLICIT AP_title OPTIONAL,
responding_AE_qualifier [5] EXPLICIT AE_qualifier OPTIONAL,
responding_AP_invocation_identifier [6] EXPLICIT AP_invocation_identifier OPTIONAL,
responding_AE_invocation_identifier [7] EXPLICIT AE_invocation_identifier OPTIONAL,
-- The following field shall not be present if only the Kernel is used.
responder_acse_requirements [8] IMPLICIT ACSE_requirements OPTIONAL,
-- The following field shall only be present if the Authentication functional unit is selected.
mechanism_name [9] IMPLICIT Mechanism_name OPTIONAL,
-- This following field shall only be present if the Authentication functional unit is selected.
responding_authentication_value [10] EXPLICIT Authentication_value OPTIONAL,
application_context_name_list
[11] IMPLICIT Application_context_name_list OPTIONAL,
-- The above field shall only be present if the Application Context Negotiation functional unit is selected
implementation_information
[29] IMPLICIT Implementation_data OPTIONAL,
user_information [30] IMPLICIT Association_information OPTIONAL
}
RLRQ_apdu ::= [APPLICATION 2] IMPLICIT SEQUENCE {
reason [0] IMPLICIT Release_request_reason OPTIONAL,
user_information [30] IMPLICIT Association_information OPTIONAL
}
RLRE_apdu ::= [APPLICATION 3] IMPLICIT SEQUENCE {
reason [0] IMPLICIT Release_response_reason OPTIONAL,
user_information [30] IMPLICIT Association_information OPTIONAL
}
-- ABRT_apdu ::= [APPLICATION 4] IMPLICIT SEQUENCE {
-- abort_source [0] IMPLICIT ABRT_source,
-- abort_diagnostic [1] IMPLICIT ABRT_diagnostic OPTIONAL,
-- This field shall not be present if only the Kernel is used.
-- user_information [30] IMPLICIT Association_information OPTIONAL
--}
-- ABRT_diagnostic ::= ENUMERATED {
-- no_reason_given(1), protocol_error(2),
-- authentication_mechanism_name_not_recognized(3),
-- authentication_mechanism_name_required(4), authentication_failure(5),
-- authentication_required(6)
-- }
-- ABRT_source ::= INTEGER {acse_service_user(0), acse_service_provider(1)}
ACSE_requirements ::= BIT STRING {
authentication(0), application_context_negotiation(1)
}
Application_context_name_list ::= SEQUENCE OF Application_context_name
-- Application_context_name ::= CHOICE {
-- application_context_name OBJECT IDENTIFIER
-- }
Application_context_name ::= OBJECT IDENTIFIER
-- Application_entity title productions follow (not in alphabetical order)
AP_title ::= CHOICE {
-- ap_title_form1 AP_title_form1,
ap_title_form2 AP_title_form2
}
AE_qualifier ::= CHOICE {
-- ae_qualifier_form1 AE_qualifier_form1,
ae_qualifier_form2 AE_qualifier_form2
}
-- When both AP_title and AE_qualifier data values are present in an AARQ or AARE APDU, both must
-- have the same form to allow the construction of an AE_title as discussed in CCITT Rec. X.665 |
-- ISO/IEC 9834_6.
-- AP_title_form1 ::=
-- Name
-- The value assigned to AP_title_form1 is The Directory Name of an application_process title.
-- AE_qualifier_form1 ::=
-- RelativeDistinguishedName
-- The value assigned to AE_qualifier_form1 is the relative distinguished name of a particular
-- application_entity of the application_process identified by AP_title_form1.
AP_title_form2 ::= OBJECT IDENTIFIER
AE_qualifier_form2 ::= INTEGER
AE_title ::= CHOICE {
-- ae_title_form1 AE_title_form1,
ae_title_form2 AE_title_form2
}
-- As defined in CCITT Rec. X.650 | ISO 7498_3, an application_entity title is composed of an application-
-- process title and an application_entity qualifier. The ACSE protocol provides for the transfer of an
-- application_entity title value by the transfer of its component values. However, the following data type
-- is provided for International Standards that reference a single syntactic structure for AE titles.
-- AE_title_form1 ::=
-- Name
-- For access to The Directory (ITU_T Rec. X.500_Series | ISO/IEC 9594), an AE title has AE_title_form1.
-- This value can be constructed from AP_title_form1 and AE_qualifier_form1 values contained in an
-- AARQ or AARE APDU. A discussion of forming an AE_title_form1 from AP_title_form1 and AE_qualifier-
-- form1 may be found in CCITT Rec. X.665 | ISO/IEC 9834_6.
AE_title_form2 ::= OBJECT IDENTIFIER
-- A discussion of forming an AE_title_form2 from AP_title_form2 and AE_qualifier_form2 may be
-- found in CCITT Rec. X.665 | ISO/IEC 9834_6.
AE_invocation_identifier ::= INTEGER
AP_invocation_identifier ::= INTEGER
-- End of Application_entity title productions
Associate_result ::= INTEGER {
accepted(0), rejected_permanent(1), rejected_transient(2)}
Associate_source_diagnostic ::= CHOICE {
acse_service_user
[1] EXPLICIT INTEGER {null(0), no_reason_given(1),
application_context_name_not_supported(2),
calling_AP_title_not_recognized(3),
calling_AP_invocation_identifier_not_recognized(4),
calling_AE_qualifier_not_recognized(5),
calling_AE_invocation_identifier_not_recognized(6),
called_AP_title_not_recognized(7),
called_AP_invocation_identifier_not_recognized(8),
called_AE_qualifier_not_recognized(9),
called_AE_invocation_identifier_not_recognized(10),
authentication_mechanism_name_not_recognized(11),
authentication_mechanism_name_required(12),
authentication_failure(13), authentication_required(14)},
acse_service_provider
[2] EXPLICIT INTEGER {null(0), no_reason_given(1), no_common_acse_version(2)}
}
-- Association_information ::= SEQUENCE OF Association_information_item
Association_information ::= SEQUENCE OF Myexternal
Myexternal ::= [UNIVERSAL 8] IMPLICIT SEQUENCE
{
direct_reference OBJECT IDENTIFIER OPTIONAL,
indirect_reference INTEGER OPTIONAL,
encoding CHOICE
{ single_ASN1_type [0] EXPLICIT ANY,
octet_aligned [1] IMPLICIT OCTET STRING,
arbitrary [2] IMPLICIT BIT STRING }
}
Myexternal2 ::= [UNIVERSAL 8] IMPLICIT SEQUENCE
{
direct_reference OBJECT IDENTIFIER OPTIONAL,
indirect_reference INTEGER OPTIONAL,
encoding CHOICE
{ single_ASN1_type [0] EXPLICIT ANY,
octet_aligned [1] IMPLICIT OCTET STRING,
arbitrary [2] IMPLICIT BIT STRING }
}
--Association_information_item ::= [UNIVERSAL 8] IMPLICIT SEQUENCE {
-- direct_reference OBJECT IDENTIFIER OPTIONAL,
-- indirect_reference INTEGER OPTIONAL,
-- encoding CHOICE
-- {
-- single_ASN1_type [0] CHOICE {
-- single_ASN1_type ANY
-- },
-- octet_aligned [1] IMPLICIT OCTET STRING,
-- arbitrary [2] IMPLICIT BIT STRING
-- }
-- }
--is optional:
Authentication_value ::= CHOICE {
charstring [0] IMPLICIT GraphicString,
bitstring [1] IMPLICIT BIT STRING,
external [2] IMPLICIT Myexternal2
-- other
-- [3] IMPLICIT SEQUENCE {other_mechanism_name
-- MECHANISM_NAME.&id({ObjectSet}),
-- other_mechanism_value
-- MECHANISM_NAME.&Type
-- ({ObjectSet}{@.other_mechanism_name})}
}
-- The abstract syntax of (calling/responding) authentication_value is determined by the authentication
-- mechanism used during association establishment. The authentication mechanism is either explicitly
-- denoted by the &id field (of type OBJECT IDENTIFIER) for a mechanism belonging to the class
-- MECHANISM_NAME, or it is known implicitly by
-- prior agreement between the communicating partners. If the "other" component is chosen, then
-- the "mechanism_name" component must be present in accordance with
-- ITU_T Rec. X.680 | ISO/IEC 8824. If the value "mechanism_name" occurs in the AARQ_apdu or the
-- AARE_apdu, then that value must be the same as the value for "other_mechanism_name"
Implementation_data ::= GraphicString
Mechanism_name ::= OBJECT IDENTIFIER
Release_request_reason ::= INTEGER {
normal (0),
urgent (1),
user_defined (30)
}
Release_response_reason ::= INTEGER {
normal (0),
not_finished (1),
user_defined (30)
}
END
-- Generated by Asnp, the ASN.1 pretty_printer of France Telecom R&D

@ -1,5 +0,0 @@
#!/bin/sh
rm ../../src/main/java-gen/org/openmuc/josistack/internal/presentation/asn1/*.java
jasn1-compiler -o ../../src/main/java-gen/ -p org.openmuc.josistack.internal.presentation -f iso-presentation-layer.asn

@ -1,143 +0,0 @@
ASN1 DEFINITIONS ::=
BEGIN
CP_type ::= SET {
mode_selector [0] IMPLICIT Mode_selector,
--x410_mode_parameters [1] IMPLICIT SET {
-- COMPONENTS OF Reliable_Transfer_APDUs.RTORQapdu
--} OPTIONAL,
--- Shall be used for X.410 mode only. Shall be bitwise
--- compatible with CCITT Recommendation X.410_1984.
--- This shall be the User data parameter of the CP PPDU1)
normal_mode_parameters [2] IMPLICIT SEQUENCE {
protocol_version [0] IMPLICIT Protocol_version DEFAULT {version_1},
calling_presentation_selector [1] IMPLICIT Calling_presentation_selector OPTIONAL,
called_presentation_selector [2] IMPLICIT Called_presentation_selector OPTIONAL,
presentation_context_definition_list [4] IMPLICIT Presentation_context_definition_list OPTIONAL,
default_context_name [6] IMPLICIT Default_context_name OPTIONAL,
presentation_requirements [8] IMPLICIT Presentation_requirements OPTIONAL,
user_session_requirements [9] IMPLICIT User_session_requirements OPTIONAL
-- shall not be present if equal to the Revised session
-- requirements parameter -- ,
user_data User_data OPTIONAL
} OPTIONAL
-- Shall be used for normal mode only.
-- Shall be the parameters of the CP PPDU.
}
CPA_PPDU ::= SET {
mode_selector [0] IMPLICIT Mode_selector,
--x410_mode_parameters [1] IMPLICIT SET {
-- COMPONENTS OF Reliable_Transfer_APDUs.RTOACapdu
--} OPTIONAL,
--- Shall be used for X.410 mode only. Shall be bitwise
--- compatible with CCITT Recommendation X.410_1984.
--- This shall be the User data parameter of the CPA PPDU1)
normal_mode_parameters [2] IMPLICIT SEQUENCE {
protocol_version [0] IMPLICIT Protocol_version DEFAULT {version_1},
responding_presentation_selector [3] IMPLICIT Responding_presentation_selector OPTIONAL,
presentation_context_definition_result_list [5] IMPLICIT Presentation_context_definition_result_list OPTIONAL,
presentation_requirements [8] IMPLICIT Presentation_requirements OPTIONAL,
user_session_requirements [9] IMPLICIT User_session_requirements OPTIONAL,
-- shall not be present if equal to the Revised session
-- requirements parameter --
user_data User_data OPTIONAL
} OPTIONAL
-- Shall be used for normal mode only.
}
Responding_presentation_selector ::= Presentation_selector
Presentation_context_definition_result_list ::= Result_list
Result_list ::= SEQUENCE OF SEQUENCE {
result [0] IMPLICIT Result,
transfer_syntax_name [1] IMPLICIT Transfer_syntax_name OPTIONAL,
provider_reason [2] IMPLICIT INTEGER {
reason_not_specified (0),
abstract_syntax_not_supported (1),
proposed_transfer_syntaxes_not_supported (2),
local_limit_on_DCS_exceeded (3)
} OPTIONAL
}
Result ::= INTEGER {
acceptance (0),
user_rejection (1),
provider_rejection (2)
}
Mode_selector ::= SET {
mode_value [0] IMPLICIT INTEGER { x410_1984_mode (0), normal_mode (1) }
}
User_data ::= CHOICE {
simply_encoded_data [APPLICATION 0] IMPLICIT Simply_encoded_data,
fully_encoded_data [APPLICATION 1] IMPLICIT Fully_encoded_data
}
-- Subclause 8.4 defines when each of the two alternatives shall be used.
Simply_encoded_data ::= OCTET STRING
-- See 8.4.1.
Fully_encoded_data ::= SEQUENCE OF PDV_list
-- contains one or more PDV_list values.
-- See 8.4.2.
PDV_list ::= SEQUENCE {
transfer_syntax_name Transfer_syntax_name OPTIONAL,
presentation_context_identifier Presentation_context_identifier,
presentation_data_values CHOICE {
single_ASN1_type [0] ANY,
-- Type corresponding to presentation context identifier
octet_aligned [1] IMPLICIT OCTET STRING,
arbitrary [2] IMPLICIT BIT STRING
}
-- Contains one or more presentation data values from the same
-- presentation context.
-- See 8.4.2.
}
Presentation_context_definition_list ::= Context_list
Context_list ::= SEQUENCE OF SEQUENCE {
presentation_context_identifier Presentation_context_identifier,
abstract_syntax_name Abstract_syntax_name,
transfer_syntax_name_list SEQUENCE OF Transfer_syntax_name
}
Presentation_context_identifier ::= INTEGER
Abstract_syntax_name ::= OBJECT IDENTIFIER
Transfer_syntax_name ::= OBJECT IDENTIFIER
Protocol_version ::= BIT STRING { version_1 (0) }
Calling_presentation_selector ::= Presentation_selector
Called_presentation_selector ::= Presentation_selector
Presentation_selector ::= OCTET STRING
Default_context_name ::= SEQUENCE {
abstract_syntax_name [0] IMPLICIT Abstract_syntax_name,
transfer_syntax_name [1] IMPLICIT Transfer_syntax_name
}
Presentation_requirements ::= BIT STRING { context_management (0), restoration (1) }
User_session_requirements ::= BIT STRING {
half_duplex (0),
duplex (1),
expedited_data (2),
minor_synchronize (3),
major_synchronize (4),
resynchronize (5),
activity_management (6),
negotiated_release (7),
capability_data (8),
exceptions (9),
typed_data (10),
symmetric_synchronize (11),
data_separation (12)
}
END

@ -1,5 +0,0 @@
#!/bin/sh
rm -r ../../src/main/java-gen/*
jasn1-compiler -o "../../src/main/java-gen" -p "org.openmuc.openiec61850.internal.mms" -f mms.asn

@ -1,723 +0,0 @@
--
-- Part of the ASN.1-Specification for MMS
-- tries to include only those parts relevant for IEC 61850
-- source: http://www.nettedautomation.com/standardization/iso/tc184/sc5/wg2/mms_syntax/Version1999/mms_syntax.html
ASN1 { iso standard 9506 part(2) mms-general-module-version(2) } DEFINITIONS ::= BEGIN
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,
initiate-RequestPDU [8] IMPLICIT Initiate-RequestPDU,
initiate-ResponsePDU [9] IMPLICIT Initiate-ResponsePDU,
initiate-ErrorPDU [10] IMPLICIT Initiate-ErrorPDU,
conclude-RequestPDU [11] IMPLICIT Conclude-RequestPDU
}
Confirmed-RequestPDU ::= SEQUENCE {
invokeID Unsigned32,
service ConfirmedServiceRequest
}
ConfirmedServiceRequest ::= CHOICE {
getNameList [1] IMPLICIT GetNameList-Request,
read [4] IMPLICIT Read-Request,
write [5] IMPLICIT Write-Request,
getVariableAccessAttributes [6] GetVariableAccessAttributes-Request,
defineNamedVariableList [11] IMPLICIT DefineNamedVariableList-Request,
getNamedVariableListAttributes [12] GetNamedVariableListAttributes-Request,
deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-Request
}
Unconfirmed-PDU ::= SEQUENCE {
service UnconfirmedService
}
UnconfirmedService ::= CHOICE {
informationReport [0] IMPLICIT InformationReport
}
Confirmed-ResponsePDU ::= SEQUENCE {
invokeID Unsigned32,
service ConfirmedServiceResponse
}
ConfirmedServiceResponse ::= CHOICE {
getNameList [1] IMPLICIT GetNameList-Response,
read [4] IMPLICIT Read-Response,
write [5] IMPLICIT Write-Response,
getVariableAccessAttributes [6] IMPLICIT GetVariableAccessAttributes-Response,
defineNamedVariableList [11] IMPLICIT DefineNamedVariableList-Response,
getNamedVariableListAttributes [12] IMPLICIT GetNamedVariableListAttributes-Response,
deleteNamedVariableList [13] IMPLICIT DeleteNamedVariableList-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,
-- {
-- other (0),
-- vmd-state-conflict (1),
-- vmd-operational-problem (2),
-- domain-transfer-problem (3),
-- state-machine-id-invalid (4)
-- },
application_reference [1] IMPLICIT INTEGER,
-- {
-- other (0),
-- aplication-unreachable (1),
-- connection-lost (2),
-- application-reference-invalid (3),
-- context-unsupported (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)
-- },
resource [3] IMPLICIT INTEGER,
-- {
-- other (0),
-- memory-unavailable (1),
-- processor-resource-unavailable (2),
-- mass-storage-unavailable (3),
-- capability-unavailable (4),
-- capability-unknown (5)
-- },
service [4] IMPLICIT INTEGER,
-- {
-- other (0),
-- primitives-out-of-sequence (1),
-- object-state-conflict (2),
-- pdu-size (3),
-- continuation-invalid (4),
-- object-constraint-conflict (5)
-- },
service_preempt [5] IMPLICIT INTEGER,
-- {
-- other (0),
-- timeout (1),
-- deadlock (2),
-- cancel (3)
-- },
time_resolution [6] IMPLICIT INTEGER,
-- {
-- other (0),
-- unsupportable-time-resolution (1)
-- },
access [7] IMPLICIT INTEGER,
-- {
-- other (0),
-- object-access-unsupported (1),
-- object-non-existent (2),
-- object-access-denied (3),
-- object-invalidated (4)
-- },
initiate [8] IMPLICIT INTEGER,
-- {
-- other (0),
-- version-incompatible (1),
-- max-segment-insufficient (2),
-- max-services-outstanding-calling-insufficient (3),
-- max-services-outstanding-called-insufficient (4),
-- service-CBB-insufficient (5),
-- parameter-CBB-insufficient (6),
-- nesting-level-insufficient (7)
-- },
conclude [9] IMPLICIT INTEGER,
-- {
-- other (0),
-- further-communication-required (1)
-- },
cancel [10] IMPLICIT INTEGER,
-- {
-- other (0),
-- invoke-id-unknown (1),
-- cancel-not-possible (2)
-- },
file [11] IMPLICIT INTEGER,
-- {
-- other (0),
-- filename-ambiguous (1),
-- file-busy (2),
-- filename-syntax_Error (3),
-- content-type-invalid (4),
-- position-invalid (5),
-- file-acces-denied (6),
-- file-non-existent (7),
-- duplicate-filename (8),
-- insufficient-space-in-filestore (9)
-- },
others [12] IMPLICIT INTEGER
},
additionalCode [1] IMPLICIT INTEGER OPTIONAL,
additionalDescription [2] IMPLICIT VisibleString OPTIONAL
-- serviceSpecificInformation [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,
-- fileRename [9] IMPLICIT FileRename_Error
-- this one is neither in this ASN nor in the IMPORTS
-- additionalService [10] AdditionalServiceError
-- } OPTIONAL
}
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))
Identifier ::= VisibleString
Integer8 ::= INTEGER(-128..127)
Integer16 ::= INTEGER(-32768..32767)
Integer32 ::= INTEGER(-2147483648..2147483647)
Unsigned8 ::= INTEGER(0..255)
Unsigned16 ::= INTEGER(0..65535)
Unsigned32 ::= INTEGER(0..4294967295)
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
-- {
-- namedVariable (0),
-- 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
-- }
}
MMSString ::= VisibleString
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
}
}
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
}
}
Initiate-ErrorPDU ::= ServiceError
Conclude-RequestPDU ::= NULL
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),
-- max-recursion-exceeded (8),
-- value-out-of-range (9)
-- },
confirmed-responsePDU [2] IMPLICIT INTEGER,
-- {
-- other (0),
-- unrecognized-service (1),
-- invalid-invokeID (2),
-- invalid-result (3),
-- max-recursion-exceeded (5),
-- value-out-of-range (6)
-- },
confirmed-errorPDU [3] IMPLICIT INTEGER,
-- {
-- other (0),
-- unrecognized-service (1),
-- invalid-invokeID (2),
-- invalid-serviceError (3),
-- value-out-of-range (4)
-- } ,
unconfirmedPDU [4] IMPLICIT INTEGER,
-- {
-- other (0),
-- unrecognized-service (1),
-- invalid-argument (2),
-- max-recursion-exceeded (3),
-- value-out-of-range (4)
-- },
pdu-error [5] IMPLICIT INTEGER,
-- {
-- unknown-pdu-type (0),
-- invalid-pdu (1),
-- illegal-acse-mapping (2)
-- },
cancel-requestPDU [6] IMPLICIT INTEGER,
-- {
-- other (0),
-- invalid-invokeID (1)
-- },
cancel-responsePDU [7] IMPLICIT INTEGER,
-- {
-- other (0),
-- invalid-invokeID (1)
-- },
cancel-errorPDU [8] IMPLICIT INTEGER,
-- {
-- other (0),
-- invalid-invokeID (1),
-- invalid-serviceError (2),
-- value-out-of-range (3)
-- },
conclude-requestPDU [9] IMPLICIT INTEGER,
-- {
-- other (0),
-- invalid-argument (1)
-- },
conclude-responsePDU [10] IMPLICIT INTEGER,
-- {
-- other (0),
-- invalid-result (1)
-- },
conclude-errorPDU [11] IMPLICIT INTEGER
-- {
-- other (0),
-- invalid-serviceError (1),
-- value-out-of-range (2)
-- }
}
}
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
}
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,
bool [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,
utc-time [17] IMPLICIT UtcTime -- added by IEC61850 8.1 G3
}
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)
--}
VariableAccessSpecification ::= CHOICE {
listOfVariable [0] IMPLICIT VariableDefs,
variableListName [1] ObjectName
}
VariableDefs ::= SEQUENCE OF SEQUENCE {
variableSpecification VariableSpecification,
alternateAccess [5] IMPLICIT AlternateAccess OPTIONAL
}
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 {
variableAccessSpecification VariableAccessSpecification,
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,
-- meaning [4] ObjectName OPTIONAL
}
DefineNamedVariableList-Request ::= SEQUENCE {
variableListName ObjectName,
listOfVariable [0] IMPLICIT VariableDefs
}
DefineNamedVariableList-Response ::= NULL
GetNamedVariableListAttributes-Request ::= ObjectName -- VariableListName
GetNamedVariableListAttributes-Response ::= SEQUENCE {
mmsDeletable [0] IMPLICIT BOOLEAN,
listOfVariable [1] IMPLICIT VariableDefs
-- accessControlList [2] CHOICE {
-- basic BasicIdentifier,
-- extended ExtendedIdentifier
-- } OPTIONAL
}
DeleteNamedVariableList-Request ::= SEQUENCE {
scopeOfDelete [0] IMPLICIT INTEGER DEFAULT 0,
-- {
-- specific (0),
-- aa-specific (1),
-- domain (2),
-- vmd (3)
-- } 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
}
TypeDescription ::= CHOICE {
array [1] IMPLICIT SEQUENCE {
packed [0] IMPLICIT BOOLEAN DEFAULT FALSE,
numberOfElements [1] IMPLICIT Unsigned32,
elementType [2] TypeSpecification
},
structure [2] IMPLICIT SEQUENCE {
packed [0] IMPLICIT BOOLEAN DEFAULT FALSE,
components [1] IMPLICIT SEQUENCE OF SEQUENCE {
componentName [0] IMPLICIT Identifier OPTIONAL,
componentType [1] TypeSpecification
}
},
-- Simple Size Class
--boolean [3] IMPLICIT NULL,
bool [3] IMPLICIT NULL,
bit-string [4] IMPLICIT Integer32, -- BIT-STRING
integer [5] IMPLICIT Unsigned8, -- INTEGER
unsigned [6] IMPLICIT Unsigned8, -- UNSIGNED
floating-point [7] IMPLICIT SEQUENCE {
format-width Unsigned8, -- number of bits of
-- floating point value
-- including sign, exponent,
-- and fraction
exponent-width Unsigned8 -- size of exponent in bits
},
-- [8] is reserved
octet-string [9] IMPLICIT Integer32, -- OCTET-STRING
visible-string [10] IMPLICIT Integer32, -- VISIBLE-STRING
-- generalized-time [11] IMPLICIT NULL, ---- GENERALIZED-TIME
binary-time [12] IMPLICIT BOOLEAN, -- BINARY-TIME
-- bcd [13] IMPLICIT Unsigned8, ---- BCD
-- objId [15] IMPLICIT NULL,
--...,
mMSString [16] IMPLICIT Integer32, -- MMS String
utc-time [17] IMPLICIT NULL -- from IEC61850 8.1 G.2
}
UtcTime ::= OCTET STRING (SIZE (8))
ParameterSupportOptions ::= BIT STRING
--{
-- str1 (0), str2 (1), vnam (2), valt (3), vadr (4), vsca (5), tpy (6), vlis (7), real (8), cei (10)
--}
ServiceSupportOptions ::= BIT STRING
-- {
-- status (0),
-- getNameList (1),
-- identify (2),
-- rename (3),
-- read (4),
-- write (5),
-- getVariableAccessAttributes (6),
-- defineNamedVariable (7),
-- defineScatteredAccess (8),
-- getScatteredAccessAttributes (9),
-- deleteVariableAccess (10),
-- defineNamedVariableList (11),
-- getNamedVariableListAttributes (12),
-- deleteNamedVariableList (13),
-- defineNamedType (14),
-- getNamedTypeAttributes (15),
-- deleteNamedType (16),
-- input (17),
-- output (18),
-- takeControl (19),
-- relinquishControl (20),
-- defineSemaphore (21),
-- deleteSemaphore (22),
-- reportSemaphoreStatus (23),
-- reportPoolSemaphoreStatus (24),
-- reportSemaphoreEntryStatus (25),
-- initiateDownloadSequence (26),
-- downloadSegment (27),
-- terminateDownloadSequence (28),
-- initiateUploadSequence (29),
-- uploadSegment (30),
-- terminateUploadSequence (31),
-- requestDomainDownload (32),
-- requestDomainUpload (33),
-- loadDomainContent (34),
-- storeDomainContent (35),
-- deleteDomain (36),
-- getDomainAttributes (37),
-- createProgramInvocation (38),
-- deleteProgramInvocation (39),
-- start (40),
-- stop (41),
-- resume (42),
-- reset (43),
-- kill (44),
-- getProgramInvocationAttributes (45),
-- obtainFile (46),
-- defineEventCondition (47),
-- deleteEventCondition (48),
-- getEventConditionAttributes (49),
-- reportEventConditionStatus (50),
-- alterEventConditionMonitoring (51),
-- triggerEvent (52),
-- defineEventAction (53),
-- deleteEventAction (54),
-- getEventActionAttributes (55),
-- reportEventActionStatus (56),
-- defineEventEnrollment (57),
-- deleteEventEnrollment (58),
-- alterEventEnrollment (59),
-- reportEventEnrollmentStatus (60),
-- getEventEnrollmentAttributes (61),
-- acknowledgeEventNotification (62),
-- getAlarmSummary (63),
-- getAlarmEnrollmentSummary (64),
-- readJournal (65),
-- writeJournal (66),
-- initializeJournal (67),
-- reportJournalStatus (68),
-- createJournal (69),
-- deleteJournal (70),
-- getCapabilityList (71),
-- fileOpen (72),
-- fileRead (73),
-- fileClose (74),
-- fileRename (75),
-- fileDelete (76),
-- fileDirectory (77),
-- unsolicitedStatus (78),
-- informationReport (79),
-- eventNotification (80),
-- attachToEventCondition (81),
-- attachToSemaphore (82),
-- conclude (83),
-- cancel (84)
-- }
END

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,318 +0,0 @@
MMSDEF DEFINITIONS::=
BEGIN
MMSpdu ::= CHOICE {
confirmed_RequestPDU [0] IMPLICIT Confirmed_RequestPDU,
confirmed_ResponsePDU [1] IMPLICIT Confirmed_ResponsePDU,
initiate_RequestPDU [8] IMPLICIT Initiate_RequestPDU,
initiate_ResponsePDU [9] IMPLICIT Initiate_ResponsePDU
}
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
}
}
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
}
}
ParameterSupportOptions ::= BIT STRING {
str1 (0),
str2 (1),
vnam (2),
valt (3),
vadr (4),
-- bit 5 is reserved
vsca (5),
tpy (6),
vlis (7),
-- bit 8 is reserved
-- bit 9 is reserved
cei (10),
aco (11),
sem (12),
csr (13),
csnc (14),
csplc (15),
cspi (16)
}
ServiceSupportOptions ::= BIT STRING {
status (0),
getNameList (1),
identify (2),
rename (3),
read (4),
write (5),
getVariableAccessAttributes (6),
defineNamedVariable (7),
-- bit 8 is reserved for use of a service defined in annex E
defineScatteredAccess (8),
-- bit 9 is reserved for use of a service defined in annex E
getScatteredAccessAttributes (9),
deleteVariableAccess (10),
defineNamedVariableList (11),
getNamedVariableListAttributes (12),
deleteNamedVariableList (13),
defineNamedType (14),
getNamedTypeAttributes (15),
deleteNamedType (16),
input (17),
output (18),
takeControl (19),
relinquishControl (20),
defineSemaphore (21),
deleteSemaphore (22),
reportSemaphoreStatus (23),
reportPoolSemaphoreStatus (24),
reportSemaphoreEntryStatus (25),
initiateDownloadSequence (26),
downloadSegment (27),
terminateDownloadSequence (28),
initiateUploadSequence (29),
uploadSegment (30),
terminateUploadSequence (31),
requestDomainDownload (32),
requestDomainUpload (33),
loadDomainContent (34),
storeDomainContent (35),
deleteDomain (36),
getDomainAttributes (37),
createProgramInvocation (38),
deleteProgramInvocation (39),
start (40),
stop (41),
resume (42),
reset (43),
kill (44),
getProgramInvocationAttributes (45),
obtainFile (46),
defineEventCondition (47),
deleteEventCondition (48),
getEventConditionAttributes (49),
reportEventConditionStatus (50),
alterEventConditionMonitoring (51),
triggerEvent (52),
defineEventAction (53),
deleteEventAction (54),
getEventActionAttributes (55),
reportEventActionStatus (56),
defineEventEnrollment (57),
deleteEventEnrollment (58),
alterEventEnrollment (59),
reportEventEnrollmentStatus (60),
getEventEnrollmentAttributes (61),
acknowledgeEventNotification (62),
getAlarmSummary (63),
getAlarmEnrollmentSummary (64),
readJournal (65),
writeJournal (66),
initializeJournal (67),
reportJournalStatus (68),
createJournal (69),
deleteJournal (70),
getCapabilityList (71),
-- bit 72 is reserved for use of a service defined in annex D
fileOpen (72),
-- bit 73 is reserved for use of a service defined in annex D
fileRead (73),
-- bit 74 is reserved for use of a service defined in annex D
fileClose (74),
-- bit 75 is reserved for use of a service defined in annex D
fileRename (75),
-- bit 76 is reserved for use of a service defined in annex D
fileDelete (76),
-- bit 77 is reserved for use of a service defined in annex D
fileDirectory (77),
unsolicitedStatus (78),
informationReport (79),
eventNotification (80),
attachToEventCondition (81),
attachToSemaphore (82),
conclude (83),
cancel (84),
getDataExchangeAttributes (85),
-- Shall not appear in minor version one
exchangeData (86),
-- Shall not appear in minor version one
defineAccessControlList (87),
-- Shall not appear in minor version one or two
getAccessControlListAttributes (88),
-- Shall not appear in minor version one or two
reportAccessControlledObjects (89),
-- Shall not appear in minor version one or two
deleteAccessControlList (90),
-- Shall not appear in minor version one or two
alterAccessControl (91),
-- Shall not appear in minor version one or two
reconfigureProgramInvocation (92)
}
Confirmed_RequestPDU ::= SEQUENCE {
invokeID Unsigned32,
service ConfirmedServiceRequest
}
Confirmed_ResponsePDU ::= SEQUENCE {
invokeID Unsigned32,
service ConfirmedServiceResponse
}
GetNameList_Response ::= SEQUENCE {
listOfIdentifier [0] IMPLICIT SEQUENCE OF Identifier,
moreFollows [1] IMPLICIT BOOLEAN DEFAULT TRUE
}
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
Unsigned16 ::= INTEGER(0..32767) -- range 0 <= i <= 32767
Unsigned32 ::= INTEGER(0..2147483647) -- range 0 <= i <= 2**31 - 1
ConfirmedServiceRequest ::= CHOICE {
getNameList [1] IMPLICIT GetNameList_Request,
getVariableAccessAttributes [6] GetVariableAccessAttributes_Request
}
GetVariableAccessAttributes_Request ::= CHOICE
{
name [0] ObjectName,
address [1] Address
}
ObjectName ::= CHOICE
{
vmd_specific [0] IMPLICIT Identifier,
domain_specific [1] IMPLICIT SEQUENCE
{
domainId Identifier,
itemId Identifier
},
aa_specific [2] IMPLICIT Identifier
}
Address ::= CHOICE
{
numericAddress [0] IMPLICIT Unsigned32,
symbolicAddress [1] IMPLICIT VisibleString,
unconstrainedAddress [2] IMPLICIT OCTET STRING
}
ConfirmedServiceResponse ::= CHOICE {
getNameList [1] IMPLICIT GetNameList_Response,
getVariableAccessAttributes [6] IMPLICIT GetVariableAccessAttributes_Response
}
GetVariableAccessAttributes_Response ::= SEQUENCE
{
mmsDeletable [0] IMPLICIT BOOLEAN,
address [1] Address OPTIONAL,
typeSpecification [2] TypeSpecification
}
TypeSpecification ::= CHOICE
{
typeName [0] ObjectName,
array [1] IMPLICIT SEQUENCE
{
packed [0] IMPLICIT BOOLEAN DEFAULT FALSE,
numberOfElements [1] IMPLICIT Unsigned32,
elementType [2] TypeSpecification
},
structure [2] IMPLICIT SEQUENCE
{
packed [0] IMPLICIT BOOLEAN DEFAULT FALSE,
components [1] IMPLICIT SEQUENCE OF StructComponent
},
-- Simple Type -------- Size ---------
tboolean [3] IMPLICIT NULL,
bit_string [4] IMPLICIT Integer32,
integer [5] IMPLICIT Unsigned8,
unsigned [6] IMPLICIT Unsigned8,
floating_point [7] IMPLICIT SEQUENCE {
format_width Unsigned8, -- number of bits of
-- floating point value
-- including sign, exponent,
-- and fraction
exponent_width Unsigned8 -- size of exponent in bits
},
octet_string [9] IMPLICIT Integer32,
visible_string [10] IMPLICIT Integer32,
generalized_time [11] IMPLICIT NULL,
binary_time [12] IMPLICIT BOOLEAN,
bcd [13] IMPLICIT Unsigned8,
objId [15] IMPLICIT NULL,
mMSString [16] Integer32,
-- added by stefan
timestamp [17] IMPLICIT NULL
}
StructComponent ::= SEQUENCE
{
componentName [0] IMPLICIT Identifier OPTIONAL,
componentType [1] TypeSpecification
}
GetNameList_Request ::= SEQUENCE {
objectClass [0] ObjectClass,
objectScope [1] CHOICE {
vmdSpecific [0] IMPLICIT NULL,
domainSpecific [1] IMPLICIT Identifier
},
continueAfter [2] IMPLICIT Identifier OPTIONAL
}
Identifier ::= VisibleString
ObjectClass ::= CHOICE {
basicObjectClass [0] IMPLICIT INTEGER {
namedVariable (0),
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
}
}
END

File diff suppressed because it is too large Load Diff

@ -1,297 +0,0 @@
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "net.saliman:gradle-cobertura-plugin:2.2.8"
classpath group: "org.asciidoctor", name: "asciidoctorj-pdf", version: "1.5.0-alpha.11"
classpath "biz.aQute.bnd:biz.aQute.bnd.gradle:3.0.0"
}
}
plugins {
id "org.sonarqube" version "1.0"
id "org.asciidoctor.convert" version "1.5.3"
}
apply plugin: "org.asciidoctor.convert"
apply from: "configuration.gradle"
asciidoctor {
backends = ["pdf", "html5"]
attributes "stylesheet": "openmuc-asciidoc.css",
"toc2": "left",
"sampleSrc": file("src/sample/java"),
"source-highlighter" : "coderay",
"pdf-stylesdir": "./",
"pdf-style": "pdf"
resources {
from("$sourceDir") {
include "images/**"
}
}
}
configure(allprojects) {
version = cfgVersion
}
configure(javaProjects) {
apply plugin: "java"
apply plugin: "eclipse"
apply plugin: "osgi"
apply plugin: "maven"
apply plugin: "signing"
apply plugin: "net.saliman.cobertura"
apply plugin: "biz.aQute.bnd.builder"
uploadArchives.enabled = false
group = cfgGroup
if (!project.properties.containsKey("cfgJavaVersion")) {
project.ext {
cfgJavaVersion = "1.7"
}
}
sourceCompatibility = cfgJavaVersion
targetCompatibility = cfgJavaVersion
repositories {
mavenCentral()
mavenLocal()
}
sourceSets {
sample
itest {
compileClasspath += sourceSets.main.runtimeClasspath
}
}
dependencies {
testCompile group: "junit", name: "junit", version: "4.12"
itestCompile group: "junit", name: "junit", version: "4.12"
}
jar {
manifest {
version = project.version.replace("-",".");
}
}
cobertura {
dependencies {
testCompile "org.slf4j:slf4j-simple:1.6.1"
}
coverageFormats = ["html", "xml"]
coverageIgnoreTrivial = true
coverageIgnores = ["org.slf4j.Logger.*"]
coverageReportDir = new File("$buildDir/reports/cobertura")
coverageTestTasks {
project.tasks.withType(Test).matching {it.name == "test"}
}
}
sonarqube {
properties {
property "sonar.exclusions", "src/main/java-gen/**/*,**/app/**/*"
property "sonar.java.coveragePlugin", "cobertura"
property "sonar.cobertura.reportPath", "build/reports/cobertura/coverage.xml"
}
}
task jarAll(type: Copy) {
dependsOn(configurations.default.getAllArtifacts().getBuildDependencies())
//only the jar file created:
from configurations.default.getAllArtifacts().getFiles()
if (cfgCopyDependencies) {
if (cfgCopyToRoot) {
into rootDir.getPath() + "/build/libs-all"
}
else {
into "build/libs-all"
}
//includes all the dependencies:
from configurations.default
}
else {
if (cfgCopyToRoot) {
into rootDir.getPath() + "/build/libs-all"
}
else {
into "build/libs-all"
}
}
}
build.dependsOn {asciidoctor}
build.dependsOn {jarAll}
eclipse.pathVariables([GRADLE_USER_HOME:file(gradle.gradleUserHomeDir)])
tasks.eclipse.dependsOn(cleanEclipse)
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = "sources"
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc) {
classifier = "javadoc"
from javadoc.destinationDir
}
artifacts {
archives sourcesJar
archives javadocJar
}
javadoc {
exclude "**/internal/**"
exclude "**/java-gen/**"
exclude "**/app/**"
}
}
configure(repositoryProjects) {
uploadArchives.enabled = true
if (cfgSignPom) {
signing {
if ( project.hasProperty("signing.keyId") ) {
sign configurations.archives
}
}
}
uploadArchives {
repositories {
mavenDeployer {
if (cfgSignPom) {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
}
repository(url: cfgRepository) {
authentication(userName: cfgRepositoryUser, password: cfgRepositoryPass)
if (cfgRepository != null && System.getProperty("https.proxyHost") != null && ((System.getProperty("https.nonProxyHosts") == null) || !cfgRepository.contains(System.getProperty("https.nonProxyHosts")))) {
proxy(host: System.getProperty("https.proxyHost"), port: Integer.parseInt(System.getProperty("https.proxyPort")), type: "https")
}
}
snapshotRepository(url: cfgSnapshotRepository) {
authentication(userName: cfgRepositoryUser, password: cfgRepositoryPass)
if (cfgSnapshotRepository != null && System.getProperty("https.proxyHost") != null && ((System.getProperty("https.nonProxyHosts") == null) || !cfgSnapshotRepository.contains(System.getProperty("https.nonProxyHosts")))) {
proxy(host: System.getProperty("https.proxyHost"), port: Integer.parseInt(System.getProperty("https.proxyPort")), type: "https")
}
}
pom.project {
//additional pom information can be found in subproject build.gradle files
packaging "jar"
url "http://www.openmuc.org/"
scm {
url "none"
connection "none"
}
developers {
developer {
id "openmuc"
name "OpenMUC Team"
}
}
}
}
}
}
}
task javadocAll(type: Javadoc) {
source docProjects.collect {
project -> project.sourceSets.main.allJava
}
exclude "**/internal/**"
exclude "**/java-gen/**"
exclude "**/app/**"
destinationDir = new File(buildDir, "docs/javadoc-all")
classpath = files(distributionProjects.collect { project ->
project.sourceSets.main.compileClasspath })
classpath += files(distributionProjects.collect { project ->
project.sourceSets.main.output })
}
task writeSettings {
doLast {
Writer out = new OutputStreamWriter(new FileOutputStream("build/settings.gradle"));
out.write("include ");
boolean first = true;
for (Project myproject: distributionProjects) {
if (!myproject.getProjectDir().equals(getProjectDir())) {
if (first == true) {
first = false;
}
else {
out.write ", ";
}
out.write '"' + myproject.name + '"'
}
}
out .write "\n\n";
for (Project myproject: distributionProjects) {
if (!myproject.getProjectDir().equals(getProjectDir())) {
println myproject.name
out.write 'project(":' + myproject.name + '").projectDir = file("' + myproject.getProjectDir().toString().substring((int)(getProjectDir().toString().size() + 1)) + '")\n';
}
}
out.close();
}
}
task buildDistProjects {
dependsOn(distributionProjects.build)
}
tasks.withType(Tar) {
dependsOn(writeSettings)
dependsOn(distributionProjects.build)
dependsOn(javadocAll)
dependsOn(asciidoctor)
compression = Compression.GZIP
destinationDir = file("build/distributions/")
}
task (tar, type: Tar) {
archiveName = project.name + "-" + project.version + ".tgz"
}
task (tarFull, type: Tar) {
dependsOn(tar)
archiveName = project.name + "-" + project.version + "_full.tgz"
}

@ -1,125 +0,0 @@
project.ext {
cfgVersion = "1.4.1-SNAPSHOT"
cfgGroup = "org.openmuc"
cfgCopyDependencies = true
cfgCopyToRoot = false
cfgSignPom = true
cfgRepository = project.properties.sonatypeRepository
cfgSnapshotRepository = project.properties.sonatypeSnapshotRepository
cfgRepositoryUser = project.properties.sonatypeUser
cfgRepositoryPass = project.properties.sonatypePass
javaProjects = allprojects
distributionProjects = javaProjects
docProjects = javaProjects
repositoryProjects = javaProjects
}
tasks.withType(Tar) {
into(project.name) {
from("./") {
include "build.gradle"
include "configuration.gradle"
include "license/**"
include "doc/CHANGELOG.txt"
include "run-scripts/**"
include "gradle/wrapper/**"
include "gradlew"
include "gradlew.bat"
include "build/libs-all/**"
include "src/**"
include "asn1/**"
}
if (name.equals("tar") ){
exclude "**/dependencies/**/src"
}
}
into(project.name + "/doc/user-guide/") {
from("./build/asciidoc/html5/") {
include "**"
}
from("./build/asciidoc/pdf/") {
include "*.pdf"
}
}
into(project.name + "/doc/") {
from("./build/docs/") {
include "javadoc/**"
}
}
}
//------------------project specific configurations--------------------
apply plugin: "java"
apply plugin: "eclipse"
apply plugin: "osgi"
apply plugin: "maven"
apply plugin: "signing"
def projectName = 'OpenIEC61850'
dependencies {
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
compile group: 'org.openmuc', name: 'jasn1', version: '1.8.0'
compile group: 'ch.qos.logback', name: 'logback-classic', version: '1.2.3'
compile group: 'com.toedter', name: 'jcalendar', version: '1.4'
}
jar {
manifest {
name = projectName
instruction 'Export-Package', '!*.internal.*,*'
instruction 'Import-Package', 'org.openmuc.jasn1.*,javax.net,*;resolution:=optional'
}
}
sourceSets {
main {
java.srcDirs = ['src/main/java', 'src/main/java-gen']
}
}
uploadArchives {
repositories {
mavenDeployer {
pom.project {
name projectName
packaging 'jar'
description 'OpenIEC61850 is a library implementing the IEC 61850 MMS communication standard (client and server).'
url 'http://www.openmuc.org/'
licenses {
license {
name 'Apache License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0'
distribution 'repo'
}
}
}
}
}
}

@ -1,242 +0,0 @@
v1.4.0 30-May-2017
------------------
- extended toString() method of all model node classes to print its
complete submodel tree.
- merged all projects openiec61850, jositransport, josistack,
openiec61850-clientgui, and openiec61850-sample into a single
project "openiec61850".
- removed all slf4j logging for client part. Thus if library is only
used on client side slf4j is no longer needed.
- replaced sample client and server by console applications
- fixed setting functional constraint correctly for all BRCB
elements. Thanks to Stefan Goldmann.
- fixed client side processing of reports when inclusion bit string is
not padded with zeros, thanks to Thomas Schönle from Bachmann
- fixed ServerSAP.stop() to close timer threads correctly
- made several imports in OSGi MANIFEST file optional because they are
not necessarily required
- library now depends on jASN1 1.8.0
v1.3.3 09-Mar-2017
------------------
- fixes bug introduced in 1.3.2: report control block instance names
should start at 01 instead of 00
- library now depends on jASN1 1.7.1
v1.3.2 01-Mar-2017
------------------
- fixes object reference of child attributes of array elements: old:
LD/LN.DO.Array(1)child, new LD/LN.DO.Array(1).child
- fixes setting of RptEna DA in server to true when reports are enabled.
- fixes reading report control blocks with "max" attribute greater 1
from SCL file
- added check whether received BitString has correct size before setting it
in model
v1.3.1 24-Feb-2017
------------------
- fixed TapCommand data attribute default value
- types based on BdaBitString now check in setValue(byte[] value)
whether passed byte array has correct length
v1.3.0 17-Jan-2017
------------------
- fixed bug that urcb reservation was not canceled after connection
was closed
- fixed support for reserving buffered report control blocks on the
client side thanks to Bo Orsted Andresen
- fixed support for receiving buffered and unbuffered reports when the
data set reference is not part of the report thanks to Bo Orsted
Andresen
- fixed bug in parsing scl file, in some cases predefined values were
not set, thanks to Wu Yongming
- added support for parsing ObjRef in SCL file
- added support for multiple report control block instances by
specifying RptEnabled max attribute in SCL file
v1.2.0 20-Mar-2016
------------------
- changed license from LGPL to Apache 2.0
- added methods to ServerModel class to retrieve BRCBs on the client
side, thanks to Thomas Saabye from EURISCO
- added support for parsing "Val" elements inside "DA" elements of SCL
file
- several minor bug fixes
v1.1.1 11-Dec-2014
------------------
- set default max TPDU size to 1024
- fix: server stops sending reports when client closed association
- fix in sample model to enable general interrogation
v1.1.0 17-Oct-2014
------------------
- fixed ServerSap.stop()
- added possibility change more settings in ClientSap
- setDataSetValues will now only call a single call back function of a
server application. The syntax of the call back function had to be
changed for that.
- fixed doclint errors and warnings. doclint is used by Java8
v1.0 31-Jul-2014
----------------
- added support for reporting on server side.
- minor bug fixes
- improvements to logging messages
- added maxtpdu size to all Transport Layer Connection Requests
(thanks to Michael Volz)
- client can now receive reports via callback method
- improved documentation
- fixed build file for newest gradle
- improved documentation
v0.17.1 27-Jan-2014
-------------------
- extracted jOSIStack lib from openiec61850 lib so it can be used
separately (e.g. for the TASE.2 protocol)
- fixed bugs in client Report functionality
- readded ClientReportingSample application
- fixed copying of arrays
- support for decoding authentication value, though the authentication
value is NOT being checked at the moment
- added full server side support for nonpersistent DataSets
- fixed bug in runSampleServer.bat script
- jars are now uploaded to the central maven repository
v0.16.0 03-Sep-2013
-------------------
- renamed many functions and classes
- added Client GUI project to easily browse the device model of an IEC
61850 IED.
- openiec61850-client, -server, -common and jmms where combined into a
single openiec61850 library. The split was of no real use and caused
split package problems in OSGi environments.
- client ACSI functions now throw two types of exceptions: IOException
(fatal exception, client needs to reconnect to server) and
ServiceError for Errors that did not affect the active
assocition/connection.
- The way the server library works was completely changed: DataSources
no longer exist and there is no need for property files anymore. The
readValue() callback method in the DataSource is no longer needed
because GetDataValues requests are handled by the server library
without consulting the server application. Instead the server
application now has to fill the internal model of the server library
with up to date values. This change was necessary in order to be
able to efficiently implement reporting and controling services in
the future.
- Basic control services are now part of the library and no longer
have to be handled by the server application.
- Several bug fixes in the SCL-parser
- fix so that FunctionalConstraints such as GS that are not supported
by openIEC61850 yet do not cause a null pointer exception when they
are part of a DataSet
v0.14.4 30-Oct-2012
-------------------
- fixed another bug when decoding Float64
- getDataDefinition of all kinds of DataObjects and DataAttributes now
possible
- modified toString() function of most DataAttributes to print more
valuable information
v0.14.3 18-Sep-2012
-------------------
- fixed decoding of Float32 and Float64
- fixed getChildren(fc) Function in LogicalNode
v0.14.2 23-Aug-2012
-------------------
- major refactoring to make code more efficient and easier to
maintain. Many classes have been renamed and/or relocated.
- the ability to use different SCSM was completely removed because
only one mapping existed so far: the MMS mapping. No other Mapping
seems to have a chance against MMS simply because MMS is already in
use and works.
- note that the syntax of the properties file for the StandaloneServer
changed a little, see the sampeServer for details
v0.12.0 31-Jul-2012
-------------------
- changed from LGPLv3 to LGPLv2.1
- replaced OCTET_STRING64, OCTET_STRING8 and so on with a general
OCTET_STRING class
- the same was done for UNICODE_STRING and VISIBLE_STRING
- client no longer hangs when receiving ApplError Reports
v0.11.0 02-Jul-2012
-------------------
- new jASN1 version that can decode empty Object Identifiers
- added mms authentication capability
- fixed multi thread issues in TSAPConnection of MMS mapping
- added FLOAT64 from IEC61400-2
- added SampleReportClient to demonstrate how to use reporting with the client
- some improvements to client receiver thread
- some other small bug fixes
v0.10.0 14-Mai-2012
-------------------
- restructuring: code moved to src folder
- new jASN1 version which fixes bug in decoding empty bitstrings
- receving "Check" data does not cause errors anymore
- ASN.1 buffers are automatically resized in the client
v0.9.9 29-Mar-2012
------------------
- added DataSet Services for client and server
- added getReport methods and processReport for the client -> they
will get a report from the queue and return a report object with the
updated data
- fixed getDataValues for array structures
- disabled sending SpecificationWithResult in read request because
some clients cannot cope with it
- fixed bug in RFC 1006 part
- added receiver thread in client so that reports can be received at any time
- added VisibleString65 to be compatible with some version1.0 servers
- avoid srcRef == 0 because some servers cannot cope with it
v0.9.8 22-Feb-2012
------------------
- fixed path in runSampleServer.sh and runSampleClient.sh
0.9.7 21-Feb-2012
-----------------
- small bug fix in T-Sel encoding/decoding in TConnection.java -
thanks to Johannes Schmidt from University of Leipzig
v0.9.6 20-Feb-2012
------------------
- when importing Eclipse projects: GRADLE_HOME was replaced by GRADLE_USER_HOME
- removed duplicate entries from tar distribution file
- Remote TSAPs can now be addressed using a T-Selector. The client can
set the T-Selector like this:
MmsScsmClientSAP clientSAP = new MmsScsmClientSAP();
clientSAP.acseSAP.tSAP.tSelRemote = new byte[] { 0, 1 };
v0.9.5 06-Feb-2012
------------------
- first version

Binary file not shown.

@ -1,6 +0,0 @@
#Tue Apr 25 13:05:33 CEST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-3.5-bin.zip

172
src/gradlew vendored

@ -1,172 +0,0 @@
#!/usr/bin/env sh
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
NONSTOP* )
nonstop=true
;;
esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Escape application args
save ( ) {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
cd "$(dirname "$0")"
fi
exec "$JAVACMD" "$@"

84
src/gradlew.bat vendored

@ -1,84 +0,0 @@
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega

@ -1,16 +0,0 @@
/*
* Copyright 2011-17 Fraunhofer ISE, energy & meteo Systems GmbH and other contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/

@ -1,202 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

@ -1,20 +0,0 @@
#!/bin/bash
JARS_LOCATION="../../build/libs-all"
MAIN_CLASS="org.openmuc.openiec61850.app.ConsoleClient"
SYSPROPS=""
PARAMS=""
SCRIPT_HOME=`dirname $0`
CLASSPATH=$(JARS=("$SCRIPT_HOME"/"$JARS_LOCATION"/*.jar); IFS=:; echo "${JARS[*]}")
for i in $@; do
if [[ $i == -D* ]]; then
SYSPROPS="$SYSPROPS $i";
else
PARAMS="$PARAMS $i";
fi
done
java $SYSPROPS -cp $CLASSPATH $MAIN_CLASS $PARAMS

@ -1,6 +0,0 @@
::BATCH file for windows
set BATDIR=%~dp0
set LIBDIR=%BATDIR%..\..\build\libs-all
java -Djava.ext.dirs=%LIBDIR% org.openmuc.openiec61850.app.ConsoleClient %*

@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>

@ -1,37 +0,0 @@
#!/bin/bash
JARS_LOCATION="../../build/libs-all"
MAIN_CLASS="org.openmuc.openiec61850.app.ConsoleServer"
SYSPROPS="-Dlogback.configurationFile=logback.xml"
# from gradle start script:
# Attempt to set SCRIPT_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
SCRIPT_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
CLASSPATH=$(JARS=("$SCRIPT_HOME"/"$JARS_LOCATION"/*.jar); IFS=:; echo "${JARS[*]}")
for i in $@; do
if [[ $i == -D* ]]; then
SYSPROPS="$SYSPROPS $i";
else
PARAMS="$PARAMS $i";
fi
done
java $SYSPROPS -cp $CLASSPATH $MAIN_CLASS $PARAMS

@ -1,6 +0,0 @@
::BATCH file to windows
set BATDIR=%~dp0
set LIBDIR=%BATDIR%..\..\build\libs-all
java -Dlogback.configurationFile=logback.xml -Djava.ext.dirs=%LIBDIR% org.openmuc.openiec61850.app.ConsoleServer %*

@ -1,293 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--This file is generated using Kalkitech SCL Manager IEC61850 Configuration Tool (www.kalkitech.com)-->
<SCL xmlns="http://www.iec.ch/61850/2003/SCL">
<Header id="" version="4.0.2" revision="" toolID="Kalkitech SCL Manager" nameStructure="IEDName" />
<Communication>
<SubNetwork name="subnetwork1" type="8-MMS">
<Text>Station bus</Text>
<BitRate unit="b/s">10</BitRate>
<ConnectedAP iedName="ied1" apName="accessPoint1">
<Address>
<P type="IP">10.0.0.3</P>
<P type="IP-SUBNET">255.255.255.0</P>
<P type="IP-GATEWAY">10.0.0.101</P>
<P type="OSI-TSEL">0001</P>
<P type="OSI-PSEL">00000001</P>
<P type="OSI-SSEL">0001</P>
</Address>
</ConnectedAP>
</SubNetwork>
</Communication>
<IED name="ied1">
<Services>
<DynAssociation />
<GetDirectory />
<GetDataObjectDefinition />
<GetDataSetValue />
<DataSetDirectory />
<ReadWrite />
<GetCBValues />
<ConfLNs fixPrefix="true" fixLnInst="true" />
<GOOSE max="5" />
<GSSE max="5" />
<FileHandling />
<GSEDir />
<TimerActivatedControl />
</Services>
<AccessPoint name="accessPoint1">
<Server>
<Authentication />
<LDevice inst="lDevice1">
<LN0 lnClass="LLN0" lnType="LLN01" inst="">
<DataSet name="dataset1" desc="">
<FCDA ldInst="lDevice1" lnClass="MMXU" fc="MX" lnInst="1" doName="TotW" />
<FCDA ldInst="lDevice1" lnClass="MMXU" fc="MX" lnInst="1" doName="W.phsA" daName="cVal.mag.f" />
</DataSet>
<ReportControl name="urcb1" confRev="0" datSet="dataset1" rptID="urcb1" intgPd="5000" bufTime="0">
<TrgOps dchg="true" qchg="true" dupd="true" period="true" gi="true" />
<OptFields dataSet="true" bufOvfl="false" configRef="true" dataRef="false" entryID="true" reasonCode="true" timeStamp="true" seqNum="true"/>
<RptEnabled max="3"/>
</ReportControl>
<ReportControl name="urcb2" confRev="0" datSet="dataset1" intgPd="0" bufTime="0">
<TrgOps />
<OptFields />
</ReportControl>
<DOI name="Mod">
<DAI name="ctlModel">
<Val>status-only</Val>
</DAI>
</DOI>
</LN0>
<LN lnClass="LPHD" lnType="LPHD1" inst="1" prefix="" />
<LN lnClass="MMXU" lnType="MMXU1" inst="1" prefix="">
<DOI name="Mod">
<DAI name="ctlModel">
<Val>status-only</Val>
</DAI>
</DOI>
</LN>
<LN lnClass="CSWI" lnType="CSWI1" inst="1" prefix="">
<DOI name="Mod">
<DAI name="ctlModel">
<Val>status-only</Val>
</DAI>
</DOI>
<DOI name="Pos">
<DAI name="ctlModel">
<Val>direct-with-normal-security</Val>
</DAI>
</DOI>
<DOI name="PosA">
<DAI name="sboTimeout">
<Val>1000</Val>
</DAI>
<DAI name="ctlModel">
<Val>sbo-with-normal-security</Val>
</DAI>
</DOI>
<DOI name="PosB">
<DAI name="ctlModel">
<Val>direct-with-enhanced-security</Val>
</DAI>
</DOI>
<DOI name="PosC">
<DAI name="ctlModel">
<Val>sbo-with-enhanced-security</Val>
</DAI>
</DOI>
</LN>
<LN lnClass="DSCH" lnType="DSCH1" inst="1" prefix="">
<DOI name="Mod">
<DAI name="ctlModel">
<Val>status-only</Val>
</DAI>
</DOI>
</LN>
</LDevice>
</Server>
</AccessPoint>
</IED>
<DataTypeTemplates>
<LNodeType id="LLN01" lnClass="LLN0">
<DO name="Mod" type="INC_1_Mod" />
<DO name="Beh" type="INS_1_Beh" />
<DO name="Health" type="INS_1_Beh" />
<DO name="NamPlt" type="LPL_1_NamPlt" />
</LNodeType>
<LNodeType id="LPHD1" lnClass="LPHD">
<DO name="PhyNam" type="DPL_1_PhyNam" />
<DO name="PhyHealth" type="INS_1_Beh" />
<DO name="Proxy" type="SPS_1_Proxy" />
</LNodeType>
<LNodeType id="MMXU1" lnClass="MMXU">
<DO name="Mod" type="INC_1_Mod" />
<DO name="Beh" type="INS_1_Beh" />
<DO name="Health" type="INS_1_Beh" />
<DO name="NamPlt" type="LPL_2_NamPlt" />
<DO name="TotW" type="MV_1_TotW" />
<DO name="W" type="WYE_1_W" />
</LNodeType>
<LNodeType id="CSWI1" lnClass="CSWI" desc="Switch controller">
<DO name="Mod" type="INC_1_Mod" />
<DO name="Beh" type="INS_1_Beh" />
<DO name="Health" type="INS_1_Beh" />
<DO name="NamPlt" type="LPL_2_NamPlt" />
<DO name="Pos" type="DPC_1_Pos" />
<DO name="PosA" type="DPC_2_PosA" />
<DO name="PosB" type="DPC_1_PosB" />
<DO name="PosC" type="DPC_1_PosA" />
</LNodeType>
<LNodeType id="DSCH1" lnClass="DSCH" desc="DER energy and/or ancillary services schedule">
<DO name="Mod" type="ENC_1_Mod" />
<DO name="Beh" type="ENS_1_Beh" />
<DO name="Health" type="ENS_1_Beh" />
<DO name="NamPlt" type="LPL_2_NamPlt" />
<DO name="SchdSt" type="INS_1_Beh" />
<DO name="SchdId" type="ING_1_SchdId" />
<DO name="SchdCat" type="ING_1_SchdId" />
<DO name="SchdTyp" type="ING_1_SchdId" />
<DO name="SchdAbsTm" type="SCA_1_SchdAbsTm" />
</LNodeType>
<DOType id="INC_1_Mod" cdc="INC">
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
</DOType>
<DOType id="INS_1_Beh" cdc="INS">
<DA name="stVal" bType="INT32" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
</DOType>
<DOType id="LPL_1_NamPlt" cdc="LPL">
<DA name="vendor" bType="VisString255" fc="DC" />
<DA name="swRev" bType="VisString255" fc="DC" />
<DA name="d" bType="VisString255" fc="DC" />
<DA name="configRev" bType="VisString255" fc="DC" />
<DA name="ldNs" bType="VisString255" fc="EX" />
</DOType>
<DOType id="DPL_1_PhyNam" cdc="DPL">
<DA name="vendor" bType="VisString255" fc="DC" />
</DOType>
<DOType id="SPS_1_Proxy" cdc="SPS">
<DA name="stVal" bType="BOOLEAN" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
</DOType>
<DOType id="LPL_2_NamPlt" cdc="LPL">
<DA name="vendor" bType="VisString255" fc="DC" />
<DA name="swRev" bType="VisString255" fc="DC" />
<DA name="d" bType="VisString255" fc="DC" />
</DOType>
<DOType id="MV_1_TotW" cdc="MV">
<DA name="mag" type="AnalogueValue_1" bType="Struct" fc="MX" dchg="true" dupd="true" />
<DA name="q" bType="Quality" fc="MX" qchg="true" />
<DA name="t" bType="Timestamp" fc="MX" />
</DOType>
<DOType id="WYE_1_W" cdc="WYE">
<SDO name="phsA" type="CMV_1_phsA" />
<SDO name="phsB" type="CMV_1_phsA" />
<SDO name="phsC" type="CMV_1_phsA" />
</DOType>
<DOType id="CMV_1_phsA" cdc="CMV">
<DA name="cVal" type="Vector_1" bType="Struct" fc="MX" dchg="true" />
<DA name="q" bType="Quality" fc="MX" qchg="true" />
<DA name="t" bType="Timestamp" fc="MX" />
</DOType>
<DOType id="DPC_1_Pos" cdc="DPC">
<DA name="Oper" type="DPCSelectWithValue_1" bType="Struct" fc="CO" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
</DOType>
<DOType id="DPC_2_PosA" cdc="DPC">
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
<DA name="sboTimeout" bType="INT32U" fc="CF" />
<DA name="SBO" bType="VisString64" fc="CO" />
<DA name="Oper" type="DPCOperate_1" bType="Struct" fc="CO" />
<DA name="Cancel" type="DPCCancel_1" bType="Struct" fc="CO" />
</DOType>
<DOType id="DPC_1_PosB" cdc="DPC">
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
<DA name="Oper" type="DPCOperate_1" bType="Struct" fc="CO" />
<DA name="Cancel" type="DPCCancel_1" bType="Struct" fc="CO" />
</DOType>
<DOType id="DPC_1_PosA" cdc="DPC">
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
<DA name="SBOw" type="DPCSelectWithValue_1" bType="Struct" fc="CO" />
<DA name="Oper" type="DPCOperate_1" bType="Struct" fc="CO" />
<DA name="Cancel" type="DPCCancel_1" bType="Struct" fc="CO" />
</DOType>
<DOType id="ENC_1_Mod" cdc="ENC">
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
<DA name="ctlModel" type="CtlModels" bType="Enum" fc="CF" />
</DOType>
<DOType id="ENS_1_Beh" cdc="ENS">
<DA name="stVal" bType="INT32" fc="ST" dchg="true" />
<DA name="q" bType="Quality" fc="ST" qchg="true" />
<DA name="t" bType="Timestamp" fc="ST" />
</DOType>
<DOType id="ING_1_SchdId" cdc="ING" />
<DOType id="SCA_1_SchdAbsTm" cdc="SCA">
<DA name="val" bType="FLOAT32" count="24" fc="SP" dchg="true" />
</DOType>
<DAType id="AnalogueValue_1">
<BDA name="f" bType="FLOAT32" />
</DAType>
<DAType id="Vector_1">
<BDA name="mag" type="AnalogueValue_1" bType="Struct" />
</DAType>
<DAType id="DPCSelectWithValue_1">
<BDA name="ctlVal" bType="BOOLEAN" />
<BDA name="origin" type="Originator_1" bType="Struct" />
<BDA name="ctlNum" bType="INT8U" />
<BDA name="T" bType="Timestamp" />
<BDA name="Test" bType="BOOLEAN" />
<BDA name="Check" bType="Check" />
</DAType>
<DAType id="Originator_1">
<BDA name="orCat" type="OrCat" bType="Enum" />
<BDA name="orIdent" bType="Octet64" />
</DAType>
<DAType id="DPCOperate_1">
<BDA name="ctlVal" bType="BOOLEAN" />
<BDA name="origin" type="Originator_1" bType="Struct" />
<BDA name="ctlNum" bType="INT8U" />
<BDA name="T" bType="Timestamp" />
<BDA name="Test" bType="BOOLEAN" />
<BDA name="Check" bType="Check" />
</DAType>
<DAType id="DPCCancel_1">
<BDA name="ctlVal" bType="BOOLEAN" />
<BDA name="origin" type="Originator_1" bType="Struct" />
<BDA name="ctlNum" bType="INT8U" />
<BDA name="T" bType="Timestamp" />
<BDA name="Test" bType="BOOLEAN" />
</DAType>
<EnumType id="CtlModels">
<EnumVal ord="0">status-only</EnumVal>
<EnumVal ord="1">direct-with-normal-security</EnumVal>
<EnumVal ord="2">sbo-with-normal-security</EnumVal>
<EnumVal ord="3">direct-with-enhanced-security</EnumVal>
<EnumVal ord="4">sbo-with-enhanced-security</EnumVal>
</EnumType>
<EnumType id="OrCat">
<EnumVal ord="0">not-supported</EnumVal>
<EnumVal ord="1">bay-control</EnumVal>
<EnumVal ord="2">station-control</EnumVal>
<EnumVal ord="3">remote-control</EnumVal>
<EnumVal ord="4">automatic-bay</EnumVal>
<EnumVal ord="5">automatic-station</EnumVal>
<EnumVal ord="6">automatic-remote</EnumVal>
<EnumVal ord="7">maintenance</EnumVal>
<EnumVal ord="8">process</EnumVal>
</EnumType>
</DataTypeTemplates>
</SCL>

@ -1,39 +0,0 @@
#!/bin/bash
JARS_LOCATION="../../build/libs-all"
MAIN_CLASS="org.openmuc.openiec61850.clientgui.ClientGui"
SYSPROPS=""
PARAMS=""
# from gradle start script:
# Attempt to set SCRIPT_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
SCRIPT_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
CLASSPATH=$(JARS=("$SCRIPT_HOME"/"$JARS_LOCATION"/*.jar); IFS=:; echo "${JARS[*]}")
for i in $@; do
if [[ $i == -D* ]]; then
SYSPROPS="$SYSPROPS $i";
else
PARAMS="$PARAMS $i";
fi
done
java $SYSPROPS -cp $CLASSPATH $MAIN_CLASS $PARAMS

@ -1,6 +0,0 @@
::BATCH file to windows
set BATDIR=%~dp0
set LIBDIR=%BATDIR%..\..\build\libs-all
java -Djava.ext.dirs=%LIBDIR% org.openmuc.openiec61850.clientgui.ClientGui %*
Loading…
Cancel
Save