Compare commits
No commits in common. 'v1.5' and 'v1.2.0' have entirely different histories.
@ -1,26 +0,0 @@
|
|||||||
name: CIFuzz
|
|
||||||
on: [pull_request]
|
|
||||||
jobs:
|
|
||||||
Fuzzing:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Build Fuzzers
|
|
||||||
id: build
|
|
||||||
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
|
|
||||||
with:
|
|
||||||
oss-fuzz-project-name: 'libiec61850'
|
|
||||||
dry-run: false
|
|
||||||
language: c
|
|
||||||
- name: Run Fuzzers
|
|
||||||
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
|
|
||||||
with:
|
|
||||||
oss-fuzz-project-name: 'libiec61850'
|
|
||||||
fuzz-seconds: 300
|
|
||||||
dry-run: false
|
|
||||||
language: c
|
|
||||||
- name: Upload Crash
|
|
||||||
uses: actions/upload-artifact@v3
|
|
||||||
if: failure() && steps.build.outcome == 'success'
|
|
||||||
with:
|
|
||||||
name: artifacts
|
|
||||||
path: ./out/artifacts
|
|
@ -1,12 +0,0 @@
|
|||||||
name: Greetings
|
|
||||||
|
|
||||||
on: [pull_request, issues]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
greeting:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/first-interaction@v1
|
|
||||||
with:
|
|
||||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
pr-message: 'Push requests and other code contributions can only be accepted from authorized persons that have signed our contributor license agreement(CLA). When in doubt please write to info@libiec61850.com.'
|
|
@ -1,2 +0,0 @@
|
|||||||
build/
|
|
||||||
/Debug/
|
|
@ -1,5 +0,0 @@
|
|||||||
# Security Policy
|
|
||||||
|
|
||||||
## Reporting a Vulnerability
|
|
||||||
|
|
||||||
Please report security issues to `info@libiec61850.com`
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,44 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{0DA95476-B149-450B-AC36-01CEECFC1A43}</ProjectGuid>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<RootNamespace>clientexamplesettinggroup</RootNamespace>
|
|
||||||
<AssemblyName>client-example-setting-group</AssemblyName>
|
|
||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
<OutputPath>bin\Debug</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<Externalconsole>true</Externalconsole>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release</OutputPath>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<Externalconsole>true</Externalconsole>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="System" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Program.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850forCSharp\IEC61850.NET.csproj">
|
|
||||||
<Project>{C35D624E-5506-4560-8074-1728F1FA1A4D}</Project>
|
|
||||||
<Name>IEC61850.NET</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
@ -1,26 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>netstandard2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\Control.cs" Link="Control.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\DataSet.cs" Link="DataSet.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\GooseControlBlock.cs" Link="GooseControlBlock.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\GooseSubscriber.cs" Link="GooseSubscriber.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\IEC61850ClientAPI.cs" Link="IEC61850ClientAPI.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\IEC61850CommonAPI.cs" Link="IEC61850CommonAPI.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\IEC61850ServerAPI.cs" Link="IEC61850ServerAPI.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\IedServerConfig.cs" Link="IedServerConfig.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\IsoConnectionParameters.cs" Link="IsoConnectionParameters.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\MmsValue.cs" Link="MmsValue.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\MmsVariableSpecification.cs" Link="MmsVariableSpecification.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\ReportControlBlock.cs" Link="ReportControlBlock.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\Reporting.cs" Link="Reporting.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\SampledValuesControlBlock.cs" Link="SampledValuesControlBlock.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\SampledValuesSubscriber.cs" Link="SampledValuesSubscriber.cs" />
|
|
||||||
<Compile Include="..\..\..\IEC61850forCSharp\TLS.cs" Link="TLS.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\example1\Main.cs" Link="Main.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\example2\WriteValueExample.cs" Link="WriteValueExample.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\example3\Main.cs" Link="Main.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\authenticate\Main.cs" Link="Main.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\control\ControlExample.cs" Link="ControlExample.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\datasets\DataSetExample.cs" Link="DataSetExample.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\files\FileServicesExample.cs" Link="FileServicesExample.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\log_client\Program.cs" Link="Program.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\model_browsing\ModelBrowsing.cs" Link="ModelBrowsing.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\reporting\ReportingExample.cs" Link="ReportingExample.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,28 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\tls_client_example\Program.cs" Link="Program.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="..\..\..\tls_client_example\client1-key.pem" Link="client1-key.pem">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="..\..\..\tls_client_example\client1.cer" Link="client1.cer">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="..\..\..\tls_client_example\root.cer" Link="root.cer">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\goose_subscriber\Program.cs" Link="Program.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,22 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\server1\Program.cs" Link="Program.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="..\..\..\server1\model.cfg" Link="model.cfg">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,16 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="..\..\..\sv_subscriber\Program.cs" Link="Program.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850.NET.core.2.0\IEC61850.NET.core.2.0.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<configuration>
|
|
||||||
<startup>
|
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
|
|
||||||
</startup>
|
|
||||||
</configuration>
|
|
@ -1,217 +0,0 @@
|
|||||||
MODEL(simpleIO){
|
|
||||||
LD(GenericIO){
|
|
||||||
LN(LLN0){
|
|
||||||
DO(Mod 0){
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=0;
|
|
||||||
}
|
|
||||||
DO(Beh 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Health 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(NamPlt 0){
|
|
||||||
DA(vendor 0 20 5 0 0);
|
|
||||||
DA(swRev 0 20 5 0 0);
|
|
||||||
DA(d 0 20 5 0 0);
|
|
||||||
DA(configRev 0 20 5 0 0);
|
|
||||||
DA(ldNs 0 20 11 0 0);
|
|
||||||
}
|
|
||||||
DS(Events){
|
|
||||||
DE(GGIO1$ST$SPCSO1$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO2$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO3$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO4$stVal);
|
|
||||||
}
|
|
||||||
DS(Events2){
|
|
||||||
DE(GGIO1$ST$SPCSO1);
|
|
||||||
DE(GGIO1$ST$SPCSO2);
|
|
||||||
DE(GGIO1$ST$SPCSO3);
|
|
||||||
DE(GGIO1$ST$SPCSO4);
|
|
||||||
}
|
|
||||||
DS(Events3){
|
|
||||||
DE(GGIO1$ST$SPCSO1$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO1$q);
|
|
||||||
DE(GGIO1$ST$SPCSO2$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO2$q);
|
|
||||||
DE(GGIO1$ST$SPCSO3$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO3$q);
|
|
||||||
DE(GGIO1$ST$SPCSO4$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO4$q);
|
|
||||||
}
|
|
||||||
DS(AnalogValues){
|
|
||||||
DE(GGIO1$MX$AnIn1);
|
|
||||||
DE(GGIO1$MX$AnIn2);
|
|
||||||
DE(GGIO1$MX$AnIn3);
|
|
||||||
DE(GGIO1$MX$AnIn4);
|
|
||||||
}
|
|
||||||
RC(EventsRCB01 Events 0 Events 1 24 175 50 1000);
|
|
||||||
RC(AnalogValuesRCB01 AnalogValues 0 AnalogValues 1 24 175 50 1000);
|
|
||||||
GC(gcbEvents events Events3 2 0 1000 3000 ){
|
|
||||||
PA(4 1 4096 010ccd010001);
|
|
||||||
}
|
|
||||||
GC(gcbAnalogValues analog AnalogValues 2 0 -1 -1 ){
|
|
||||||
PA(4 1 4096 010ccd010001);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LN(LPHD1){
|
|
||||||
DO(PhyNam 0){
|
|
||||||
DA(vendor 0 20 5 0 0);
|
|
||||||
}
|
|
||||||
DO(PhyHealth 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Proxy 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LN(GGIO1){
|
|
||||||
DO(Mod 0){
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=0;
|
|
||||||
}
|
|
||||||
DO(Beh 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Health 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(NamPlt 0){
|
|
||||||
DA(vendor 0 20 5 0 0);
|
|
||||||
DA(swRev 0 20 5 0 0);
|
|
||||||
DA(d 0 20 5 0 0);
|
|
||||||
}
|
|
||||||
DO(AnIn1 0){
|
|
||||||
DA(mag 0 27 1 1 0){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DO(AnIn2 0){
|
|
||||||
DA(mag 0 27 1 1 0){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DO(AnIn3 0){
|
|
||||||
DA(mag 0 27 1 1 0){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DO(AnIn4 0){
|
|
||||||
DA(mag 0 27 1 1 0){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DO(SPCSO1 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlModel 0 12 4 0 0)=1;
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(SPCSO2 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlModel 0 12 4 0 0)=1;
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(SPCSO3 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlModel 0 12 4 0 0)=1;
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(SPCSO4 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlModel 0 12 4 0 0)=1;
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Ind1 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Ind2 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Ind3 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Ind4 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,446 +0,0 @@
|
|||||||
MODEL(simpleIO){
|
|
||||||
LD(GenericIO){
|
|
||||||
LN(LLN0){
|
|
||||||
DO(Mod 0){
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=0;
|
|
||||||
}
|
|
||||||
DO(Beh 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Health 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(NamPlt 0){
|
|
||||||
DA(vendor 0 20 5 0 0);
|
|
||||||
DA(swRev 0 20 5 0 0);
|
|
||||||
DA(d 0 20 5 0 0);
|
|
||||||
DA(configRev 0 20 5 0 0);
|
|
||||||
DA(ldNs 0 20 11 0 0);
|
|
||||||
}
|
|
||||||
DO(SetInt1 0){
|
|
||||||
DA(setVal 0 3 2 1 0);
|
|
||||||
}
|
|
||||||
DO(SetInt2 0){
|
|
||||||
DA(setVal 0 3 2 1 0);
|
|
||||||
}
|
|
||||||
DO(SetInt3 0){
|
|
||||||
DA(setVal 0 3 2 1 0);
|
|
||||||
}
|
|
||||||
DO(SetInt4 0){
|
|
||||||
DA(setVal 0 3 2 1 0);
|
|
||||||
}
|
|
||||||
DO(SetBool1 0){
|
|
||||||
DA(setVal 0 0 2 1 0);
|
|
||||||
}
|
|
||||||
DO(SetBool2 0){
|
|
||||||
DA(setVal 0 0 2 1 0);
|
|
||||||
}
|
|
||||||
DO(SetBool3 0){
|
|
||||||
DA(setVal 0 0 2 1 0);
|
|
||||||
}
|
|
||||||
DO(SetBool4 0){
|
|
||||||
DA(setVal 0 0 2 1 0);
|
|
||||||
}
|
|
||||||
DO(Int64 0){
|
|
||||||
DA(stVal 0 4 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(SetAnVal 0){
|
|
||||||
DA(setMag 0 27 2 1 0){
|
|
||||||
DA(f 0 10 2 1 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
DS(Events){
|
|
||||||
DE(GGIO1$ST$SPCSO1$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO2$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO3$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO4$stVal);
|
|
||||||
}
|
|
||||||
DS(EventsFCDO){
|
|
||||||
DE(GGIO1$ST$SPCSO1);
|
|
||||||
DE(GGIO1$ST$SPCSO2);
|
|
||||||
DE(GGIO1$ST$SPCSO3);
|
|
||||||
DE(GGIO1$ST$SPCSO4);
|
|
||||||
}
|
|
||||||
DS(Booleans){
|
|
||||||
DE(LLN0$SP$SetBool1$setVal);
|
|
||||||
DE(LLN0$SP$SetBool2$setVal);
|
|
||||||
DE(LLN0$SP$SetBool3$setVal);
|
|
||||||
DE(LLN0$SP$SetBool4$setVal);
|
|
||||||
}
|
|
||||||
DS(Integers){
|
|
||||||
DE(LLN01$SP$SetInt1$setVal);
|
|
||||||
DE(LLN01$SP$SetInt2$setVal);
|
|
||||||
DE(LLN01$SP$SetInt3$setVal);
|
|
||||||
DE(LLN01$SP$SetInt4$setVal);
|
|
||||||
}
|
|
||||||
RC(EventsRCB01 Events1 0 Events 1 24 239 50 1000);
|
|
||||||
RC(EventsRCB02 Events1 0 Events 1 24 239 50 1000);
|
|
||||||
RC(BufferedRCB01 Events1 1 Events 1 24 239 50 1000);
|
|
||||||
RC(BufferedRCB02 Events1 1 Events 1 24 239 50 1000);
|
|
||||||
GC(gcbEvents events Events 1 0 1000 3000 ){
|
|
||||||
PA(4 1 4096 010ccd010001);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LN(LPHD1){
|
|
||||||
DO(PhyNam 0){
|
|
||||||
DA(vendor 0 20 5 0 0);
|
|
||||||
}
|
|
||||||
DO(PhyHealth 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Proxy 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LN(GGIO1){
|
|
||||||
DO(Mod 0){
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=0;
|
|
||||||
}
|
|
||||||
DO(Beh 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Health 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(NamPlt 0){
|
|
||||||
DA(vendor 0 20 5 0 0);
|
|
||||||
DA(swRev 0 20 5 0 0);
|
|
||||||
DA(d 0 20 5 0 0);
|
|
||||||
DA(dU 0 21 5 0 0);
|
|
||||||
}
|
|
||||||
DO(AnIn1 0){
|
|
||||||
DA(mag 0 27 1 1 0){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DO(AnIn2 0){
|
|
||||||
DA(mag 0 27 1 1 0){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DO(AnIn3 0){
|
|
||||||
DA(mag 0 27 1 1 0){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DO(AnIn4 0){
|
|
||||||
DA(mag 0 27 1 1 0){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DO(SPCSO1 0){
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=1;
|
|
||||||
}
|
|
||||||
DO(SPCSO2 0){
|
|
||||||
DA(SBO 0 17 12 0 0);
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(Cancel 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
}
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=2;
|
|
||||||
DA(sboClass 0 12 4 0 0);
|
|
||||||
}
|
|
||||||
DO(SPCSO3 0){
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(Cancel 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
}
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=3;
|
|
||||||
}
|
|
||||||
DO(SPCSO4 0){
|
|
||||||
DA(SBOw 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(Cancel 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
}
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=4;
|
|
||||||
}
|
|
||||||
DO(SPCSO5 0){
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(operTm 0 22 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=1;
|
|
||||||
DA(Cancel 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
DO(SPCSO6 0){
|
|
||||||
DA(SBO 0 17 12 0 0);
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(operTm 0 22 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(Cancel 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(operTm 0 22 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
}
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=2;
|
|
||||||
}
|
|
||||||
DO(SPCSO7 0){
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(operTm 0 22 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(Cancel 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(operTm 0 22 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
}
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=3;
|
|
||||||
}
|
|
||||||
DO(SPCSO8 0){
|
|
||||||
DA(SBOw 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(operTm 0 22 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(operTm 0 22 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(Cancel 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(operTm 0 22 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
}
|
|
||||||
DA(origin 0 27 0 0 0){
|
|
||||||
DA(orCat 0 12 0 0 0);
|
|
||||||
DA(orIdent 0 13 0 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 0 0 0);
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=4;
|
|
||||||
}
|
|
||||||
DO(Ind1 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Ind2 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Ind3 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Ind4 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(SchdAbsTm 0){
|
|
||||||
DA(val 24 10 2 1 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LN(MHAI1){
|
|
||||||
DO(HA 0){
|
|
||||||
DO(phsAHar 16){
|
|
||||||
DA(cVal 0 27 1 5 0){
|
|
||||||
DA(mag 0 27 1 5 0){
|
|
||||||
DA(f 0 10 1 5 0);
|
|
||||||
}
|
|
||||||
DA(ang 0 27 1 5 0){
|
|
||||||
DA(f 0 10 1 5 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DA(numHar 0 7 4 1 0)=16;
|
|
||||||
DA(numCyc 0 7 4 1 0);
|
|
||||||
DA(evalTm 0 7 4 1 0);
|
|
||||||
DA(frequency 0 10 4 1 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,237 +0,0 @@
|
|||||||
MODEL(simpleIO){
|
|
||||||
LD(GenericIO){
|
|
||||||
LN(LLN0){
|
|
||||||
DO(Mod 0){
|
|
||||||
DA(stVal 0 12 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=0;
|
|
||||||
}
|
|
||||||
DO(Beh 0){
|
|
||||||
DA(stVal 0 12 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Health 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(NamPlt 0){
|
|
||||||
DA(vendor 0 20 5 0 0);
|
|
||||||
DA(swRev 0 20 5 0 0);
|
|
||||||
DA(d 0 20 5 0 0);
|
|
||||||
DA(configRev 0 20 5 0 0);
|
|
||||||
DA(ldNs 0 20 11 0 0);
|
|
||||||
}
|
|
||||||
DS(Events){
|
|
||||||
DE(GGIO1$ST$SPCSO1$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO2$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO3$stVal);
|
|
||||||
DE(GGIO1$ST$SPCSO4$stVal);
|
|
||||||
}
|
|
||||||
DS(AnalogValues){
|
|
||||||
DE(GGIO1$MX$AnIn1);
|
|
||||||
DE(GGIO1$MX$AnIn2);
|
|
||||||
DE(GGIO1$MX$AnIn3);
|
|
||||||
DE(GGIO1$MX$AnIn4);
|
|
||||||
}
|
|
||||||
RC(EventsRCB01 Events 0 Events 1 24 111 50 1000);
|
|
||||||
RC(AnalogValuesRCB01 AnalogValues 0 AnalogValues 1 24 111 50 1000);
|
|
||||||
LC(EventLog Events GenericIO/LLN0$EventLog 19 0 0 1);
|
|
||||||
LC(GeneralLog - - 19 0 0 1);
|
|
||||||
LOG(GeneralLog);
|
|
||||||
LOG(EventLog);
|
|
||||||
GC(gcbEvents events Events 2 0 -1 -1 ){
|
|
||||||
PA(4 273 4096 010ccd010001);
|
|
||||||
}
|
|
||||||
GC(gcbAnalogValues analog AnalogValues 2 0 -1 -1 ){
|
|
||||||
PA(4 273 4096 010ccd010001);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LN(LPHD1){
|
|
||||||
DO(PhyNam 0){
|
|
||||||
DA(vendor 0 20 5 0 0);
|
|
||||||
}
|
|
||||||
DO(PhyHealth 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Proxy 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LN(GGIO1){
|
|
||||||
DO(Mod 0){
|
|
||||||
DA(stVal 0 12 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=0;
|
|
||||||
}
|
|
||||||
DO(Beh 0){
|
|
||||||
DA(stVal 0 12 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Health 0){
|
|
||||||
DA(stVal 0 3 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(NamPlt 0){
|
|
||||||
DA(vendor 0 20 5 0 0);
|
|
||||||
DA(swRev 0 20 5 0 0);
|
|
||||||
DA(d 0 20 5 0 0);
|
|
||||||
}
|
|
||||||
DO(AnIn1 0){
|
|
||||||
DA(mag 0 27 1 1 0){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DO(AnIn2 0){
|
|
||||||
DA(mag 0 27 1 1 101){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 102);
|
|
||||||
}
|
|
||||||
DO(AnIn3 0){
|
|
||||||
DA(mag 0 27 1 1 0){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DO(AnIn4 0){
|
|
||||||
DA(mag 0 27 1 1 0){
|
|
||||||
DA(f 0 10 1 1 0);
|
|
||||||
}
|
|
||||||
DA(q 0 23 1 2 0);
|
|
||||||
DA(t 0 22 1 0 0);
|
|
||||||
}
|
|
||||||
DO(SPCSO1 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlModel 0 12 4 0 0)=1;
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(SPCSO2 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlModel 0 12 4 0 0)=1;
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(SPCSO3 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlModel 0 12 4 0 0)=1;
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(SPCSO4 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(Oper 0 27 12 0 0){
|
|
||||||
DA(ctlVal 0 0 12 0 0);
|
|
||||||
DA(origin 0 27 12 0 0){
|
|
||||||
DA(orCat 0 12 12 0 0);
|
|
||||||
DA(orIdent 0 13 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlNum 0 6 12 0 0);
|
|
||||||
DA(T 0 22 12 0 0);
|
|
||||||
DA(Test 0 0 12 0 0);
|
|
||||||
DA(Check 0 24 12 0 0);
|
|
||||||
}
|
|
||||||
DA(ctlModel 0 12 4 0 0)=1;
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Ind1 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Ind2 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Ind3 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Ind4 0){
|
|
||||||
DA(stVal 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
LN(PDUP1){
|
|
||||||
DO(Beh 0){
|
|
||||||
DA(stVal 0 12 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Mod 0){
|
|
||||||
DA(stVal 0 12 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
DA(ctlModel 0 12 4 0 0)=0;
|
|
||||||
}
|
|
||||||
DO(Str 0){
|
|
||||||
DA(general 0 0 0 1 0);
|
|
||||||
DA(dirGeneral 0 12 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(Op 0){
|
|
||||||
DA(general 0 0 0 1 0);
|
|
||||||
DA(q 0 23 0 2 0);
|
|
||||||
DA(t 0 22 0 0 0);
|
|
||||||
}
|
|
||||||
DO(OpDlTmms 0){
|
|
||||||
DA(setVal 0 3 2 1 0);
|
|
||||||
}
|
|
||||||
DO(RsDlTmms 0){
|
|
||||||
DA(setVal 0 3 2 1 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,58 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<ProjectGuid>{B63F7A81-1D3A-4F2F-A7C2-D6F77E5BD307}</ProjectGuid>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<RootNamespace>tls_server_example</RootNamespace>
|
|
||||||
<AssemblyName>tls_server_example</AssemblyName>
|
|
||||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
|
||||||
<DebugSymbols>true</DebugSymbols>
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>false</Optimize>
|
|
||||||
<OutputPath>bin\Debug</OutputPath>
|
|
||||||
<DefineConstants>DEBUG;</DefineConstants>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<Externalconsole>true</Externalconsole>
|
|
||||||
</PropertyGroup>
|
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
|
||||||
<DebugType>full</DebugType>
|
|
||||||
<Optimize>true</Optimize>
|
|
||||||
<OutputPath>bin\Release</OutputPath>
|
|
||||||
<ErrorReport>prompt</ErrorReport>
|
|
||||||
<WarningLevel>4</WarningLevel>
|
|
||||||
<Externalconsole>true</Externalconsole>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Reference Include="System" />
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Program.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\IEC61850forCSharp\IEC61850.NET.csproj">
|
|
||||||
<Project>{C35D624E-5506-4560-8074-1728F1FA1A4D}</Project>
|
|
||||||
<Name>IEC61850.NET</Name>
|
|
||||||
</ProjectReference>
|
|
||||||
</ItemGroup>
|
|
||||||
<ItemGroup>
|
|
||||||
<None Include="server-key.pem">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="server.cer">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="root.cer">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
<None Include="model.cfg">
|
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
</Project>
|
|
@ -1,21 +0,0 @@
|
|||||||
|
|
||||||
set(goose_observer_SRCS
|
|
||||||
goose_observer.c
|
|
||||||
)
|
|
||||||
|
|
||||||
IF(MSVC)
|
|
||||||
|
|
||||||
set_source_files_properties(${goose_observer_SRCS}
|
|
||||||
PROPERTIES LANGUAGE CXX)
|
|
||||||
|
|
||||||
ENDIF(MSVC)
|
|
||||||
|
|
||||||
add_executable(goose_observer
|
|
||||||
${goose_observer_SRCS}
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(goose_observer
|
|
||||||
iec61850
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
@ -1,101 +0,0 @@
|
|||||||
/*
|
|
||||||
* goose_observer.c
|
|
||||||
*
|
|
||||||
* This is an example for generic GOOSE observer
|
|
||||||
*
|
|
||||||
* Has to be started as root in Linux.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "goose_receiver.h"
|
|
||||||
#include "goose_subscriber.h"
|
|
||||||
#include "hal_thread.h"
|
|
||||||
|
|
||||||
#include <signal.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
static int running = 1;
|
|
||||||
|
|
||||||
void sigint_handler(int signalId)
|
|
||||||
{
|
|
||||||
running = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
gooseListener(GooseSubscriber subscriber, void* parameter)
|
|
||||||
{
|
|
||||||
printf("GOOSE event:\n");
|
|
||||||
printf(" vlanTag: %s\n", GooseSubscriber_isVlanSet(subscriber) ? "found" : "NOT found");
|
|
||||||
if (GooseSubscriber_isVlanSet(subscriber))
|
|
||||||
{
|
|
||||||
printf(" vlanId: %u\n", GooseSubscriber_getVlanId(subscriber));
|
|
||||||
printf(" vlanPrio: %u\n", GooseSubscriber_getVlanPrio(subscriber));
|
|
||||||
}
|
|
||||||
printf(" appId: %d\n", GooseSubscriber_getAppId(subscriber));
|
|
||||||
uint8_t macBuf[6];
|
|
||||||
GooseSubscriber_getSrcMac(subscriber,macBuf);
|
|
||||||
printf(" srcMac: %02X:%02X:%02X:%02X:%02X:%02X\n", macBuf[0],macBuf[1],macBuf[2],macBuf[3],macBuf[4],macBuf[5]);
|
|
||||||
GooseSubscriber_getDstMac(subscriber,macBuf);
|
|
||||||
printf(" dstMac: %02X:%02X:%02X:%02X:%02X:%02X\n", macBuf[0],macBuf[1],macBuf[2],macBuf[3],macBuf[4],macBuf[5]);
|
|
||||||
printf(" goId: %s\n", GooseSubscriber_getGoId(subscriber));
|
|
||||||
printf(" goCbRef: %s\n", GooseSubscriber_getGoCbRef(subscriber));
|
|
||||||
printf(" dataSet: %s\n", GooseSubscriber_getDataSet(subscriber));
|
|
||||||
printf(" confRev: %u\n", GooseSubscriber_getConfRev(subscriber));
|
|
||||||
printf(" ndsCom: %s\n", GooseSubscriber_needsCommission(subscriber) ? "true" : "false");
|
|
||||||
printf(" simul: %s\n", GooseSubscriber_isTest(subscriber) ? "true" : "false");
|
|
||||||
printf(" stNum: %u sqNum: %u\n", GooseSubscriber_getStNum(subscriber),
|
|
||||||
GooseSubscriber_getSqNum(subscriber));
|
|
||||||
printf(" timeToLive: %u\n", GooseSubscriber_getTimeAllowedToLive(subscriber));
|
|
||||||
|
|
||||||
uint64_t timestamp = GooseSubscriber_getTimestamp(subscriber);
|
|
||||||
|
|
||||||
printf(" timestamp: %u.%u\n", (uint32_t) (timestamp / 1000), (uint32_t) (timestamp % 1000));
|
|
||||||
printf(" message is %s\n", GooseSubscriber_isValid(subscriber) ? "valid" : "INVALID");
|
|
||||||
|
|
||||||
MmsValue* values = GooseSubscriber_getDataSetValues(subscriber);
|
|
||||||
|
|
||||||
char buffer[1024];
|
|
||||||
|
|
||||||
MmsValue_printToBuffer(values, buffer, 1024);
|
|
||||||
|
|
||||||
printf(" AllData: %s\n", buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main(int argc, char** argv)
|
|
||||||
{
|
|
||||||
GooseReceiver receiver = GooseReceiver_create();
|
|
||||||
|
|
||||||
if (argc > 1) {
|
|
||||||
printf("Set interface id: %s\n", argv[1]);
|
|
||||||
GooseReceiver_setInterfaceId(receiver, argv[1]);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
printf("Using interface eth0\n");
|
|
||||||
GooseReceiver_setInterfaceId(receiver, "eth0");
|
|
||||||
}
|
|
||||||
|
|
||||||
GooseSubscriber subscriber = GooseSubscriber_create("", NULL);
|
|
||||||
GooseSubscriber_setObserver(subscriber);
|
|
||||||
GooseSubscriber_setListener(subscriber, gooseListener, NULL);
|
|
||||||
|
|
||||||
GooseReceiver_addSubscriber(receiver, subscriber);
|
|
||||||
|
|
||||||
GooseReceiver_start(receiver);
|
|
||||||
|
|
||||||
if (GooseReceiver_isRunning(receiver)) {
|
|
||||||
signal(SIGINT, sigint_handler);
|
|
||||||
|
|
||||||
while (running) {
|
|
||||||
Thread_sleep(100);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
printf("Failed to start GOOSE subscriber. Reason can be that the Ethernet interface doesn't exist or root permission are required.\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
GooseReceiver_stop(receiver);
|
|
||||||
|
|
||||||
GooseReceiver_destroy(receiver);
|
|
||||||
return 0;
|
|
||||||
}
|
|
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
set(iec61850_client_example3_SRCS
|
||||||
|
client_example3.c
|
||||||
|
)
|
||||||
|
|
||||||
|
IF(WIN32)
|
||||||
|
set_source_files_properties(${iec61850_client_example3_SRCS}
|
||||||
|
PROPERTIES LANGUAGE CXX)
|
||||||
|
ENDIF(WIN32)
|
||||||
|
|
||||||
|
add_executable(iec61850_client_example3
|
||||||
|
${iec61850_client_example3_SRCS}
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(iec61850_client_example3
|
||||||
|
iec61850
|
||||||
|
)
|
@ -1,7 +1,7 @@
|
|||||||
LIBIEC_HOME=../..
|
LIBIEC_HOME=../..
|
||||||
|
|
||||||
PROJECT_BINARY_NAME = goose_observer
|
PROJECT_BINARY_NAME = client_example3
|
||||||
PROJECT_SOURCES = goose_observer.c
|
PROJECT_SOURCES = client_example3.c
|
||||||
|
|
||||||
include $(LIBIEC_HOME)/make/target_system.mk
|
include $(LIBIEC_HOME)/make/target_system.mk
|
||||||
include $(LIBIEC_HOME)/make/stack_includes.mk
|
include $(LIBIEC_HOME)/make/stack_includes.mk
|
@ -0,0 +1,219 @@
|
|||||||
|
/*
|
||||||
|
* client_example3.c
|
||||||
|
*
|
||||||
|
* How to control a device ... intended to be used with server_example_control
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "iec61850_client.h"
|
||||||
|
#include "hal_thread.h"
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
static void commandTerminationHandler(void *parameter, ControlObjectClient connection)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
LastApplError lastApplError = ControlObjectClient_getLastApplError(connection);
|
||||||
|
|
||||||
|
// if lastApplError.error != 0 this indicates a CommandTermination-
|
||||||
|
if (lastApplError.error != 0) {
|
||||||
|
printf("Received CommandTermination-.\n");
|
||||||
|
printf(" LastApplError: %i\n", lastApplError.error);
|
||||||
|
printf(" addCause: %i\n", lastApplError.addCause);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
printf("Received CommandTermination+.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char** argv) {
|
||||||
|
|
||||||
|
char* hostname;
|
||||||
|
int tcpPort = 102;
|
||||||
|
|
||||||
|
if (argc > 1)
|
||||||
|
hostname = argv[1];
|
||||||
|
else
|
||||||
|
hostname = "localhost";
|
||||||
|
|
||||||
|
if (argc > 2)
|
||||||
|
tcpPort = atoi(argv[2]);
|
||||||
|
|
||||||
|
IedClientError error;
|
||||||
|
|
||||||
|
IedConnection con = IedConnection_create();
|
||||||
|
|
||||||
|
IedConnection_connect(con, &error, hostname, tcpPort);
|
||||||
|
|
||||||
|
if (error == IED_ERROR_OK) {
|
||||||
|
|
||||||
|
|
||||||
|
/************************
|
||||||
|
* Direct control
|
||||||
|
***********************/
|
||||||
|
|
||||||
|
ControlObjectClient control
|
||||||
|
= ControlObjectClient_create("simpleIOGenericIO/GGIO1.SPCSO1", con);
|
||||||
|
|
||||||
|
MmsValue* ctlVal = MmsValue_newBoolean(true);
|
||||||
|
|
||||||
|
ControlObjectClient_setOrigin(control, NULL, 3);
|
||||||
|
|
||||||
|
if (ControlObjectClient_operate(control, ctlVal, 0 /* operate now */)) {
|
||||||
|
printf("simpleIOGenericIO/GGIO1.SPCSO1 operated successfully\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("failed to operate simpleIOGenericIO/GGIO1.SPCSO1\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
MmsValue_delete(ctlVal);
|
||||||
|
|
||||||
|
ControlObjectClient_destroy(control);
|
||||||
|
|
||||||
|
/* Check if status value has changed */
|
||||||
|
|
||||||
|
MmsValue* stVal = IedConnection_readObject(con, &error, "simpleIOGenericIO/GGIO1.SPCSO1.stVal", IEC61850_FC_ST);
|
||||||
|
|
||||||
|
if (error == IED_ERROR_OK) {
|
||||||
|
bool state = MmsValue_getBoolean(stVal);
|
||||||
|
MmsValue_delete(stVal);
|
||||||
|
|
||||||
|
printf("New status of simpleIOGenericIO/GGIO1.SPCSO1.stVal: %i\n", state);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("Reading status for simpleIOGenericIO/GGIO1.SPCSO1 failed!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/************************
|
||||||
|
* Select before operate
|
||||||
|
***********************/
|
||||||
|
|
||||||
|
control = ControlObjectClient_create("simpleIOGenericIO/GGIO1.SPCSO2", con);
|
||||||
|
|
||||||
|
if (ControlObjectClient_select(control)) {
|
||||||
|
|
||||||
|
ctlVal = MmsValue_newBoolean(true);
|
||||||
|
|
||||||
|
if (ControlObjectClient_operate(control, ctlVal, 0 /* operate now */)) {
|
||||||
|
printf("simpleIOGenericIO/GGIO1.SPCSO2 operated successfully\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("failed to operate simpleIOGenericIO/GGIO1.SPCSO2!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
MmsValue_delete(ctlVal);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("failed to select simpleIOGenericIO/GGIO1.SPCSO2!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
ControlObjectClient_destroy(control);
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************
|
||||||
|
* Direct control with enhanced security
|
||||||
|
****************************************/
|
||||||
|
|
||||||
|
control = ControlObjectClient_create("simpleIOGenericIO/GGIO1.SPCSO3", con);
|
||||||
|
|
||||||
|
ControlObjectClient_setCommandTerminationHandler(control, commandTerminationHandler, NULL);
|
||||||
|
|
||||||
|
ctlVal = MmsValue_newBoolean(true);
|
||||||
|
|
||||||
|
if (ControlObjectClient_operate(control, ctlVal, 0 /* operate now */)) {
|
||||||
|
printf("simpleIOGenericIO/GGIO1.SPCSO3 operated successfully\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("failed to operate simpleIOGenericIO/GGIO1.SPCSO3\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
MmsValue_delete(ctlVal);
|
||||||
|
|
||||||
|
/* Wait for command termination message */
|
||||||
|
Thread_sleep(1000);
|
||||||
|
|
||||||
|
ControlObjectClient_destroy(control);
|
||||||
|
|
||||||
|
/* Check if status value has changed */
|
||||||
|
|
||||||
|
stVal = IedConnection_readObject(con, &error, "simpleIOGenericIO/GGIO1.SPCSO3.stVal", IEC61850_FC_ST);
|
||||||
|
|
||||||
|
if (error == IED_ERROR_OK) {
|
||||||
|
bool state = MmsValue_getBoolean(stVal);
|
||||||
|
|
||||||
|
printf("New status of simpleIOGenericIO/GGIO1.SPCSO3.stVal: %i\n", state);
|
||||||
|
|
||||||
|
MmsValue_delete(stVal);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("Reading status for simpleIOGenericIO/GGIO1.SPCSO3 failed!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
/***********************************************
|
||||||
|
* Select before operate with enhanced security
|
||||||
|
***********************************************/
|
||||||
|
|
||||||
|
control = ControlObjectClient_create("simpleIOGenericIO/GGIO1.SPCSO4", con);
|
||||||
|
|
||||||
|
ControlObjectClient_setCommandTerminationHandler(control, commandTerminationHandler, NULL);
|
||||||
|
|
||||||
|
ctlVal = MmsValue_newBoolean(true);
|
||||||
|
|
||||||
|
if (ControlObjectClient_selectWithValue(control, ctlVal)) {
|
||||||
|
|
||||||
|
if (ControlObjectClient_operate(control, ctlVal, 0 /* operate now */)) {
|
||||||
|
printf("simpleIOGenericIO/GGIO1.SPCSO4 operated successfully\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("failed to operate simpleIOGenericIO/GGIO1.SPCSO4!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("failed to select simpleIOGenericIO/GGIO1.SPCSO4!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
MmsValue_delete(ctlVal);
|
||||||
|
|
||||||
|
/* Wait for command termination message */
|
||||||
|
Thread_sleep(1000);
|
||||||
|
|
||||||
|
ControlObjectClient_destroy(control);
|
||||||
|
|
||||||
|
|
||||||
|
/*********************************************************************
|
||||||
|
* Direct control with enhanced security (expect CommandTermination-)
|
||||||
|
*********************************************************************/
|
||||||
|
|
||||||
|
control = ControlObjectClient_create("simpleIOGenericIO/GGIO1.SPCSO9", con);
|
||||||
|
|
||||||
|
ControlObjectClient_setCommandTerminationHandler(control, commandTerminationHandler, NULL);
|
||||||
|
|
||||||
|
ctlVal = MmsValue_newBoolean(true);
|
||||||
|
|
||||||
|
if (ControlObjectClient_operate(control, ctlVal, 0 /* operate now */)) {
|
||||||
|
printf("simpleIOGenericIO/GGIO1.SPCSO9 operated successfully\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("failed to operate simpleIOGenericIO/GGIO1.SPCSO9\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
MmsValue_delete(ctlVal);
|
||||||
|
|
||||||
|
/* Wait for command termination message */
|
||||||
|
Thread_sleep(1000);
|
||||||
|
|
||||||
|
ControlObjectClient_destroy(control);
|
||||||
|
|
||||||
|
|
||||||
|
IedConnection_close(con);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
printf("Connection failed!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
IedConnection_destroy(con);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
|||||||
|
|
||||||
set(iec61850_client_example_array_SRCS
|
|
||||||
client_example_array.c
|
|
||||||
)
|
|
||||||
|
|
||||||
IF(MSVC)
|
|
||||||
set_source_files_properties(${iec61850_client_example_array_SRCS}
|
|
||||||
PROPERTIES LANGUAGE CXX)
|
|
||||||
ENDIF(MSVC)
|
|
||||||
|
|
||||||
add_executable(iec61850_client_example_array
|
|
||||||
${iec61850_client_example_array_SRCS}
|
|
||||||
)
|
|
||||||
|
|
||||||
target_link_libraries(iec61850_client_example_array
|
|
||||||
iec61850
|
|
||||||
)
|
|
@ -1,17 +0,0 @@
|
|||||||
LIBIEC_HOME=../..
|
|
||||||
|
|
||||||
PROJECT_BINARY_NAME = client_example_array
|
|
||||||
PROJECT_SOURCES = client_example_array.c
|
|
||||||
|
|
||||||
include $(LIBIEC_HOME)/make/target_system.mk
|
|
||||||
include $(LIBIEC_HOME)/make/stack_includes.mk
|
|
||||||
|
|
||||||
all: $(PROJECT_BINARY_NAME)
|
|
||||||
|
|
||||||
include $(LIBIEC_HOME)/make/common_targets.mk
|
|
||||||
|
|
||||||
$(PROJECT_BINARY_NAME): $(PROJECT_SOURCES) $(LIB_NAME)
|
|
||||||
$(CC) $(CFLAGS) $(LDFLAGS) -o $(PROJECT_BINARY_NAME) $(PROJECT_SOURCES) $(INCLUDES) $(LIB_NAME) $(LDLIBS)
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f $(PROJECT_BINARY_NAME)
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue