├── README.md ├── c ├── Include │ ├── Packet32.h │ ├── Win32-Extensions.h │ ├── bittypes.h │ ├── ip6_misc.h │ ├── pcap-bpf.h │ ├── pcap-namedb.h │ ├── pcap-stdinc.h │ ├── pcap.h │ ├── pcap │ │ ├── bluetooth.h │ │ ├── bpf.h │ │ ├── namedb.h │ │ ├── pcap.h │ │ ├── sll.h │ │ ├── usb.h │ │ └── vlan.h │ └── remote-ext.h ├── Lib │ ├── Packet.lib │ ├── libpacket.a │ ├── libwpcap.a │ ├── wpcap.lib │ └── x64 │ │ ├── Packet.lib │ │ └── wpcap.lib ├── htpasswd.txt ├── src │ ├── ctypes.c │ ├── ctypes.h │ ├── datatypes.c │ ├── datatypes.h │ ├── decodePacket.c │ ├── decodePacket.h │ ├── encodePacket.c │ ├── encodePacket.h │ ├── gse.c │ ├── gse.h │ ├── gseDecode.c │ ├── gseDecode.h │ ├── gseDecodeBasic.c │ ├── gseDecodeBasic.h │ ├── gseDecodePacket.c │ ├── gseEncode.c │ ├── gseEncode.h │ ├── gseEncodeBasic.c │ ├── gseEncodeBasic.h │ ├── gseEncodePacket.c │ ├── gsePacketData.h │ ├── iec61850.c │ ├── iec61850.h │ ├── ied.c │ ├── ied.h │ ├── interface.c │ ├── interface.h │ ├── interfaceSendPacket.c │ ├── interfaceSendPacket.h │ ├── json │ │ ├── dataModelIndex.c │ │ ├── dataModelIndex.h │ │ ├── json.c │ │ ├── json.h │ │ ├── mongoose.c │ │ └── mongoose.h │ ├── main.c │ ├── main_SV_LE.c │ ├── main_json.c │ ├── main_json_ied_monitor.c │ ├── rapid61850.i │ ├── sv.c │ ├── sv.h │ ├── svDecode.c │ ├── svDecode.h │ ├── svDecodeBasic.c │ ├── svDecodeBasic.h │ ├── svDecodePacket.c │ ├── svEncode.c │ ├── svEncode.h │ ├── svEncodeBasic.c │ ├── svEncodeBasic.h │ ├── svEncodePacket.c │ └── svPacketData.h └── ssl_cert.pem ├── emf ├── model │ ├── SCL.genmodel │ ├── SCL.xsd │ ├── SCL_BaseSimpleTypes.xsd │ ├── SCL_BaseTypes.xsd │ ├── SCL_Communication.xsd │ ├── SCL_Coordinates.xsd │ ├── SCL_DataTypeTemplates.xsd │ ├── SCL_Enums.xsd │ ├── SCL_IED.xsd │ ├── SCL_Maintenance.xsd │ ├── SCL_Substation.xsd │ ├── lcoordinates.ecore │ ├── lmaintenance.ecore │ └── scl.ecore ├── src │ ├── ch │ │ └── iec │ │ │ └── _61850 │ │ │ └── _2006 │ │ │ ├── sc │ │ │ ├── lcoordinates │ │ │ │ ├── CoordType.java │ │ │ │ ├── DocumentRoot.java │ │ │ │ ├── LcoordinatesFactory.java │ │ │ │ ├── LcoordinatesPackage.java │ │ │ │ ├── TConndir.java │ │ │ │ ├── impl │ │ │ │ │ ├── CoordTypeImpl.java │ │ │ │ │ ├── DocumentRootImpl.java │ │ │ │ │ ├── LcoordinatesFactoryImpl.java │ │ │ │ │ └── LcoordinatesPackageImpl.java │ │ │ │ └── util │ │ │ │ │ ├── LcoordinatesAdapterFactory.java │ │ │ │ │ ├── LcoordinatesResourceFactoryImpl.java │ │ │ │ │ ├── LcoordinatesResourceImpl.java │ │ │ │ │ ├── LcoordinatesSwitch.java │ │ │ │ │ └── LcoordinatesXMLProcessor.java │ │ │ └── lmaintenance │ │ │ │ ├── CondDescType.java │ │ │ │ ├── DocumentRoot.java │ │ │ │ ├── LmaintenanceFactory.java │ │ │ │ ├── LmaintenancePackage.java │ │ │ │ ├── TMopEnum.java │ │ │ │ ├── impl │ │ │ │ ├── CondDescTypeImpl.java │ │ │ │ ├── DocumentRootImpl.java │ │ │ │ ├── LmaintenanceFactoryImpl.java │ │ │ │ └── LmaintenancePackageImpl.java │ │ │ │ └── util │ │ │ │ ├── LmaintenanceAdapterFactory.java │ │ │ │ ├── LmaintenanceResourceFactoryImpl.java │ │ │ │ ├── LmaintenanceResourceImpl.java │ │ │ │ ├── LmaintenanceSwitch.java │ │ │ │ ├── LmaintenanceValidator.java │ │ │ │ └── LmaintenanceXMLProcessor.java │ │ │ └── scl │ │ │ ├── AuthenticationType.java │ │ │ ├── DocumentRoot.java │ │ │ ├── HistoryType.java │ │ │ ├── LN0Type.java │ │ │ ├── NameStructureType.java │ │ │ ├── OptFieldsType.java │ │ │ ├── SCLType.java │ │ │ ├── SclFactory.java │ │ │ ├── SclPackage.java │ │ │ ├── SettingGroupsType.java │ │ │ ├── SmvOptsType.java │ │ │ ├── TAbstractConductingEquipment.java │ │ │ ├── TAbstractDataAttribute.java │ │ │ ├── TAccessControl.java │ │ │ ├── TAccessPoint.java │ │ │ ├── TAddress.java │ │ │ ├── TAnyContentFromOtherNamespace.java │ │ │ ├── TAnyLN.java │ │ │ ├── TAssociation.java │ │ │ ├── TAssociationKindEnum.java │ │ │ ├── TAuthenticationEnum.java │ │ │ ├── TBDA.java │ │ │ ├── TBaseElement.java │ │ │ ├── TBay.java │ │ │ ├── TBitRateInMbPerSec.java │ │ │ ├── TClientLN.java │ │ │ ├── TClientServices.java │ │ │ ├── TCommunication.java │ │ │ ├── TConductingEquipment.java │ │ │ ├── TConfLNs.java │ │ │ ├── TConnectedAP.java │ │ │ ├── TConnectivityNode.java │ │ │ ├── TControl.java │ │ │ ├── TControlBlock.java │ │ │ ├── TControlWithIEDName.java │ │ │ ├── TControlWithTriggerOpt.java │ │ │ ├── TDA.java │ │ │ ├── TDAI.java │ │ │ ├── TDAType.java │ │ │ ├── TDO.java │ │ │ ├── TDOI.java │ │ │ ├── TDOType.java │ │ │ ├── TDataSet.java │ │ │ ├── TDataTypeTemplates.java │ │ │ ├── TDomainLNGroupAEnum.java │ │ │ ├── TDomainLNGroupCEnum.java │ │ │ ├── TDomainLNGroupGEnum.java │ │ │ ├── TDomainLNGroupIEnum.java │ │ │ ├── TDomainLNGroupMEnum.java │ │ │ ├── TDomainLNGroupPEnum.java │ │ │ ├── TDomainLNGroupREnum.java │ │ │ ├── TDomainLNGroupSEnum.java │ │ │ ├── TDomainLNGroupTEnum.java │ │ │ ├── TDomainLNGroupXEnum.java │ │ │ ├── TDomainLNGroupYEnum.java │ │ │ ├── TDomainLNGroupZEnum.java │ │ │ ├── TDurationInMilliSec.java │ │ │ ├── TDurationInSec.java │ │ │ ├── TEnumType.java │ │ │ ├── TEnumVal.java │ │ │ ├── TEquipment.java │ │ │ ├── TEquipmentContainer.java │ │ │ ├── TExtRef.java │ │ │ ├── TFCCB.java │ │ │ ├── TFCDA.java │ │ │ ├── TFCEnum.java │ │ │ ├── TFunction.java │ │ │ ├── TGSE.java │ │ │ ├── TGSEControl.java │ │ │ ├── TGSEControlTypeEnum.java │ │ │ ├── TGSESettings.java │ │ │ ├── TGeneralEquipment.java │ │ │ ├── THeader.java │ │ │ ├── THitem.java │ │ │ ├── TIDNaming.java │ │ │ ├── TIED.java │ │ │ ├── TInputs.java │ │ │ ├── TLDevice.java │ │ │ ├── TLLN0Enum.java │ │ │ ├── TLN.java │ │ │ ├── TLN0.java │ │ │ ├── TLNode.java │ │ │ ├── TLNodeContainer.java │ │ │ ├── TLNodeType.java │ │ │ ├── TLPHDEnum.java │ │ │ ├── TLog.java │ │ │ ├── TLogControl.java │ │ │ ├── TLogSettings.java │ │ │ ├── TNaming.java │ │ │ ├── TP.java │ │ │ ├── TPAPPID.java │ │ │ ├── TPIP.java │ │ │ ├── TPIPGATEWAY.java │ │ │ ├── TPIPSUBNET.java │ │ │ ├── TPMACAddress.java │ │ │ ├── TPOSIAEInvoke.java │ │ │ ├── TPOSIAEQualifier.java │ │ │ ├── TPOSIAPInvoke.java │ │ │ ├── TPOSIAPTitle.java │ │ │ ├── TPOSINSAP.java │ │ │ ├── TPOSIPSEL.java │ │ │ ├── TPOSISSEL.java │ │ │ ├── TPOSITSEL.java │ │ │ ├── TPVLANID.java │ │ │ ├── TPVLANPRIORITY.java │ │ │ ├── TPhaseEnum.java │ │ │ ├── TPhysConn.java │ │ │ ├── TPowerSystemResource.java │ │ │ ├── TPowerTransformer.java │ │ │ ├── TPowerTransformerEnum.java │ │ │ ├── TPredefinedAttributeNameEnum.java │ │ │ ├── TPredefinedBasicTypeEnum.java │ │ │ ├── TPredefinedCDCEnum.java │ │ │ ├── TPredefinedCommonConductingEquipmentEnum.java │ │ │ ├── TPredefinedGeneralEquipmentEnum.java │ │ │ ├── TPredefinedPTypeEnum.java │ │ │ ├── TPrivate.java │ │ │ ├── TReportControl.java │ │ │ ├── TReportSettings.java │ │ │ ├── TRptEnabled.java │ │ │ ├── TSCLControl.java │ │ │ ├── TSDI.java │ │ │ ├── TSDO.java │ │ │ ├── TSIUnitEnum.java │ │ │ ├── TSMV.java │ │ │ ├── TSMVSettings.java │ │ │ ├── TSampledValueControl.java │ │ │ ├── TServer.java │ │ │ ├── TServiceFCEnum.java │ │ │ ├── TServiceSettings.java │ │ │ ├── TServiceSettingsEnum.java │ │ │ ├── TServiceWithMax.java │ │ │ ├── TServiceWithMaxAndMaxAttributes.java │ │ │ ├── TServiceWithMaxAndMaxAttributesAndModify.java │ │ │ ├── TServiceWithMaxAndModify.java │ │ │ ├── TServiceYesNo.java │ │ │ ├── TServices.java │ │ │ ├── TSettingControl.java │ │ │ ├── TSubEquipment.java │ │ │ ├── TSubFunction.java │ │ │ ├── TSubNetwork.java │ │ │ ├── TSubstation.java │ │ │ ├── TTapChanger.java │ │ │ ├── TTerminal.java │ │ │ ├── TText.java │ │ │ ├── TTransformerWinding.java │ │ │ ├── TTransformerWindingEnum.java │ │ │ ├── TTrgOps.java │ │ │ ├── TTrgOptControlEnum.java │ │ │ ├── TTrgOptEnum.java │ │ │ ├── TUnNaming.java │ │ │ ├── TUnitMultiplierEnum.java │ │ │ ├── TVal.java │ │ │ ├── TValKindEnum.java │ │ │ ├── TValueWithUnit.java │ │ │ ├── TVoltage.java │ │ │ ├── TVoltageLevel.java │ │ │ ├── impl │ │ │ ├── AuthenticationTypeImpl.java │ │ │ ├── DocumentRootImpl.java │ │ │ ├── HistoryTypeImpl.java │ │ │ ├── LN0TypeImpl.java │ │ │ ├── OptFieldsTypeImpl.java │ │ │ ├── SCLTypeImpl.java │ │ │ ├── SclFactoryImpl.java │ │ │ ├── SclPackageImpl.java │ │ │ ├── SettingGroupsTypeImpl.java │ │ │ ├── SmvOptsTypeImpl.java │ │ │ ├── TAbstractConductingEquipmentImpl.java │ │ │ ├── TAbstractDataAttributeImpl.java │ │ │ ├── TAccessControlImpl.java │ │ │ ├── TAccessPointImpl.java │ │ │ ├── TAddressImpl.java │ │ │ ├── TAnyContentFromOtherNamespaceImpl.java │ │ │ ├── TAnyLNImpl.java │ │ │ ├── TAssociationImpl.java │ │ │ ├── TBDAImpl.java │ │ │ ├── TBaseElementImpl.java │ │ │ ├── TBayImpl.java │ │ │ ├── TBitRateInMbPerSecImpl.java │ │ │ ├── TClientLNImpl.java │ │ │ ├── TClientServicesImpl.java │ │ │ ├── TCommunicationImpl.java │ │ │ ├── TConductingEquipmentImpl.java │ │ │ ├── TConfLNsImpl.java │ │ │ ├── TConnectedAPImpl.java │ │ │ ├── TConnectivityNodeImpl.java │ │ │ ├── TControlBlockImpl.java │ │ │ ├── TControlImpl.java │ │ │ ├── TControlWithIEDNameImpl.java │ │ │ ├── TControlWithTriggerOptImpl.java │ │ │ ├── TDAIImpl.java │ │ │ ├── TDAImpl.java │ │ │ ├── TDATypeImpl.java │ │ │ ├── TDOIImpl.java │ │ │ ├── TDOImpl.java │ │ │ ├── TDOTypeImpl.java │ │ │ ├── TDataSetImpl.java │ │ │ ├── TDataTypeTemplatesImpl.java │ │ │ ├── TDurationInMilliSecImpl.java │ │ │ ├── TDurationInSecImpl.java │ │ │ ├── TEnumTypeImpl.java │ │ │ ├── TEnumValImpl.java │ │ │ ├── TEquipmentContainerImpl.java │ │ │ ├── TEquipmentImpl.java │ │ │ ├── TExtRefImpl.java │ │ │ ├── TFCCBImpl.java │ │ │ ├── TFCDAImpl.java │ │ │ ├── TFunctionImpl.java │ │ │ ├── TGSEControlImpl.java │ │ │ ├── TGSEImpl.java │ │ │ ├── TGSESettingsImpl.java │ │ │ ├── TGeneralEquipmentImpl.java │ │ │ ├── THeaderImpl.java │ │ │ ├── THitemImpl.java │ │ │ ├── TIDNamingImpl.java │ │ │ ├── TIEDImpl.java │ │ │ ├── TInputsImpl.java │ │ │ ├── TLDeviceImpl.java │ │ │ ├── TLN0Impl.java │ │ │ ├── TLNImpl.java │ │ │ ├── TLNodeContainerImpl.java │ │ │ ├── TLNodeImpl.java │ │ │ ├── TLNodeTypeImpl.java │ │ │ ├── TLogControlImpl.java │ │ │ ├── TLogImpl.java │ │ │ ├── TLogSettingsImpl.java │ │ │ ├── TNamingImpl.java │ │ │ ├── TPAPPIDImpl.java │ │ │ ├── TPIPGATEWAYImpl.java │ │ │ ├── TPIPImpl.java │ │ │ ├── TPIPSUBNETImpl.java │ │ │ ├── TPImpl.java │ │ │ ├── TPMACAddressImpl.java │ │ │ ├── TPOSIAEInvokeImpl.java │ │ │ ├── TPOSIAEQualifierImpl.java │ │ │ ├── TPOSIAPInvokeImpl.java │ │ │ ├── TPOSIAPTitleImpl.java │ │ │ ├── TPOSINSAPImpl.java │ │ │ ├── TPOSIPSELImpl.java │ │ │ ├── TPOSISSELImpl.java │ │ │ ├── TPOSITSELImpl.java │ │ │ ├── TPVLANIDImpl.java │ │ │ ├── TPVLANPRIORITYImpl.java │ │ │ ├── TPhysConnImpl.java │ │ │ ├── TPowerSystemResourceImpl.java │ │ │ ├── TPowerTransformerImpl.java │ │ │ ├── TPrivateImpl.java │ │ │ ├── TReportControlImpl.java │ │ │ ├── TReportSettingsImpl.java │ │ │ ├── TRptEnabledImpl.java │ │ │ ├── TSCLControlImpl.java │ │ │ ├── TSDIImpl.java │ │ │ ├── TSDOImpl.java │ │ │ ├── TSMVImpl.java │ │ │ ├── TSMVSettingsImpl.java │ │ │ ├── TSampledValueControlImpl.java │ │ │ ├── TServerImpl.java │ │ │ ├── TServiceSettingsImpl.java │ │ │ ├── TServiceWithMaxAndMaxAttributesAndModifyImpl.java │ │ │ ├── TServiceWithMaxAndMaxAttributesImpl.java │ │ │ ├── TServiceWithMaxAndModifyImpl.java │ │ │ ├── TServiceWithMaxImpl.java │ │ │ ├── TServiceYesNoImpl.java │ │ │ ├── TServicesImpl.java │ │ │ ├── TSettingControlImpl.java │ │ │ ├── TSubEquipmentImpl.java │ │ │ ├── TSubFunctionImpl.java │ │ │ ├── TSubNetworkImpl.java │ │ │ ├── TSubstationImpl.java │ │ │ ├── TTapChangerImpl.java │ │ │ ├── TTerminalImpl.java │ │ │ ├── TTextImpl.java │ │ │ ├── TTransformerWindingImpl.java │ │ │ ├── TTrgOpsImpl.java │ │ │ ├── TUnNamingImpl.java │ │ │ ├── TValImpl.java │ │ │ ├── TValueWithUnitImpl.java │ │ │ ├── TVoltageImpl.java │ │ │ ├── TVoltageLevelImpl.java │ │ │ └── scl.ecore │ │ │ └── util │ │ │ ├── SclAdapterFactory.java │ │ │ ├── SclResourceFactoryImpl.java │ │ │ ├── SclResourceImpl.java │ │ │ ├── SclSwitch.java │ │ │ ├── SclValidator.java │ │ │ └── SclXMLProcessor.java │ └── rapid61850 │ │ ├── CFile.java │ │ ├── CFunction.java │ │ ├── CFunctionCoder.java │ │ ├── CFunctionControl.java │ │ ├── CFunctionGSECoder.java │ │ ├── CFunctionGSELengthCoder.java │ │ ├── CFunctionSVCoder.java │ │ ├── CHeader.java │ │ ├── CSource.java │ │ ├── CoderType.java │ │ ├── CommsType.java │ │ ├── JSONDatabaseManager.java │ │ ├── LE.scd │ │ ├── LEx2.scd │ │ ├── LEx2GOOSE.scd │ │ ├── Main.java │ │ ├── SCDAdditionalMappings.java │ │ ├── SCDCodeGenerator.java │ │ ├── SCDValidator.java │ │ ├── ied_monitor.xml │ │ ├── license.txt │ │ ├── performance.scd │ │ ├── scd.xml │ │ ├── templates │ │ ├── CHeaderTemplate.java │ │ └── CSourceTemplate.java │ │ └── ud.xml └── templates │ ├── CHeaderTemplate.cjet │ └── CSourceTemplate.cjet ├── java_interface └── Main.java ├── processing └── PACWorldClient │ ├── GUI.pde │ ├── PACWorldClient.pde │ ├── application.linux │ ├── PACWorldClient │ ├── lib │ │ ├── PACWorldClient.jar │ │ ├── controlP5.jar │ │ ├── core.jar │ │ └── net.jar │ └── source │ │ ├── GUI.pde │ │ └── PACWorldClient.pde │ ├── application.macosx │ ├── PACWorldClient.app │ │ └── Contents │ │ │ ├── Info.plist │ │ │ ├── MacOS │ │ │ ├── JavaApplicationStub │ │ │ └── JavaApplicationStub64 │ │ │ ├── PkgInfo │ │ │ └── Resources │ │ │ ├── Java │ │ │ ├── PACWorldClient.jar │ │ │ ├── controlP5.jar │ │ │ ├── core.jar │ │ │ └── net.jar │ │ │ └── sketch.icns │ ├── readme.txt │ └── source │ │ ├── GUI.pde │ │ └── PACWorldClient.pde │ ├── application.windows │ ├── PACWorldClient.exe │ ├── lib │ │ ├── PACWorldClient.jar │ │ ├── args.txt │ │ ├── controlP5.jar │ │ ├── core.jar │ │ └── net.jar │ └── source │ │ ├── GUI.pde │ │ ├── PACWorldClient.java │ │ └── PACWorldClient.pde │ ├── code │ └── controlP5.jar │ └── data │ └── AngsanaUPC-48.vlw └── python_interface └── main.py /c/Include/pcap-bpf.h: -------------------------------------------------------------------------------- 1 | /*- 2 | * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 3 | * The Regents of the University of California. All rights reserved. 4 | * 5 | * This code is derived from the Stanford/CMU enet packet filter, 6 | * (net/enet.c) distributed as part of 4.3BSD, and code contributed 7 | * to Berkeley by Steven McCanne and Van Jacobson both of Lawrence 8 | * Berkeley Laboratory. 9 | * 10 | * Redistribution and use in source and binary forms, with or without 11 | * modification, are permitted provided that the following conditions 12 | * are met: 13 | * 1. Redistributions of source code must retain the above copyright 14 | * notice, this list of conditions and the following disclaimer. 15 | * 2. Redistributions in binary form must reproduce the above copyright 16 | * notice, this list of conditions and the following disclaimer in the 17 | * documentation and/or other materials provided with the distribution. 18 | * 3. All advertising materials mentioning features or use of this software 19 | * must display the following acknowledgement: 20 | * This product includes software developed by the University of 21 | * California, Berkeley and its contributors. 22 | * 4. Neither the name of the University nor the names of its contributors 23 | * may be used to endorse or promote products derived from this software 24 | * without specific prior written permission. 25 | * 26 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 27 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 30 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 31 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 | * SUCH DAMAGE. 37 | * 38 | * @(#) $Header: /tcpdump/master/libpcap/pcap-bpf.h,v 1.50 2007/04/01 21:43:55 guy Exp $ (LBL) 39 | */ 40 | 41 | /* 42 | * For backwards compatibility. 43 | * 44 | * Note to OS vendors: do NOT get rid of this file! Some applications 45 | * might expect to be able to include . 46 | */ 47 | #include 48 | -------------------------------------------------------------------------------- /c/Include/pcap-namedb.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1994, 1996 3 | * The Regents of the University of California. All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. All advertising materials mentioning features or use of this software 14 | * must display the following acknowledgement: 15 | * This product includes software developed by the Computer Systems 16 | * Engineering Group at Lawrence Berkeley Laboratory. 17 | * 4. Neither the name of the University nor of the Laboratory may be used 18 | * to endorse or promote products derived from this software without 19 | * specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 | * SUCH DAMAGE. 32 | * 33 | * @(#) $Header: /tcpdump/master/libpcap/pcap-namedb.h,v 1.13 2006/10/04 18:13:32 guy Exp $ (LBL) 34 | */ 35 | 36 | /* 37 | * For backwards compatibility. 38 | * 39 | * Note to OS vendors: do NOT get rid of this file! Some applications 40 | * might expect to be able to include . 41 | */ 42 | #include 43 | -------------------------------------------------------------------------------- /c/Include/pcap.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 1993, 1994, 1995, 1996, 1997 3 | * The Regents of the University of California. All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. All advertising materials mentioning features or use of this software 14 | * must display the following acknowledgement: 15 | * This product includes software developed by the Computer Systems 16 | * Engineering Group at Lawrence Berkeley Laboratory. 17 | * 4. Neither the name of the University nor of the Laboratory may be used 18 | * to endorse or promote products derived from this software without 19 | * specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 | * SUCH DAMAGE. 32 | * 33 | * @(#) $Header: /tcpdump/master/libpcap/pcap.h,v 1.59 2006/10/04 18:09:22 guy Exp $ (LBL) 34 | */ 35 | 36 | /* 37 | * For backwards compatibility. 38 | * 39 | * Note to OS vendors: do NOT get rid of this file! Many applications 40 | * expect to be able to include , and at least some of them 41 | * go through contortions in their configure scripts to try to detect 42 | * OSes that have "helpfully" moved pcap.h to without 43 | * leaving behind a file. 44 | */ 45 | #include 46 | -------------------------------------------------------------------------------- /c/Include/pcap/bluetooth.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2006 Paolo Abeni (Italy) 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 9 | * 1. Redistributions of source code must retain the above copyright 10 | * notice, this list of conditions and the following disclaimer. 11 | * 2. Redistributions in binary form must reproduce the above copyright 12 | * notice, this list of conditions and the following disclaimer in the 13 | * documentation and/or other materials provided with the distribution. 14 | * 3. The name of the author may not be used to endorse or promote 15 | * products derived from this software without specific prior written 16 | * permission. 17 | * 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | * 30 | * bluetooth data struct 31 | * By Paolo Abeni 32 | * 33 | * @(#) $Header: /tcpdump/master/libpcap/pcap/bluetooth.h,v 1.1 2007/09/22 02:10:17 guy Exp $ 34 | */ 35 | 36 | #ifndef _PCAP_BLUETOOTH_STRUCTS_H__ 37 | #define _PCAP_BLUETOOTH_STRUCTS_H__ 38 | 39 | /* 40 | * Header prepended libpcap to each bluetooth h:4 frame. 41 | * fields are in network byte order 42 | */ 43 | typedef struct _pcap_bluetooth_h4_header { 44 | u_int32_t direction; /* if first bit is set direction is incoming */ 45 | } pcap_bluetooth_h4_header; 46 | 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /c/Include/pcap/vlan.h: -------------------------------------------------------------------------------- 1 | /*- 2 | * Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 3 | * The Regents of the University of California. All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions 7 | * are met: 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. All advertising materials mentioning features or use of this software 14 | * must display the following acknowledgement: 15 | * This product includes software developed by the University of 16 | * California, Berkeley and its contributors. 17 | * 4. Neither the name of the University nor the names of its contributors 18 | * may be used to endorse or promote products derived from this software 19 | * without specific prior written permission. 20 | * 21 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24 | * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 | * SUCH DAMAGE. 32 | * 33 | * @(#) $Header: /tcpdump/master/libpcap/pcap/vlan.h,v 1.1.2.2 2008-08-06 07:45:59 guy Exp $ 34 | */ 35 | 36 | #ifndef lib_pcap_vlan_h 37 | #define lib_pcap_vlan_h 38 | 39 | struct vlan_tag { 40 | u_int16_t vlan_tpid; /* ETH_P_8021Q */ 41 | u_int16_t vlan_tci; /* VLAN TCI */ 42 | }; 43 | 44 | #define VLAN_TAG_LEN 4 45 | 46 | #endif 47 | -------------------------------------------------------------------------------- /c/Lib/Packet.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/c/Lib/Packet.lib -------------------------------------------------------------------------------- /c/Lib/libpacket.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/c/Lib/libpacket.a -------------------------------------------------------------------------------- /c/Lib/libwpcap.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/c/Lib/libwpcap.a -------------------------------------------------------------------------------- /c/Lib/wpcap.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/c/Lib/wpcap.lib -------------------------------------------------------------------------------- /c/Lib/x64/Packet.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/c/Lib/x64/Packet.lib -------------------------------------------------------------------------------- /c/Lib/x64/wpcap.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/c/Lib/x64/wpcap.lib -------------------------------------------------------------------------------- /c/htpasswd.txt: -------------------------------------------------------------------------------- 1 | admin:localhost:609e3552947b5949c2451a072a2963e1 2 | -------------------------------------------------------------------------------- /c/src/decodePacket.c: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #include "decodePacket.h" 22 | //#include "svEncodeBasic.h" 23 | 24 | 25 | // returns size of length field, from first byte 26 | int getLengthFieldSize(unsigned char byte) { 27 | if (byte <= 126) { 28 | return 1; 29 | } 30 | else { 31 | return 1 + (byte & 0x7F); 32 | } 33 | } 34 | 35 | //TODO check this works for all inputs, e.g., buf[1] = 0xFF 36 | int decodeLength(unsigned char *buf) { 37 | if (buf[0] <= 126) { 38 | return buf[0]; 39 | } 40 | else { 41 | int bytes = (buf[0] & 0x7F); 42 | 43 | if (bytes == 1) { 44 | return buf[1]; 45 | } 46 | else if (bytes == 2) { // assumes max length of 2^15 47 | return ((buf[1] & 0xFF) << 8) | (buf[2] & 0xFF); 48 | } 49 | } 50 | 51 | return 0; 52 | } 53 | -------------------------------------------------------------------------------- /c/src/decodePacket.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef DECODE_PACKET_H 22 | #define DECODE_PACKET_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | int getLengthFieldSize(unsigned char byte); 29 | int decodeLength(unsigned char *buf); 30 | 31 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 32 | } 33 | #endif 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /c/src/encodePacket.c: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #include "encodePacket.h" 22 | #include "svEncodeBasic.h" 23 | 24 | int getLengthBytes(int len) { 25 | if (len <= 126) { 26 | return 1; 27 | } 28 | else if (len <= 255) { 29 | return 2; 30 | } 31 | else { 32 | return 3; 33 | } 34 | } 35 | 36 | int encodeLength(unsigned char *buf, CTYPE_INT16U len) { 37 | if (len <= 126) { 38 | buf[0] = (unsigned char) len; 39 | return 1; 40 | } 41 | else if (len <= 255) { 42 | buf[0] = (unsigned char) 0x81; // 0x80 specifies larger than one byte; 0x02 is number of length bytes to follow 43 | buf[1] = (unsigned char) len; 44 | 45 | return 2; 46 | } 47 | else { 48 | // assume length is not greater than 2^15 49 | buf[0] = (unsigned char) 0x82; // 0x80 specifies larger than one byte; 0x02 is number of length bytes to follow 50 | ENCODE_CTYPE_INT16U(&buf[1], &len); 51 | 52 | return 3; 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /c/src/encodePacket.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef ENCODE_PACKET_H 22 | #define ENCODE_PACKET_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | #include "ctypes.h" 29 | 30 | int getLengthBytes(int len); 31 | int encodeLength(unsigned char *buf, CTYPE_INT16U len); 32 | 33 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 34 | } 35 | #endif 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /c/src/gse.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2014 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef GSE_H 22 | #define GSE_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | #include "gseEncode.h" 29 | #include "gseDecode.h" 30 | #include "gsePacketData.h" 31 | 32 | 33 | 34 | 35 | void init_gse(); 36 | int gse_send_E1Q1SB1_C1_Performance(unsigned char *buf, CTYPE_BOOLEAN statusChange, CTYPE_INT32U timeAllowedToLive); 37 | int gse_send_E1Q1SB1_C1_ItlPositions(unsigned char *buf, CTYPE_BOOLEAN statusChange, CTYPE_INT32U timeAllowedToLive); 38 | int gse_send_E1Q1SB1_C1_AnotherPositions(unsigned char *buf, CTYPE_BOOLEAN statusChange, CTYPE_INT32U timeAllowedToLive); 39 | int gse_send_D1Q1SB4_C1_SyckResult(unsigned char *buf, CTYPE_BOOLEAN statusChange, CTYPE_INT32U timeAllowedToLive); 40 | int gse_send_D1Q1SB4_C1_MMXUResult(unsigned char *buf, CTYPE_BOOLEAN statusChange, CTYPE_INT32U timeAllowedToLive); 41 | void gseDecode(unsigned char *buf, int len); 42 | 43 | 44 | 45 | 46 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 47 | } 48 | #endif 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /c/src/gseDecode.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2014 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef GSE_DECODE_H 22 | #define GSE_DECODE_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | #include "gsePacketData.h" 29 | #include "datatypes.h" 30 | 31 | 32 | 33 | 34 | int ber_decode_E1Q1SB1_C1_Performance(unsigned char *buf, struct E1Q1SB1_C1_Performance *E1Q1SB1_C1_Performance); 35 | int ber_decode_E1Q1SB1_C1_Positions(unsigned char *buf, struct E1Q1SB1_C1_Positions *E1Q1SB1_C1_Positions); 36 | int ber_decode_E1Q1SB1_C1_Measurands(unsigned char *buf, struct E1Q1SB1_C1_Measurands *E1Q1SB1_C1_Measurands); 37 | int ber_decode_E1Q1SB1_C1_smv(unsigned char *buf, struct E1Q1SB1_C1_smv *E1Q1SB1_C1_smv); 38 | int ber_decode_E1Q1SB1_C1_rmxu(unsigned char *buf, struct E1Q1SB1_C1_rmxu *E1Q1SB1_C1_rmxu); 39 | int ber_decode_D1Q1SB4_C1_SyckResult(unsigned char *buf, struct D1Q1SB4_C1_SyckResult *D1Q1SB4_C1_SyckResult); 40 | int ber_decode_D1Q1SB4_C1_MMXUResult(unsigned char *buf, struct D1Q1SB4_C1_MMXUResult *D1Q1SB4_C1_MMXUResult); 41 | 42 | void gseDecodeDataset(unsigned char *dataset, CTYPE_INT16U datasetLength, unsigned char *gocbRef, CTYPE_INT16U gocbRefLength, CTYPE_INT32U timeAllowedToLive, CTYPE_TIMESTAMP T, CTYPE_INT32U stNum, CTYPE_INT32U sqNum); 43 | 44 | 45 | 46 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 47 | } 48 | #endif 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /c/src/gseDecodeBasic.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef GSE_BER_DECODE_BASIC_H 22 | #define GSE_BER_DECODE_BASIC_H 23 | 24 | #include "datatypes.h" 25 | #include "decodePacket.h" 26 | 27 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 28 | extern "C" { 29 | #endif 30 | 31 | int BER_DECODE_CTYPE_FLOAT32(unsigned char *buf, CTYPE_FLOAT32 *value); 32 | int BER_DECODE_CTYPE_QUALITY(unsigned char *buf, CTYPE_QUALITY *value); 33 | int BER_DECODE_CTYPE_TIMESTAMP(unsigned char *buf, CTYPE_TIMESTAMP *value); 34 | int BER_DECODE_CTYPE_ENUM(unsigned char *buf, CTYPE_ENUM *value); 35 | int BER_DECODE_CTYPE_INT8(unsigned char *buf, CTYPE_INT8 *value); 36 | int BER_DECODE_CTYPE_INT16(unsigned char *buf, CTYPE_INT16 *value); 37 | int BER_DECODE_CTYPE_INT32(unsigned char *buf, CTYPE_INT32 *value); 38 | int BER_DECODE_CTYPE_INT16U(unsigned char *buf, CTYPE_INT16U *value); 39 | int BER_DECODE_CTYPE_INT32U(unsigned char *buf, CTYPE_INT32U *value); 40 | int BER_DECODE_CTYPE_VISSTRING255(unsigned char *buf, CTYPE_VISSTRING255 *value); 41 | int BER_DECODE_CTYPE_BOOLEAN(unsigned char *buf, CTYPE_BOOLEAN *value); 42 | int BER_DECODE_CTYPE_DBPOS(unsigned char *buf, CTYPE_DBPOS *value); 43 | 44 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 45 | } 46 | #endif 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /c/src/gseEncode.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2014 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef GSE_ENCODE_H 22 | #define GSE_ENCODE_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | #include "gseEncodeBasic.h" 29 | #include "gsePacketData.h" 30 | 31 | 32 | 33 | 34 | int ber_get_length_E1Q1SB1_C1_Performance(); 35 | int ber_encode_E1Q1SB1_C1_Performance(unsigned char *buf); 36 | int ber_encode_control_E1Q1SB1_C1_Performance(unsigned char *buf); 37 | int ber_get_length_E1Q1SB1_C1_Positions(); 38 | int ber_encode_E1Q1SB1_C1_Positions(unsigned char *buf); 39 | int ber_encode_control_E1Q1SB1_C1_ItlPositions(unsigned char *buf); 40 | int ber_encode_control_E1Q1SB1_C1_AnotherPositions(unsigned char *buf); 41 | int ber_get_length_E1Q1SB1_C1_Measurands(); 42 | int ber_encode_E1Q1SB1_C1_Measurands(unsigned char *buf); 43 | int ber_get_length_E1Q1SB1_C1_smv(); 44 | int ber_encode_E1Q1SB1_C1_smv(unsigned char *buf); 45 | int ber_get_length_E1Q1SB1_C1_rmxu(); 46 | int ber_encode_E1Q1SB1_C1_rmxu(unsigned char *buf); 47 | int ber_get_length_D1Q1SB4_C1_SyckResult(); 48 | int ber_encode_D1Q1SB4_C1_SyckResult(unsigned char *buf); 49 | int ber_encode_control_D1Q1SB4_C1_SyckResult(unsigned char *buf); 50 | int ber_get_length_D1Q1SB4_C1_MMXUResult(); 51 | int ber_encode_D1Q1SB4_C1_MMXUResult(unsigned char *buf); 52 | int ber_encode_control_D1Q1SB4_C1_MMXUResult(unsigned char *buf); 53 | int gseEncodePacket(struct gseControl *gseControl, unsigned char *buf); 54 | 55 | 56 | 57 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 58 | } 59 | #endif 60 | 61 | #endif 62 | -------------------------------------------------------------------------------- /c/src/gseEncodeBasic.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef GSE_ENCODE_BASIC_H 22 | #define GSE_ENCODE_BASIC_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | #include "datatypes.h" 29 | #include "encodePacket.h" 30 | 31 | int BER_ENCODE_CTYPE_FLOAT32(unsigned char *buf, CTYPE_FLOAT32 *value); 32 | int BER_ENCODE_CTYPE_FLOAT64(unsigned char *buf, CTYPE_FLOAT64 *value); 33 | int BER_ENCODE_CTYPE_QUALITY(unsigned char *buf, CTYPE_QUALITY *value); 34 | int BER_ENCODE_CTYPE_TIMESTAMP(unsigned char *buf, CTYPE_TIMESTAMP *value); 35 | int BER_ENCODE_CTYPE_ENUM(unsigned char *buf, CTYPE_ENUM *value); 36 | int BER_ENCODE_CTYPE_INT8(unsigned char *buf, CTYPE_INT8 *value); 37 | int BER_ENCODE_CTYPE_INT16(unsigned char *buf, CTYPE_INT16 *value); 38 | int BER_ENCODE_CTYPE_INT32(unsigned char *buf, CTYPE_INT32 *value); 39 | int BER_ENCODE_CTYPE_INT16U(unsigned char *buf, CTYPE_INT16U *value); 40 | int BER_ENCODE_CTYPE_INT32U(unsigned char *buf, CTYPE_INT32U *value); 41 | int BER_ENCODE_CTYPE_VISSTRING255(unsigned char *buf, CTYPE_VISSTRING255 *value); 42 | int BER_ENCODE_CTYPE_BOOLEAN(unsigned char *buf, CTYPE_BOOLEAN *value); 43 | int BER_ENCODE_CTYPE_DBPOS(unsigned char *buf, CTYPE_DBPOS *value); 44 | 45 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 46 | } 47 | #endif 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /c/src/gsePacketData.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef GSE_PACKET_DATA_H 22 | #define GSE_PACKET_DATA_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | #include 29 | #include 30 | #include "ctypes.h" 31 | 32 | struct gseControl { 33 | struct ethHeaderData ethHeaderData; 34 | unsigned char *gocbRef; // /LLN0$ e.g. "C1/LLN0$ItlPositions" 35 | CTYPE_INT32U timeAllowedToLive; 36 | unsigned char *datSet; // /LLN0$ e.g. "E1Q1SB1C1/LLN0$Positions" 37 | unsigned char *goID; // optional 38 | CTYPE_TIMESTAMP t; 39 | CTYPE_INT32U stNum; 40 | CTYPE_INT32U sqNum; 41 | CTYPE_BOOLEAN test; 42 | CTYPE_INT32U confRev; 43 | CTYPE_BOOLEAN ndsCom; 44 | CTYPE_INT32U numDatSetEntries; 45 | CTYPE_INT32U minTime; // stored in milliseconds 46 | CTYPE_INT32U maxTime; // stored in milliseconds 47 | int (*encodeDataset)(unsigned char *buf); // function pointer to dataset-specific encoder 48 | int (*getDatasetLength)(); // function pointer to dataset-specific getLength function 49 | int (*send)(unsigned char *buf, CTYPE_BOOLEAN statusChange, CTYPE_INT32U timeAllowedToLive); // function pointer to send GSE packet 50 | }; 51 | 52 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 53 | } 54 | #endif 55 | 56 | #endif 57 | -------------------------------------------------------------------------------- /c/src/iec61850.c: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #include "iec61850.h" 22 | 23 | void initialise_iec61850() { 24 | init_datatypes(); 25 | init_sv(); 26 | init_gse(); 27 | 28 | #if JSON_INTERFACE == 1 29 | init_data_model_index(); 30 | #endif 31 | } 32 | -------------------------------------------------------------------------------- /c/src/iec61850.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef IEC61850_H 22 | #define IEC61850_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | 29 | #include "ied.h" 30 | #include "sv.h" 31 | #include "gse.h" 32 | 33 | #if JSON_INTERFACE == 1 34 | #include "json\dataModelIndex.h" 35 | #endif 36 | 37 | void initialise_iec61850(); 38 | 39 | 40 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 41 | } 42 | #endif 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /c/src/ied.c: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2014 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #include "ied.h" 22 | #include "datatypes.h" 23 | 24 | 25 | struct E1Q1SB1_t E1Q1SB1; 26 | struct E1Q1BP2_t E1Q1BP2; 27 | struct E1Q1BP3_t E1Q1BP3; 28 | struct E1Q2SB1_t E1Q2SB1; 29 | struct E1Q3SB1_t E1Q3SB1; 30 | struct E1Q3KA1_t E1Q3KA1; 31 | struct E1Q3KA2_t E1Q3KA2; 32 | struct E1Q3KA3_t E1Q3KA3; 33 | struct D1Q1SB1_t D1Q1SB1; 34 | struct D1Q1BP2_t D1Q1BP2; 35 | struct D1Q1BP3_t D1Q1BP3; 36 | struct D1Q1SB4_t D1Q1SB4; 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /c/src/interface.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef INTERFACE_H_ 22 | #define INTERFACE_H_ 23 | 24 | #include "iec61850.h" 25 | #include "interfaceSendPacket.h" 26 | 27 | //#if HIGH_LEVEL_INTERFACE == 1 28 | 29 | #ifdef _WIN32 30 | #define WPCAP 31 | #define HAVE_REMOTE 32 | #define WIN32_LEAN_AND_MEAN 33 | #endif 34 | #include 35 | 36 | extern unsigned char bufIn[2048]; 37 | extern unsigned char bufOut[2048]; 38 | 39 | extern pcap_t *fp; 40 | 41 | void start(); 42 | void stop(); 43 | int readPacket(); 44 | int readPacketTimeout(); 45 | 46 | //#endif 47 | 48 | #endif /* INTERFACE_H_ */ 49 | -------------------------------------------------------------------------------- /c/src/interfaceSendPacket.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2014 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef INTERFACE_SEND_PACKET_H 22 | #define INTERFACE_SEND_PACKET_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | #include "iec61850.h" 29 | #include "interface.h" 30 | 31 | 32 | 33 | 34 | int interface_sv_update_E1Q1SB1_C1_PerformanceSV(); 35 | int interface_gse_send_E1Q1SB1_C1_Performance(int statusChange, int timeAllowedToLive); 36 | int interface_gse_send_E1Q1SB1_C1_ItlPositions(int statusChange, int timeAllowedToLive); 37 | int interface_gse_send_E1Q1SB1_C1_AnotherPositions(int statusChange, int timeAllowedToLive); 38 | int interface_sv_update_E1Q1SB1_C1_Volt(); 39 | int interface_sv_update_E1Q1SB1_C1_rmxuCB(); 40 | int interface_gse_send_D1Q1SB4_C1_SyckResult(int statusChange, int timeAllowedToLive); 41 | int interface_gse_send_D1Q1SB4_C1_MMXUResult(int statusChange, int timeAllowedToLive); 42 | 43 | 44 | 45 | 46 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 47 | } 48 | #endif 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /c/src/rapid61850.i: -------------------------------------------------------------------------------- 1 | // rapid61850.i 2 | %module rapid61850 3 | %{ 4 | #include "interface.h" 5 | #include "interfaceSendPacket.h" 6 | #include "ied.h" 7 | 8 | %} 9 | 10 | %include "ctypes.h" 11 | %include "svPacketData.h" 12 | %include "gsePacketData.h" 13 | %include "datatypes.h" 14 | %include "sv.h" 15 | %include "gse.h" 16 | %include "interfaceSendPacket.h" 17 | %include "interface.h" 18 | %include "ied.h" 19 | -------------------------------------------------------------------------------- /c/src/sv.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2014 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef SV_H 22 | #define SV_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | #include "svEncode.h" 29 | #include "svDecode.h" 30 | #include "svPacketData.h" 31 | 32 | 33 | 34 | 35 | void init_sv(); 36 | int sv_update_E1Q1SB1_C1_PerformanceSV(unsigned char *buf); 37 | int sv_update_E1Q1SB1_C1_Volt(unsigned char *buf); 38 | int sv_update_E1Q1SB1_C1_rmxuCB(unsigned char *buf); 39 | void svDecode(unsigned char *buf, int len); 40 | 41 | 42 | 43 | 44 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 45 | } 46 | #endif 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /c/src/svDecode.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2014 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef SV_DECODE_H 22 | #define SV_DECODE_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | #include "svPacketData.h" 29 | 30 | 31 | 32 | 33 | int decode_E1Q1SB1_C1_Performance(unsigned char *buf, CTYPE_INT16U smpCnt, struct E1Q1SB1_C1_Performance *E1Q1SB1_C1_Performance); 34 | int decode_E1Q1SB1_C1_Positions(unsigned char *buf, CTYPE_INT16U smpCnt, struct E1Q1SB1_C1_Positions *E1Q1SB1_C1_Positions); 35 | int decode_E1Q1SB1_C1_Measurands(unsigned char *buf, CTYPE_INT16U smpCnt, struct E1Q1SB1_C1_Measurands *E1Q1SB1_C1_Measurands); 36 | int decode_E1Q1SB1_C1_smv(unsigned char *buf, CTYPE_INT16U smpCnt, struct E1Q1SB1_C1_smv *E1Q1SB1_C1_smv); 37 | int decode_E1Q1SB1_C1_rmxu(unsigned char *buf, CTYPE_INT16U smpCnt, struct E1Q1SB1_C1_rmxu *E1Q1SB1_C1_rmxu); 38 | int decode_D1Q1SB4_C1_SyckResult(unsigned char *buf, CTYPE_INT16U smpCnt, struct D1Q1SB4_C1_SyckResult *D1Q1SB4_C1_SyckResult); 39 | int decode_D1Q1SB4_C1_MMXUResult(unsigned char *buf, CTYPE_INT16U smpCnt, struct D1Q1SB4_C1_MMXUResult *D1Q1SB4_C1_MMXUResult); 40 | 41 | void svDecodeDataset(unsigned char *dataset, int datasetLength, int ASDU, unsigned char *svID, int svIDLength, CTYPE_INT16U smpCnt); 42 | 43 | 44 | 45 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 46 | } 47 | #endif 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /c/src/svDecodeBasic.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef SV_DECODE_BASIC_H 22 | #define SV_DECODE_BASIC_H 23 | 24 | #include "datatypes.h" 25 | 26 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 27 | extern "C" { 28 | #endif 29 | 30 | int DECODE_CTYPE_FLOAT32(unsigned char *buf, CTYPE_FLOAT32 *value); 31 | int DECODE_CTYPE_FLOAT64(unsigned char *buf, CTYPE_FLOAT64 *value); 32 | int DECODE_CTYPE_QUALITY(unsigned char *buf, CTYPE_QUALITY *value); 33 | int DECODE_CTYPE_TIMESTAMP(unsigned char *buf, CTYPE_TIMESTAMP *value); 34 | int DECODE_CTYPE_ENUM(unsigned char *buf, CTYPE_ENUM *value); 35 | int DECODE_CTYPE_INT8(unsigned char *buf, CTYPE_INT8 *value) ; 36 | int DECODE_CTYPE_INT16(unsigned char *buf, CTYPE_INT16 *value); 37 | int DECODE_CTYPE_INT32(unsigned char *buf, CTYPE_INT32 *value); 38 | int DECODE_CTYPE_INT16U(unsigned char *buf, CTYPE_INT16U *value); 39 | int DECODE_CTYPE_INT32U(unsigned char *buf, CTYPE_INT32U *value); 40 | int DECODE_CTYPE_VISSTRING255(unsigned char *buf, CTYPE_VISSTRING255 *value); 41 | int DECODE_CTYPE_BOOLEAN(unsigned char *buf, CTYPE_BOOLEAN *value); 42 | int DECODE_CTYPE_DBPOS(unsigned char *buf, CTYPE_DBPOS *value); 43 | 44 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 45 | } 46 | #endif 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /c/src/svEncode.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2014 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef SV_ENCODE_H 22 | #define SV_ENCODE_H 23 | 24 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 25 | extern "C" { 26 | #endif 27 | 28 | #include "svEncodeBasic.h" 29 | #include "svPacketData.h" 30 | 31 | 32 | 33 | 34 | int encode_E1Q1SB1_C1_Performance(unsigned char *buf); 35 | int encode_control_E1Q1SB1_C1_PerformanceSV(unsigned char *buf); 36 | int encode_E1Q1SB1_C1_Positions(unsigned char *buf); 37 | int encode_E1Q1SB1_C1_Measurands(unsigned char *buf); 38 | int encode_E1Q1SB1_C1_smv(unsigned char *buf); 39 | int encode_control_E1Q1SB1_C1_Volt(unsigned char *buf); 40 | int encode_E1Q1SB1_C1_rmxu(unsigned char *buf); 41 | int encode_control_E1Q1SB1_C1_rmxuCB(unsigned char *buf); 42 | int encode_D1Q1SB4_C1_SyckResult(unsigned char *buf); 43 | int encode_D1Q1SB4_C1_MMXUResult(unsigned char *buf); 44 | 45 | int svEncodePacket(struct svControl *svControl, unsigned char *buf); 46 | 47 | 48 | 49 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 50 | } 51 | #endif 52 | 53 | #endif 54 | -------------------------------------------------------------------------------- /c/src/svEncodeBasic.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef SV_ENCODE_BASIC_H 22 | #define SV_ENCODE_BASIC_H 23 | 24 | #include "datatypes.h" 25 | 26 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 27 | extern "C" { 28 | #endif 29 | 30 | int ENCODE_CTYPE_FLOAT32(unsigned char *buf, CTYPE_FLOAT32 *value); 31 | int ENCODE_CTYPE_FLOAT64(unsigned char *buf, CTYPE_FLOAT64 *value); 32 | int ENCODE_CTYPE_QUALITY(unsigned char *buf, CTYPE_QUALITY *value); 33 | int ENCODE_CTYPE_TIMESTAMP(unsigned char *buf, CTYPE_TIMESTAMP *value); 34 | int ENCODE_CTYPE_ENUM(unsigned char *buf, CTYPE_ENUM *value); 35 | int ENCODE_CTYPE_INT8(unsigned char *buf, CTYPE_INT8 *value); 36 | int ENCODE_CTYPE_INT16(unsigned char *buf, CTYPE_INT16 *value); 37 | int ENCODE_CTYPE_INT32(unsigned char *buf, CTYPE_INT32 *value); 38 | int ENCODE_CTYPE_INT16U(unsigned char *buf, CTYPE_INT16U *value); 39 | int ENCODE_CTYPE_INT32U(unsigned char *buf, CTYPE_INT32U *value); 40 | int ENCODE_CTYPE_VISSTRING255(unsigned char *buf, CTYPE_VISSTRING255 *value); 41 | int ENCODE_CTYPE_BOOLEAN(unsigned char *buf, CTYPE_BOOLEAN *value); 42 | int ENCODE_CTYPE_DBPOS(unsigned char *buf, CTYPE_DBPOS *value); 43 | 44 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 45 | } 46 | #endif 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /c/src/svPacketData.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | #ifndef SV_PACKET_DATA_H 22 | #define SV_PACKET_DATA_H 23 | 24 | #include 25 | #include 26 | #include "ctypes.h" 27 | 28 | #define SV_USE_VLAN 1 // set to "1" to insert VLAN tag into SV packets 29 | #define SV_OPTIONAL_SUPPORTED 0 // set to "1" to enable output of optional items in SV packets (Wireshark does not support these) 30 | #define SV_FIXED_SMPCNT_CONFREV_SIZE 1 // set to "1" to force smpCnt and confRev field to be fixed size, rather than BER encoded 31 | 32 | #define SV_MAX_DATASET_SIZE 512//1024 33 | 34 | struct ASDU { 35 | unsigned char *svID; 36 | unsigned char *datset; // optional 37 | CTYPE_INT16U smpCnt; 38 | CTYPE_INT32U confRev; 39 | //struct UtcTime refrTm; // optional 40 | CTYPE_TIMESTAMP refrTm; // optional 41 | CTYPE_BOOLEAN smpSynch; 42 | CTYPE_INT16U smpRate; // optional 43 | int showDatset; 44 | int showRefrTm; 45 | int showSmpRate; 46 | struct data { 47 | unsigned char data[SV_MAX_DATASET_SIZE]; 48 | CTYPE_INT32U size; 49 | } data; 50 | }; 51 | 52 | struct svControl { 53 | struct ethHeaderData ethHeaderData; 54 | short noASDU; 55 | struct ASDU *ASDU; 56 | CTYPE_INT16U ASDUCount; // stores present ASDU count; transmit a packet when equals "noASDU" 57 | CTYPE_INT16U sampleCountMaster; 58 | int (*update)(unsigned char *buf); // function pointer to save next ASDU, and possible send SV packet 59 | }; 60 | 61 | #endif 62 | -------------------------------------------------------------------------------- /emf/model/SCL.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /emf/model/SCL_BaseSimpleTypes.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /emf/model/SCL_Coordinates.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 6 | This schema is for infomational purposes only, and is not normative! 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /emf/model/SCL_Maintenance.xsd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | COPYRIGHT IEC, 2005. Version 1.4. Release 2005/09/11. 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/sc/lcoordinates/LcoordinatesFactory.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.sc.lcoordinates; 8 | 9 | import org.eclipse.emf.ecore.EFactory; 10 | 11 | /** 12 | * 13 | * The Factory for the model. 14 | * It provides a create method for each non-abstract class of the model. 15 | * 16 | * @see ch.iec._61850._2006.sc.lcoordinates.LcoordinatesPackage 17 | * @generated 18 | */ 19 | public interface LcoordinatesFactory extends EFactory { 20 | /** 21 | * The singleton instance of the factory. 22 | * 23 | * 24 | * @generated 25 | */ 26 | LcoordinatesFactory eINSTANCE = ch.iec._61850._2006.sc.lcoordinates.impl.LcoordinatesFactoryImpl.init(); 27 | 28 | /** 29 | * Returns a new object of class 'Coord Type'. 30 | * 31 | * 32 | * @return a new object of class 'Coord Type'. 33 | * @generated 34 | */ 35 | CoordType createCoordType(); 36 | 37 | /** 38 | * Returns a new object of class 'Document Root'. 39 | * 40 | * 41 | * @return a new object of class 'Document Root'. 42 | * @generated 43 | */ 44 | DocumentRoot createDocumentRoot(); 45 | 46 | /** 47 | * Returns the package supported by this factory. 48 | * 49 | * 50 | * @return the package supported by this factory. 51 | * @generated 52 | */ 53 | LcoordinatesPackage getLcoordinatesPackage(); 54 | 55 | } //LcoordinatesFactory 56 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/sc/lcoordinates/util/LcoordinatesResourceFactoryImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.sc.lcoordinates.util; 8 | 9 | import org.eclipse.emf.common.util.URI; 10 | 11 | import org.eclipse.emf.ecore.resource.Resource; 12 | 13 | import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl; 14 | 15 | import org.eclipse.emf.ecore.xmi.XMLResource; 16 | 17 | /** 18 | * 19 | * The Resource Factory associated with the package. 20 | * 21 | * @see ch.iec._61850._2006.sc.lcoordinates.util.LcoordinatesResourceImpl 22 | * @generated 23 | */ 24 | public class LcoordinatesResourceFactoryImpl extends ResourceFactoryImpl { 25 | /** 26 | * Creates an instance of the resource factory. 27 | * 28 | * 29 | * @generated 30 | */ 31 | public LcoordinatesResourceFactoryImpl() { 32 | super(); 33 | } 34 | 35 | /** 36 | * Creates an instance of the resource. 37 | * 38 | * 39 | * @generated 40 | */ 41 | @Override 42 | public Resource createResource(URI uri) { 43 | XMLResource result = new LcoordinatesResourceImpl(uri); 44 | result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE); 45 | result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE); 46 | 47 | result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE); 48 | 49 | result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); 50 | result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); 51 | 52 | result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE); 53 | return result; 54 | } 55 | 56 | } //LcoordinatesResourceFactoryImpl 57 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/sc/lcoordinates/util/LcoordinatesResourceImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.sc.lcoordinates.util; 8 | 9 | import org.eclipse.emf.common.util.URI; 10 | 11 | import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl; 12 | 13 | /** 14 | * 15 | * The Resource associated with the package. 16 | * 17 | * @see ch.iec._61850._2006.sc.lcoordinates.util.LcoordinatesResourceFactoryImpl 18 | * @generated 19 | */ 20 | public class LcoordinatesResourceImpl extends XMLResourceImpl { 21 | /** 22 | * Creates an instance of the resource. 23 | * 24 | * 25 | * @param uri the URI of the new resource. 26 | * @generated 27 | */ 28 | public LcoordinatesResourceImpl(URI uri) { 29 | super(uri); 30 | } 31 | 32 | } //LcoordinatesResourceImpl 33 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/sc/lcoordinates/util/LcoordinatesXMLProcessor.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.sc.lcoordinates.util; 8 | 9 | import ch.iec._61850._2006.sc.lcoordinates.LcoordinatesPackage; 10 | 11 | import java.util.Map; 12 | 13 | import org.eclipse.emf.ecore.EPackage; 14 | 15 | import org.eclipse.emf.ecore.resource.Resource; 16 | 17 | import org.eclipse.emf.ecore.xmi.util.XMLProcessor; 18 | 19 | /** 20 | * This class contains helper methods to serialize and deserialize XML documents 21 | * 22 | * 23 | * @generated 24 | */ 25 | public class LcoordinatesXMLProcessor extends XMLProcessor { 26 | 27 | /** 28 | * Public constructor to instantiate the helper. 29 | * 30 | * 31 | * @generated 32 | */ 33 | public LcoordinatesXMLProcessor() { 34 | super((EPackage.Registry.INSTANCE)); 35 | LcoordinatesPackage.eINSTANCE.eClass(); 36 | } 37 | 38 | /** 39 | * Register for "*" and "xml" file extensions the LcoordinatesResourceFactoryImpl factory. 40 | * 41 | * 42 | * @generated 43 | */ 44 | @Override 45 | protected Map getRegistrations() { 46 | if (registrations == null) { 47 | super.getRegistrations(); 48 | registrations.put(XML_EXTENSION, new LcoordinatesResourceFactoryImpl()); 49 | registrations.put(STAR_EXTENSION, new LcoordinatesResourceFactoryImpl()); 50 | } 51 | return registrations; 52 | } 53 | 54 | } //LcoordinatesXMLProcessor 55 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/sc/lmaintenance/LmaintenanceFactory.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.sc.lmaintenance; 8 | 9 | import org.eclipse.emf.ecore.EFactory; 10 | 11 | /** 12 | * 13 | * The Factory for the model. 14 | * It provides a create method for each non-abstract class of the model. 15 | * 16 | * @see ch.iec._61850._2006.sc.lmaintenance.LmaintenancePackage 17 | * @generated 18 | */ 19 | public interface LmaintenanceFactory extends EFactory { 20 | /** 21 | * The singleton instance of the factory. 22 | * 23 | * 24 | * @generated 25 | */ 26 | LmaintenanceFactory eINSTANCE = ch.iec._61850._2006.sc.lmaintenance.impl.LmaintenanceFactoryImpl.init(); 27 | 28 | /** 29 | * Returns a new object of class 'Cond Desc Type'. 30 | * 31 | * 32 | * @return a new object of class 'Cond Desc Type'. 33 | * @generated 34 | */ 35 | CondDescType createCondDescType(); 36 | 37 | /** 38 | * Returns a new object of class 'Document Root'. 39 | * 40 | * 41 | * @return a new object of class 'Document Root'. 42 | * @generated 43 | */ 44 | DocumentRoot createDocumentRoot(); 45 | 46 | /** 47 | * Returns the package supported by this factory. 48 | * 49 | * 50 | * @return the package supported by this factory. 51 | * @generated 52 | */ 53 | LmaintenancePackage getLmaintenancePackage(); 54 | 55 | } //LmaintenanceFactory 56 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/sc/lmaintenance/util/LmaintenanceResourceFactoryImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.sc.lmaintenance.util; 8 | 9 | import org.eclipse.emf.common.util.URI; 10 | 11 | import org.eclipse.emf.ecore.resource.Resource; 12 | 13 | import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl; 14 | 15 | import org.eclipse.emf.ecore.xmi.XMLResource; 16 | 17 | /** 18 | * 19 | * The Resource Factory associated with the package. 20 | * 21 | * @see ch.iec._61850._2006.sc.lmaintenance.util.LmaintenanceResourceImpl 22 | * @generated 23 | */ 24 | public class LmaintenanceResourceFactoryImpl extends ResourceFactoryImpl { 25 | /** 26 | * Creates an instance of the resource factory. 27 | * 28 | * 29 | * @generated 30 | */ 31 | public LmaintenanceResourceFactoryImpl() { 32 | super(); 33 | } 34 | 35 | /** 36 | * Creates an instance of the resource. 37 | * 38 | * 39 | * @generated 40 | */ 41 | @Override 42 | public Resource createResource(URI uri) { 43 | XMLResource result = new LmaintenanceResourceImpl(uri); 44 | result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE); 45 | result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE); 46 | 47 | result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE); 48 | 49 | result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); 50 | result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); 51 | 52 | result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE); 53 | return result; 54 | } 55 | 56 | } //LmaintenanceResourceFactoryImpl 57 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/sc/lmaintenance/util/LmaintenanceResourceImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.sc.lmaintenance.util; 8 | 9 | import org.eclipse.emf.common.util.URI; 10 | 11 | import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl; 12 | 13 | /** 14 | * 15 | * The Resource associated with the package. 16 | * 17 | * @see ch.iec._61850._2006.sc.lmaintenance.util.LmaintenanceResourceFactoryImpl 18 | * @generated 19 | */ 20 | public class LmaintenanceResourceImpl extends XMLResourceImpl { 21 | /** 22 | * Creates an instance of the resource. 23 | * 24 | * 25 | * @param uri the URI of the new resource. 26 | * @generated 27 | */ 28 | public LmaintenanceResourceImpl(URI uri) { 29 | super(uri); 30 | } 31 | 32 | } //LmaintenanceResourceImpl 33 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/sc/lmaintenance/util/LmaintenanceXMLProcessor.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.sc.lmaintenance.util; 8 | 9 | import ch.iec._61850._2006.sc.lmaintenance.LmaintenancePackage; 10 | 11 | import java.util.Map; 12 | 13 | import org.eclipse.emf.ecore.EPackage; 14 | 15 | import org.eclipse.emf.ecore.resource.Resource; 16 | 17 | import org.eclipse.emf.ecore.xmi.util.XMLProcessor; 18 | 19 | /** 20 | * This class contains helper methods to serialize and deserialize XML documents 21 | * 22 | * 23 | * @generated 24 | */ 25 | public class LmaintenanceXMLProcessor extends XMLProcessor { 26 | 27 | /** 28 | * Public constructor to instantiate the helper. 29 | * 30 | * 31 | * @generated 32 | */ 33 | public LmaintenanceXMLProcessor() { 34 | super((EPackage.Registry.INSTANCE)); 35 | LmaintenancePackage.eINSTANCE.eClass(); 36 | } 37 | 38 | /** 39 | * Register for "*" and "xml" file extensions the LmaintenanceResourceFactoryImpl factory. 40 | * 41 | * 42 | * @generated 43 | */ 44 | @Override 45 | protected Map getRegistrations() { 46 | if (registrations == null) { 47 | super.getRegistrations(); 48 | registrations.put(XML_EXTENSION, new LmaintenanceResourceFactoryImpl()); 49 | registrations.put(STAR_EXTENSION, new LmaintenanceResourceFactoryImpl()); 50 | } 51 | return registrations; 52 | } 53 | 54 | } //LmaintenanceXMLProcessor 55 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/HistoryType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | import org.eclipse.emf.ecore.EObject; 12 | 13 | /** 14 | * 15 | * A representation of the model object 'History Type'. 16 | * 17 | * 18 | *

19 | * The following features are supported: 20 | *

    21 | *
  • {@link ch.iec._61850._2006.scl.HistoryType#getHitem Hitem}
  • 22 | *
23 | *

24 | * 25 | * @see ch.iec._61850._2006.scl.SclPackage#getHistoryType() 26 | * @model extendedMetaData="name='History_._type' kind='elementOnly'" 27 | * @generated 28 | */ 29 | public interface HistoryType extends EObject { 30 | /** 31 | * Returns the value of the 'Hitem' containment reference list. 32 | * The list contents are of type {@link ch.iec._61850._2006.scl.THitem}. 33 | * 34 | *

35 | * If the meaning of the 'Hitem' containment reference list isn't clear, 36 | * there really should be more of a description here... 37 | *

38 | * 39 | * @return the value of the 'Hitem' containment reference list. 40 | * @see ch.iec._61850._2006.scl.SclPackage#getHistoryType_Hitem() 41 | * @model containment="true" required="true" 42 | * extendedMetaData="kind='element' name='Hitem' namespace='##targetNamespace'" 43 | * @generated 44 | */ 45 | EList getHitem(); 46 | 47 | } // HistoryType 48 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/LN0Type.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'LN0 Type'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getLN0Type() 17 | * @model extendedMetaData="name='LN0_._type' kind='elementOnly'" 18 | * @generated 19 | */ 20 | public interface LN0Type extends TLN0 { 21 | } // LN0Type 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TAbstractConductingEquipment.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TAbstract Conducting Equipment'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TAbstractConductingEquipment#getTerminal Terminal}
  • 20 | *
  • {@link ch.iec._61850._2006.scl.TAbstractConductingEquipment#getSubEquipment Sub Equipment}
  • 21 | *
22 | *

23 | * 24 | * @see ch.iec._61850._2006.scl.SclPackage#getTAbstractConductingEquipment() 25 | * @model abstract="true" 26 | * extendedMetaData="name='tAbstractConductingEquipment' kind='elementOnly'" 27 | * @generated 28 | */ 29 | public interface TAbstractConductingEquipment extends TEquipment { 30 | /** 31 | * Returns the value of the 'Terminal' containment reference list. 32 | * The list contents are of type {@link ch.iec._61850._2006.scl.TTerminal}. 33 | * 34 | *

35 | * If the meaning of the 'Terminal' containment reference list isn't clear, 36 | * there really should be more of a description here... 37 | *

38 | * 39 | * @return the value of the 'Terminal' containment reference list. 40 | * @see ch.iec._61850._2006.scl.SclPackage#getTAbstractConductingEquipment_Terminal() 41 | * @model containment="true" upper="2" 42 | * extendedMetaData="kind='element' name='Terminal' namespace='##targetNamespace'" 43 | * @generated 44 | */ 45 | EList getTerminal(); 46 | 47 | /** 48 | * Returns the value of the 'Sub Equipment' containment reference list. 49 | * The list contents are of type {@link ch.iec._61850._2006.scl.TSubEquipment}. 50 | * 51 | *

52 | * If the meaning of the 'Sub Equipment' containment reference list isn't clear, 53 | * there really should be more of a description here... 54 | *

55 | * 56 | * @return the value of the 'Sub Equipment' containment reference list. 57 | * @see ch.iec._61850._2006.scl.SclPackage#getTAbstractConductingEquipment_SubEquipment() 58 | * @model containment="true" 59 | * extendedMetaData="kind='element' name='SubEquipment' namespace='##targetNamespace'" 60 | * @generated 61 | */ 62 | EList getSubEquipment(); 63 | 64 | } // TAbstractConductingEquipment 65 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TAccessControl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TAccess Control'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTAccessControl() 17 | * @model extendedMetaData="name='tAccessControl' kind='mixed'" 18 | * @generated 19 | */ 20 | public interface TAccessControl extends TAnyContentFromOtherNamespace { 21 | } // TAccessControl 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TAddress.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | import org.eclipse.emf.ecore.EObject; 12 | 13 | /** 14 | * 15 | * A representation of the model object 'TAddress'. 16 | * 17 | * 18 | *

19 | * The following features are supported: 20 | *

    21 | *
  • {@link ch.iec._61850._2006.scl.TAddress#getP P}
  • 22 | *
23 | *

24 | * 25 | * @see ch.iec._61850._2006.scl.SclPackage#getTAddress() 26 | * @model extendedMetaData="name='tAddress' kind='elementOnly'" 27 | * @generated 28 | */ 29 | public interface TAddress extends EObject { 30 | /** 31 | * Returns the value of the 'P' containment reference list. 32 | * The list contents are of type {@link ch.iec._61850._2006.scl.TP}. 33 | * 34 | *

35 | * If the meaning of the 'P' containment reference list isn't clear, 36 | * there really should be more of a description here... 37 | *

38 | * 39 | * @return the value of the 'P' containment reference list. 40 | * @see ch.iec._61850._2006.scl.SclPackage#getTAddress_P() 41 | * @model containment="true" required="true" 42 | * extendedMetaData="kind='element' name='P' namespace='##targetNamespace'" 43 | * @generated 44 | */ 45 | EList getP(); 46 | 47 | } // TAddress 48 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TBDA.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TBDA'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTBDA() 17 | * @model extendedMetaData="name='tBDA' kind='elementOnly'" 18 | * @generated 19 | */ 20 | public interface TBDA extends TAbstractDataAttribute { 21 | } // TBDA 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TBay.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TBay'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TBay#getConductingEquipment Conducting Equipment}
  • 20 | *
  • {@link ch.iec._61850._2006.scl.TBay#getConnectivityNode Connectivity Node}
  • 21 | *
22 | *

23 | * 24 | * @see ch.iec._61850._2006.scl.SclPackage#getTBay() 25 | * @model extendedMetaData="name='tBay' kind='elementOnly'" 26 | * @generated 27 | */ 28 | public interface TBay extends TEquipmentContainer { 29 | /** 30 | * Returns the value of the 'Conducting Equipment' containment reference list. 31 | * The list contents are of type {@link ch.iec._61850._2006.scl.TConductingEquipment}. 32 | * 33 | *

34 | * If the meaning of the 'Conducting Equipment' containment reference list isn't clear, 35 | * there really should be more of a description here... 36 | *

37 | * 38 | * @return the value of the 'Conducting Equipment' containment reference list. 39 | * @see ch.iec._61850._2006.scl.SclPackage#getTBay_ConductingEquipment() 40 | * @model containment="true" 41 | * extendedMetaData="kind='element' name='ConductingEquipment' namespace='##targetNamespace'" 42 | * @generated 43 | */ 44 | EList getConductingEquipment(); 45 | 46 | /** 47 | * Returns the value of the 'Connectivity Node' containment reference list. 48 | * The list contents are of type {@link ch.iec._61850._2006.scl.TConnectivityNode}. 49 | * 50 | *

51 | * If the meaning of the 'Connectivity Node' containment reference list isn't clear, 52 | * there really should be more of a description here... 53 | *

54 | * 55 | * @return the value of the 'Connectivity Node' containment reference list. 56 | * @see ch.iec._61850._2006.scl.SclPackage#getTBay_ConnectivityNode() 57 | * @model containment="true" 58 | * extendedMetaData="kind='element' name='ConnectivityNode' namespace='##targetNamespace'" 59 | * @generated 60 | */ 61 | EList getConnectivityNode(); 62 | 63 | } // TBay 64 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TBitRateInMbPerSec.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TBit Rate In Mb Per Sec'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTBitRateInMbPerSec() 17 | * @model extendedMetaData="name='tBitRateInMbPerSec' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TBitRateInMbPerSec extends TValueWithUnit { 21 | } // TBitRateInMbPerSec 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TCommunication.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TCommunication'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TCommunication#getSubNetwork Sub Network}
  • 20 | *
21 | *

22 | * 23 | * @see ch.iec._61850._2006.scl.SclPackage#getTCommunication() 24 | * @model extendedMetaData="name='tCommunication' kind='elementOnly'" 25 | * @generated 26 | */ 27 | public interface TCommunication extends TUnNaming { 28 | /** 29 | * Returns the value of the 'Sub Network' containment reference list. 30 | * The list contents are of type {@link ch.iec._61850._2006.scl.TSubNetwork}. 31 | * 32 | *

33 | * If the meaning of the 'Sub Network' containment reference list isn't clear, 34 | * there really should be more of a description here... 35 | *

36 | * 37 | * @return the value of the 'Sub Network' containment reference list. 38 | * @see ch.iec._61850._2006.scl.SclPackage#getTCommunication_SubNetwork() 39 | * @model containment="true" required="true" 40 | * extendedMetaData="kind='element' name='SubNetwork' namespace='##targetNamespace'" 41 | * @generated 42 | */ 43 | EList getSubNetwork(); 44 | 45 | } // TCommunication 46 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TConductingEquipment.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TConducting Equipment'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TConductingEquipment#getType Type}
  • 19 | *
20 | *

21 | * 22 | * @see ch.iec._61850._2006.scl.SclPackage#getTConductingEquipment() 23 | * @model extendedMetaData="name='tConductingEquipment' kind='elementOnly'" 24 | * @generated 25 | */ 26 | public interface TConductingEquipment extends TAbstractConductingEquipment { 27 | /** 28 | * Returns the value of the 'Type' attribute. 29 | * 30 | *

31 | * If the meaning of the 'Type' attribute isn't clear, 32 | * there really should be more of a description here... 33 | *

34 | * 35 | * @return the value of the 'Type' attribute. 36 | * @see #setType(Object) 37 | * @see ch.iec._61850._2006.scl.SclPackage#getTConductingEquipment_Type() 38 | * @model dataType="ch.iec._61850._2006.scl.TCommonConductingEquipmentEnum" required="true" 39 | * extendedMetaData="kind='attribute' name='type'" 40 | * @generated 41 | */ 42 | Object getType(); 43 | 44 | /** 45 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TConductingEquipment#getType Type}' attribute. 46 | * 47 | * 48 | * @param value the new value of the 'Type' attribute. 49 | * @see #getType() 50 | * @generated 51 | */ 52 | void setType(Object value); 53 | 54 | } // TConductingEquipment 55 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TConnectivityNode.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TConnectivity Node'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TConnectivityNode#getPathName Path Name}
  • 19 | *
20 | *

21 | * 22 | * @see ch.iec._61850._2006.scl.SclPackage#getTConnectivityNode() 23 | * @model extendedMetaData="name='tConnectivityNode' kind='elementOnly'" 24 | * @generated 25 | */ 26 | public interface TConnectivityNode extends TLNodeContainer { 27 | /** 28 | * Returns the value of the 'Path Name' attribute. 29 | * 30 | *

31 | * If the meaning of the 'Path Name' attribute isn't clear, 32 | * there really should be more of a description here... 33 | *

34 | * 35 | * @return the value of the 'Path Name' attribute. 36 | * @see #setPathName(String) 37 | * @see ch.iec._61850._2006.scl.SclPackage#getTConnectivityNode_PathName() 38 | * @model dataType="ch.iec._61850._2006.scl.TRef" required="true" 39 | * extendedMetaData="kind='attribute' name='pathName'" 40 | * @generated 41 | */ 42 | String getPathName(); 43 | 44 | /** 45 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TConnectivityNode#getPathName Path Name}' attribute. 46 | * 47 | * 48 | * @param value the new value of the 'Path Name' attribute. 49 | * @see #getPathName() 50 | * @generated 51 | */ 52 | void setPathName(String value); 53 | 54 | } // TConnectivityNode 55 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TControl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TControl'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TControl#getDatSet Dat Set}
  • 19 | *
20 | *

21 | * 22 | * @see ch.iec._61850._2006.scl.SclPackage#getTControl() 23 | * @model abstract="true" 24 | * extendedMetaData="name='tControl' kind='elementOnly'" 25 | * @generated 26 | */ 27 | public interface TControl extends TNaming { 28 | /** 29 | * Returns the value of the 'Dat Set' attribute. 30 | * 31 | *

32 | * If the meaning of the 'Dat Set' attribute isn't clear, 33 | * there really should be more of a description here... 34 | *

35 | * 36 | * @return the value of the 'Dat Set' attribute. 37 | * @see #setDatSet(String) 38 | * @see ch.iec._61850._2006.scl.SclPackage#getTControl_DatSet() 39 | * @model dataType="ch.iec._61850._2006.scl.TName" 40 | * extendedMetaData="kind='attribute' name='datSet'" 41 | * @generated 42 | */ 43 | String getDatSet(); 44 | 45 | /** 46 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TControl#getDatSet Dat Set}' attribute. 47 | * 48 | * 49 | * @param value the new value of the 'Dat Set' attribute. 50 | * @see #getDatSet() 51 | * @generated 52 | */ 53 | void setDatSet(String value); 54 | 55 | } // TControl 56 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TDurationInMilliSec.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TDuration In Milli Sec'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTDurationInMilliSec() 17 | * @model extendedMetaData="name='tDurationInMilliSec' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TDurationInMilliSec extends TValueWithUnit { 21 | } // TDurationInMilliSec 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TDurationInSec.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TDuration In Sec'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTDurationInSec() 17 | * @model extendedMetaData="name='tDurationInSec' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TDurationInSec extends TValueWithUnit { 21 | } // TDurationInSec 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TEnumType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TEnum Type'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TEnumType#getEnumVal Enum Val}
  • 20 | *
21 | *

22 | * 23 | * @see ch.iec._61850._2006.scl.SclPackage#getTEnumType() 24 | * @model extendedMetaData="name='tEnumType' kind='elementOnly'" 25 | * @generated 26 | */ 27 | public interface TEnumType extends TIDNaming { 28 | /** 29 | * Returns the value of the 'Enum Val' containment reference list. 30 | * The list contents are of type {@link ch.iec._61850._2006.scl.TEnumVal}. 31 | * 32 | *

33 | * If the meaning of the 'Enum Val' containment reference list isn't clear, 34 | * there really should be more of a description here... 35 | *

36 | * 37 | * @return the value of the 'Enum Val' containment reference list. 38 | * @see ch.iec._61850._2006.scl.SclPackage#getTEnumType_EnumVal() 39 | * @model containment="true" required="true" 40 | * extendedMetaData="kind='element' name='EnumVal' namespace='##targetNamespace'" 41 | * @generated 42 | */ 43 | EList getEnumVal(); 44 | 45 | } // TEnumType 46 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TEquipment.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TEquipment'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TEquipment#isVirtual Virtual}
  • 19 | *
20 | *

21 | * 22 | * @see ch.iec._61850._2006.scl.SclPackage#getTEquipment() 23 | * @model abstract="true" 24 | * extendedMetaData="name='tEquipment' kind='elementOnly'" 25 | * @generated 26 | */ 27 | public interface TEquipment extends TPowerSystemResource { 28 | /** 29 | * Returns the value of the 'Virtual' attribute. 30 | * The default value is "false". 31 | * 32 | *

33 | * If the meaning of the 'Virtual' attribute isn't clear, 34 | * there really should be more of a description here... 35 | *

36 | * 37 | * @return the value of the 'Virtual' attribute. 38 | * @see #isSetVirtual() 39 | * @see #unsetVirtual() 40 | * @see #setVirtual(boolean) 41 | * @see ch.iec._61850._2006.scl.SclPackage#getTEquipment_Virtual() 42 | * @model default="false" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean" 43 | * extendedMetaData="kind='attribute' name='virtual'" 44 | * @generated 45 | */ 46 | boolean isVirtual(); 47 | 48 | /** 49 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TEquipment#isVirtual Virtual}' attribute. 50 | * 51 | * 52 | * @param value the new value of the 'Virtual' attribute. 53 | * @see #isSetVirtual() 54 | * @see #unsetVirtual() 55 | * @see #isVirtual() 56 | * @generated 57 | */ 58 | void setVirtual(boolean value); 59 | 60 | /** 61 | * Unsets the value of the '{@link ch.iec._61850._2006.scl.TEquipment#isVirtual Virtual}' attribute. 62 | * 63 | * 64 | * @see #isSetVirtual() 65 | * @see #isVirtual() 66 | * @see #setVirtual(boolean) 67 | * @generated 68 | */ 69 | void unsetVirtual(); 70 | 71 | /** 72 | * Returns whether the value of the '{@link ch.iec._61850._2006.scl.TEquipment#isVirtual Virtual}' attribute is set. 73 | * 74 | * 75 | * @return whether the value of the 'Virtual' attribute is set. 76 | * @see #unsetVirtual() 77 | * @see #isVirtual() 78 | * @see #setVirtual(boolean) 79 | * @generated 80 | */ 81 | boolean isSetVirtual(); 82 | 83 | } // TEquipment 84 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TEquipmentContainer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TEquipment Container'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TEquipmentContainer#getPowerTransformer Power Transformer}
  • 20 | *
  • {@link ch.iec._61850._2006.scl.TEquipmentContainer#getGeneralEquipment General Equipment}
  • 21 | *
22 | *

23 | * 24 | * @see ch.iec._61850._2006.scl.SclPackage#getTEquipmentContainer() 25 | * @model abstract="true" 26 | * extendedMetaData="name='tEquipmentContainer' kind='elementOnly'" 27 | * @generated 28 | */ 29 | public interface TEquipmentContainer extends TPowerSystemResource { 30 | /** 31 | * Returns the value of the 'Power Transformer' containment reference list. 32 | * The list contents are of type {@link ch.iec._61850._2006.scl.TPowerTransformer}. 33 | * 34 | *

35 | * If the meaning of the 'Power Transformer' containment reference list isn't clear, 36 | * there really should be more of a description here... 37 | *

38 | * 39 | * @return the value of the 'Power Transformer' containment reference list. 40 | * @see ch.iec._61850._2006.scl.SclPackage#getTEquipmentContainer_PowerTransformer() 41 | * @model containment="true" 42 | * extendedMetaData="kind='element' name='PowerTransformer' namespace='##targetNamespace'" 43 | * @generated 44 | */ 45 | EList getPowerTransformer(); 46 | 47 | /** 48 | * Returns the value of the 'General Equipment' containment reference list. 49 | * The list contents are of type {@link ch.iec._61850._2006.scl.TGeneralEquipment}. 50 | * 51 | *

52 | * If the meaning of the 'General Equipment' containment reference list isn't clear, 53 | * there really should be more of a description here... 54 | *

55 | * 56 | * @return the value of the 'General Equipment' containment reference list. 57 | * @see ch.iec._61850._2006.scl.SclPackage#getTEquipmentContainer_GeneralEquipment() 58 | * @model containment="true" 59 | * extendedMetaData="kind='element' name='GeneralEquipment' namespace='##targetNamespace'" 60 | * @generated 61 | */ 62 | EList getGeneralEquipment(); 63 | 64 | } // TEquipmentContainer 65 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TFunction.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TFunction'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TFunction#getSubFunction Sub Function}
  • 20 | *
  • {@link ch.iec._61850._2006.scl.TFunction#getGeneralEquipment General Equipment}
  • 21 | *
22 | *

23 | * 24 | * @see ch.iec._61850._2006.scl.SclPackage#getTFunction() 25 | * @model extendedMetaData="name='tFunction' kind='elementOnly'" 26 | * @generated 27 | */ 28 | public interface TFunction extends TPowerSystemResource { 29 | /** 30 | * Returns the value of the 'Sub Function' containment reference list. 31 | * The list contents are of type {@link ch.iec._61850._2006.scl.TSubFunction}. 32 | * 33 | *

34 | * If the meaning of the 'Sub Function' containment reference list isn't clear, 35 | * there really should be more of a description here... 36 | *

37 | * 38 | * @return the value of the 'Sub Function' containment reference list. 39 | * @see ch.iec._61850._2006.scl.SclPackage#getTFunction_SubFunction() 40 | * @model containment="true" 41 | * extendedMetaData="kind='element' name='SubFunction' namespace='##targetNamespace'" 42 | * @generated 43 | */ 44 | EList getSubFunction(); 45 | 46 | /** 47 | * Returns the value of the 'General Equipment' containment reference list. 48 | * The list contents are of type {@link ch.iec._61850._2006.scl.TGeneralEquipment}. 49 | * 50 | *

51 | * If the meaning of the 'General Equipment' containment reference list isn't clear, 52 | * there really should be more of a description here... 53 | *

54 | * 55 | * @return the value of the 'General Equipment' containment reference list. 56 | * @see ch.iec._61850._2006.scl.SclPackage#getTFunction_GeneralEquipment() 57 | * @model containment="true" 58 | * extendedMetaData="kind='element' name='GeneralEquipment' namespace='##targetNamespace'" 59 | * @generated 60 | */ 61 | EList getGeneralEquipment(); 62 | 63 | } // TFunction 64 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TGeneralEquipment.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TGeneral Equipment'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TGeneralEquipment#getType Type}
  • 19 | *
20 | *

21 | * 22 | * @see ch.iec._61850._2006.scl.SclPackage#getTGeneralEquipment() 23 | * @model extendedMetaData="name='tGeneralEquipment' kind='elementOnly'" 24 | * @generated 25 | */ 26 | public interface TGeneralEquipment extends TEquipment { 27 | /** 28 | * Returns the value of the 'Type' attribute. 29 | * 30 | *

31 | * If the meaning of the 'Type' attribute isn't clear, 32 | * there really should be more of a description here... 33 | *

34 | * 35 | * @return the value of the 'Type' attribute. 36 | * @see #setType(Object) 37 | * @see ch.iec._61850._2006.scl.SclPackage#getTGeneralEquipment_Type() 38 | * @model dataType="ch.iec._61850._2006.scl.TGeneralEquipmentEnum" required="true" 39 | * extendedMetaData="kind='attribute' name='type'" 40 | * @generated 41 | */ 42 | Object getType(); 43 | 44 | /** 45 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TGeneralEquipment#getType Type}' attribute. 46 | * 47 | * 48 | * @param value the new value of the 'Type' attribute. 49 | * @see #getType() 50 | * @generated 51 | */ 52 | void setType(Object value); 53 | 54 | } // TGeneralEquipment 55 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TIDNaming.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TID Naming'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TIDNaming#getDesc Desc}
  • 19 | *
  • {@link ch.iec._61850._2006.scl.TIDNaming#getId Id}
  • 20 | *
21 | *

22 | * 23 | * @see ch.iec._61850._2006.scl.SclPackage#getTIDNaming() 24 | * @model abstract="true" 25 | * extendedMetaData="name='tIDNaming' kind='elementOnly'" 26 | * @generated 27 | */ 28 | public interface TIDNaming extends TBaseElement { 29 | /** 30 | * Returns the value of the 'Desc' attribute. 31 | * 32 | *

33 | * If the meaning of the 'Desc' attribute isn't clear, 34 | * there really should be more of a description here... 35 | *

36 | * 37 | * @return the value of the 'Desc' attribute. 38 | * @see #setDesc(String) 39 | * @see ch.iec._61850._2006.scl.SclPackage#getTIDNaming_Desc() 40 | * @model dataType="org.eclipse.emf.ecore.xml.type.NormalizedString" 41 | * extendedMetaData="kind='attribute' name='desc'" 42 | * @generated 43 | */ 44 | String getDesc(); 45 | 46 | /** 47 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TIDNaming#getDesc Desc}' attribute. 48 | * 49 | * 50 | * @param value the new value of the 'Desc' attribute. 51 | * @see #getDesc() 52 | * @generated 53 | */ 54 | void setDesc(String value); 55 | 56 | /** 57 | * Returns the value of the 'Id' attribute. 58 | * 59 | *

60 | * If the meaning of the 'Id' attribute isn't clear, 61 | * there really should be more of a description here... 62 | *

63 | * 64 | * @return the value of the 'Id' attribute. 65 | * @see #setId(String) 66 | * @see ch.iec._61850._2006.scl.SclPackage#getTIDNaming_Id() 67 | * @model dataType="ch.iec._61850._2006.scl.TName" required="true" 68 | * extendedMetaData="kind='attribute' name='id'" 69 | * @generated 70 | */ 71 | String getId(); 72 | 73 | /** 74 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TIDNaming#getId Id}' attribute. 75 | * 76 | * 77 | * @param value the new value of the 'Id' attribute. 78 | * @see #getId() 79 | * @generated 80 | */ 81 | void setId(String value); 82 | 83 | } // TIDNaming 84 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TInputs.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TInputs'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TInputs#getExtRef Ext Ref}
  • 20 | *
21 | *

22 | * 23 | * @see ch.iec._61850._2006.scl.SclPackage#getTInputs() 24 | * @model extendedMetaData="name='tInputs' kind='elementOnly'" 25 | * @generated 26 | */ 27 | public interface TInputs extends TUnNaming { 28 | /** 29 | * Returns the value of the 'Ext Ref' containment reference list. 30 | * The list contents are of type {@link ch.iec._61850._2006.scl.TExtRef}. 31 | * 32 | *

33 | * If the meaning of the 'Ext Ref' containment reference list isn't clear, 34 | * there really should be more of a description here... 35 | *

36 | * 37 | * @return the value of the 'Ext Ref' containment reference list. 38 | * @see ch.iec._61850._2006.scl.SclPackage#getTInputs_ExtRef() 39 | * @model containment="true" required="true" 40 | * extendedMetaData="kind='element' name='ExtRef' namespace='##targetNamespace'" 41 | * @generated 42 | */ 43 | EList getExtRef(); 44 | 45 | } // TInputs 46 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TLNodeContainer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TL Node Container'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TLNodeContainer#getLNode LNode}
  • 20 | *
21 | *

22 | * 23 | * @see ch.iec._61850._2006.scl.SclPackage#getTLNodeContainer() 24 | * @model abstract="true" 25 | * extendedMetaData="name='tLNodeContainer' kind='elementOnly'" 26 | * @generated 27 | */ 28 | public interface TLNodeContainer extends TNaming { 29 | /** 30 | * Returns the value of the 'LNode' containment reference list. 31 | * The list contents are of type {@link ch.iec._61850._2006.scl.TLNode}. 32 | * 33 | *

34 | * If the meaning of the 'LNode' containment reference list isn't clear, 35 | * there really should be more of a description here... 36 | *

37 | * 38 | * @return the value of the 'LNode' containment reference list. 39 | * @see ch.iec._61850._2006.scl.SclPackage#getTLNodeContainer_LNode() 40 | * @model containment="true" 41 | * extendedMetaData="kind='element' name='LNode' namespace='##targetNamespace'" 42 | * @generated 43 | */ 44 | EList getLNode(); 45 | 46 | } // TLNodeContainer 47 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TLog.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TLog'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTLog() 17 | * @model extendedMetaData="name='tLog' kind='mixed'" 18 | * @generated 19 | */ 20 | public interface TLog extends TAnyContentFromOtherNamespace { 21 | } // TLog 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TNaming.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TNaming'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TNaming#getDesc Desc}
  • 19 | *
  • {@link ch.iec._61850._2006.scl.TNaming#getName Name}
  • 20 | *
21 | *

22 | * 23 | * @see ch.iec._61850._2006.scl.SclPackage#getTNaming() 24 | * @model abstract="true" 25 | * extendedMetaData="name='tNaming' kind='elementOnly'" 26 | * @generated 27 | */ 28 | public interface TNaming extends TBaseElement { 29 | /** 30 | * Returns the value of the 'Desc' attribute. 31 | * 32 | *

33 | * If the meaning of the 'Desc' attribute isn't clear, 34 | * there really should be more of a description here... 35 | *

36 | * 37 | * @return the value of the 'Desc' attribute. 38 | * @see #setDesc(String) 39 | * @see ch.iec._61850._2006.scl.SclPackage#getTNaming_Desc() 40 | * @model dataType="org.eclipse.emf.ecore.xml.type.NormalizedString" 41 | * extendedMetaData="kind='attribute' name='desc'" 42 | * @generated 43 | */ 44 | String getDesc(); 45 | 46 | /** 47 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TNaming#getDesc Desc}' attribute. 48 | * 49 | * 50 | * @param value the new value of the 'Desc' attribute. 51 | * @see #getDesc() 52 | * @generated 53 | */ 54 | void setDesc(String value); 55 | 56 | /** 57 | * Returns the value of the 'Name' attribute. 58 | * 59 | *

60 | * If the meaning of the 'Name' attribute isn't clear, 61 | * there really should be more of a description here... 62 | *

63 | * 64 | * @return the value of the 'Name' attribute. 65 | * @see #setName(String) 66 | * @see ch.iec._61850._2006.scl.SclPackage#getTNaming_Name() 67 | * @model dataType="ch.iec._61850._2006.scl.TName" required="true" 68 | * extendedMetaData="kind='attribute' name='name'" 69 | * @generated 70 | */ 71 | String getName(); 72 | 73 | /** 74 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TNaming#getName Name}' attribute. 75 | * 76 | * 77 | * @param value the new value of the 'Name' attribute. 78 | * @see #getName() 79 | * @generated 80 | */ 81 | void setName(String value); 82 | 83 | } // TNaming 84 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TP.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.ecore.EObject; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TP'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TP#getValue Value}
  • 20 | *
  • {@link ch.iec._61850._2006.scl.TP#getType Type}
  • 21 | *
22 | *

23 | * 24 | * @see ch.iec._61850._2006.scl.SclPackage#getTP() 25 | * @model extendedMetaData="name='tP' kind='simple'" 26 | * @generated 27 | */ 28 | public interface TP extends EObject { 29 | /** 30 | * Returns the value of the 'Value' attribute. 31 | * 32 | *

33 | * If the meaning of the 'Value' attribute isn't clear, 34 | * there really should be more of a description here... 35 | *

36 | * 37 | * @return the value of the 'Value' attribute. 38 | * @see #setValue(String) 39 | * @see ch.iec._61850._2006.scl.SclPackage#getTP_Value() 40 | * @model dataType="ch.iec._61850._2006.scl.TPAddr" 41 | * extendedMetaData="name=':0' kind='simple'" 42 | * @generated 43 | */ 44 | String getValue(); 45 | 46 | /** 47 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TP#getValue Value}' attribute. 48 | * 49 | * 50 | * @param value the new value of the 'Value' attribute. 51 | * @see #getValue() 52 | * @generated 53 | */ 54 | void setValue(String value); 55 | 56 | /** 57 | * Returns the value of the 'Type' attribute. 58 | * 59 | *

60 | * If the meaning of the 'Type' attribute isn't clear, 61 | * there really should be more of a description here... 62 | *

63 | * 64 | * @return the value of the 'Type' attribute. 65 | * @see #setType(Object) 66 | * @see ch.iec._61850._2006.scl.SclPackage#getTP_Type() 67 | * @model dataType="ch.iec._61850._2006.scl.TPTypeEnum" required="true" 68 | * extendedMetaData="kind='attribute' name='type'" 69 | * @generated 70 | */ 71 | Object getType(); 72 | 73 | /** 74 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TP#getType Type}' attribute. 75 | * 76 | * 77 | * @param value the new value of the 'Type' attribute. 78 | * @see #getType() 79 | * @generated 80 | */ 81 | void setType(Object value); 82 | 83 | } // TP 84 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPAPPID.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPAPPID'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPAPPID() 17 | * @model extendedMetaData="name='tP_APPID' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPAPPID extends TP { 21 | } // TPAPPID 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPIP.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPIP'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPIP() 17 | * @model extendedMetaData="name='tP_IP' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPIP extends TP { 21 | } // TPIP 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPIPGATEWAY.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPIPGATEWAY'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPIPGATEWAY() 17 | * @model extendedMetaData="name='tP_IP-GATEWAY' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPIPGATEWAY extends TP { 21 | } // TPIPGATEWAY 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPIPSUBNET.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPIPSUBNET'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPIPSUBNET() 17 | * @model extendedMetaData="name='tP_IP-SUBNET' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPIPSUBNET extends TP { 21 | } // TPIPSUBNET 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPMACAddress.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPMAC Address'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPMACAddress() 17 | * @model extendedMetaData="name='tP_MAC-Address' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPMACAddress extends TP { 21 | } // TPMACAddress 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPOSIAEInvoke.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPOSIAE Invoke'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPOSIAEInvoke() 17 | * @model extendedMetaData="name='tP_OSI-AE-Invoke' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPOSIAEInvoke extends TP { 21 | } // TPOSIAEInvoke 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPOSIAEQualifier.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPOSIAE Qualifier'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPOSIAEQualifier() 17 | * @model extendedMetaData="name='tP_OSI-AE-Qualifier' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPOSIAEQualifier extends TP { 21 | } // TPOSIAEQualifier 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPOSIAPInvoke.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPOSIAP Invoke'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPOSIAPInvoke() 17 | * @model extendedMetaData="name='tP_OSI-AP-Invoke' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPOSIAPInvoke extends TP { 21 | } // TPOSIAPInvoke 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPOSIAPTitle.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPOSIAP Title'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPOSIAPTitle() 17 | * @model extendedMetaData="name='tP_OSI-AP-Title' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPOSIAPTitle extends TP { 21 | } // TPOSIAPTitle 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPOSINSAP.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPOSINSAP'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPOSINSAP() 17 | * @model extendedMetaData="name='tP_OSI-NSAP' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPOSINSAP extends TP { 21 | } // TPOSINSAP 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPOSIPSEL.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPOSIPSEL'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPOSIPSEL() 17 | * @model extendedMetaData="name='tP_OSI-PSEL' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPOSIPSEL extends TP { 21 | } // TPOSIPSEL 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPOSISSEL.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPOSISSEL'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPOSISSEL() 17 | * @model extendedMetaData="name='tP_OSI-SSEL' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPOSISSEL extends TP { 21 | } // TPOSISSEL 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPOSITSEL.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPOSITSEL'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPOSITSEL() 17 | * @model extendedMetaData="name='tP_OSI-TSEL' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPOSITSEL extends TP { 21 | } // TPOSITSEL 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPVLANID.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPVLANID'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPVLANID() 17 | * @model extendedMetaData="name='tP_VLAN-ID' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPVLANID extends TP { 21 | } // TPVLANID 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPVLANPRIORITY.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPVLANPRIORITY'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPVLANPRIORITY() 17 | * @model extendedMetaData="name='tP_VLAN-PRIORITY' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TPVLANPRIORITY extends TP { 21 | } // TPVLANPRIORITY 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPhysConn.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | import org.eclipse.emf.ecore.EObject; 12 | 13 | /** 14 | * 15 | * A representation of the model object 'TPhys Conn'. 16 | * 17 | * 18 | *

19 | * The following features are supported: 20 | *

    21 | *
  • {@link ch.iec._61850._2006.scl.TPhysConn#getP P}
  • 22 | *
  • {@link ch.iec._61850._2006.scl.TPhysConn#getType Type}
  • 23 | *
24 | *

25 | * 26 | * @see ch.iec._61850._2006.scl.SclPackage#getTPhysConn() 27 | * @model extendedMetaData="name='tPhysConn' kind='elementOnly'" 28 | * @generated 29 | */ 30 | public interface TPhysConn extends EObject { 31 | /** 32 | * Returns the value of the 'P' containment reference list. 33 | * The list contents are of type {@link ch.iec._61850._2006.scl.TP}. 34 | * 35 | *

36 | * If the meaning of the 'P' containment reference list isn't clear, 37 | * there really should be more of a description here... 38 | *

39 | * 40 | * @return the value of the 'P' containment reference list. 41 | * @see ch.iec._61850._2006.scl.SclPackage#getTPhysConn_P() 42 | * @model containment="true" 43 | * extendedMetaData="kind='element' name='P' namespace='##targetNamespace'" 44 | * @generated 45 | */ 46 | EList getP(); 47 | 48 | /** 49 | * Returns the value of the 'Type' attribute. 50 | * 51 | *

52 | * If the meaning of the 'Type' attribute isn't clear, 53 | * there really should be more of a description here... 54 | *

55 | * 56 | * @return the value of the 'Type' attribute. 57 | * @see #setType(String) 58 | * @see ch.iec._61850._2006.scl.SclPackage#getTPhysConn_Type() 59 | * @model dataType="org.eclipse.emf.ecore.xml.type.NormalizedString" required="true" 60 | * extendedMetaData="kind='attribute' name='type'" 61 | * @generated 62 | */ 63 | String getType(); 64 | 65 | /** 66 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TPhysConn#getType Type}' attribute. 67 | * 68 | * 69 | * @param value the new value of the 'Type' attribute. 70 | * @see #getType() 71 | * @generated 72 | */ 73 | void setType(String value); 74 | 75 | } // TPhysConn 76 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPowerSystemResource.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPower System Resource'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTPowerSystemResource() 17 | * @model abstract="true" 18 | * extendedMetaData="name='tPowerSystemResource' kind='elementOnly'" 19 | * @generated 20 | */ 21 | public interface TPowerSystemResource extends TLNodeContainer { 22 | } // TPowerSystemResource 23 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TPrivate.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TPrivate'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TPrivate#getSource Source}
  • 19 | *
  • {@link ch.iec._61850._2006.scl.TPrivate#getType Type}
  • 20 | *
21 | *

22 | * 23 | * @see ch.iec._61850._2006.scl.SclPackage#getTPrivate() 24 | * @model extendedMetaData="name='tPrivate' kind='mixed'" 25 | * @generated 26 | */ 27 | public interface TPrivate extends TAnyContentFromOtherNamespace { 28 | /** 29 | * Returns the value of the 'Source' attribute. 30 | * 31 | *

32 | * If the meaning of the 'Source' attribute isn't clear, 33 | * there really should be more of a description here... 34 | *

35 | * 36 | * @return the value of the 'Source' attribute. 37 | * @see #setSource(String) 38 | * @see ch.iec._61850._2006.scl.SclPackage#getTPrivate_Source() 39 | * @model dataType="org.eclipse.emf.ecore.xml.type.AnyURI" 40 | * extendedMetaData="kind='attribute' name='source'" 41 | * @generated 42 | */ 43 | String getSource(); 44 | 45 | /** 46 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TPrivate#getSource Source}' attribute. 47 | * 48 | * 49 | * @param value the new value of the 'Source' attribute. 50 | * @see #getSource() 51 | * @generated 52 | */ 53 | void setSource(String value); 54 | 55 | /** 56 | * Returns the value of the 'Type' attribute. 57 | * 58 | *

59 | * If the meaning of the 'Type' attribute isn't clear, 60 | * there really should be more of a description here... 61 | *

62 | * 63 | * @return the value of the 'Type' attribute. 64 | * @see #setType(String) 65 | * @see ch.iec._61850._2006.scl.SclPackage#getTPrivate_Type() 66 | * @model dataType="org.eclipse.emf.ecore.xml.type.NormalizedString" 67 | * extendedMetaData="kind='attribute' name='type'" 68 | * @generated 69 | */ 70 | String getType(); 71 | 72 | /** 73 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TPrivate#getType Type}' attribute. 74 | * 75 | * 76 | * @param value the new value of the 'Type' attribute. 77 | * @see #getType() 78 | * @generated 79 | */ 80 | void setType(String value); 81 | 82 | } // TPrivate 83 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TSCLControl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TSCL Control'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTSCLControl() 17 | * @model extendedMetaData="name='tSCLControl' kind='elementOnly'" 18 | * @generated 19 | */ 20 | public interface TSCLControl extends TUnNaming { 21 | } // TSCLControl 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TSDO.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TSDO'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TSDO#getType Type}
  • 19 | *
20 | *

21 | * 22 | * @see ch.iec._61850._2006.scl.SclPackage#getTSDO() 23 | * @model extendedMetaData="name='tSDO' kind='elementOnly'" 24 | * @generated 25 | */ 26 | public interface TSDO extends TNaming { 27 | /** 28 | * Returns the value of the 'Type' attribute. 29 | * 30 | *

31 | * If the meaning of the 'Type' attribute isn't clear, 32 | * there really should be more of a description here... 33 | *

34 | * 35 | * @return the value of the 'Type' attribute. 36 | * @see #setType(String) 37 | * @see ch.iec._61850._2006.scl.SclPackage#getTSDO_Type() 38 | * @model dataType="ch.iec._61850._2006.scl.TName" required="true" 39 | * extendedMetaData="kind='attribute' name='type'" 40 | * @generated 41 | */ 42 | String getType(); 43 | 44 | /** 45 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TSDO#getType Type}' attribute. 46 | * 47 | * 48 | * @param value the new value of the 'Type' attribute. 49 | * @see #getType() 50 | * @generated 51 | */ 52 | void setType(String value); 53 | 54 | } // TSDO 55 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TSMV.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TSMV'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTSMV() 17 | * @model extendedMetaData="name='tSMV' kind='elementOnly'" 18 | * @generated 19 | */ 20 | public interface TSMV extends TControlBlock { 21 | } // TSMV 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TServiceWithMax.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.ecore.EObject; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TService With Max'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TServiceWithMax#getMax Max}
  • 20 | *
21 | *

22 | * 23 | * @see ch.iec._61850._2006.scl.SclPackage#getTServiceWithMax() 24 | * @model extendedMetaData="name='tServiceWithMax' kind='empty'" 25 | * @generated 26 | */ 27 | public interface TServiceWithMax extends EObject { 28 | /** 29 | * Returns the value of the 'Max' attribute. 30 | * 31 | *

32 | * If the meaning of the 'Max' attribute isn't clear, 33 | * there really should be more of a description here... 34 | *

35 | * 36 | * @return the value of the 'Max' attribute. 37 | * @see #isSetMax() 38 | * @see #unsetMax() 39 | * @see #setMax(long) 40 | * @see ch.iec._61850._2006.scl.SclPackage#getTServiceWithMax_Max() 41 | * @model unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.UnsignedInt" required="true" 42 | * extendedMetaData="kind='attribute' name='max'" 43 | * @generated 44 | */ 45 | long getMax(); 46 | 47 | /** 48 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TServiceWithMax#getMax Max}' attribute. 49 | * 50 | * 51 | * @param value the new value of the 'Max' attribute. 52 | * @see #isSetMax() 53 | * @see #unsetMax() 54 | * @see #getMax() 55 | * @generated 56 | */ 57 | void setMax(long value); 58 | 59 | /** 60 | * Unsets the value of the '{@link ch.iec._61850._2006.scl.TServiceWithMax#getMax Max}' attribute. 61 | * 62 | * 63 | * @see #isSetMax() 64 | * @see #getMax() 65 | * @see #setMax(long) 66 | * @generated 67 | */ 68 | void unsetMax(); 69 | 70 | /** 71 | * Returns whether the value of the '{@link ch.iec._61850._2006.scl.TServiceWithMax#getMax Max}' attribute is set. 72 | * 73 | * 74 | * @return whether the value of the 'Max' attribute is set. 75 | * @see #unsetMax() 76 | * @see #getMax() 77 | * @see #setMax(long) 78 | * @generated 79 | */ 80 | boolean isSetMax(); 81 | 82 | } // TServiceWithMax 83 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TServiceWithMaxAndModify.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TService With Max And Modify'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TServiceWithMaxAndModify#isModify Modify}
  • 19 | *
20 | *

21 | * 22 | * @see ch.iec._61850._2006.scl.SclPackage#getTServiceWithMaxAndModify() 23 | * @model extendedMetaData="name='tServiceWithMaxAndModify' kind='empty'" 24 | * @generated 25 | */ 26 | public interface TServiceWithMaxAndModify extends TServiceWithMax { 27 | /** 28 | * Returns the value of the 'Modify' attribute. 29 | * The default value is "true". 30 | * 31 | *

32 | * If the meaning of the 'Modify' attribute isn't clear, 33 | * there really should be more of a description here... 34 | *

35 | * 36 | * @return the value of the 'Modify' attribute. 37 | * @see #isSetModify() 38 | * @see #unsetModify() 39 | * @see #setModify(boolean) 40 | * @see ch.iec._61850._2006.scl.SclPackage#getTServiceWithMaxAndModify_Modify() 41 | * @model default="true" unsettable="true" dataType="org.eclipse.emf.ecore.xml.type.Boolean" 42 | * extendedMetaData="kind='attribute' name='modify'" 43 | * @generated 44 | */ 45 | boolean isModify(); 46 | 47 | /** 48 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TServiceWithMaxAndModify#isModify Modify}' attribute. 49 | * 50 | * 51 | * @param value the new value of the 'Modify' attribute. 52 | * @see #isSetModify() 53 | * @see #unsetModify() 54 | * @see #isModify() 55 | * @generated 56 | */ 57 | void setModify(boolean value); 58 | 59 | /** 60 | * Unsets the value of the '{@link ch.iec._61850._2006.scl.TServiceWithMaxAndModify#isModify Modify}' attribute. 61 | * 62 | * 63 | * @see #isSetModify() 64 | * @see #isModify() 65 | * @see #setModify(boolean) 66 | * @generated 67 | */ 68 | void unsetModify(); 69 | 70 | /** 71 | * Returns whether the value of the '{@link ch.iec._61850._2006.scl.TServiceWithMaxAndModify#isModify Modify}' attribute is set. 72 | * 73 | * 74 | * @return whether the value of the 'Modify' attribute is set. 75 | * @see #unsetModify() 76 | * @see #isModify() 77 | * @see #setModify(boolean) 78 | * @generated 79 | */ 80 | boolean isSetModify(); 81 | 82 | } // TServiceWithMaxAndModify 83 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TServiceYesNo.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.ecore.EObject; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TService Yes No'. 14 | * 15 | * 16 | * 17 | * @see ch.iec._61850._2006.scl.SclPackage#getTServiceYesNo() 18 | * @model extendedMetaData="name='tServiceYesNo' kind='empty'" 19 | * @generated 20 | */ 21 | public interface TServiceYesNo extends EObject { 22 | } // TServiceYesNo 23 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TSubFunction.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TSub Function'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TSubFunction#getGeneralEquipment General Equipment}
  • 20 | *
21 | *

22 | * 23 | * @see ch.iec._61850._2006.scl.SclPackage#getTSubFunction() 24 | * @model extendedMetaData="name='tSubFunction' kind='elementOnly'" 25 | * @generated 26 | */ 27 | public interface TSubFunction extends TPowerSystemResource { 28 | /** 29 | * Returns the value of the 'General Equipment' containment reference list. 30 | * The list contents are of type {@link ch.iec._61850._2006.scl.TGeneralEquipment}. 31 | * 32 | *

33 | * If the meaning of the 'General Equipment' containment reference list isn't clear, 34 | * there really should be more of a description here... 35 | *

36 | * 37 | * @return the value of the 'General Equipment' containment reference list. 38 | * @see ch.iec._61850._2006.scl.SclPackage#getTSubFunction_GeneralEquipment() 39 | * @model containment="true" 40 | * extendedMetaData="kind='element' name='GeneralEquipment' namespace='##targetNamespace'" 41 | * @generated 42 | */ 43 | EList getGeneralEquipment(); 44 | 45 | } // TSubFunction 46 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TSubstation.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TSubstation'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TSubstation#getVoltageLevel Voltage Level}
  • 20 | *
  • {@link ch.iec._61850._2006.scl.TSubstation#getFunction Function}
  • 21 | *
22 | *

23 | * 24 | * @see ch.iec._61850._2006.scl.SclPackage#getTSubstation() 25 | * @model extendedMetaData="name='tSubstation' kind='elementOnly'" 26 | * @generated 27 | */ 28 | public interface TSubstation extends TEquipmentContainer { 29 | /** 30 | * Returns the value of the 'Voltage Level' containment reference list. 31 | * The list contents are of type {@link ch.iec._61850._2006.scl.TVoltageLevel}. 32 | * 33 | *

34 | * If the meaning of the 'Voltage Level' containment reference list isn't clear, 35 | * there really should be more of a description here... 36 | *

37 | * 38 | * @return the value of the 'Voltage Level' containment reference list. 39 | * @see ch.iec._61850._2006.scl.SclPackage#getTSubstation_VoltageLevel() 40 | * @model containment="true" required="true" 41 | * extendedMetaData="kind='element' name='VoltageLevel' namespace='##targetNamespace'" 42 | * @generated 43 | */ 44 | EList getVoltageLevel(); 45 | 46 | /** 47 | * Returns the value of the 'Function' containment reference list. 48 | * The list contents are of type {@link ch.iec._61850._2006.scl.TFunction}. 49 | * 50 | *

51 | * If the meaning of the 'Function' containment reference list isn't clear, 52 | * there really should be more of a description here... 53 | *

54 | * 55 | * @return the value of the 'Function' containment reference list. 56 | * @see ch.iec._61850._2006.scl.SclPackage#getTSubstation_Function() 57 | * @model containment="true" 58 | * extendedMetaData="kind='element' name='Function' namespace='##targetNamespace'" 59 | * @generated 60 | */ 61 | EList getFunction(); 62 | 63 | } // TSubstation 64 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TText.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TText'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TText#getSource Source}
  • 19 | *
20 | *

21 | * 22 | * @see ch.iec._61850._2006.scl.SclPackage#getTText() 23 | * @model extendedMetaData="name='tText' kind='mixed'" 24 | * @generated 25 | */ 26 | public interface TText extends TAnyContentFromOtherNamespace { 27 | /** 28 | * Returns the value of the 'Source' attribute. 29 | * 30 | *

31 | * If the meaning of the 'Source' attribute isn't clear, 32 | * there really should be more of a description here... 33 | *

34 | * 35 | * @return the value of the 'Source' attribute. 36 | * @see #setSource(String) 37 | * @see ch.iec._61850._2006.scl.SclPackage#getTText_Source() 38 | * @model dataType="org.eclipse.emf.ecore.xml.type.AnyURI" 39 | * extendedMetaData="kind='attribute' name='source'" 40 | * @generated 41 | */ 42 | String getSource(); 43 | 44 | /** 45 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TText#getSource Source}' attribute. 46 | * 47 | * 48 | * @param value the new value of the 'Source' attribute. 49 | * @see #getSource() 50 | * @generated 51 | */ 52 | void setSource(String value); 53 | 54 | } // TText 55 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TUnNaming.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TUn Naming'. 13 | * 14 | * 15 | *

16 | * The following features are supported: 17 | *

    18 | *
  • {@link ch.iec._61850._2006.scl.TUnNaming#getDesc Desc}
  • 19 | *
20 | *

21 | * 22 | * @see ch.iec._61850._2006.scl.SclPackage#getTUnNaming() 23 | * @model abstract="true" 24 | * extendedMetaData="name='tUnNaming' kind='elementOnly'" 25 | * @generated 26 | */ 27 | public interface TUnNaming extends TBaseElement { 28 | /** 29 | * Returns the value of the 'Desc' attribute. 30 | * 31 | *

32 | * If the meaning of the 'Desc' attribute isn't clear, 33 | * there really should be more of a description here... 34 | *

35 | * 36 | * @return the value of the 'Desc' attribute. 37 | * @see #setDesc(String) 38 | * @see ch.iec._61850._2006.scl.SclPackage#getTUnNaming_Desc() 39 | * @model dataType="org.eclipse.emf.ecore.xml.type.NormalizedString" 40 | * extendedMetaData="kind='attribute' name='desc'" 41 | * @generated 42 | */ 43 | String getDesc(); 44 | 45 | /** 46 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TUnNaming#getDesc Desc}' attribute. 47 | * 48 | * 49 | * @param value the new value of the 'Desc' attribute. 50 | * @see #getDesc() 51 | * @generated 52 | */ 53 | void setDesc(String value); 54 | 55 | } // TUnNaming 56 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TVoltage.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | 10 | /** 11 | * 12 | * A representation of the model object 'TVoltage'. 13 | * 14 | * 15 | * 16 | * @see ch.iec._61850._2006.scl.SclPackage#getTVoltage() 17 | * @model extendedMetaData="name='tVoltage' kind='simple'" 18 | * @generated 19 | */ 20 | public interface TVoltage extends TValueWithUnit { 21 | } // TVoltage 22 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/TVoltageLevel.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl; 8 | 9 | import org.eclipse.emf.common.util.EList; 10 | 11 | /** 12 | * 13 | * A representation of the model object 'TVoltage Level'. 14 | * 15 | * 16 | *

17 | * The following features are supported: 18 | *

    19 | *
  • {@link ch.iec._61850._2006.scl.TVoltageLevel#getVoltage Voltage}
  • 20 | *
  • {@link ch.iec._61850._2006.scl.TVoltageLevel#getBay Bay}
  • 21 | *
22 | *

23 | * 24 | * @see ch.iec._61850._2006.scl.SclPackage#getTVoltageLevel() 25 | * @model extendedMetaData="name='tVoltageLevel' kind='elementOnly'" 26 | * @generated 27 | */ 28 | public interface TVoltageLevel extends TEquipmentContainer { 29 | /** 30 | * Returns the value of the 'Voltage' containment reference. 31 | * 32 | *

33 | * If the meaning of the 'Voltage' containment reference isn't clear, 34 | * there really should be more of a description here... 35 | *

36 | * 37 | * @return the value of the 'Voltage' containment reference. 38 | * @see #setVoltage(TVoltage) 39 | * @see ch.iec._61850._2006.scl.SclPackage#getTVoltageLevel_Voltage() 40 | * @model containment="true" 41 | * extendedMetaData="kind='element' name='Voltage' namespace='##targetNamespace'" 42 | * @generated 43 | */ 44 | TVoltage getVoltage(); 45 | 46 | /** 47 | * Sets the value of the '{@link ch.iec._61850._2006.scl.TVoltageLevel#getVoltage Voltage}' containment reference. 48 | * 49 | * 50 | * @param value the new value of the 'Voltage' containment reference. 51 | * @see #getVoltage() 52 | * @generated 53 | */ 54 | void setVoltage(TVoltage value); 55 | 56 | /** 57 | * Returns the value of the 'Bay' containment reference list. 58 | * The list contents are of type {@link ch.iec._61850._2006.scl.TBay}. 59 | * 60 | *

61 | * If the meaning of the 'Bay' containment reference list isn't clear, 62 | * there really should be more of a description here... 63 | *

64 | * 65 | * @return the value of the 'Bay' containment reference list. 66 | * @see ch.iec._61850._2006.scl.SclPackage#getTVoltageLevel_Bay() 67 | * @model containment="true" required="true" 68 | * extendedMetaData="kind='element' name='Bay' namespace='##targetNamespace'" 69 | * @generated 70 | */ 71 | EList getBay(); 72 | 73 | } // TVoltageLevel 74 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/LN0TypeImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.LN0Type; 10 | import ch.iec._61850._2006.scl.SclPackage; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'LN0 Type'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class LN0TypeImpl extends TLN0Impl implements LN0Type { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected LN0TypeImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getLN0Type(); 41 | } 42 | 43 | } //LN0TypeImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TAccessControlImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TAccessControl; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TAccess Control'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TAccessControlImpl extends TAnyContentFromOtherNamespaceImpl implements TAccessControl { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TAccessControlImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTAccessControl(); 41 | } 42 | 43 | } //TAccessControlImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TBDAImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TBDA; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TBDA'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TBDAImpl extends TAbstractDataAttributeImpl implements TBDA { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TBDAImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTBDA(); 41 | } 42 | 43 | } //TBDAImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TBitRateInMbPerSecImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TBitRateInMbPerSec; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TBit Rate In Mb Per Sec'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TBitRateInMbPerSecImpl extends TValueWithUnitImpl implements TBitRateInMbPerSec { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TBitRateInMbPerSecImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTBitRateInMbPerSec(); 41 | } 42 | 43 | } //TBitRateInMbPerSecImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TDurationInMilliSecImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TDurationInMilliSec; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TDuration In Milli Sec'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TDurationInMilliSecImpl extends TValueWithUnitImpl implements TDurationInMilliSec { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TDurationInMilliSecImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTDurationInMilliSec(); 41 | } 42 | 43 | } //TDurationInMilliSecImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TDurationInSecImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TDurationInSec; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TDuration In Sec'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TDurationInSecImpl extends TValueWithUnitImpl implements TDurationInSec { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TDurationInSecImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTDurationInSec(); 41 | } 42 | 43 | } //TDurationInSecImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TLogImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TLog; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TLog'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TLogImpl extends TAnyContentFromOtherNamespaceImpl implements TLog { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TLogImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTLog(); 41 | } 42 | 43 | } //TLogImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPAPPIDImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPAPPID; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPAPPID'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPAPPIDImpl extends TPImpl implements TPAPPID { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPAPPIDImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPAPPID(); 41 | } 42 | 43 | } //TPAPPIDImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPIPGATEWAYImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPIPGATEWAY; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPIPGATEWAY'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPIPGATEWAYImpl extends TPImpl implements TPIPGATEWAY { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPIPGATEWAYImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPIPGATEWAY(); 41 | } 42 | 43 | } //TPIPGATEWAYImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPIPImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPIP; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPIP'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPIPImpl extends TPImpl implements TPIP { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPIPImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPIP(); 41 | } 42 | 43 | } //TPIPImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPIPSUBNETImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPIPSUBNET; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPIPSUBNET'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPIPSUBNETImpl extends TPImpl implements TPIPSUBNET { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPIPSUBNETImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPIPSUBNET(); 41 | } 42 | 43 | } //TPIPSUBNETImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPMACAddressImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPMACAddress; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPMAC Address'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPMACAddressImpl extends TPImpl implements TPMACAddress { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPMACAddressImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPMACAddress(); 41 | } 42 | 43 | } //TPMACAddressImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPOSIAEInvokeImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPOSIAEInvoke; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPOSIAE Invoke'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPOSIAEInvokeImpl extends TPImpl implements TPOSIAEInvoke { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPOSIAEInvokeImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPOSIAEInvoke(); 41 | } 42 | 43 | } //TPOSIAEInvokeImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPOSIAEQualifierImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPOSIAEQualifier; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPOSIAE Qualifier'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPOSIAEQualifierImpl extends TPImpl implements TPOSIAEQualifier { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPOSIAEQualifierImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPOSIAEQualifier(); 41 | } 42 | 43 | } //TPOSIAEQualifierImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPOSIAPInvokeImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPOSIAPInvoke; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPOSIAP Invoke'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPOSIAPInvokeImpl extends TPImpl implements TPOSIAPInvoke { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPOSIAPInvokeImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPOSIAPInvoke(); 41 | } 42 | 43 | } //TPOSIAPInvokeImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPOSIAPTitleImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPOSIAPTitle; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPOSIAP Title'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPOSIAPTitleImpl extends TPImpl implements TPOSIAPTitle { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPOSIAPTitleImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPOSIAPTitle(); 41 | } 42 | 43 | } //TPOSIAPTitleImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPOSINSAPImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPOSINSAP; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPOSINSAP'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPOSINSAPImpl extends TPImpl implements TPOSINSAP { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPOSINSAPImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPOSINSAP(); 41 | } 42 | 43 | } //TPOSINSAPImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPOSIPSELImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPOSIPSEL; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPOSIPSEL'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPOSIPSELImpl extends TPImpl implements TPOSIPSEL { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPOSIPSELImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPOSIPSEL(); 41 | } 42 | 43 | } //TPOSIPSELImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPOSISSELImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPOSISSEL; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPOSISSEL'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPOSISSELImpl extends TPImpl implements TPOSISSEL { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPOSISSELImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPOSISSEL(); 41 | } 42 | 43 | } //TPOSISSELImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPOSITSELImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPOSITSEL; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPOSITSEL'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPOSITSELImpl extends TPImpl implements TPOSITSEL { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPOSITSELImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPOSITSEL(); 41 | } 42 | 43 | } //TPOSITSELImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPVLANIDImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPVLANID; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPVLANID'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPVLANIDImpl extends TPImpl implements TPVLANID { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPVLANIDImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPVLANID(); 41 | } 42 | 43 | } //TPVLANIDImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPVLANPRIORITYImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPVLANPRIORITY; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPVLANPRIORITY'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TPVLANPRIORITYImpl extends TPImpl implements TPVLANPRIORITY { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPVLANPRIORITYImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPVLANPRIORITY(); 41 | } 42 | 43 | } //TPVLANPRIORITYImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TPowerSystemResourceImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TPowerSystemResource; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TPower System Resource'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public abstract class TPowerSystemResourceImpl extends TLNodeContainerImpl implements TPowerSystemResource { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TPowerSystemResourceImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTPowerSystemResource(); 41 | } 42 | 43 | } //TPowerSystemResourceImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TSCLControlImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TSCLControl; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TSCL Control'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TSCLControlImpl extends TUnNamingImpl implements TSCLControl { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TSCLControlImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTSCLControl(); 41 | } 42 | 43 | } //TSCLControlImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TSMVImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TSMV; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TSMV'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TSMVImpl extends TControlBlockImpl implements TSMV { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TSMVImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTSMV(); 41 | } 42 | 43 | } //TSMVImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TServiceYesNoImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TServiceYesNo; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | import org.eclipse.emf.ecore.impl.EObjectImpl; 15 | 16 | /** 17 | * 18 | * An implementation of the model object 'TService Yes No'. 19 | * 20 | *

21 | *

22 | * 23 | * @generated 24 | */ 25 | public class TServiceYesNoImpl extends EObjectImpl implements TServiceYesNo { 26 | /** 27 | * 28 | * 29 | * @generated 30 | */ 31 | protected TServiceYesNoImpl() { 32 | super(); 33 | } 34 | 35 | /** 36 | * 37 | * 38 | * @generated 39 | */ 40 | @Override 41 | protected EClass eStaticClass() { 42 | return SclPackage.eINSTANCE.getTServiceYesNo(); 43 | } 44 | 45 | } //TServiceYesNoImpl 46 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/impl/TVoltageImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.impl; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | import ch.iec._61850._2006.scl.TVoltage; 11 | 12 | import org.eclipse.emf.ecore.EClass; 13 | 14 | /** 15 | * 16 | * An implementation of the model object 'TVoltage'. 17 | * 18 | *

19 | *

20 | * 21 | * @generated 22 | */ 23 | public class TVoltageImpl extends TValueWithUnitImpl implements TVoltage { 24 | /** 25 | * 26 | * 27 | * @generated 28 | */ 29 | protected TVoltageImpl() { 30 | super(); 31 | } 32 | 33 | /** 34 | * 35 | * 36 | * @generated 37 | */ 38 | @Override 39 | protected EClass eStaticClass() { 40 | return SclPackage.eINSTANCE.getTVoltage(); 41 | } 42 | 43 | } //TVoltageImpl 44 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/util/SclResourceFactoryImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.util; 8 | 9 | import org.eclipse.emf.common.util.URI; 10 | 11 | import org.eclipse.emf.ecore.resource.Resource; 12 | 13 | import org.eclipse.emf.ecore.resource.impl.ResourceFactoryImpl; 14 | 15 | import org.eclipse.emf.ecore.xmi.XMLResource; 16 | 17 | /** 18 | * 19 | * The Resource Factory associated with the package. 20 | * 21 | * @see ch.iec._61850._2006.scl.util.SclResourceImpl 22 | * @generated 23 | */ 24 | public class SclResourceFactoryImpl extends ResourceFactoryImpl { 25 | /** 26 | * Creates an instance of the resource factory. 27 | * 28 | * 29 | * @generated 30 | */ 31 | public SclResourceFactoryImpl() { 32 | super(); 33 | } 34 | 35 | /** 36 | * Creates an instance of the resource. 37 | * 38 | * 39 | * @generated 40 | */ 41 | @Override 42 | public Resource createResource(URI uri) { 43 | XMLResource result = new SclResourceImpl(uri); 44 | result.getDefaultSaveOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE); 45 | result.getDefaultLoadOptions().put(XMLResource.OPTION_EXTENDED_META_DATA, Boolean.TRUE); 46 | 47 | result.getDefaultSaveOptions().put(XMLResource.OPTION_SCHEMA_LOCATION, Boolean.TRUE); 48 | 49 | result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); 50 | result.getDefaultSaveOptions().put(XMLResource.OPTION_USE_ENCODED_ATTRIBUTE_STYLE, Boolean.TRUE); 51 | 52 | result.getDefaultLoadOptions().put(XMLResource.OPTION_USE_LEXICAL_HANDLER, Boolean.TRUE); 53 | return result; 54 | } 55 | 56 | } //SclResourceFactoryImpl 57 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/util/SclResourceImpl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.util; 8 | 9 | import org.eclipse.emf.common.util.URI; 10 | 11 | import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl; 12 | 13 | /** 14 | * 15 | * The Resource associated with the package. 16 | * 17 | * @see ch.iec._61850._2006.scl.util.SclResourceFactoryImpl 18 | * @generated 19 | */ 20 | public class SclResourceImpl extends XMLResourceImpl { 21 | /** 22 | * Creates an instance of the resource. 23 | * 24 | * 25 | * @param uri the URI of the new resource. 26 | * @generated 27 | */ 28 | public SclResourceImpl(URI uri) { 29 | super(uri); 30 | } 31 | 32 | } //SclResourceImpl 33 | -------------------------------------------------------------------------------- /emf/src/ch/iec/_61850/_2006/scl/util/SclXMLProcessor.java: -------------------------------------------------------------------------------- 1 | /** 2 | * 3 | * 4 | * 5 | * $Id$ 6 | */ 7 | package ch.iec._61850._2006.scl.util; 8 | 9 | import ch.iec._61850._2006.scl.SclPackage; 10 | 11 | import java.util.Map; 12 | 13 | import org.eclipse.emf.ecore.EPackage; 14 | 15 | import org.eclipse.emf.ecore.resource.Resource; 16 | 17 | import org.eclipse.emf.ecore.xmi.util.XMLProcessor; 18 | 19 | /** 20 | * This class contains helper methods to serialize and deserialize XML documents 21 | * 22 | * 23 | * @generated 24 | */ 25 | public class SclXMLProcessor extends XMLProcessor { 26 | 27 | /** 28 | * Public constructor to instantiate the helper. 29 | * 30 | * 31 | * @generated 32 | */ 33 | public SclXMLProcessor() { 34 | super((EPackage.Registry.INSTANCE)); 35 | SclPackage.eINSTANCE.eClass(); 36 | } 37 | 38 | /** 39 | * Register for "*" and "xml" file extensions the SclResourceFactoryImpl factory. 40 | * 41 | * 42 | * @generated 43 | */ 44 | @Override 45 | protected Map getRegistrations() { 46 | if (registrations == null) { 47 | super.getRegistrations(); 48 | registrations.put(XML_EXTENSION, new SclResourceFactoryImpl()); 49 | registrations.put(STAR_EXTENSION, new SclResourceFactoryImpl()); 50 | } 51 | return registrations; 52 | } 53 | 54 | } //SclXMLProcessor 55 | -------------------------------------------------------------------------------- /emf/src/rapid61850/CFunction.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | package rapid61850; 22 | 23 | 24 | public abstract class CFunction { 25 | 26 | public String returnType; 27 | 28 | public CFunction() { 29 | this.returnType = "void"; // default return type 30 | } 31 | 32 | public CFunction(String returnType) { 33 | this.returnType = returnType; 34 | } 35 | 36 | public abstract String getName(); 37 | public abstract String getArgs(); 38 | public abstract String getFunctionName(); 39 | public abstract String getBody(); 40 | 41 | public String getFunctionDefinition() { 42 | return this.returnType + " " + this.getFunctionName() + "(" + this.getArgs() + ")"; 43 | } 44 | 45 | public String getPrototype() { 46 | return this.getFunctionDefinition() + ";\n"; 47 | } 48 | 49 | // template method 50 | public String toString() { 51 | return getFunctionDefinition() + " {\n" + this.getBody() + "}"; 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /emf/src/rapid61850/CFunctionControl.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | package rapid61850; 22 | 23 | import ch.iec._61850._2006.scl.TControl; 24 | import ch.iec._61850._2006.scl.TIED; 25 | import ch.iec._61850._2006.scl.TLDevice; 26 | 27 | /** 28 | * Generates the mapping between Controls and Datasets. 29 | */ 30 | public class CFunctionControl extends CFunction { 31 | 32 | private TControl control; 33 | private String prefix; 34 | private SCDAdditionalMappings map; 35 | 36 | public CFunctionControl(TControl control, CommsType commsType, SCDAdditionalMappings map) { 37 | super(); 38 | this.control = control; 39 | this.map = map; 40 | if (commsType == CommsType.GSE) { 41 | this.prefix = "ber_encode_"; 42 | } 43 | else{ 44 | this.prefix = "encode_"; 45 | } 46 | this.returnType = "int"; 47 | } 48 | 49 | @Override 50 | public String getName() { 51 | String iedName = ((TIED) control.eContainer().eContainer().eContainer().eContainer().eContainer()).getName(); 52 | String ldInst = ((TLDevice) control.eContainer().eContainer()).getInst(); 53 | 54 | return "control_" + iedName + "_" + ldInst + "_" + control.getName(); 55 | } 56 | 57 | @Override 58 | public String getArgs() { 59 | return "unsigned char *buf"; 60 | } 61 | 62 | @Override 63 | public String getFunctionName() { 64 | return this.prefix + this.getName(); 65 | } 66 | 67 | @Override 68 | public String getBody() { 69 | String datasetUniqueName = SCDCodeGenerator.getUniqueDatasetName(/*control.getDataSetRef()*/map.getDataset(control)); 70 | return "\treturn " + this.prefix + datasetUniqueName + "(buf);\n"; 71 | } 72 | 73 | } 74 | -------------------------------------------------------------------------------- /emf/src/rapid61850/CFunctionGSECoder.java: -------------------------------------------------------------------------------- 1 | package rapid61850; 2 | 3 | import org.eclipse.emf.ecore.EObject; 4 | 5 | import ch.iec._61850._2006.scl.TExtRef; 6 | 7 | public class CFunctionGSECoder extends CFunctionCoder { 8 | 9 | public CFunctionGSECoder(EObject obj, CoderType coderType, SCDAdditionalMappings map) { 10 | super(obj, CommsType.GSE, coderType, map); 11 | 12 | if (coderType == CoderType.DECODER) { 13 | this.prefix = "ber_decode_"; 14 | } 15 | else if (coderType == CoderType.ENCODER) { 16 | this.prefix = "ber_encode_"; 17 | } 18 | } 19 | 20 | public CFunctionGSECoder(EObject obj, TExtRef extRef, CoderType coderType, SCDAdditionalMappings map) { 21 | this(obj, coderType, map); 22 | this.extRef = extRef; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /emf/src/rapid61850/CFunctionGSELengthCoder.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | package rapid61850; 22 | 23 | import java.util.Iterator; 24 | 25 | import org.eclipse.emf.ecore.EObject; 26 | 27 | import ch.iec._61850._2006.scl.SclPackage; 28 | 29 | public class CFunctionGSELengthCoder extends CFunctionGSECoder { 30 | 31 | public CFunctionGSELengthCoder(EObject obj, CoderType coderType, SCDAdditionalMappings map) { 32 | super(obj, coderType, map); 33 | 34 | this.prefix = "ber_get_length_"; 35 | } 36 | 37 | public String getArgs() { 38 | if (dataType.eClass() == SclPackage.eINSTANCE.getTDataSet()) { 39 | return ""; 40 | } 41 | else { 42 | return "struct " + getName() + " *" + getName(); 43 | } 44 | } 45 | 46 | public String getBody() { 47 | Iterator objects = dataType.eContents().iterator(); 48 | String func = "\tint total = 0;\n\tint len = 0;\n\n"; 49 | 50 | if (commsType != CommsType.GSE) { 51 | return null; 52 | } 53 | 54 | while (objects.hasNext()) { 55 | EObject obj = objects.next(); 56 | 57 | if (obj == null) { 58 | return null; 59 | } 60 | 61 | func = func.concat(getItemCoder(obj, true)); 62 | func = func.concat("\ttotal += len + getLengthBytes(len) + 1;\n"); 63 | } 64 | 65 | func = func.concat("\n\treturn total;\n"); 66 | 67 | return func; 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /emf/src/rapid61850/CFunctionSVCoder.java: -------------------------------------------------------------------------------- 1 | package rapid61850; 2 | 3 | import org.eclipse.emf.ecore.EObject; 4 | 5 | import ch.iec._61850._2006.scl.TExtRef; 6 | 7 | public class CFunctionSVCoder extends CFunctionCoder { 8 | 9 | public CFunctionSVCoder(EObject obj, CoderType coderType, SCDAdditionalMappings map) { 10 | super(obj, CommsType.SV, coderType, map); 11 | 12 | if (coderType == CoderType.DECODER) { 13 | this.prefix = "decode_"; 14 | } 15 | else if (coderType == CoderType.ENCODER) { 16 | this.prefix = "encode_"; 17 | } 18 | } 19 | 20 | public CFunctionSVCoder(EObject obj, TExtRef extRef, CoderType coderType, SCDAdditionalMappings map) { 21 | this(obj, coderType, map); 22 | this.extRef = extRef; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /emf/src/rapid61850/CHeader.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | package rapid61850; 22 | 23 | import rapid61850.templates.CHeaderTemplate; 24 | 25 | public class CHeader extends CFile { 26 | public String headerProtectName; 27 | public StringBuilder datatypes; 28 | public StringBuilder functionPrototypes; 29 | public StringBuilder extern; 30 | public CHeaderTemplate template; 31 | public Boolean showExternC = true; 32 | 33 | public CHeader(String filename, String headerProtectName) { 34 | super(filename); 35 | 36 | this.headerProtectName = headerProtectName; 37 | this.datatypes = new StringBuilder(); 38 | this.functionPrototypes = new StringBuilder(); 39 | this.extern = new StringBuilder(); 40 | this.template = new CHeaderTemplate(); 41 | } 42 | 43 | public CHeader(String filename, String headerProtectName, String includes, Boolean showExternC) { 44 | this(filename, headerProtectName); 45 | this.showExternC = showExternC; 46 | } 47 | 48 | public void appendFunctionPrototypes(StringBuilder functionPrototypes) { 49 | this.functionPrototypes.append(functionPrototypes); 50 | } 51 | 52 | public void appendFunctionPrototypes(String functionPrototypes) { 53 | this.functionPrototypes.append(functionPrototypes); 54 | } 55 | 56 | public void appendDatatypes(StringBuilder datatypes) { 57 | this.datatypes.append(datatypes); 58 | } 59 | 60 | public void appendDatatypes(String datatypes) { 61 | this.datatypes.append(datatypes); 62 | } 63 | 64 | public void appendExtern(StringBuilder extern) { 65 | this.extern.append(extern); 66 | } 67 | 68 | public void appendExtern(String extern) { 69 | this.extern.append(extern); 70 | } 71 | 72 | public void saveFile() { 73 | saveFile(template.generate(this), ""); 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /emf/src/rapid61850/CoderType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | package rapid61850; 22 | 23 | public enum CoderType { 24 | ENCODER, DECODER 25 | } -------------------------------------------------------------------------------- /emf/src/rapid61850/CommsType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2012 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | package rapid61850; 22 | 23 | public enum CommsType { 24 | GSE, SV 25 | } 26 | -------------------------------------------------------------------------------- /emf/src/rapid61850/JSONDatabaseManager.java: -------------------------------------------------------------------------------- 1 | package rapid61850; 2 | 3 | public class JSONDatabaseManager { 4 | 5 | int itemNumber = 0; 6 | StringBuilder path = new StringBuilder(""); 7 | 8 | public JSONDatabaseManager(String iedName) { 9 | path.append(iedName); 10 | } 11 | 12 | public void addItem() { 13 | itemNumber++; 14 | } 15 | 16 | public void addLayer() { 17 | path.append(".items" + "[" + itemNumber + "]"); 18 | itemNumber = 0; 19 | } 20 | 21 | public void popLayer() { 22 | int index = path.lastIndexOf(".items["); 23 | 24 | // get number from path 25 | itemNumber = Integer.parseInt(path.substring(index + 7, path.length() - 1)); 26 | 27 | // System.out.println("old path: " + path); 28 | path = new StringBuilder(path.substring(0, index)); 29 | // System.out.println("index: " + index + "; new path: " + path + "; itemNumber: " + itemNumber); 30 | } 31 | 32 | public String getPath() { 33 | return path.toString() + ".items[" + itemNumber + "]"; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /emf/src/rapid61850/Main.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2014 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | package rapid61850; 22 | 23 | import java.io.File; 24 | 25 | import org.eclipse.emf.ecore.resource.Resource; 26 | 27 | import ch.iec._61850._2006.scl.DocumentRoot; 28 | import ch.iec._61850._2006.scl.util.SclXMLProcessor; 29 | 30 | public class Main { 31 | 32 | final static String PATH_TO_SOURCE = "src" + File.separator + "rapid61850" + File.separator; 33 | final static String SCD_FILENAME = "scd.xml"; // edit this to match the input SCD filename 34 | 35 | public static void main(String[] args) { 36 | SCDValidator validator = new SCDValidator(); 37 | SCDAdditionalMappings map = new SCDAdditionalMappings(); 38 | SCDCodeGenerator scdCodeGenerator = new SCDCodeGenerator(); 39 | 40 | // import SCD file 41 | Resource resource = null; 42 | try { 43 | File scdFile = new File(PATH_TO_SOURCE, SCD_FILENAME); 44 | if (scdFile.exists()) { 45 | SclXMLProcessor processor = new SclXMLProcessor(); 46 | resource = processor.load(scdFile.getAbsolutePath(), null); 47 | } 48 | else { 49 | validator.error("SCD file '" + SCD_FILENAME + "' does not exist"); 50 | } 51 | } 52 | catch (Exception e) { 53 | e.printStackTrace(); 54 | validator.error("EMF cannot parse SCD file"); 55 | } 56 | 57 | // get root of XML document 58 | DocumentRoot root = ((DocumentRoot) resource.getContents().get(0)); 59 | 60 | // model validation and additional mappings 61 | validator.validate(root, map); 62 | 63 | // generate code 64 | scdCodeGenerator.generateCode(root, map); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /emf/src/rapid61850/license.txt: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2014 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | -------------------------------------------------------------------------------- /emf/src/rapid61850/templates/CHeaderTemplate.java: -------------------------------------------------------------------------------- 1 | package rapid61850.templates; 2 | 3 | import rapid61850.CHeader;; 4 | 5 | public class CHeaderTemplate 6 | { 7 | protected static String nl; 8 | public static synchronized CHeaderTemplate create(String lineSeparator) 9 | { 10 | nl = lineSeparator; 11 | CHeaderTemplate result = new CHeaderTemplate(); 12 | nl = null; 13 | return result; 14 | } 15 | 16 | public final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; 17 | protected final String TEXT_1 = "#ifndef "; 18 | protected final String TEXT_2 = NL + "#define "; 19 | protected final String TEXT_3 = NL; 20 | protected final String TEXT_4 = NL + "#ifdef __cplusplus /* If this is a C++ compiler, use C linkage */" + NL + "extern \"C\" {" + NL + "#endif"; 21 | protected final String TEXT_5 = NL; 22 | protected final String TEXT_6 = NL; 23 | protected final String TEXT_7 = NL; 24 | protected final String TEXT_8 = NL; 25 | protected final String TEXT_9 = NL; 26 | protected final String TEXT_10 = NL; 27 | protected final String TEXT_11 = NL; 28 | protected final String TEXT_12 = NL; 29 | protected final String TEXT_13 = NL; 30 | protected final String TEXT_14 = NL + "#ifdef __cplusplus /* If this is a C++ compiler, end C linkage */" + NL + "}" + NL + "#endif"; 31 | protected final String TEXT_15 = NL + NL + "#endif"; 32 | protected final String TEXT_16 = NL; 33 | 34 | public String generate(Object argument) 35 | { 36 | final StringBuffer stringBuffer = new StringBuffer(); 37 | CHeader header = (CHeader) argument; 38 | stringBuffer.append(TEXT_1); 39 | stringBuffer.append(header.headerProtectName); 40 | stringBuffer.append(TEXT_2); 41 | stringBuffer.append(header.headerProtectName); 42 | stringBuffer.append(TEXT_3); 43 | if (header.showExternC) { 44 | stringBuffer.append(TEXT_4); 45 | } 46 | stringBuffer.append(TEXT_5); 47 | stringBuffer.append(TEXT_6); 48 | stringBuffer.append( 49 | header.getIncludes() 50 | ); 51 | stringBuffer.append(TEXT_7); 52 | stringBuffer.append(TEXT_8); 53 | stringBuffer.append( 54 | header.datatypes.toString() 55 | ); 56 | stringBuffer.append(TEXT_9); 57 | stringBuffer.append(TEXT_10); 58 | stringBuffer.append( 59 | header.functionPrototypes.toString() 60 | ); 61 | stringBuffer.append(TEXT_11); 62 | stringBuffer.append(TEXT_12); 63 | stringBuffer.append( 64 | header.extern.toString() 65 | ); 66 | stringBuffer.append(TEXT_13); 67 | if (header.showExternC) { 68 | stringBuffer.append(TEXT_14); 69 | } 70 | stringBuffer.append(TEXT_15); 71 | stringBuffer.append(TEXT_16); 72 | return stringBuffer.toString(); 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /emf/src/rapid61850/templates/CSourceTemplate.java: -------------------------------------------------------------------------------- 1 | package rapid61850.templates; 2 | 3 | import rapid61850.CSource; 4 | import java.util.Iterator; 5 | import rapid61850.CFunction; 6 | 7 | public class CSourceTemplate 8 | { 9 | protected static String nl; 10 | public static synchronized CSourceTemplate create(String lineSeparator) 11 | { 12 | nl = lineSeparator; 13 | CSourceTemplate result = new CSourceTemplate(); 14 | nl = null; 15 | return result; 16 | } 17 | 18 | public final String NL = nl == null ? (System.getProperties().getProperty("line.separator")) : nl; 19 | protected final String TEXT_1 = ""; 20 | protected final String TEXT_2 = NL; 21 | protected final String TEXT_3 = NL; 22 | protected final String TEXT_4 = NL; 23 | protected final String TEXT_5 = NL; 24 | protected final String TEXT_6 = NL; 25 | protected final String TEXT_7 = NL; 26 | protected final String TEXT_8 = NL; 27 | 28 | public String generate(Object argument) 29 | { 30 | final StringBuffer stringBuffer = new StringBuffer(); 31 | CSource header = (CSource) argument; 32 | stringBuffer.append(TEXT_1); 33 | stringBuffer.append( 34 | header.getIncludes() 35 | ); 36 | stringBuffer.append(TEXT_2); 37 | stringBuffer.append(TEXT_3); 38 | stringBuffer.append( 39 | header.instances.toString() 40 | ); 41 | stringBuffer.append(TEXT_4); 42 | 43 | Iterator functions = header.functions.iterator(); 44 | while (functions.hasNext()) { 45 | CFunction function = functions.next(); 46 | 47 | stringBuffer.append(TEXT_5); 48 | stringBuffer.append(function.toString()); 49 | } 50 | stringBuffer.append(TEXT_6); 51 | stringBuffer.append(TEXT_7); 52 | stringBuffer.append( 53 | header.manualFunctions.toString() 54 | ); 55 | stringBuffer.append(TEXT_8); 56 | return stringBuffer.toString(); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /emf/templates/CHeaderTemplate.cjet: -------------------------------------------------------------------------------- 1 | <%@ jet package="rapid61850.templates" imports="rapid61850.CHeader;" class="CHeaderTemplate" %> 2 | <% CHeader header = (CHeader) argument; %> 3 | #ifndef <%=header.headerProtectName%> 4 | #define <%=header.headerProtectName%> 5 | 6 | <% if (header.showExternC) { %> 7 | #ifdef __cplusplus /* If this is a C++ compiler, use C linkage */ 8 | extern "C" { 9 | #endif 10 | <%}%> 11 | 12 | <%= 13 | header.getIncludes() 14 | %> 15 | 16 | <%= 17 | header.datatypes.toString() 18 | %> 19 | 20 | <%= 21 | header.functionPrototypes.toString() 22 | %> 23 | 24 | <%= 25 | header.extern.toString() 26 | %> 27 | 28 | <% if (header.showExternC) { %> 29 | #ifdef __cplusplus /* If this is a C++ compiler, end C linkage */ 30 | } 31 | #endif 32 | <%}%> 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /emf/templates/CSourceTemplate.cjet: -------------------------------------------------------------------------------- 1 | <%@ jet package="rapid61850.templates" imports="rapid61850.CSource java.util.Iterator rapid61850.CFunction" class="CSourceTemplate" %> 2 | <% CSource header = (CSource) argument; %> 3 | <%= 4 | header.getIncludes() 5 | %> 6 | 7 | <%= 8 | header.instances.toString() 9 | %> 10 | 11 | <% 12 | Iterator functions = header.functions.iterator(); 13 | while (functions.hasNext()) { 14 | CFunction function = functions.next(); 15 | %> 16 | <%=function.toString()%> 17 | <%}%> 18 | 19 | <%= 20 | header.manualFunctions.toString() 21 | %> 22 | -------------------------------------------------------------------------------- /java_interface/Main.java: -------------------------------------------------------------------------------- 1 | 2 | public class Main { 3 | static { 4 | System.loadLibrary("rapid61850"); 5 | } 6 | 7 | public static void main(String[] args) { 8 | rapid61850.start(); 9 | 10 | System.out.println(rapid61850.interface_gse_send_E1Q1SB1_C1_Performance(1, 512)); // send GOOSE packet 11 | 12 | rapid61850.getE1Q1SB1().getS1().getC1().getMMXUa_1().getMod().setStVal(Mod.MOD_ON_1); // interact with IED data model 13 | System.out.println(rapid61850.getE1Q1SB1().getS1().getC1().getMMXUa_1().getMod().getStVal()); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /processing/PACWorldClient/GUI.pde: -------------------------------------------------------------------------------- 1 | /** 2 | * Rapid-prototyping protection schemes with IEC 61850 3 | * 4 | * Copyright (c) 2011 Steven Blair 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 19 | */ 20 | 21 | ControlP5 controlP5; 22 | 23 | void initGUI() { 24 | controlP5 = new ControlP5(this); 25 | controlP5.addToggle("SendGOOSE", false, 650, 30, 100, 40); 26 | } 27 | 28 | void SendGOOSE(boolean flag) { 29 | if (flag == true) { 30 | out.write("1"); 31 | out.flush(); 32 | } 33 | else { 34 | out.write("0"); 35 | out.flush(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /processing/PACWorldClient/application.linux/PACWorldClient: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | APPDIR=$(dirname "$0") 4 | java -Djava.library.path="$APPDIR" -cp "$APPDIR/lib/controlP5.jar:$APPDIR/lib/PACWorldClient.jar:$APPDIR/lib/core.jar:$APPDIR/lib/net.jar" PACWorldClient 5 | -------------------------------------------------------------------------------- /processing/PACWorldClient/application.linux/lib/PACWorldClient.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.linux/lib/PACWorldClient.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.linux/lib/controlP5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.linux/lib/controlP5.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.linux/lib/core.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.linux/lib/core.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.linux/lib/net.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.linux/lib/net.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.linux/source/GUI.pde: -------------------------------------------------------------------------------- 1 | ControlP5 controlP5; 2 | 3 | void initGUI() { 4 | controlP5 = new ControlP5(this); 5 | controlP5.addToggle("SendGOOSE", false, 650, 30, 100, 40); 6 | } 7 | 8 | void SendGOOSE(boolean flag) { 9 | if (flag == true) { 10 | out.write("1"); 11 | out.flush(); 12 | } 13 | else { 14 | out.write("0"); 15 | out.flush(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/MacOS/JavaApplicationStub: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/MacOS/JavaApplicationStub -------------------------------------------------------------------------------- /processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/MacOS/JavaApplicationStub64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/MacOS/JavaApplicationStub64 -------------------------------------------------------------------------------- /processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/Resources/Java/PACWorldClient.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/Resources/Java/PACWorldClient.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/Resources/Java/controlP5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/Resources/Java/controlP5.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/Resources/Java/core.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/Resources/Java/core.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/Resources/Java/net.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/Resources/Java/net.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/Resources/sketch.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.macosx/PACWorldClient.app/Contents/Resources/sketch.icns -------------------------------------------------------------------------------- /processing/PACWorldClient/application.macosx/readme.txt: -------------------------------------------------------------------------------- 1 | This application was created on Windows, which does not 2 | properly support setting files as "executable", 3 | a necessity for applications on Mac OS X. 4 | 5 | To fix this, use the Terminal on Mac OS X, and from this 6 | directory, type the following: 7 | 8 | chmod +x PACWorldClient.app/Contents/MacOS/JavaApplicationStub 9 | -------------------------------------------------------------------------------- /processing/PACWorldClient/application.macosx/source/GUI.pde: -------------------------------------------------------------------------------- 1 | ControlP5 controlP5; 2 | 3 | void initGUI() { 4 | controlP5 = new ControlP5(this); 5 | controlP5.addToggle("SendGOOSE", false, 650, 30, 100, 40); 6 | } 7 | 8 | void SendGOOSE(boolean flag) { 9 | if (flag == true) { 10 | out.write("1"); 11 | out.flush(); 12 | } 13 | else { 14 | out.write("0"); 15 | out.flush(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /processing/PACWorldClient/application.windows/PACWorldClient.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.windows/PACWorldClient.exe -------------------------------------------------------------------------------- /processing/PACWorldClient/application.windows/lib/PACWorldClient.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.windows/lib/PACWorldClient.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.windows/lib/args.txt: -------------------------------------------------------------------------------- 1 | 2 | PACWorldClient 3 | controlP5.jar,PACWorldClient.jar,core.jar,net.jar 4 | -------------------------------------------------------------------------------- /processing/PACWorldClient/application.windows/lib/controlP5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.windows/lib/controlP5.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.windows/lib/core.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.windows/lib/core.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.windows/lib/net.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/application.windows/lib/net.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/application.windows/source/GUI.pde: -------------------------------------------------------------------------------- 1 | ControlP5 controlP5; 2 | 3 | void initGUI() { 4 | controlP5 = new ControlP5(this); 5 | controlP5.addToggle("SendGOOSE", false, 650, 30, 100, 40); 6 | } 7 | 8 | void SendGOOSE(boolean flag) { 9 | if (flag == true) { 10 | out.write("1"); 11 | out.flush(); 12 | } 13 | else { 14 | out.write("0"); 15 | out.flush(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /processing/PACWorldClient/code/controlP5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/code/controlP5.jar -------------------------------------------------------------------------------- /processing/PACWorldClient/data/AngsanaUPC-48.vlw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/stevenblair/rapid61850/30479c1d59d8b716f445f17d3d33d2201dcc2ca9/processing/PACWorldClient/data/AngsanaUPC-48.vlw -------------------------------------------------------------------------------- /python_interface/main.py: -------------------------------------------------------------------------------- 1 | #@PydevCodeAnalysisIgnore 2 | import rapid61850 3 | from rapid61850 import * 4 | 5 | rapid61850.start() 6 | 7 | for i in range(2): 8 | print rapid61850.interface_gse_send_D1Q1SB4_C1_MMXUResult(1, 512); # send GOOSE packet 9 | 10 | rapid61850.cvar.E1Q1SB1.S1.C1.LPHDa_1.Mod.stVal = MOD_ON_1 # interact with IED data model 11 | print rapid61850.cvar.E1Q1SB1.S1.C1.LPHDa_1.Mod.stVal 12 | --------------------------------------------------------------------------------