Compare commits
No commits in common. 'v1.5' and 'v1.2.1' 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=../..
|
||||
|
||||
PROJECT_BINARY_NAME = goose_observer
|
||||
PROJECT_SOURCES = goose_observer.c
|
||||
PROJECT_BINARY_NAME = client_example3
|
||||
PROJECT_SOURCES = client_example3.c
|
||||
|
||||
include $(LIBIEC_HOME)/make/target_system.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