Initial commit: Wonderware / System Platform tools and reference

Five tools under one repo, all docs organized per DOCS-GUIDE.md:

- aalogcli: .NET 4.8 / x86 CliFx CLI for reading System Platform binary
  logs (*.aaLGX) for LLM debugging, built on aaOpenSource/aaLog. Commands:
  last, tail, range, unread, fields. Stable JSON envelope under --llm-json.
  Build template under lib/build/ for rebuilding aaLogReader.dll.

- aot: ArchestrA Object Toolkit 2014 v4.0 reference material. Dev guide
  (Markdown converted from CHM), API reference for the ArchestrA.Toolkit
  namespace, and the Monitor / Watchdog VS sample solutions.

- graccesscli: .NET 4.8 / x86 CliFx CLI that automates Galaxy
  configuration via the ArchestrA GRAccess COM interop. Includes session
  daemon, IPC protocol, and llm-json envelope contract.

- grdb: SQL/DDL exploration of the Galaxy Repository database. DDL
  captures, reusable queries, hierarchy / contained-name <-> tag-name
  translation notes.

- histdb: LLM-oriented reference for AVEVA Historian retrieval. INSQL
  linked-server, extension tables, every wwXxx time-domain extension,
  every retrieval mode, alarm/event SQL recipes, REST API. Distilled
  from the 243-page Historian Retrieval Guide.

Root contains:
- CLAUDE.md: thin index pointing into each tool's README.
- DOCS-GUIDE.md: doctrine for organizing docs for LLM consumption.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Joseph Doherty
2026-05-03 18:22:20 -04:00
commit 32f26272ae
411 changed files with 69973 additions and 0 deletions
+38
View File
@@ -0,0 +1,38 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Monitor", "Monitor\Monitor.csproj", "{0D1ADE9C-7960-4C20-A274-1FFEAAFF9315}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonitorRuntime", "MonitorRuntime\MonitorRuntime.csproj", "{71A913E8-9A33-4A92-AD13-6B9023E5C8E5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonitorConfigtime", "MonitorConfigtime\MonitorConfigtime.csproj", "{E684C279-E337-41AB-BB43-CA0A04E65D53}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MonitorEditor", "MonitorEditor\MonitorEditor.csproj", "{06CEDE14-B295-4817-A439-D2B60D71FF4C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0D1ADE9C-7960-4C20-A274-1FFEAAFF9315}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D1ADE9C-7960-4C20-A274-1FFEAAFF9315}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0D1ADE9C-7960-4C20-A274-1FFEAAFF9315}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0D1ADE9C-7960-4C20-A274-1FFEAAFF9315}.Release|Any CPU.Build.0 = Release|Any CPU
{71A913E8-9A33-4A92-AD13-6B9023E5C8E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{71A913E8-9A33-4A92-AD13-6B9023E5C8E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{71A913E8-9A33-4A92-AD13-6B9023E5C8E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{71A913E8-9A33-4A92-AD13-6B9023E5C8E5}.Release|Any CPU.Build.0 = Release|Any CPU
{E684C279-E337-41AB-BB43-CA0A04E65D53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E684C279-E337-41AB-BB43-CA0A04E65D53}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E684C279-E337-41AB-BB43-CA0A04E65D53}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E684C279-E337-41AB-BB43-CA0A04E65D53}.Release|Any CPU.Build.0 = Release|Any CPU
{06CEDE14-B295-4817-A439-D2B60D71FF4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{06CEDE14-B295-4817-A439-D2B60D71FF4C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{06CEDE14-B295-4817-A439-D2B60D71FF4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{06CEDE14-B295-4817-A439-D2B60D71FF4C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
Binary file not shown.
@@ -0,0 +1,410 @@
<?xml version="1.0" encoding="utf-8"?>
<xml>
<version>1</version>
<CCData>
<RTSODEC><![CDATA[ #region Declarations
//Declare Runtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Runtime Class.
]]></RTSODEC>
<RTSOGetStatusDesc><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - GetStatusDesc
//
// This routine provides a String for an error code when a client requests it.
// By default this method looks for an entry in the dictionary that has the
// DetailedErrorCode as the PhraseID.
//
// You need to change this implmentation if you want to provide embedded values
// within your messages, or you want to use string PhraseIDs instead of integer
// PhraseIDs.
//------------------------------------------------------------------------------
switch (e.detailedErrorCode)
{
default:
e.status = GetText((int)e.detailedErrorCode);
break;
}
]]></RTSOGetStatusDesc>
<RTSOSetScanState><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - SetScanState
//
// Perform actions when the object goes on or off scan.
//------------------------------------------------------------------------------
]]></RTSOSetScanState>
<RTSOInitialize><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime - Initialize
//
// Do not read or write attribute values of this primitive during Initialize
//------------------------------------------------------------------------------
]]></RTSOInitialize>
<RTSOExecute><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime - Execute
//
// This is where the main logic of the object periodically executes when
// the object is on scan.
//
// Read or write the attributes of this primitive using the generated
// properties (Value, Quality).
//------------------------------------------------------------------------------
#region Example code
// // The lines below both increment the value of the attribute "Attribute1" by 1
// Example_001 ++;
// Example_001 = Example_001 + 1;
//
// //Example_001 quality is set to Bad on Condition_001 being true.
// Example_001.Quality = (Condition_001 ? DataQuality.DataQualityBad : DataQuality.DataQualityGood);
//
// // The attribute "ElapsedTime" contains the time elapsed since the last reset
// ElapsedTime = GetScanTime() - TimeOfLastReset;
//
// // Increment the 3rd element of an array
// FloatArray[3] ++;
//
// // Increment all the elements of an array
// for( short counter = 1; counter <= FloatArray.Length; counter ++)
// {
// FloatArray[counter] ++;
// }
#endregion
]]></RTSOExecute>
<RTSOShutdown><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - Shutdown
//
// Clean up dynamic allocation, release open resources, etc.
//------------------------------------------------------------------------------
]]></RTSOShutdown>
<RTSOStartup><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - Startup
//
// Cache attributes. Cache Primitive IDs of other known primitives.
//------------------------------------------------------------------------------
// RestoreDynamicAttributes will recreate the Dynamic Attributes and restore the check pointed
// values during failover startup. The Failover Support for Dynamic Attributes option must
// be enabled via the Object Editor to support this function. To maintain the
// Dynamic Attribute values the CheckpointDynamicAttributeData function must be called
// when Dynamic Attribute values are modified (refer to the Dynamic Attribute Set Handler).
//RestoreDynamicAttributes();
// Execute offscan code to initialize the object in its offscan state.
SetScanState(false);
]]></RTSOStartup>
<RTSODynamic_Attributes_Set_Handler><![CDATA[
string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Runtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
// CheckpointDynamicAttributeData will update the checkpoint values for all Dynamic Attributes.
// To recreate Dynamic Attributes and restore Dynamic Attribute values the RestoreDynamicAttributes
// function must be called when starting up from failover (refer to the Startup method).
//CheckpointDynamicAttributeData();
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
Set(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
]]></RTSODynamic_Attributes_Set_Handler>
<CTSODEC><![CDATA[ #region Declarations
//Declare Configtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Configtime Class.
]]></CTSODEC>
<CTSOValidate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - Validate
//
// Validate sets the warning or error text for the object.
// It is used to check conditions that would not be checked using
// a SetHandler, such as reporting that an object was not
// configured, or that combinations of attributes are illegal.
//
// Other than calling AddWarningMessage or AddErrorMessage, Validate
// should never modify the state of the object.
//------------------------------------------------------------------------------
#region Example code
// if (MyTestDefaultState)
// {
// //Add a warning message using the dictionay phrase ID "ObjectStillInDefaultState"
// AddWarningMessage(GetText("ObjectStillInDefaultState"));
//
// //Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
//
// if (MyTestAttributeCombinationValid)
// {
// //Add a warning message using the dictionay phrase ID "AttributeCombinationInvalid"
// AddWarningMessage(GetText("AttributeCombinationInvalid"));
//
// // Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
#endregion
// By default set the object status to Good
status = EPACKAGESTATUS.ePackageGood;
// The following statement will exit validate when validating templates.
// Place code that should be validated in templates and instances before this
// statement. Code placed after this statement will execute in instances only.
if ((bool)Get((short)ECOMMONPRIMITIVE.idxCommonIsTemplate, eCommonPrimitiveId))
{
return;
}
]]></CTSOValidate>
<CTSOInitialize><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - Initialize
//
// Any custom initialization can be done here, including caching of attribute
// values, primitive IDs etc.
//------------------------------------------------------------------------------
]]></CTSOInitialize>
<CTSOMigrate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - Migrate
//
// Migrate executes when importing a template into a Galaxy that contains
// a previous version (major) of the template. The template must be derived or
// instantiated for migrate to execute.
//
// Migrate provides access to the previous versions attribute information.
// A typical application for migrate code is to preserve attribute values
// when an attribute name has changed (refer to the Example code below).
//
// To enable this event the migrate option must be configured via the Toolkit
// Editor or in code (i.e. [ObjectAttributes.AMigrate("1","2")]).
//
// If no implementation is provided, the system will copy all attribute values
// from the old object to the new one by matching the attribute names.
//------------------------------------------------------------------------------
#region Example code
// //Check major version of previous template
// if (migrate.MajorVersion() == 1)
// {
// //Attribute "Eg_001" has been renamed to "Example_001".
// //Transfer attribute value, lock and security classification
// Example_001 = migrate.GetValue("Eg_001"); //Gets value
// Example_001.Locked = migrate.GetLocked("Eg_001"); //Gets lock status
// Example_001.Security = migrate.GetSecurity("Eg_001"); //Gets Security Classification
//
// //Transfer primitive values
// SetValue("Example_001.TrendHi", migrate.GetValue("Eg_001.TrendHi"));
// SetValue("Example_001.TrendHi", EATTRIBUTEPROPERTY.idxAttribPropLocked, migrate.GetLocked("Eg_001.TrendHi"));
//
// //Automatically migrate all child primitives
// migrate.AutoMigrateChildPrimitives = true;
// }
#endregion
]]></CTSOMigrate>
<CTSOPreValidate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - PreValidate
//
// PreValidate is called when the object is about to be validated (e.g. when
// an edit session is ending and the object is about to be saved.)
//
// A primitive can modify attributes within this method.
//
// Note: It is often not necessary to perform any actions in OnPreValidate.
//------------------------------------------------------------------------------
]]></CTSOPreValidate>
<CTSOPostCreate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - PostCreate
//
// OnPostCreate is called when an object is first created.
//
// One purpose for implementing this method is to insure that the initial
// state of the primitive is valid.
//
// This method can be used by a Resuable Primitive to correct invalid initial
// states that can arise when an attribute value has been overridden. If the
// attribute has a SetHandler with validation or side effects the SetHandler
// does not execute as overrides do not trigger SetHandlers.
//------------------------------------------------------------------------------
#region Example code
// // If statistics are enabled, add the Statistics virtual primitive
// // the way the SetHandler would have done it.
// if (StatsEnable)
// {
// AddPrimitive("Statistics", "Statistics1", "Statistics1");
// }
#endregion
]]></CTSOPostCreate>
<CTSODynamic_Attributes_Set_Handler><![CDATA[
string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Configtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
Set(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
]]></CTSODynamic_Attributes_Set_Handler>
</CCData>
<BuildInfo>
<OutputDir><![CDATA[..\Output\]]></OutputDir>
<Project TopMost="True" CreateAADEF="True">
<FullOutputFileName><![CDATA[bin\Debug\Monitor5.dll]]></FullOutputFileName>
<OutputPath><![CDATA[bin\Debug\]]></OutputPath>
<ProjectPath><![CDATA[]]></ProjectPath>
<ClassName>ArchestrA.Toolkit.Monitor.Monitor</ClassName>
<DependentFiles>
<dep>
<name><![CDATA[Monitor5RC.dll]]></name>
<vendor><![CDATA[test]]></vendor>
<type>Runtime</type>
<fileType>ComDLL</fileType>
<def />
</dep>
<dep>
<name><![CDATA[Monitor5.dll]]></name>
<vendor><![CDATA[test]]></vendor>
<type>Runtime, Configtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[Monitor5.reg]]></name>
<vendor><![CDATA[test]]></vendor>
<type>Runtime, Configtime</type>
<fileType>MergeRegistryScript</fileType>
</dep>
<dep>
<name><![CDATA[MonitorRuntime5.dll]]></name>
<vendor><![CDATA[test]]></vendor>
<type>Runtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[MonitorRuntime5.reg]]></name>
<vendor><![CDATA[test]]></vendor>
<type>Runtime</type>
<fileType>MergeRegistryScript</fileType>
</dep>
<dep>
<name><![CDATA[MonitorConfigtime5.dll]]></name>
<vendor><![CDATA[test]]></vendor>
<type>Configtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[MonitorConfigtime5.reg]]></name>
<vendor><![CDATA[test]]></vendor>
<type>Configtime</type>
<fileType>MergeRegistryScript</fileType>
</dep>
<dep>
<name><![CDATA[MonitorEditor5.dll]]></name>
<vendor><![CDATA[test]]></vendor>
<type>Editor</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[MonitorEditor5.reg]]></name>
<vendor><![CDATA[test]]></vendor>
<type>Editor</type>
<fileType>MergeRegistryScript</fileType>
</dep>
<dep>
<name><![CDATA[C:\WINDOWS\assembly\GAC_MSIL\ArchestrA.Toolkit.ArchestrAControlLibrary\1.0.0.0__f787e550f2f530ee\ArchestrA.Toolkit.ArchestrAControlLibrary.dll]]></name>
<vendor><![CDATA[Wonderware]]></vendor>
<type>Runtime, Configtime, Editor</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[C:\WINDOWS\assembly\GAC_MSIL\ArchestrA.Toolkit.ArchestrAObjectSupport\1.0.0.0__f787e550f2f530ee\ArchestrA.Toolkit.ArchestrAObjectSupport.dll]]></name>
<vendor><![CDATA[Wonderware]]></vendor>
<type>Runtime, Configtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<editor>MonitorEditor5</editor>
<attribute>
<name>ResetInputAvg</name>
<run />
</attribute>
<attribute>
<name>PVHiLimit</name>
<cfg />
<run />
</attribute>
<attribute>
<name>PV</name>
<run />
</attribute>
<FullName>Monitor</FullName>
</DependentFiles>
</Project>
<Project>
<FullOutputFileName><![CDATA[..\MonitorRuntime\bin\Debug\MonitorRuntime5.dll]]></FullOutputFileName>
<OutputPath><![CDATA[..\MonitorRuntime\bin\Debug\]]></OutputPath>
<ProjectPath><![CDATA[..\MonitorRuntime]]></ProjectPath>
</Project>
<Project>
<FullOutputFileName><![CDATA[..\MonitorConfigtime\bin\Debug\MonitorConfigtime5.dll]]></FullOutputFileName>
<OutputPath><![CDATA[..\MonitorConfigtime\bin\Debug\]]></OutputPath>
<ProjectPath><![CDATA[..\MonitorConfigtime]]></ProjectPath>
</Project>
<Project>
<FullOutputFileName><![CDATA[..\MonitorEditor\bin\Debug\MonitorEditor5.dll]]></FullOutputFileName>
<OutputPath><![CDATA[..\MonitorEditor\bin\Debug\]]></OutputPath>
<ProjectPath><![CDATA[..\MonitorEditor]]></ProjectPath>
</Project>
</BuildInfo>
<Build_Type><![CDATA[Build & Instantiate]]></Build_Type>
</xml>
+69
View File
@@ -0,0 +1,69 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using System.Collections;
using ArchestrA.Core;
using ArchestrA.Toolkit;
using ArchestrA.Toolkit.SystemPrimitive;
namespace ArchestrA.Toolkit.Monitor
{
#region Object Information - Toolkit generated code
// Required region for Object Information - do not modify
// the contents of this region with the code editor.
[AObject()]
[Guid("fbdfa384-05c8-42ce-8b41-75e40436b6f2")]
[ObjectAttributes.Dictionary(@"Monitor5.aaDCT")]
[ObjectAttributes.ConfigtimeCLSID("dbed4eb2-a279-4660-9497-448092f54047")]
[ObjectAttributes.RuntimeCLSID("df4726d8-fe33-4d79-a6a1-b8198f1e5ac1")]
[ObjectAttributes.MajorVersion(1)]
[ObjectAttributes.MinorVersion(1)]
[ObjectAttributes.Migrate("")]
#endregion
// Required attributes for Object Information.
// Changes made using the code editor will appear in the Toolkit Editor.
[ObjectAttributes.Name("Monitor")]
[ObjectAttributes.Vendor("test")]
[ObjectAttributes.ShortDescription("Description for Watchdog")]
[ObjectAttributes.ToolsetName("Application")]
[ObjectAttributes.Events()]
[ObjectAttributes.IDEBehavior()]
[AReusablePrimitiveRef(@"ArchestrA\InputOutputPrimitive1.aaPri", "PVInputOutput", "PVInputOutput", false)]
[AReusablePrimitiveRef.AttrOverride("PVInputOutput", "DataType", "LockStatus", true)]
[AReusablePrimitiveRef.AttrOverride("PVInputOutput", "DataType", "Value", MxDataType.MxFloat)]
/// <summary>
/// Summary description for Monitor
/// </summary>
public class Monitor
{
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryCalculatedRetentive)]
[Attributes.AAttrCalculatedQuality(true)]
public CMxDouble PVInputAvg = new CMxDouble();
[Attributes.AAttrFrequentlyAccessed(true)]
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryWriteable_US)]
[Attributes.AAttrCalculatedQuality(true)]
public CMxFloat PV = new CMxFloat();
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryWriteable_USC)]
public CMxFloat PVHiLimit = new CMxFloat();
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryWriteable_US)]
public CMxBoolean ResetInputAvg = new CMxBoolean();
public Monitor()
{
}
}
}
+127
View File
@@ -0,0 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{0D1ADE9C-7960-4C20-A274-1FFEAAFF9315}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ArchestrA.Toolkit.Monitor</RootNamespace>
<AssemblyName>Monitor5</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Monitor.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>4.0</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArchestrA.Toolkit.ArchestrAObjectSupport, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f787e550f2f530ee, processorArchitecture=MSI">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Toolkit.ArchestrAObjectSupport.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ArchestrA.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=23106a86e706d0ae">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Core.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Monitor.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="AAObjectInfo.xml" />
</ItemGroup>
<ItemGroup>
<None Include="..\Monitor.snk">
<Link>Monitor.snk</Link>
</None>
<None Include="Monitor1.aaDCT" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary>
<Phrase_Index PhraseID="SampleEntry">
<Language LangID="1033">
<VALUE>English Example</VALUE>
</Language>
<Language LangID="1031">
<VALUE>German Example</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="HiLimitExceeded">
<Language LangID="1033">
<VALUE>The value you tried to send out exceeded HiLimit</VALUE>
</Language>
</Phrase_Index>
</Dictionary>
@@ -0,0 +1,45 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("MonitorDef")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("test")]
[assembly: AssemblyProduct("MonitorDef")]
[assembly: AssemblyCopyright("Copyright © Wonderware 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("700395fc-5289-432f-a186-7ce01ed63ee9")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
@@ -0,0 +1,472 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using System.Collections;
using ArchestrA.Core;
using ArchestrA.Toolkit;
namespace ArchestrA.Toolkit.Monitor
{
[Guid("dbed4eb2-a279-4660-9497-448092f54047")]
/// <summary>
/// Summary description for MonitorConfigtime
/// </summary>
public class MonitorConfigtime : ConfigtimeBase
{
#region Attributes - Toolkit generated code
// The following C# properties have been defined to simplify access to
// attribute values - do not modify the contents of this region with
// the code editor.
private CMxFloat PVHiLimit
{
get { return InternalReferenceOnly.PVHiLimit; }
set { InternalReferenceOnly.PVHiLimit.Set(value); }
}
public __PVInputOutput PVInputOutput = null;
public class __PVInputOutput
{
public SupportWrapper Wrapper = new SupportWrapper();
private CMxReference _ReferenceSecondary = null;
public CMxReference ReferenceSecondary
{
get { if (_ReferenceSecondary == null) { _ReferenceSecondary = new CMxReference(Wrapper, "PVInputOutput.ReferenceSecondary"); } return _ReferenceSecondary; }
set { if (_ReferenceSecondary == null) { _ReferenceSecondary = new CMxReference(Wrapper, "PVInputOutput.ReferenceSecondary"); } _ReferenceSecondary.Set(value); }
}
private CMxReference _Reference = null;
public CMxReference Reference
{
get { if (_Reference == null) { _Reference = new CMxReference(Wrapper, "PVInputOutput.Reference"); } return _Reference; }
set { if (_Reference == null) { _Reference = new CMxReference(Wrapper, "PVInputOutput.Reference"); } _Reference.Set(value); }
}
private CMxBoolean _SeparateFeedbackConfigured = null;
public CMxBoolean SeparateFeedbackConfigured
{
get { if (_SeparateFeedbackConfigured == null) { _SeparateFeedbackConfigured = new CMxBoolean(Wrapper, "PVInputOutput.SeparateFeedbackConfigured"); } return _SeparateFeedbackConfigured; }
set { if (_SeparateFeedbackConfigured == null) { _SeparateFeedbackConfigured = new CMxBoolean(Wrapper, "PVInputOutput.SeparateFeedbackConfigured"); } _SeparateFeedbackConfigured.Set(value); }
}
private CMxDataType _DataType = null;
public CMxDataType DataType
{
get { if (_DataType == null) { _DataType = new CMxDataType(Wrapper, "PVInputOutput.DataType"); } return _DataType; }
set { if (_DataType == null) { _DataType = new CMxDataType(Wrapper, "PVInputOutput.DataType"); } _DataType.Set(value); }
}
public __PVInputOutput(AObjectBase baseClass)
{
Wrapper.baseClass = baseClass;
}
}
#endregion Attributes
#region Internal Reference Only
//Toolkit code required to access the attributes declared in the Object Class
private Monitor InternalReferenceOnly = null;
#endregion Internal Reference Only
#region Declarations
//Declare Configtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Configtime Class.
#endregion Declarations
public MonitorConfigtime()
{
InternalReferenceOnly = new Monitor();
this.AObjectInstance = InternalReferenceOnly;
#region Configuration Event Registration - Toolkit generated code
// Required region for Configuration Events - do not modify
// the contents of this region with the code editor.
this.ConfigtimeInitialize += new ConfigtimeInitializeDelegate(MonitorConfigtime_ConfigtimeInitialize);
this.ConfigtimeValidate += new ConfigtimeValidateDelegate(MonitorConfigtime_ConfigtimeValidate);
this.ConfigtimeMigrate += new MigrateDelegate(MonitorConfigtime_ConfigtimeMigrate);
this.ConfigtimeDynamic += new ConfigtimeDynamicSetHandlerDelegate(MonitorConfigtime_ConfigtimeDynamic);
this.PreValidate += new ObjectEventDelegate(MonitorConfigtime_PreValidate);
this.PostCreate += new ObjectEventDelegate(MonitorConfigtime_PostCreate);
#endregion Configuration Event Registration
#region Optional Configuration Event Registration - Toolkit generated code
// Required region for Configuration Events - do not modify
// the contents of this region with the code editor.
// Optional events are enabled by the ObjectAttributes.Events
// attribute in the Object class.
#endregion Optional Configuration Event Registration
#region Configtime Set Handler Registration Toolkit generated code
// Required method for Configtime SetHandlers.
// Changes made using the code editor will appear in the Toolkit Editor.
//
// WARNING: Changes made to this region will result in a Shape Change.
// TODO: Configtime SetHandler registration
this.RegisterConfigtimeSetHandler("PVHiLimit", new ConfigtimeSetHandlerDelegate(PVHiLimitSetHandler));
#endregion Configtime Set Handler Registration
#region Primitive Wrapper Initialization - Toolkit generated code
PVInputOutput = new __PVInputOutput(this);
#endregion Primitive Wrapper Initialization
}
private void MonitorConfigtime_ConfigtimeInitialize(object sender)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - Initialize
//
// Any custom initialization can be done here, including caching of attribute
// values, primitive IDs etc.
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_ConfigtimeMigrate(object sender, ref MigrateHandler migrate)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - Migrate
//
// Migrate executes when importing a template into a Galaxy that contains
// a previous version (major) of the template. The template must be derived or
// instantiated for migrate to execute.
//
// Migrate provides access to the previous versions attribute information.
// A typical application for migrate code is to preserve attribute values
// when an attribute name has changed (refer to the Example code below).
//
// To enable this event the migrate option must be configured via the Toolkit
// Editor or in code (i.e. [ObjectAttributes.AMigrate("1","2")]).
//
// If no implementation is provided, the system will copy all attribute values
// from the old object to the new one by matching the attribute names.
//------------------------------------------------------------------------------
#region Example code
// //Check major version of previous template
// if (migrate.MajorVersion() == 1)
// {
// //Attribute "Eg_001" has been renamed to "Example_001".
// //Transfer attribute value, lock and security classification
// Example_001 = migrate.GetValue("Eg_001"); //Gets value
// Example_001.Locked = migrate.GetLocked("Eg_001"); //Gets lock status
// Example_001.Security = migrate.GetSecurity("Eg_001"); //Gets Security Classification
//
// //Transfer primitive values
// SetValue("Example_001.TrendHi", migrate.GetValue("Eg_001.TrendHi"));
// SetValue("Example_001.TrendHi", EATTRIBUTEPROPERTY.idxAttribPropLocked, migrate.GetLocked("Eg_001.TrendHi"));
//
// //Automatically migrate all child primitives
// migrate.AutoMigrateChildPrimitives = true;
// }
#endregion
}
private void MonitorConfigtime_ConfigtimeValidate(object sender, ref EPACKAGESTATUS status)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - Validate
//
// Validate sets the warning or error text for the object.
// It is used to check conditions that would not be checked using
// a SetHandler, such as reporting that an object was not
// configured, or that combinations of attributes are illegal.
//
// Other than calling AddWarningMessage or AddErrorMessage, Validate
// should never modify the state of the object.
//------------------------------------------------------------------------------
#region Example code
// if (MyTestDefaultState)
// {
// //Add a warning message using the dictionay phrase ID "ObjectStillInDefaultState"
// AddWarningMessage(GetText("ObjectStillInDefaultState"));
//
// //Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
//
// if (MyTestAttributeCombinationValid)
// {
// //Add a warning message using the dictionay phrase ID "AttributeCombinationInvalid"
// AddWarningMessage(GetText("AttributeCombinationInvalid"));
//
// // Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
#endregion
// By default set the object status to Good
status = EPACKAGESTATUS.ePackageGood;
// The following statement will exit validate when validating templates.
// Place code that should be validated in templates and instances before this
// statement. Code placed after this statement will execute in instances only.
if (IsTemplate)
{
return;
}
}
private void MonitorConfigtime_ConfigtimeDynamic(object sender, ref ConfigtimeSetHandlerEventArgs e)
{
string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Configtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
SetValue(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
}
private void MonitorConfigtime_PostCreate(object sender, object optionalParameter)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostCreate
//
// OnPostCreate is called when an object is first created.
//
// One purpose for implementing this method is to insure that the initial
// state of the primitive is valid.
//
// This method can be used by a Resuable Primitive to correct invalid initial
// states that can arise when an attribute value has been overridden. If the
// attribute has a SetHandler with validation or side effects the SetHandler
// does not execute as overrides do not trigger SetHandlers.
//------------------------------------------------------------------------------
#region Example code
// // If statistics are enabled, add the Statistics virtual primitive
// // the way the SetHandler would have done it.
// if (StatsEnable)
// {
// AddPrimitive("Statistics", "Statistics1", "Statistics1");
// }
#endregion
}
private void MonitorConfigtime_PreValidate(object sender, object optionalParameter)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreValidate
//
// PreValidate is called when the object is about to be validated (e.g. when
// an edit session is ending and the object is about to be saved.)
//
// A primitive can modify attributes within this method.
//
// Note: It is often not necessary to perform any actions in OnPreValidate.
//------------------------------------------------------------------------------
}
#region Optional Configuration Events
//------------------------------------------------------------------------------
// TODO: Optional Configtime Events
//
// Use the Toolkit Editor to enable each optional event or add the event to the
// ObjectAttributes.Events attribute in the object class.
//
// Multiple events can be enabled using the | delimiter.
//
// Example:
// [ObjectAttributes.Events(a.EventHandlerEnum.OnPreDeploy | a.EventHandlerEnum.OnPreDelete)]
//
//------------------------------------------------------------------------------
private void MonitorConfigtime_PreUndeploy(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreUndeploy
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PreUnassign(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreUnassign
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PreRename(object sender, ref RenameEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreRename
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PreDeploy(object sender, ref DeployEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreDeploy
//
// Use the Toolkit Editor to enable this event or add OnPreDeploy to the
// ObjectAttributes.Events attribute in the object class. Multiple events can
// be enabled using the | delimiter.
//
// Example: [ObjectAttributes.Events(a.EventHandlerEnum.OnPreDeploy)]
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PreDelete(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreDelete
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PreCheckIn(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreCheckIn
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PreAssignTo(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreAssignTo
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PostUndeploy(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostUndeploy
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PostUnassignFrom(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostUnassignFrom
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PostUnassign(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostUnassign
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PostRename(object sender, ref RenameEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostRename
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PostDeploy(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostDeploy
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PostDelete(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostDelete
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PostAssignTo(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostAssignTo
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PostAssign(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostAssign
//
//------------------------------------------------------------------------------
}
private void MonitorConfigtime_PostCheckIn(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostCheckIn
//
//------------------------------------------------------------------------------
}
#endregion
private void PVHiLimitSetHandler(object sender, ref ConfigtimeSetHandlerEventArgs e)
{
PVHiLimit.SetHandlerValue = e;
}
}
}
@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{E684C279-E337-41AB-BB43-CA0A04E65D53}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ArchestrA.Toolkit.Monitor</RootNamespace>
<AssemblyName>MonitorConfigtime5</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Monitor.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>4.0</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArchestrA.Toolkit.ArchestrAObjectSupport, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f787e550f2f530ee, processorArchitecture=MSI">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Toolkit.ArchestrAObjectSupport.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ArchestrA.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=23106a86e706d0ae">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Core.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="MonitorConfigtime.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Monitor\Monitor.csproj">
<Project>{0D1ADE9C-7960-4C20-A274-1FFEAAFF9315}</Project>
<Name>Monitor</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="..\Monitor.snk">
<Link>Monitor.snk</Link>
</None>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
@@ -0,0 +1,44 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Configtime")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("test")]
[assembly: AssemblyProduct("Configtime")]
[assembly: AssemblyCopyright("Copyright © Wonderware 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("4eee53a0-aa70-40ae-86fc-32f8d1396da1")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
@@ -0,0 +1,352 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
namespace ArchestrA.Toolkit.Monitor
{
partial class MonitorEditor
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MonitorEditor));
this.tabPage1 = new System.Windows.Forms.TabPage();
this.aaLockIcon3 = new ArchestraEditorFramework.aaLockIcon();
this.aaLabel4 = new ArchestraEditorFramework.aaLabel();
this.aaCheckBox1 = new ArchestraEditorFramework.aaCheckBox();
this.aaLockIcon2 = new ArchestraEditorFramework.aaLockIcon();
this.aaSecurityClassificationIcon3 = new ArchestraEditorFramework.aaSecurityClassificationIcon();
this.aaLabel3 = new ArchestraEditorFramework.aaLabel();
this.aaTextBoxMxReference2 = new ArchestraEditorFramework.aaTextBoxMxReference();
this.aaLockIcon1 = new ArchestraEditorFramework.aaLockIcon();
this.aaSecurityClassificationIcon2 = new ArchestraEditorFramework.aaSecurityClassificationIcon();
this.aaLabel2 = new ArchestraEditorFramework.aaLabel();
this.aaTextBoxMxReference1 = new ArchestraEditorFramework.aaTextBoxMxReference();
this.aaSecurityClassificationIcon1 = new ArchestraEditorFramework.aaSecurityClassificationIcon();
this.aaLabel1 = new ArchestraEditorFramework.aaLabel();
this.aaCustomUpDown1 = new ArchestraEditorFramework.aaCustomUpDown();
this.MainTabControl.SuspendLayout();
this.tabPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.aaLockIcon3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.aaLockIcon2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.aaSecurityClassificationIcon3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.aaLockIcon1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.aaSecurityClassificationIcon2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.aaSecurityClassificationIcon1)).BeginInit();
this.SuspendLayout();
//
// CaptionPanel
//
this.CaptionPanel.Size = new System.Drawing.Size(748, 32);
//
// MainTabControl
//
this.MainTabControl.Controls.Add(this.tabPage1);
this.MainTabControl.Size = new System.Drawing.Size(732, 438);
//
// tabPage1
//
this.tabPage1.BackColor = System.Drawing.SystemColors.Window;
this.tabPage1.Controls.Add(this.aaLockIcon3);
this.tabPage1.Controls.Add(this.aaLabel4);
this.tabPage1.Controls.Add(this.aaCheckBox1);
this.tabPage1.Controls.Add(this.aaLockIcon2);
this.tabPage1.Controls.Add(this.aaSecurityClassificationIcon3);
this.tabPage1.Controls.Add(this.aaLabel3);
this.tabPage1.Controls.Add(this.aaTextBoxMxReference2);
this.tabPage1.Controls.Add(this.aaLockIcon1);
this.tabPage1.Controls.Add(this.aaSecurityClassificationIcon2);
this.tabPage1.Controls.Add(this.aaLabel2);
this.tabPage1.Controls.Add(this.aaTextBoxMxReference1);
this.tabPage1.Controls.Add(this.aaSecurityClassificationIcon1);
this.tabPage1.Controls.Add(this.aaLabel1);
this.tabPage1.Controls.Add(this.aaCustomUpDown1);
this.tabPage1.Location = new System.Drawing.Point(4, 22);
this.tabPage1.Name = "tabPage1";
this.tabPage1.Padding = new System.Windows.Forms.Padding(3);
this.tabPage1.Size = new System.Drawing.Size(724, 412);
this.tabPage1.TabIndex = 0;
this.tabPage1.Text = "tabPage1";
//
// aaLockIcon3
//
this.aaLockIcon3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.aaLockIcon3.Attribute = "PVInputOutput.SeparateFeedbackConfigured";
this.aaLockIcon3.BackColor = System.Drawing.Color.Transparent;
this.aaLockIcon3.Cursor = System.Windows.Forms.Cursors.Hand;
this.aaLockIcon3.Image = ((System.Drawing.Image)(resources.GetObject("aaLockIcon3.Image")));
this.aaLockIcon3.Location = new System.Drawing.Point(604, 115);
this.aaLockIcon3.Name = "aaLockIcon3";
this.aaLockIcon3.Size = new System.Drawing.Size(21, 20);
this.aaLockIcon3.TabIndex = 27;
this.aaLockIcon3.TabStop = false;
this.aaLockIcon3.Text = "PVInputOutput.SeparateFeedbackConfigured";
//
// aaLabel4
//
this.aaLabel4.Attribute = null;
this.aaLabel4.BackColor = System.Drawing.Color.Transparent;
this.aaLabel4.Dictionary = null;
this.aaLabel4.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.aaLabel4.Location = new System.Drawing.Point(43, 116);
this.aaLabel4.Name = "aaLabel4";
this.aaLabel4.PhraseID = null;
this.aaLabel4.Size = new System.Drawing.Size(231, 20);
this.aaLabel4.TabIndex = 26;
this.aaLabel4.Text = "PVInputOutput.SeparateFeedbackConfigured:";
this.aaLabel4.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// aaCheckBox1
//
this.aaCheckBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.aaCheckBox1.Attribute = "PVInputOutput.SeparateFeedbackConfigured";
this.aaCheckBox1.BackColor = System.Drawing.Color.Transparent;
this.aaCheckBox1.Dictionary = null;
this.aaCheckBox1.FlatStyle = System.Windows.Forms.FlatStyle.System;
this.aaCheckBox1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.aaCheckBox1.Location = new System.Drawing.Point(280, 116);
this.aaCheckBox1.Name = "aaCheckBox1";
this.aaCheckBox1.PhraseID = null;
this.aaCheckBox1.Size = new System.Drawing.Size(20, 24);
this.aaCheckBox1.TabIndex = 25;
this.aaCheckBox1.UseVisualStyleBackColor = false;
//
// aaLockIcon2
//
this.aaLockIcon2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.aaLockIcon2.Attribute = "PVInputOutput.ReferenceSecondary";
this.aaLockIcon2.BackColor = System.Drawing.Color.Transparent;
this.aaLockIcon2.Cursor = System.Windows.Forms.Cursors.Hand;
this.aaLockIcon2.Image = ((System.Drawing.Image)(resources.GetObject("aaLockIcon2.Image")));
this.aaLockIcon2.Location = new System.Drawing.Point(604, 89);
this.aaLockIcon2.Name = "aaLockIcon2";
this.aaLockIcon2.Size = new System.Drawing.Size(20, 20);
this.aaLockIcon2.TabIndex = 24;
this.aaLockIcon2.TabStop = false;
this.aaLockIcon2.Text = "PVInputOutput.ReferenceSecondary";
//
// aaSecurityClassificationIcon3
//
this.aaSecurityClassificationIcon3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.aaSecurityClassificationIcon3.Attribute = "PVInputOutput.ReferenceSecondary";
this.aaSecurityClassificationIcon3.BackColor = System.Drawing.Color.Transparent;
this.aaSecurityClassificationIcon3.Cursor = System.Windows.Forms.Cursors.Hand;
this.aaSecurityClassificationIcon3.Image = ((System.Drawing.Image)(resources.GetObject("aaSecurityClassificationIcon3.Image")));
this.aaSecurityClassificationIcon3.Location = new System.Drawing.Point(576, 89);
this.aaSecurityClassificationIcon3.Name = "aaSecurityClassificationIcon3";
this.aaSecurityClassificationIcon3.Size = new System.Drawing.Size(20, 20);
this.aaSecurityClassificationIcon3.TabIndex = 23;
this.aaSecurityClassificationIcon3.TabStop = false;
this.aaSecurityClassificationIcon3.Text = "PVInputOutput.ReferenceSecondary";
//
// aaLabel3
//
this.aaLabel3.Attribute = null;
this.aaLabel3.BackColor = System.Drawing.Color.Transparent;
this.aaLabel3.Dictionary = null;
this.aaLabel3.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.aaLabel3.Location = new System.Drawing.Point(81, 89);
this.aaLabel3.Name = "aaLabel3";
this.aaLabel3.PhraseID = null;
this.aaLabel3.Size = new System.Drawing.Size(191, 20);
this.aaLabel3.TabIndex = 22;
this.aaLabel3.Text = "PVInputOutput.ReferenceSecondary:";
this.aaLabel3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// aaTextBoxMxReference2
//
this.aaTextBoxMxReference2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.aaTextBoxMxReference2.Attribute = "PVInputOutput.ReferenceSecondary";
this.aaTextBoxMxReference2.BackColor = System.Drawing.Color.Transparent;
this.aaTextBoxMxReference2.Dictionary = null;
this.aaTextBoxMxReference2.FilterNamePhraseID = null;
this.aaTextBoxMxReference2.Font = new System.Drawing.Font("Tahoma", 8.25F);
this.aaTextBoxMxReference2.Location = new System.Drawing.Point(280, 89);
this.aaTextBoxMxReference2.Name = "aaTextBoxMxReference2";
this.aaTextBoxMxReference2.Size = new System.Drawing.Size(288, 21);
this.aaTextBoxMxReference2.TabIndex = 21;
//
// aaLockIcon1
//
this.aaLockIcon1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.aaLockIcon1.Attribute = "PVInputOutput.Reference";
this.aaLockIcon1.BackColor = System.Drawing.Color.Transparent;
this.aaLockIcon1.Cursor = System.Windows.Forms.Cursors.Hand;
this.aaLockIcon1.Image = ((System.Drawing.Image)(resources.GetObject("aaLockIcon1.Image")));
this.aaLockIcon1.Location = new System.Drawing.Point(604, 62);
this.aaLockIcon1.Name = "aaLockIcon1";
this.aaLockIcon1.Size = new System.Drawing.Size(20, 20);
this.aaLockIcon1.TabIndex = 20;
this.aaLockIcon1.TabStop = false;
this.aaLockIcon1.Text = "PVInputOutput.Reference";
//
// aaSecurityClassificationIcon2
//
this.aaSecurityClassificationIcon2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.aaSecurityClassificationIcon2.Attribute = "PVInputOutput.Reference";
this.aaSecurityClassificationIcon2.BackColor = System.Drawing.Color.Transparent;
this.aaSecurityClassificationIcon2.Cursor = System.Windows.Forms.Cursors.Hand;
this.aaSecurityClassificationIcon2.Image = ((System.Drawing.Image)(resources.GetObject("aaSecurityClassificationIcon2.Image")));
this.aaSecurityClassificationIcon2.Location = new System.Drawing.Point(576, 62);
this.aaSecurityClassificationIcon2.Name = "aaSecurityClassificationIcon2";
this.aaSecurityClassificationIcon2.Size = new System.Drawing.Size(20, 20);
this.aaSecurityClassificationIcon2.TabIndex = 19;
this.aaSecurityClassificationIcon2.TabStop = false;
this.aaSecurityClassificationIcon2.Text = "PVInputOutput.Reference";
//
// aaLabel2
//
this.aaLabel2.Attribute = null;
this.aaLabel2.BackColor = System.Drawing.Color.Transparent;
this.aaLabel2.Dictionary = null;
this.aaLabel2.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.aaLabel2.Location = new System.Drawing.Point(133, 62);
this.aaLabel2.Name = "aaLabel2";
this.aaLabel2.PhraseID = null;
this.aaLabel2.Size = new System.Drawing.Size(139, 20);
this.aaLabel2.TabIndex = 18;
this.aaLabel2.Text = "PVInputOutput.Reference:";
this.aaLabel2.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// aaTextBoxMxReference1
//
this.aaTextBoxMxReference1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.aaTextBoxMxReference1.Attribute = "PVInputOutput.Reference";
this.aaTextBoxMxReference1.BackColor = System.Drawing.Color.Transparent;
this.aaTextBoxMxReference1.Dictionary = null;
this.aaTextBoxMxReference1.FilterNamePhraseID = null;
this.aaTextBoxMxReference1.Font = new System.Drawing.Font("Tahoma", 8.25F);
this.aaTextBoxMxReference1.Location = new System.Drawing.Point(280, 62);
this.aaTextBoxMxReference1.Name = "aaTextBoxMxReference1";
this.aaTextBoxMxReference1.Size = new System.Drawing.Size(288, 21);
this.aaTextBoxMxReference1.TabIndex = 17;
//
// aaSecurityClassificationIcon1
//
this.aaSecurityClassificationIcon1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.aaSecurityClassificationIcon1.Attribute = "PVHiLimit";
this.aaSecurityClassificationIcon1.BackColor = System.Drawing.Color.Transparent;
this.aaSecurityClassificationIcon1.Cursor = System.Windows.Forms.Cursors.Hand;
this.aaSecurityClassificationIcon1.Image = ((System.Drawing.Image)(resources.GetObject("aaSecurityClassificationIcon1.Image")));
this.aaSecurityClassificationIcon1.Location = new System.Drawing.Point(576, 35);
this.aaSecurityClassificationIcon1.Name = "aaSecurityClassificationIcon1";
this.aaSecurityClassificationIcon1.Size = new System.Drawing.Size(20, 20);
this.aaSecurityClassificationIcon1.TabIndex = 16;
this.aaSecurityClassificationIcon1.TabStop = false;
this.aaSecurityClassificationIcon1.Text = "PVHiLimit";
//
// aaLabel1
//
this.aaLabel1.Attribute = null;
this.aaLabel1.BackColor = System.Drawing.Color.Transparent;
this.aaLabel1.Dictionary = null;
this.aaLabel1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.aaLabel1.Location = new System.Drawing.Point(213, 35);
this.aaLabel1.Name = "aaLabel1";
this.aaLabel1.PhraseID = null;
this.aaLabel1.Size = new System.Drawing.Size(59, 20);
this.aaLabel1.TabIndex = 15;
this.aaLabel1.Text = "PVHiLimit:";
this.aaLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// aaCustomUpDown1
//
this.aaCustomUpDown1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.aaCustomUpDown1.Attribute = "PVHiLimit";
this.aaCustomUpDown1.BackColor = System.Drawing.Color.Transparent;
this.aaCustomUpDown1.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.aaCustomUpDown1.Increment = new decimal(new int[] {
1,
0,
0,
65536});
this.aaCustomUpDown1.Location = new System.Drawing.Point(280, 35);
this.aaCustomUpDown1.Maximum = new decimal(new int[] {
268435456,
1042612833,
542101086,
0});
this.aaCustomUpDown1.Minimum = new decimal(new int[] {
268435456,
1042612833,
542101086,
-2147483648});
this.aaCustomUpDown1.Name = "aaCustomUpDown1";
this.aaCustomUpDown1.Size = new System.Drawing.Size(201, 21);
this.aaCustomUpDown1.TabIndex = 14;
this.aaCustomUpDown1.Value = new decimal(new int[] {
0,
0,
0,
0});
//
// MonitorEditor
//
this.Name = "MonitorEditor";
this.Size = new System.Drawing.Size(748, 482);
this.MainTabControl.ResumeLayout(false);
this.tabPage1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.aaLockIcon3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.aaLockIcon2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.aaSecurityClassificationIcon3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.aaLockIcon1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.aaSecurityClassificationIcon2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.aaSecurityClassificationIcon1)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TabPage tabPage1;
private ArchestraEditorFramework.aaLockIcon aaLockIcon3;
private ArchestraEditorFramework.aaLabel aaLabel4;
private ArchestraEditorFramework.aaCheckBox aaCheckBox1;
private ArchestraEditorFramework.aaLockIcon aaLockIcon2;
private ArchestraEditorFramework.aaSecurityClassificationIcon aaSecurityClassificationIcon3;
private ArchestraEditorFramework.aaLabel aaLabel3;
private ArchestraEditorFramework.aaTextBoxMxReference aaTextBoxMxReference2;
private ArchestraEditorFramework.aaLockIcon aaLockIcon1;
private ArchestraEditorFramework.aaSecurityClassificationIcon aaSecurityClassificationIcon2;
private ArchestraEditorFramework.aaLabel aaLabel2;
private ArchestraEditorFramework.aaTextBoxMxReference aaTextBoxMxReference1;
private ArchestraEditorFramework.aaSecurityClassificationIcon aaSecurityClassificationIcon1;
private ArchestraEditorFramework.aaLabel aaLabel1;
private ArchestraEditorFramework.aaCustomUpDown aaCustomUpDown1;
}
}
@@ -0,0 +1,36 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace ArchestrA.Toolkit.Monitor
{
[Guid("d5f5236a-f1eb-4620-b2df-4c1adc4f3e7b")]
[ProgId("test.Monitor.5")]
public partial class MonitorEditor : ArchestraEditorFramework.aaBaseEditorForm
{
public MonitorEditor()
{
this.Dictionary = "test:Monitor5.aaDCT";
// This call is required by the Windows Form Designer.
InitializeComponent();
// TODO: Add any initialization after the InitializeComponent call
}
}
}
@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{06CEDE14-B295-4817-A439-D2B60D71FF4C}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ArchestrA.Toolkit.Monitor</RootNamespace>
<AssemblyName>MonitorEditor5</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Monitor.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>4.0</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArchestrA.Toolkit.ArchestrAControlLibrary, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f787e550f2f530ee, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Toolkit.ArchestrAControlLibrary.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ArchestraEditorFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=fdcbee9982d955e0, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestraEditorFramework.dll</HintPath>
</Reference>
<Reference Include="IaaEditorFormLibInterop, Version=2.0.0.0, Culture=neutral, PublicKeyToken=fdcbee9982d955e0, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\IaaEditorFormLibInterop.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="MonitorEditor.cs">
</Compile>
<Compile Include="MonitorEditor.Designer.cs">
<DependentUpon>MonitorEditor.cs</DependentUpon>
</Compile>
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="MonitorEditor.resx">
<SubType>Designer</SubType>
<DependentUpon>MonitorEditor.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="..\Monitor.snk">
<Link>Monitor.snk</Link>
</None>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
@@ -0,0 +1,211 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="m_ToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="aaLockIcon3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaLockIcon2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaSecurityClassificationIcon3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaLockIcon1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaSecurityClassificationIcon2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaSecurityClassificationIcon1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
</root>
@@ -0,0 +1,44 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Editor")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("test")]
[assembly: AssemblyProduct("Editor")]
[assembly: AssemblyCopyright("Copyright © Wonderware 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("d7aafff8-15ff-41dd-a6a7-d5e9c37b4605")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
@@ -0,0 +1,398 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using System.Collections;
using ArchestrA.Core;
using ArchestrA.Toolkit;
namespace ArchestrA.Toolkit.Monitor
{
[Guid("df4726d8-fe33-4d79-a6a1-b8198f1e5ac1")]
/// <summary>
/// Summary description for Monitor
/// </summary>
public class MonitorRuntime : RuntimeBase
{
#region Attributes - Toolkit generated code
// The following C# properties have been defined to simplify access to
// attribute values - do not modify the contents of this region with
// the code editor.
private CMxBoolean ResetInputAvg
{
get { return InternalReferenceOnly.ResetInputAvg; }
set { InternalReferenceOnly.ResetInputAvg.Set(value); }
}
private CMxFloat PVHiLimit
{
get { return InternalReferenceOnly.PVHiLimit; }
set { InternalReferenceOnly.PVHiLimit.Set(value); }
}
private CMxDouble PVInputAvg
{
get { return InternalReferenceOnly.PVInputAvg; }
set { InternalReferenceOnly.PVInputAvg.Set(value); }
}
private CMxFloat PV
{
get { return InternalReferenceOnly.PV; }
set { InternalReferenceOnly.PV.Set(value); }
}
public __PVInputOutput PVInputOutput = null;
public class __PVInputOutput : InputOutputPrimBase
{
protected override void Initialize(SupportWrapper _Wrapper)
{
if (_ReadValue == null) { _ReadValue = new CMxVariant(Wrapper, "PVInputOutput.ReadValue"); }
if (_WriteValue == null) { _WriteValue = new CMxVariant(Wrapper, "PVInputOutput.WriteValue"); }
if (_DataType == null) { _DataType = new CMxDataType(Wrapper, "PVInputOutput.DataType"); }
attrId = _ReadValue.Attribute.shAttributeId;
attrId2 = _WriteValue.Attribute.shAttributeId;
primId = _ReadValue.Attribute.shPrimitiveId;
dataType = _DataType.Value;
base.Initialize(Wrapper);
}
public SupportWrapper Wrapper = new SupportWrapper();
private CMxStatus _ReadStatus = null;
public CMxStatus ReadStatus
{
get { if (_ReadStatus == null) { _ReadStatus = new CMxStatus(Wrapper, "PVInputOutput.ReadStatus"); } return _ReadStatus; }
set { if (_ReadStatus == null) { _ReadStatus = new CMxStatus(Wrapper, "PVInputOutput.ReadStatus"); } _ReadStatus.Set(value); }
}
private CMxVariant _ReadValue = null;
public CMxVariant ReadValue
{
get { if (_ReadValue == null) { _ReadValue = new CMxVariant(Wrapper, "PVInputOutput.ReadValue"); } return _ReadValue; }
set { if (_ReadValue == null) { _ReadValue = new CMxVariant(Wrapper, "PVInputOutput.ReadValue"); } _ReadValue.Set(value); }
}
private CMxReference _ReferenceSecondary = null;
public CMxReference ReferenceSecondary
{
get { if (_ReferenceSecondary == null) { _ReferenceSecondary = new CMxReference(Wrapper, "PVInputOutput.ReferenceSecondary"); } return _ReferenceSecondary; }
set { if (_ReferenceSecondary == null) { _ReferenceSecondary = new CMxReference(Wrapper, "PVInputOutput.ReferenceSecondary"); } _ReferenceSecondary.Set(value); }
}
private CMxReference _Reference = null;
public CMxReference Reference
{
get { if (_Reference == null) { _Reference = new CMxReference(Wrapper, "PVInputOutput.Reference"); } return _Reference; }
set { if (_Reference == null) { _Reference = new CMxReference(Wrapper, "PVInputOutput.Reference"); } _Reference.Set(value); }
}
private CMxDataType _DataType = null;
public CMxDataType DataType
{
get { if (_DataType == null) { _DataType = new CMxDataType(Wrapper, "PVInputOutput.DataType"); } return _DataType; }
}
private CMxVariant _WriteValue = null;
public CMxVariant WriteValue
{
get { if (_WriteValue == null) { _WriteValue = new CMxVariant(Wrapper, "PVInputOutput.WriteValue"); } return _WriteValue; }
set { if (_WriteValue == null) { _WriteValue = new CMxVariant(Wrapper, "PVInputOutput.WriteValue"); } _WriteValue.Set(value); }
}
private CMxStatus _WriteStatus = null;
public CMxStatus WriteStatus
{
get { if (_WriteStatus == null) { _WriteStatus = new CMxStatus(Wrapper, "PVInputOutput.WriteStatus"); } return _WriteStatus; }
set { if (_WriteStatus == null) { _WriteStatus = new CMxStatus(Wrapper, "PVInputOutput.WriteStatus"); } _WriteStatus.Set(value); }
}
public AoAWrapper AoA = null;
public void SuspendUpdatesList()
{
if (AoA == null) { AoA = new AoAWrapper(Wrapper, new string[] { "PVInputOutput.ReadValue" }); } AoA.SuspendUpdatesList();
}
public void ActivateUpdatesList()
{
if (AoA == null) { AoA = new AoAWrapper(Wrapper, new string[] { "PVInputOutput.ReadValue" }); } AoA.ActivateUpdatesList();
}
public __PVInputOutput(AObjectBase baseClass)
{
Wrapper.baseClass = baseClass;
}
}
#endregion Attributes
#region Internal Reference Only
//Toolkit code required to access the attributes declared in the Object Class
private Monitor InternalReferenceOnly = null;
#endregion Internal Reference Only
#region Declarations
//Declare Runtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Runtime Class.
long totalReads;
double accumulatedInput;
#endregion Declarations
public MonitorRuntime()
{
InternalReferenceOnly = new Monitor();
this.AObjectInstance = InternalReferenceOnly;
#region Runtime Event Registration - Toolkit generated code
// Required region for Runtime Events - do not modify
// the contents of this region with the code editor.
base.RuntimeGetStatusDesc += new RuntimeGetStatusDescDelegate(MonitorRuntime_RuntimeGetStatusDesc);
base.RuntimeSetScanState += new RuntimeSetScanStateDelegate(Monitor_RuntimeSetScanState);
base.RuntimeExecute += new RuntimeExecuteDelegate(Monitor_RuntimeExecute);
base.RuntimeShutdown += new RuntimeShutdownDelegate(Monitor_RuntimeShutdown);
base.RuntimeStartup += new RuntimeStartupDelegate(Monitor_RuntimeStartup);
base.RuntimeDynamic += new RuntimeDynamicSetHandlerDelegate(MonitorRuntime_RuntimeDynamic);
base.RuntimeInitialize += new RuntimeInitializeDelegate(MonitorRuntime_RuntimeInitialize);
#endregion Runtime Event Registration
#region Runtime Set Handler Registration Toolkit generated code
// Required method for Runtime SetHandlers.
// Changes made using the code editor will appear in the Toolkit Editor.
//
// WARNING: Changes made to this region will result in a Shape Change.
// TODO: Runtime SetHandler registration
this.RegisterRuntimeSetHandler("ResetInputAvg", new RuntimeSetHandlerDelegate(ResetInputAvgSetHandler));
this.RegisterRuntimeSetHandler("PVHiLimit", new RuntimeSetHandlerDelegate(PVHiLimitSetHandler));
this.RegisterRuntimeSetHandler("PV", new RuntimeSetHandlerDelegate(PVSetHandler));
#endregion Runtime Set Handler Registration
#region Primitive Wrapper Initialization - Toolkit generated code
PVInputOutput = new __PVInputOutput(this);
#endregion Primitive Wrapper Initialization
#region Primitive Advise only Activate Registration - Toolkit generated code
#endregion Primitive Advise only Activate Initialization
}
private void MonitorRuntime_RuntimeInitialize(object sender)
{
//------------------------------------------------------------------------------
// TODO: Runtime - Initialize
//
// Do not read or write attribute values of this primitive during Initialize
//------------------------------------------------------------------------------
}
private void Monitor_RuntimeExecute(object sender)
{
//------------------------------------------------------------------------------
// TODO: Runtime - Execute
//
// This is where the main logic of the object periodically executes when
// the object is on scan.
//
// Read or write the attributes of this primitive using the generated
// properties (Value, Quality).
//------------------------------------------------------------------------------
#region Example code
// // The lines below both increment the value of the attribute "Attribute1" by 1
// Example_001 ++;
// Example_001 = Example_001 + 1;
//
// //Example_001 quality is set to Bad on Condition_001 being true.
// Example_001.Quality = (Condition_001 ? DataQuality.DataQualityBad : DataQuality.DataQualityGood);
//
// // The attribute "ElapsedTime" contains the time elapsed since the last reset
// ElapsedTime = GetScanTime() - TimeOfLastReset;
//
// // Increment the 3rd element of an array
// FloatArray[3] ++;
//
// // Increment all the elements of an array
// for( short counter = 1; counter <= FloatArray.Length; counter ++)
// {
// FloatArray[counter] ++;
// }
#endregion
if ((PVInputOutput.ReadStatus.Value.success == -1) && PVInputOutput.ReadValue.Quality.isGood)
{
float inputValue = (float)PVInputOutput.GetReadValue();
PV = inputValue;
accumulatedInput += Convert.ToDouble(inputValue);
totalReads++;
PVInputAvg = accumulatedInput / totalReads;
PVInputAvg.Quality = DataQuality.DataQualityGood;
}
}
private void Monitor_RuntimeShutdown(object sender)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - Shutdown
//
// Clean up dynamic allocation, release open resources, etc.
//------------------------------------------------------------------------------
}
private void Monitor_RuntimeStartup(object sender, RuntimeStartupEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - Startup
//
// Cache attributes. Cache Primitive IDs of other known primitives.
//------------------------------------------------------------------------------
// RestoreDynamicAttributes will recreate the Dynamic Attributes and restore the check pointed
// values during failover startup. The Failover Support for Dynamic Attributes option must
// be enabled via the Object Editor to support this function. To maintain the
// Dynamic Attribute values the CheckpointDynamicAttributeData function must be called
// when Dynamic Attribute values are modified (refer to the Dynamic Attribute Set Handler).
//RestoreDynamicAttributes();
// Execute offscan code to initialize the object in its offscan state.
SetScanState(false);
}
private void Monitor_RuntimeSetScanState(object sender, RuntimeSetScanStateEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - SetScanState
//
// Perform actions when the object goes on or off scan.
//------------------------------------------------------------------------------
if (e.onScan)
{
PVInputAvg.Quality = DataQuality.DataQualityInitializing;
}
else
{
PVInputAvg.Quality = DataQuality.DataQualityBad;
}
}
private void MonitorRuntime_RuntimeGetStatusDesc(object sender, ref RuntimeGetStatusDescEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - GetStatusDesc
//
// This routine provides a String for an error code when a client requests it.
// By default this method looks for an entry in the dictionary that has the
// DetailedErrorCode as the PhraseID.
//
// You need to change this implmentation if you want to provide embedded values
// within your messages, or you want to use string PhraseIDs instead of integer
// PhraseIDs.
//------------------------------------------------------------------------------
switch (e.detailedErrorCode)
{
case 10000:
e.status = GetText("HiLimitExceeded");
break;
default:
e.status = GetText((int)e.detailedErrorCode);
break;
}
}
private void MonitorRuntime_RuntimeDynamic(object sender, ref RuntimeSetHandlerEventArgs e)
{
string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Runtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
// CheckpointDynamicAttributeData will update the checkpoint values for all Dynamic Attributes.
// To recreate Dynamic Attributes and restore Dynamic Attribute values the RestoreDynamicAttributes
// function must be called when starting up from failover (refer to the Startup method).
//CheckpointDynamicAttributeData();
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
SetValue(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
}
private void PVSetHandler(object sender, ref RuntimeSetHandlerEventArgs e)
{
if (e.Value > PVHiLimit)
{
e.status.detail = 10000;
e.status.Category = MxStatusCategory.MxCategoryOperationalError;
}
else
{
PV.SetHandlerValue = e;
PVInputOutput.WriteValue = e.Value;
}
}
private void PVHiLimitSetHandler(object sender, ref RuntimeSetHandlerEventArgs e)
{
PVHiLimit.SetHandlerValue = e;
}
private void ResetInputAvgSetHandler(object sender, ref RuntimeSetHandlerEventArgs e)
{
ResetInputAvg.SetHandlerValue = e;
totalReads = 0;
accumulatedInput = 0;
}
}
}
@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{71A913E8-9A33-4A92-AD13-6B9023E5C8E5}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ArchestrA.Toolkit.Monitor</RootNamespace>
<AssemblyName>MonitorRuntime5</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Monitor.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>4.0</OldToolsVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<RegisterForComInterop>false</RegisterForComInterop>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArchestrA.Toolkit.ArchestrAObjectSupport, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f787e550f2f530ee, processorArchitecture=MSI">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Toolkit.ArchestrAObjectSupport.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ArchestrA.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=23106a86e706d0ae">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Core.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="MonitorRuntime.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Monitor\Monitor.csproj">
<Project>{0D1ADE9C-7960-4C20-A274-1FFEAAFF9315}</Project>
<Name>Monitor</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="..\Monitor.snk">
<Link>Monitor.snk</Link>
</None>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
@@ -0,0 +1,44 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Runtime")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("test")]
[assembly: AssemblyProduct("Runtime")]
[assembly: AssemblyCopyright("Copyright © Wonderware 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("e59227fc-54f8-45ec-895b-723cebc485af")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
@@ -0,0 +1,44 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("StatsConfigtime")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ArchestrA")]
[assembly: AssemblyProduct("Configtime")]
[assembly: AssemblyCopyright("Copyright © Wonderware 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("f413d64a-8d99-4e96-ac2b-77a673299ac5")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
@@ -0,0 +1,302 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using ArchestrA.Core;
using ArchestrA.Toolkit;
namespace ArchestrA.Toolkit.Watchdog
{
[Guid("057251b9-4dfa-4216-80ae-0981f7bc63e9")]
/// <summary>
/// Summary description for WatchdogConfigtime
/// </summary>
public class StatsConfigtime : ConfigtimeBase
{
#region Attributes - Toolkit generated code
// The following C# properties have been defined to simplify access to
// attribute values - do not modify the contents of this region with
// the code editor.
private bool TimeoutCnt_Historized
{
get { return GetValue("TimeoutCnt.Historized"); }
set { SetValue("TimeoutCnt.Historized", (value)); }
}
#endregion Attributes
#region Internal Reference Only
//Toolkit code required to access the attributes declared in the Object Class
private Stats InternalReferenceOnly = null;
#endregion Internal Reference Only
#region Declarations
//Declare Configtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Configtime Class.
#endregion Declarations
public StatsConfigtime()
{
InternalReferenceOnly = new Stats();
this.AObjectInstance = InternalReferenceOnly;
#region Configuration Event Registration - Toolkit generated code
// Required region for Configuration Events - do not modify
// the contents of this region with the code editor.
this.ConfigtimeInitialize += new ConfigtimeInitializeDelegate(StatsConfigtime_ConfigtimeInitialize);
this.ConfigtimeValidate += new ConfigtimeValidateDelegate(StatsConfigtime_ConfigtimeValidate);
this.ConfigtimeMigrate += new MigrateDelegate(StatsConfigtime_ConfigtimeMigrate);
this.ConfigtimeDynamic += new ConfigtimeDynamicSetHandlerDelegate(StatsConfigtime_ConfigtimeDynamic);
this.PreValidate += new ObjectEventDelegate(StatsConfigtime_PreValidate);
this.PostCreate += new ObjectEventDelegate(StatsConfigtime_PostCreate);
#endregion Configuration Event Registration
#region Configtime Set Handler Registration Toolkit generated code
// Required method for Configtime SetHandlers.
// Changes made using the code editor will appear in the Toolkit Editor.
//
// WARNING: Changes made to this region will result in a Shape Change.
// TODO: Configtime SetHandler registration
// this.RegisterConfigtimeSetHandler("Example_001", new ConfigtimeSetHandlerDelegate(Example_001SetHandler));
this.RegisterConfigtimeSetHandler("TimeoutCnt.Historized", new ConfigtimeSetHandlerDelegate(TimeoutCnt_HistorizedSetHandler));
#endregion Configtime Set Handler Registration
#region Primitive Wrapper Initialization - Toolkit generated code
#endregion Primitive Wrapper Initialization
}
private void StatsConfigtime_ConfigtimeInitialize(object sender)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - Initialize
//
// Any custom initialization can be done here, including caching of attribute
// values, primitive IDs etc.
//------------------------------------------------------------------------------
}
private void StatsConfigtime_ConfigtimeMigrate(object sender, ref MigrateHandler migrate)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - Migrate
//
// Migrate executes when importing a template into a Galaxy that contains
// a previous version (major) of the template. The template must be derived or
// instantiated for migrate to execute.
//
// Migrate provides access to the previous versions attribute information.
// A typical application for migrate code is to preserve attribute values
// when an attribute name has changed (refer to the Example code below).
//
// To enable this event the migrate option must be configured via the Toolkit
// Editor or in code (i.e. [ObjectAttributes.AMigrate("1","2")]).
//
// If no implementation is provided, the system will copy all attribute values
// from the old object to the new one by matching the attribute names.
//------------------------------------------------------------------------------
#region Example code
// //Check major version of previous template
// if (migrate.MajorVersion() == 1)
// {
// //Attribute "Eg_001" has been renamed to "Example_001".
// //Transfer attribute value, lock and security classification
// Example_001 = migrate.GetValue("Eg_001"); //Gets value
// Example_001.Locked = migrate.GetLocked("Eg_001"); //Gets lock status
// Example_001.Security = migrate.GetSecurity("Eg_001"); //Gets Security Classification
//
// //Transfer primitive values
// SetValue("Example_001.TrendHi", migrate.GetValue("Eg_001.TrendHi"));
// SetValue("Example_001.TrendHi", EATTRIBUTEPROPERTY.idxAttribPropLocked, migrate.GetLocked("Eg_001.TrendHi"));
//
// //Automatically migrate all child primitives
// migrate.AutoMigrateChildPrimitives = true;
// }
#endregion
}
private void StatsConfigtime_ConfigtimeValidate(object sender, ref EPACKAGESTATUS status)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - Validate
//
// Validate sets the warning or error text for the object.
// It is used to check conditions that would not be checked using
// a SetHandler, such as reporting that an object was not
// configured, or that combinations of attributes are illegal.
//
// Other than calling AddWarningMessage or AddErrorMessage, Validate
// should never modify the state of the object.
//------------------------------------------------------------------------------
#region Example code
// if (MyTestDefaultState)
// {
// //Add a warning message using the dictionay phrase ID "ObjectStillInDefaultState"
// AddWarningMessage(GetText("ObjectStillInDefaultState"));
//
// //Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
//
// if (MyTestAttributeCombinationValid)
// {
// //Add a warning message using the dictionay phrase ID "AttributeCombinationInvalid"
// AddWarningMessage(GetText("AttributeCombinationInvalid"));
//
// // Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
#endregion
// By default set the object status to Good
status = EPACKAGESTATUS.ePackageGood;
// The following statement will exit validate when validating templates.
// Place code that should be validated in templates and instances before this
// statement. Code placed after this statement will execute in instances only.
if (IsTemplate)
{
return;
}
}
private void StatsConfigtime_ConfigtimeDynamic(object sender, ref ConfigtimeSetHandlerEventArgs e)
{
string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Configtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
SetValue(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
}
private void StatsConfigtime_PostCreate(object sender, object optionalParameter)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostCreate
//
// OnPostCreate is called when an object is first created.
//
// One purpose for implementing this method is to insure that the initial
// state of the primitive is valid.
//
// This method can be used by a Resuable Primitive to correct invalid initial
// states that can arise when an attribute value has been overridden. If the
// attribute has a SetHandler with validation or side effects the SetHandler
// does not execute as overrides do not trigger SetHandlers.
//------------------------------------------------------------------------------
#region Example code
// // If statistics are enabled, add the Statistics virtual primitive
// // the way the SetHandler would have done it.
// if (StatsEnable)
// {
// AddPrimitive("Statistics", "Statistics1", "Statistics1");
// }
#endregion
}
private void StatsConfigtime_PreValidate(object sender, object optionalParameter)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreValidate
//
// PreValidate is called when the object is about to be validated (e.g. when
// an edit session is ending and the object is about to be saved.)
//
// A primitive can modify attributes within this method.
//
// Note: It is often not necessary to perform any actions in OnPreValidate.
//------------------------------------------------------------------------------
}
private void TimeoutCnt_HistorizedSetHandler(object sender, ref ConfigtimeSetHandlerEventArgs e)
{
// Required Set Handler for Virtual History Primtive.
// Do not modify this Set Handler via the code editor.
//
// WARNING: Changes made to this Set Handler will be overwritten by the code generator.
if (TimeoutCnt_Historized == e.Value)
{
return;
}
if (e.Value)
{
if (!AddPrimitive("TimeoutCntHistory", "TimeoutCntHistory1", "TimeoutCnt"))
{
e.Message = PrimitiveResult.message;
return; // Add failed
}
}
else
{
if (!DeletePrimitive("TimeoutCntHistory1"))
{
e.Message = PrimitiveResult.message;
return; // Remove Failed failed
}
}
TimeoutCnt_Historized = e.Value;
}
//TODO: Configtime SetHandler declaration
//private void Example_001SetHandler(object sender, ref ConfigtimeSetHandlerEventArgs e)
//{
// Example_001 = e.Value;
//}
}
}
@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{63437254-FEDA-404A-8FCB-B2036ED949CB}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ArchestrA.Toolkit.Watchdog</RootNamespace>
<AssemblyName>WatchDogStatsConfigtime1</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Watchdog.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArchestrA.Toolkit.ArchestrAObjectSupport, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f787e550f2f530ee, processorArchitecture=MSI">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Toolkit.ArchestrAObjectSupport.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ArchestrA.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=23106a86e706d0ae">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Core.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="StatsConfigtime.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Statsobj\Statsobj.csproj">
<Project>{A7BA2304-935A-4DDD-80CC-E6387B2980E6}</Project>
<Name>Statsobj</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="..\..\Watchdog.snk">
<Link>Watchdog.snk</Link>
</None>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
@@ -0,0 +1,44 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("StatsRuntime")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ArchestrA")]
[assembly: AssemblyProduct("Runtime")]
[assembly: AssemblyCopyright("Copyright © Wonderware 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("1e5f4d65-4d90-4529-896f-3a72ddc8052b")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
@@ -0,0 +1,329 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using ArchestrA.Core;
using ArchestrA.Toolkit;
namespace ArchestrA.Toolkit.Watchdog
{
[Guid("85ca8612-8c40-4e51-b8b5-8588f2af5e59")]
/// <summary>
/// Summary description for Watchdog
/// </summary>
public class StatsRuntime : RuntimeBase
{
#region Attributes - Toolkit generated code
// The following C# properties have been defined to simplify access to
// attribute values - do not modify the contents of this region with
// the code editor.
private CMxTime LastTimeout
{
get { return InternalReferenceOnly.LastTimeout; }
set { InternalReferenceOnly.LastTimeout.Set(value); }
}
private CMxInteger TimeoutCnt
{
get { return InternalReferenceOnly.TimeoutCnt; }
set { InternalReferenceOnly.TimeoutCnt.Set(value); }
}
private CMxBoolean Reset
{
get { return InternalReferenceOnly.Reset; }
set { InternalReferenceOnly.Reset.Set(value); }
}
private CMxElapsedTime DelayMax
{
get { return InternalReferenceOnly.DelayMax; }
set { InternalReferenceOnly.DelayMax.Set(value); }
}
private CMxElapsedTime DelayAverage
{
get { return InternalReferenceOnly.DelayAverage; }
set { InternalReferenceOnly.DelayAverage.Set(value); }
}
#endregion Attributes
#region Internal Reference Only
//Toolkit code required to access the attributes declared in the Object Class
private Stats InternalReferenceOnly = null;
#endregion Internal Reference Only
#region Declarations
//Declare Runtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Runtime Class.
bool m_PreviousTimeoutCondition;
TimeSpan m_PreviousTimeSinceChange;
TimeSpan m_DelayTotal;
long m_ChangeDetectedCount;
#endregion Declarations
public StatsRuntime()
{
InternalReferenceOnly = new Stats();
this.AObjectInstance = InternalReferenceOnly;
#region Runtime Event Registration - Toolkit generated code
// Required region for Runtime Events - do not modify
// the contents of this region with the code editor.
base.RuntimeGetStatusDesc += new RuntimeGetStatusDescDelegate(StatsRuntime_RuntimeGetStatusDesc);
base.RuntimeSetScanState += new RuntimeSetScanStateDelegate(StatsRuntime_RuntimeSetScanState);
base.RuntimeExecute += new RuntimeExecuteDelegate(StatsRuntime_RuntimeExecute);
base.RuntimeShutdown += new RuntimeShutdownDelegate(StatsRuntime_RuntimeShutdown);
base.RuntimeStartup += new RuntimeStartupDelegate(StatsRuntime_RuntimeStartup);
base.RuntimeDynamic += new RuntimeDynamicSetHandlerDelegate(StatsRuntime_RuntimeDynamic);
base.RuntimeInitialize += new RuntimeInitializeDelegate(StatsRuntime_RuntimeInitialize);
#endregion Runtime Event Registration
#region Runtime Set Handler Registration Toolkit generated code
// Required method for Runtime SetHandlers.
// Changes made using the code editor will appear in the Toolkit Editor.
//
// WARNING: Changes made to this region will result in a Shape Change.
// TODO: Runtime SetHandler registration
this.RegisterRuntimeSetHandler("Reset", new RuntimeSetHandlerDelegate(ResetSetHandler));
#endregion Runtime Set Handler Registration
#region Primitive Wrapper Initialization - Toolkit generated code
#endregion Primitive Wrapper Initialization
#region Primitive Advise only Activate Registration - Toolkit generated code
#endregion Primitive Advise only Activate Initialization
}
private void StatsRuntime_RuntimeInitialize(object sender)
{
//------------------------------------------------------------------------------
// TODO: Runtime - Initialize
//
// Do not read or write attribute values of this primitive during Initialize
//------------------------------------------------------------------------------
}
private void StatsRuntime_RuntimeExecute(object sender)
{
//------------------------------------------------------------------------------
// TODO: Runtime - Execute
//
// This is where the main logic of the object periodically executes when
// the object is on scan.
//
// Read or write the attributes of this primitive using the generated
// properties (Value, Quality).
//------------------------------------------------------------------------------
#region Example code
// // The lines below both increment the value of the attribute "Attribute1" by 1
// Example_001 ++;
// Example_001 = Example_001 + 1;
//
// //Example_001 quality is set to Bad on Condition_001 being true.
// Example_001.Quality = (Condition_001 ? DataQuality.DataQualityBad : DataQuality.DataQualityGood);
//
// // The attribute "ElapsedTime" contains the time elapsed since the last reset
// ElapsedTime = GetScanTime() - TimeOfLastReset;
//
// // Increment the 3rd element of an array
// FloatArray[3] ++;
//
// // Increment all the elements of an array
// for( short counter = 1; counter <= FloatArray.Length; counter ++)
// {
// FloatArray[counter] ++;
// }
#endregion
bool CurrentTimeoutCondition;
GetBoolean("myparent.Timeout", out CurrentTimeoutCondition);
if (!m_PreviousTimeoutCondition && CurrentTimeoutCondition)
{
TimeoutCnt++;
LastTimeout = GetScanTime();
}
//Compute the average delay by maintaining a sum/count of all the time elapsed between input changes,
//(since the last reset) and dividing by the number input changes detected
//
TimeSpan CurrentTimeSinceChange;
GetElapsedTime("myparent.TimeSinceChange", out CurrentTimeSinceChange);
if (CurrentTimeSinceChange.Ticks == 0) //The input just changed
{
m_DelayTotal = m_DelayTotal + m_PreviousTimeSinceChange;
DelayAverage = new TimeSpan(m_DelayTotal.Ticks / ++m_ChangeDetectedCount);
}
//Compute the maximum delay
if (CurrentTimeSinceChange > DelayMax)
{
DelayMax = CurrentTimeSinceChange;
}
//Save these values for tests made during the next scan (see above)
m_PreviousTimeoutCondition = CurrentTimeoutCondition;
m_PreviousTimeSinceChange = CurrentTimeSinceChange;
}
private void StatsRuntime_RuntimeShutdown(object sender)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - Shutdown
//
// Clean up dynamic allocation, release open resources, etc.
//------------------------------------------------------------------------------
// Activate marked attributes before shutting down
AdviseOnlyActivateAttributes();
}
private void StatsRuntime_RuntimeStartup(object sender, RuntimeStartupEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - Startup
//
// Cache attributes. Cache Primitive IDs of other known primitives.
//------------------------------------------------------------------------------
// RestoreDynamicAttributes will recreate the Dynamic Attributes and restore the check pointed
// values during failover startup. The Failover Support for Dynamic Attributes option must
// be enabled via the Object Editor to support this function. To maintain the
// Dynamic Attribute values the CheckpointDynamicAttributeData function must be called
// when Dynamic Attribute values are modified (refer to the Dynamic Attribute Set Handler).
//RestoreDynamicAttributes();
// Execute offscan code to initialize the object in its offscan state.
SetScanState(false);
// Suspend marked attributes at startup
AdviseOnlySuspendAttributes();
}
private void AdviseOnlySuspendAttributes()
{
// Required Method for Advise only Active.
// Do not modify this method via the code editor.
//
// WARNING: Changes made to this method will be overwritten by the code generator.
if (AdviseOnlyActiveEnabled)
{
}
}
private void AdviseOnlyActivateAttributes()
{
// Required Method for Advise only Active.
// Do not modify this method via the code editor.
//
// WARNING: Changes made to this method will be overwritten by the code generator.
if (AdviseOnlyActiveEnabled)
{
}
}
private void StatsRuntime_RuntimeSetScanState(object sender, RuntimeSetScanStateEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - SetScanState
//
// Perform actions when the object goes on or off scan.
//------------------------------------------------------------------------------
}
private void StatsRuntime_RuntimeGetStatusDesc(object sender, ref RuntimeGetStatusDescEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - GetStatusDesc
//
// This routine provides a String for an error code when a client requests it.
// By default this method looks for an entry in the dictionary that has the
// DetailedErrorCode as the PhraseID.
//
// You need to change this implmentation if you want to provide embedded values
// within your messages, or you want to use string PhraseIDs instead of integer
// PhraseIDs.
//------------------------------------------------------------------------------
switch (e.detailedErrorCode)
{
default:
e.status = GetText((int)e.detailedErrorCode);
break;
}
}
private void StatsRuntime_RuntimeDynamic(object sender, ref RuntimeSetHandlerEventArgs e)
{
string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Runtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
// CheckpointDynamicAttributeData will update the checkpoint values for all Dynamic Attributes.
// To recreate Dynamic Attributes and restore Dynamic Attribute values the RestoreDynamicAttributes
// function must be called when starting up from failover (refer to the Startup method).
//CheckpointDynamicAttributeData();
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
SetValue(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
}
private void ResetSetHandler(object sender, ref RuntimeSetHandlerEventArgs e)
{
TimeoutCnt = 0;
LastTimeout = DateTime.MinValue;
DelayAverage = new TimeSpan(0);
DelayMax = new TimeSpan(0);
m_ChangeDetectedCount = 0;
m_DelayTotal = new TimeSpan(0);
}
}
}
@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{7E2D944C-A637-451B-A66D-E7861F1D4CBE}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ArchestrA.Toolkit.Watchdog</RootNamespace>
<AssemblyName>WatchDogStatsRuntime1</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Watchdog.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArchestrA.Toolkit.ArchestrAObjectSupport, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f787e550f2f530ee, processorArchitecture=MSI">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Toolkit.ArchestrAObjectSupport.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ArchestrA.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=23106a86e706d0ae">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Core.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="StatsRuntime.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Statsobj\Statsobj.csproj">
<Project>{A7BA2304-935A-4DDD-80CC-E6387B2980E6}</Project>
<Name>Statsobj</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="..\..\Watchdog.snk">
<Link>Watchdog.snk</Link>
</None>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
@@ -0,0 +1,45 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Stats")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ArchestrA")]
[assembly: AssemblyProduct("Stats")]
[assembly: AssemblyCopyright("Copyright © Wonderware 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("ef0c77fe-c73f-4d03-b50f-dc94d84e0a44")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
@@ -0,0 +1,67 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using ArchestrA.Core;
using ArchestrA.Toolkit;
namespace ArchestrA.Toolkit.Watchdog
{
#region Object Information - Toolkit generated code
// Required region for Object Information - do not modify
// the contents of this region with the code editor.
[APrimitive()]
[Guid("78ce58a4-b80a-4a1e-a9b1-d8b5a4e8233c")]
[ObjectAttributes.ExecutionGroup("Custom 2")]
[ObjectAttributes.Dictionary(@"WatchDog1.aaDCT")]
[ObjectAttributes.Vendor("ArchestrA")]
[ObjectAttributes.ConfigtimeCLSID("057251b9-4dfa-4216-80ae-0981f7bc63e9")]
[ObjectAttributes.RuntimeCLSID("85ca8612-8c40-4e51-b8b5-8588f2af5e59")]
[ObjectAttributes.MajorVersion(1)]
[ObjectAttributes.FullName("WatchDogStats")]
#endregion
/// <summary>
/// Summary description for Stats
/// </summary>
public class Stats : APrimitiveBase
{
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryCalculated)]
public CMxElapsedTime DelayMax = new CMxElapsedTime();
[Attributes.AAttrSecurityClassification(MxSecurityClassification.MxSecurityOperate)]
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryWriteable_U)]
public CMxBoolean Reset = new CMxBoolean();
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryCalculated)]
public CMxElapsedTime DelayAverage = new CMxElapsedTime();
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryCalculated)]
public CMxTime LastTimeout = new CMxTime();
[SystemPrimitive.HistoryPrimitive.AttrOverride("TimeoutCntHistory", SystemPrimitive.HistoryPrimitive.EngineeringUnits, "LockStatus", true)]
[SystemPrimitive.HistoryPrimitive("TimeoutCntHistory", Common.SystemPrimitive.ExtensionMode.VirtualEnable)]
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryCalculated)]
public CMxInteger TimeoutCnt = new CMxInteger();
// required to allow the aaDEF file to be generated
public Stats()
{
}
// required to use the child primitive as an attribute in an object
public Stats(string _name, bool _virt)
: base(_name, _virt)
{
}
}
}
@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{A7BA2304-935A-4DDD-80CC-E6387B2980E6}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ArchestrA.Toolkit.Watchdog</RootNamespace>
<AssemblyName>WatchDogStats1</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\..\Watchdog.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArchestrA.Toolkit.ArchestrAObjectSupport, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f787e550f2f530ee, processorArchitecture=MSI">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Toolkit.ArchestrAObjectSupport.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ArchestrA.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=23106a86e706d0ae">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Core.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Stats.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\Watchdog.snk">
<Link>Watchdog.snk</Link>
</None>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
+63
View File
@@ -0,0 +1,63 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Stats", "Stats", "{6D3152B2-421E-466D-8329-09A231689461}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Watchdog", "Watchdog\Watchdog.csproj", "{0E30645D-B574-41BF-B302-64FEE3C8208A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WatchdogRuntime", "WatchdogRuntime\WatchdogRuntime.csproj", "{FCAA2DA3-97F2-4C42-BB09-6729738D6872}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WatchdogConfigtime", "WatchdogConfigtime\WatchdogConfigtime.csproj", "{9C114E5F-13AC-4864-8301-4D3B422D075F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WatchdogEditor", "WatchdogEditor\WatchdogEditor.csproj", "{B2B3A624-324D-47B1-956D-94B48B7140A6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Statsobj", "Stats\Statsobj\Statsobj.csproj", "{A7BA2304-935A-4DDD-80CC-E6387B2980E6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StatsConfigtime", "Stats\StatsConfigtime\StatsConfigtime.csproj", "{63437254-FEDA-404A-8FCB-B2036ED949CB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StatsRuntime", "Stats\StatsRuntime\StatsRuntime.csproj", "{7E2D944C-A637-451B-A66D-E7861F1D4CBE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{0E30645D-B574-41BF-B302-64FEE3C8208A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0E30645D-B574-41BF-B302-64FEE3C8208A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0E30645D-B574-41BF-B302-64FEE3C8208A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0E30645D-B574-41BF-B302-64FEE3C8208A}.Release|Any CPU.Build.0 = Release|Any CPU
{FCAA2DA3-97F2-4C42-BB09-6729738D6872}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FCAA2DA3-97F2-4C42-BB09-6729738D6872}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FCAA2DA3-97F2-4C42-BB09-6729738D6872}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FCAA2DA3-97F2-4C42-BB09-6729738D6872}.Release|Any CPU.Build.0 = Release|Any CPU
{9C114E5F-13AC-4864-8301-4D3B422D075F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9C114E5F-13AC-4864-8301-4D3B422D075F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9C114E5F-13AC-4864-8301-4D3B422D075F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9C114E5F-13AC-4864-8301-4D3B422D075F}.Release|Any CPU.Build.0 = Release|Any CPU
{B2B3A624-324D-47B1-956D-94B48B7140A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B2B3A624-324D-47B1-956D-94B48B7140A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B2B3A624-324D-47B1-956D-94B48B7140A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B2B3A624-324D-47B1-956D-94B48B7140A6}.Release|Any CPU.Build.0 = Release|Any CPU
{A7BA2304-935A-4DDD-80CC-E6387B2980E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A7BA2304-935A-4DDD-80CC-E6387B2980E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A7BA2304-935A-4DDD-80CC-E6387B2980E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A7BA2304-935A-4DDD-80CC-E6387B2980E6}.Release|Any CPU.Build.0 = Release|Any CPU
{63437254-FEDA-404A-8FCB-B2036ED949CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{63437254-FEDA-404A-8FCB-B2036ED949CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{63437254-FEDA-404A-8FCB-B2036ED949CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{63437254-FEDA-404A-8FCB-B2036ED949CB}.Release|Any CPU.Build.0 = Release|Any CPU
{7E2D944C-A637-451B-A66D-E7861F1D4CBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7E2D944C-A637-451B-A66D-E7861F1D4CBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7E2D944C-A637-451B-A66D-E7861F1D4CBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7E2D944C-A637-451B-A66D-E7861F1D4CBE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{A7BA2304-935A-4DDD-80CC-E6387B2980E6} = {6D3152B2-421E-466D-8329-09A231689461}
{63437254-FEDA-404A-8FCB-B2036ED949CB} = {6D3152B2-421E-466D-8329-09A231689461}
{7E2D944C-A637-451B-A66D-E7861F1D4CBE} = {6D3152B2-421E-466D-8329-09A231689461}
EndGlobalSection
EndGlobal
Binary file not shown.
@@ -0,0 +1,784 @@
<?xml version="1.0" encoding="utf-8"?>
<xml>
<version>1</version>
<CCData>
<RTSODEC><![CDATA[ #region Declarations
//Declare Runtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Runtime Class.
]]></RTSODEC>
<RTSOGetStatusDesc><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - GetStatusDesc
//
// This routine provides a String for an error code when a client requests it.
// By default this method looks for an entry in the dictionary that has the
// DetailedErrorCode as the PhraseID.
//
// You need to change this implmentation if you want to provide embedded values
// within your messages, or you want to use string PhraseIDs instead of integer
// PhraseIDs.
//------------------------------------------------------------------------------
switch (e.detailedErrorCode)
{
default:
e.status = GetText((int)e.detailedErrorCode);
break;
}
]]></RTSOGetStatusDesc>
<RTSOSetScanState><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - SetScanState
//
// Perform actions when the object goes on or off scan.
//------------------------------------------------------------------------------
]]></RTSOSetScanState>
<RTSOInitialize><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime - Initialize
//
// Do not read or write attribute values of this primitive during Initialize
//------------------------------------------------------------------------------
]]></RTSOInitialize>
<RTSOExecute><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime - Execute
//
// This is where the main logic of the object periodically executes when
// the object is on scan.
//
// Read or write the attributes of this primitive using the generated
// properties (Value, Quality).
//------------------------------------------------------------------------------
#region Example code
// // The lines below both increment the value of the attribute "Attribute1" by 1
// Example_001 ++;
// Example_001 = Example_001 + 1;
//
// //Example_001 quality is set to Bad on Condition_001 being true.
// Example_001.Quality = (Condition_001 ? DataQuality.DataQualityBad : DataQuality.DataQualityGood);
//
// // The attribute "ElapsedTime" contains the time elapsed since the last reset
// ElapsedTime = GetScanTime() - TimeOfLastReset;
//
// // Increment the 3rd element of an array
// FloatArray[3] ++;
//
// // Increment all the elements of an array
// for( short counter = 1; counter <= FloatArray.Length; counter ++)
// {
// FloatArray[counter] ++;
// }
#endregion
]]></RTSOExecute>
<RTSODynamic_Attributes_Set_Handler><![CDATA[
string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Runtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
// CheckpointDynamicAttributeData will update the checkpoint values for all Dynamic Attributes.
// To recreate Dynamic Attributes and restore Dynamic Attribute values the RestoreDynamicAttributes
// function must be called when starting up from failover (refer to the Startup method).
//CheckpointDynamicAttributeData();
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
Set(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
]]></RTSODynamic_Attributes_Set_Handler>
<CTSODEC><![CDATA[ #region Declarations
//Declare Configtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Configtime Class.
]]></CTSODEC>
<CTSOValidate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - Validate
//
// Validate sets the warning or error text for the object.
// It is used to check conditions that would not be checked using
// a SetHandler, such as reporting that an object was not
// configured, or that combinations of attributes are illegal.
//
// Other than calling AddWarningMessage or AddErrorMessage, Validate
// should never modify the state of the object.
//------------------------------------------------------------------------------
#region Example code
// if (MyTestDefaultState)
// {
// //Add a warning message using the dictionay phrase ID "ObjectStillInDefaultState"
// AddWarningMessage(GetText("ObjectStillInDefaultState"));
//
// //Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
//
// if (MyTestAttributeCombinationValid)
// {
// //Add a warning message using the dictionay phrase ID "AttributeCombinationInvalid"
// AddWarningMessage(GetText("AttributeCombinationInvalid"));
//
// // Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
#endregion
// By default set the object status to Good
status = EPACKAGESTATUS.ePackageGood;
// The following statement will exit validate when validating templates.
// Place code that should be validated in templates and instances before this
// statement. Code placed after this statement will execute in instances only.
if ((bool)Get((short)ECOMMONPRIMITIVE.idxCommonIsTemplate, eCommonPrimitiveId))
{
return;
}
]]></CTSOValidate>
<CTSOInitialize><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - Initialize
//
// Any custom initialization can be done here, including caching of attribute
// values, primitive IDs etc.
//------------------------------------------------------------------------------
]]></CTSOInitialize>
<CTSOMigrate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - Migrate
//
// Migrate executes when importing a template into a Galaxy that contains
// a previous version (major) of the template. The template must be derived or
// instantiated for migrate to execute.
//
// Migrate provides access to the previous versions attribute information.
// A typical application for migrate code is to preserve attribute values
// when an attribute name has changed (refer to the Example code below).
//
// To enable this event the migrate option must be configured via the Toolkit
// Editor or in code (i.e. [ObjectAttributes.AMigrate("1","2")]).
//
// If no implementation is provided, the system will copy all attribute values
// from the old object to the new one by matching the attribute names.
//------------------------------------------------------------------------------
#region Example code
// //Check major version of previous template
// if (migrate.MajorVersion() == 1)
// {
// //Attribute "Eg_001" has been renamed to "Example_001".
// //Transfer attribute value, lock and security classification
// Example_001 = migrate.GetValue("Eg_001"); //Gets value
// Example_001.Locked = migrate.GetLocked("Eg_001"); //Gets lock status
// Example_001.Security = migrate.GetSecurity("Eg_001"); //Gets Security Classification
//
// //Transfer primitive values
// SetValue("Example_001.TrendHi", migrate.GetValue("Eg_001.TrendHi"));
// SetValue("Example_001.TrendHi", EATTRIBUTEPROPERTY.idxAttribPropLocked, migrate.GetLocked("Eg_001.TrendHi"));
//
// //Automatically migrate all child primitives
// migrate.AutoMigrateChildPrimitives = true;
// }
#endregion
]]></CTSOMigrate>
<CTSOPreValidate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - PreValidate
//
// PreValidate is called when the object is about to be validated (e.g. when
// an edit session is ending and the object is about to be saved.)
//
// A primitive can modify attributes within this method.
//
// Note: It is often not necessary to perform any actions in OnPreValidate.
//------------------------------------------------------------------------------
]]></CTSOPreValidate>
<CTSOPostCreate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - PostCreate
//
// OnPostCreate is called when an object is first created.
//
// One purpose for implementing this method is to insure that the initial
// state of the primitive is valid.
//
// This method can be used by a Resuable Primitive to correct invalid initial
// states that can arise when an attribute value has been overridden. If the
// attribute has a SetHandler with validation or side effects the SetHandler
// does not execute as overrides do not trigger SetHandlers.
//------------------------------------------------------------------------------
#region Example code
// // If statistics are enabled, add the Statistics virtual primitive
// // the way the SetHandler would have done it.
// if (StatsEnable)
// {
// AddPrimitive("Statistics", "Statistics1", "Statistics1");
// }
#endregion
]]></CTSOPostCreate>
<CTSODynamic_Attributes_Set_Handler><![CDATA[
string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Configtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
Set(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
]]></CTSODynamic_Attributes_Set_Handler>
<RTSCDEC><![CDATA[ #region Declarations
//Declare Runtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Runtime Class.
]]></RTSCDEC>
<RTSCGetStatusDesc><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - GetStatusDesc
//
// This routine provides a String for an error code when a client requests it.
// By default this method looks for an entry in the dictionary that has the
// DetailedErrorCode as the PhraseID.
//
// You need to change this implmentation if you want to provide embedded values
// within your messages, or you want to use string PhraseIDs instead of integer
// PhraseIDs.
//------------------------------------------------------------------------------
switch (e.detailedErrorCode)
{
default:
e.status = GetText((int)e.detailedErrorCode);
break;
}
]]></RTSCGetStatusDesc>
<RTSCSetScanState><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - SetScanState
//
// Perform actions when the object goes on or off scan.
//------------------------------------------------------------------------------
]]></RTSCSetScanState>
<RTSCInitialize><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime - Initialize
//
// Do not read or write attribute values of this primitive during Initialize
//------------------------------------------------------------------------------
]]></RTSCInitialize>
<RTSCExecute><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime - Execute
//
// This is where the main logic of the object periodically executes when
// the object is on scan.
//
// Read or write the attributes of this primitive using the generated
// properties (Value, Quality).
//------------------------------------------------------------------------------
#region Example code
// // The lines below both increment the value of the attribute "Attribute1" by 1
// Example_001 ++;
// Example_001 = Example_001 + 1;
//
// //Example_001 quality is set to Bad on Condition_001 being true.
// Example_001.Quality = (Condition_001 ? DataQuality.DataQualityBad : DataQuality.DataQualityGood);
//
// // The attribute "ElapsedTime" contains the time elapsed since the last reset
// ElapsedTime = GetScanTime() - TimeOfLastReset;
//
// // Increment the 3rd element of an array
// FloatArray[3] ++;
//
// // Increment all the elements of an array
// for( short counter = 1; counter <= FloatArray.Length; counter ++)
// {
// FloatArray[counter] ++;
// }
#endregion
]]></RTSCExecute>
<RTSCDynamic_Attributes_Set_Handler><![CDATA[ string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Runtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
// CheckpointDynamicAttributeData will update the checkpoint values for all Dynamic Attributes.
// To recreate Dynamic Attributes and restore Dynamic Attribute values the RestoreDynamicAttributes
// function must be called when starting up from failover (refer to the Startup method).
//CheckpointDynamicAttributeData();
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
Set(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
]]></RTSCDynamic_Attributes_Set_Handler>
<CTSCDEC><![CDATA[ #region Declarations
//Declare Configtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Configtime Class.
]]></CTSCDEC>
<CTSCValidate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - Validate
//
// Validate sets the warning or error text for the object.
// It is used to check conditions that would not be checked using
// a SetHandler, such as reporting that an object was not
// configured, or that combinations of attributes are illegal.
//
// Other than calling AddWarningMessage or AddErrorMessage, Validate
// should never modify the state of the object.
//------------------------------------------------------------------------------
#region Example code
// if (MyTestDefaultState)
// {
// //Add a warning message using the dictionay phrase ID "ObjectStillInDefaultState"
// AddWarningMessage(GetText("ObjectStillInDefaultState"));
//
// //Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
//
// if (MyTestAttributeCombinationValid)
// {
// //Add a warning message using the dictionay phrase ID "AttributeCombinationInvalid"
// AddWarningMessage(GetText("AttributeCombinationInvalid"));
//
// // Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
#endregion
// By default set the object status to Good
status = EPACKAGESTATUS.ePackageGood;
// The following statement will exit validate when validating templates.
// Place code that should be validated in templates and instances before this
// statement. Code placed after this statement will execute in instances only.
if ((bool)Get((short)ECOMMONPRIMITIVE.idxCommonIsTemplate, eCommonPrimitiveId))
{
return;
}
]]></CTSCValidate>
<CTSCInitialize><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - Initialize
//
// Any custom initialization can be done here, including caching of attribute
// values, primitive IDs etc.
//------------------------------------------------------------------------------
]]></CTSCInitialize>
<CTSCMigrate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - Migrate
//
// Migrate executes when importing a template into a Galaxy that contains
// a previous version (major) of the template. The template must be derived or
// instantiated for migrate to execute.
//
// Migrate provides access to the previous versions attribute information.
// A typical application for migrate code is to preserve attribute values
// when an attribute name has changed (refer to the Example code below).
//
// To enable this event the migrate option must be configured via the Toolkit
// Editor or in code (i.e. [ObjectAttributes.AMigrate("1","2")]).
//
// If no implementation is provided, the system will copy all attribute values
// from the old object to the new one by matching the attribute names.
//------------------------------------------------------------------------------
#region Example code
// //Check major version of previous template
// if (migrate.MajorVersion() == 1)
// {
// //Attribute "Eg_001" has been renamed to "Example_001".
// //Transfer attribute value, lock and security classification
// Example_001 = migrate.GetValue("Eg_001"); //Gets value
// Example_001.Locked = migrate.GetLocked("Eg_001"); //Gets lock status
// Example_001.Security = migrate.GetSecurity("Eg_001"); //Gets Security Classification
//
// //Transfer primitive values
// SetValue("Example_001.TrendHi", migrate.GetValue("Eg_001.TrendHi"));
// SetValue("Example_001.TrendHi", EATTRIBUTEPROPERTY.idxAttribPropLocked, migrate.GetLocked("Eg_001.TrendHi"));
//
// //Automatically migrate all child primitives
// migrate.AutoMigrateChildPrimitives = true;
// }
#endregion
]]></CTSCMigrate>
<CTSCPreValidate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - PreValidate
//
// PreValidate is called when the object is about to be validated (e.g. when
// an edit session is ending and the object is about to be saved.)
//
// A primitive can modify attributes within this method.
//
// Note: It is often not necessary to perform any actions in OnPreValidate.
//------------------------------------------------------------------------------
]]></CTSCPreValidate>
<CTSCPostCreate><![CDATA[ //------------------------------------------------------------------------------
// TODO: Configtime Event - PostCreate
//
// OnPostCreate is called when an object is first created.
//
// One purpose for implementing this method is to insure that the initial
// state of the primitive is valid.
//
// This method can be used by a Resuable Primitive to correct invalid initial
// states that can arise when an attribute value has been overridden. If the
// attribute has a SetHandler with validation or side effects the SetHandler
// does not execute as overrides do not trigger SetHandlers.
//------------------------------------------------------------------------------
#region Example code
// // If statistics are enabled, add the Statistics virtual primitive
// // the way the SetHandler would have done it.
// if (StatsEnable)
// {
// AddPrimitive("Statistics", "Statistics1", "Statistics1");
// }
#endregion
]]></CTSCPostCreate>
<CTSCDynamic_Attributes_Set_Handler><![CDATA[
string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Configtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
Set(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
]]></CTSCDynamic_Attributes_Set_Handler>
<RTSOShutdown><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - Shutdown
//
// Clean up dynamic allocation, release open resources, etc.
//------------------------------------------------------------------------------
// Activate marked attributes before shutting down
AdviseOnlyActivateAttributes();
]]></RTSOShutdown><RTSOStartup><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - Startup
//
// Cache attributes. Cache Primitive IDs of other known primitives.
//------------------------------------------------------------------------------
// RestoreDynamicAttributes will recreate the Dynamic Attributes and restore the check pointed
// values during failover startup. The Failover Support for Dynamic Attributes option must
// be enabled via the Object Editor to support this function. To maintain the
// Dynamic Attribute values the CheckpointDynamicAttributeData function must be called
// when Dynamic Attribute values are modified (refer to the Dynamic Attribute Set Handler).
//RestoreDynamicAttributes();
m_TimeOfLastChange = GetScanTime();
// Execute offscan code to initialize the object in its offscan state.
SetScanState(false);
// Suspend marked attributes at startup
AdviseOnlySuspendAttributes();
]]></RTSOStartup><RTSCShutdown><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - Shutdown
//
// Clean up dynamic allocation, release open resources, etc.
//------------------------------------------------------------------------------
// Activate marked attributes before shutting down
AdviseOnlyActivateAttributes();
]]></RTSCShutdown><RTSCStartup><![CDATA[ //------------------------------------------------------------------------------
// TODO: Runtime Event - Startup
//
// Cache attributes. Cache Primitive IDs of other known primitives.
//------------------------------------------------------------------------------
// RestoreDynamicAttributes will recreate the Dynamic Attributes and restore the check pointed
// values during failover startup. The Failover Support for Dynamic Attributes option must
// be enabled via the Object Editor to support this function. To maintain the
// Dynamic Attribute values the CheckpointDynamicAttributeData function must be called
// when Dynamic Attribute values are modified (refer to the Dynamic Attribute Set Handler).
//RestoreDynamicAttributes();
// Execute offscan code to initialize the object in its offscan state.
SetScanState(false);
// Suspend marked attributes at startup
AdviseOnlySuspendAttributes();
]]></RTSCStartup></CCData>
<Build Attach_Runtime_Debugger="False" Attach_IDE_Debugger="False" Enable_Migrate="False" Copy_Reusable="True" Copy_Output="False" Output_Path="" Attach_Configuration_Debugger="False" />
<Version Restart_Bootstrap="False" Version_Type="Retain" Restart_GR="False" AppendDelete_Version="Delete" Restart_IDE="False" />
<BuildInfo>
<OutputDir><![CDATA[..\Output\]]></OutputDir>
<Project CreateAADEF="True">
<FullOutputFileName><![CDATA[..\Stats\Statsobj\bin\Debug\WatchDogStats1.dll]]></FullOutputFileName>
<OutputPath><![CDATA[..\Stats\Statsobj\bin\Debug\]]></OutputPath>
<ProjectPath><![CDATA[..\Stats\Statsobj]]></ProjectPath>
<ClassName>ArchestrA.Toolkit.Watchdog.Stats</ClassName>
<DependentFiles>
<dep>
<name><![CDATA[WatchDogStats1RC.dll]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Runtime</type>
<fileType>ComDLL</fileType>
<def />
</dep>
<dep>
<name><![CDATA[WatchDogStats1.dll]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Runtime, Configtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[WatchDogStats1.reg]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Runtime, Configtime</type>
<fileType>MergeRegistryScript</fileType>
</dep>
<dep>
<name><![CDATA[WatchDogStatsRuntime1.dll]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Runtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[WatchDogStatsRuntime1.reg]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Runtime</type>
<fileType>MergeRegistryScript</fileType>
</dep>
<dep>
<name><![CDATA[WatchDogStatsConfigtime1.dll]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Configtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[WatchDogStatsConfigtime1.reg]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Configtime</type>
<fileType>MergeRegistryScript</fileType>
</dep>
<dep>
<name><![CDATA[C:\WINDOWS\assembly\GAC_MSIL\ArchestrA.Toolkit.ArchestrAObjectSupport\1.0.0.0__f787e550f2f530ee\ArchestrA.Toolkit.ArchestrAObjectSupport.dll]]></name>
<vendor><![CDATA[Wonderware]]></vendor>
<type>Runtime, Configtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<attribute>
<name>Reset</name>
<run />
</attribute>
<FullName>WatchDogStats</FullName>
</DependentFiles>
</Project>
<Project TopMost="True" CreateAADEF="True">
<FullOutputFileName><![CDATA[bin\Debug\WatchDog1.dll]]></FullOutputFileName>
<OutputPath><![CDATA[bin\Debug\]]></OutputPath>
<ProjectPath><![CDATA[]]></ProjectPath>
<ClassName>ArchestrA.Toolkit.Watchdog.WatchDog</ClassName>
<DependentFiles>
<dep>
<name><![CDATA[WatchDog1RC.dll]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Runtime</type>
<fileType>ComDLL</fileType>
<def />
</dep>
<dep>
<name><![CDATA[WatchDog1.dll]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Runtime, Configtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[WatchDog1.reg]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Runtime, Configtime</type>
<fileType>MergeRegistryScript</fileType>
</dep>
<dep>
<name><![CDATA[WatchdogRuntime1.dll]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Runtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[WatchdogRuntime1.reg]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Runtime</type>
<fileType>MergeRegistryScript</fileType>
</dep>
<dep>
<name><![CDATA[WatchdogConfigtime1.dll]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Configtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[WatchdogConfigtime1.reg]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Configtime</type>
<fileType>MergeRegistryScript</fileType>
</dep>
<dep>
<name><![CDATA[WatchdogEditor1.dll]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Editor</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[WatchdogEditor1.reg]]></name>
<vendor><![CDATA[ArchestrA]]></vendor>
<type>Editor</type>
<fileType>MergeRegistryScript</fileType>
</dep>
<dep>
<name><![CDATA[C:\WINDOWS\assembly\GAC_MSIL\ArchestrA.Toolkit.ArchestrAControlLibrary\1.0.0.0__f787e550f2f530ee\ArchestrA.Toolkit.ArchestrAControlLibrary.dll]]></name>
<vendor><![CDATA[Wonderware]]></vendor>
<type>Runtime, Configtime, Editor</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<dep>
<name><![CDATA[C:\WINDOWS\assembly\GAC_MSIL\ArchestrA.Toolkit.ArchestrAObjectSupport\1.0.0.0__f787e550f2f530ee\ArchestrA.Toolkit.ArchestrAObjectSupport.dll]]></name>
<vendor><![CDATA[Wonderware]]></vendor>
<type>Runtime, Configtime</type>
<fileType>NETFrameworkAssembly</fileType>
</dep>
<editor>WatchdogEditor1</editor>
<attribute>
<name>Stats_Enable</name>
<cfg />
</attribute>
<attribute>
<name>Timeout_Limit</name>
<cfg />
<run />
</attribute>
<FullName>WatchDog</FullName>
</DependentFiles>
</Project>
<Project>
<FullOutputFileName><![CDATA[..\WatchdogEditor\bin\Debug\WatchdogEditor1.dll]]></FullOutputFileName>
<OutputPath><![CDATA[..\WatchdogEditor\bin\Debug\]]></OutputPath>
<ProjectPath><![CDATA[..\WatchdogEditor]]></ProjectPath>
</Project>
<Project>
<FullOutputFileName><![CDATA[..\WatchdogConfigtime\bin\Debug\WatchdogConfigtime1.dll]]></FullOutputFileName>
<OutputPath><![CDATA[..\WatchdogConfigtime\bin\Debug\]]></OutputPath>
<ProjectPath><![CDATA[..\WatchdogConfigtime]]></ProjectPath>
</Project>
<Project>
<FullOutputFileName><![CDATA[..\WatchdogRuntime\bin\Debug\WatchdogRuntime1.dll]]></FullOutputFileName>
<OutputPath><![CDATA[..\WatchdogRuntime\bin\Debug\]]></OutputPath>
<ProjectPath><![CDATA[..\WatchdogRuntime]]></ProjectPath>
</Project>
<Project>
<FullOutputFileName><![CDATA[..\Stats\StatsConfigtime\bin\Debug\WatchDogStatsConfigtime1.dll]]></FullOutputFileName>
<OutputPath><![CDATA[..\Stats\StatsConfigtime\bin\Debug\]]></OutputPath>
<ProjectPath><![CDATA[..\Stats\StatsConfigtime]]></ProjectPath>
</Project>
<Project>
<FullOutputFileName><![CDATA[..\Stats\StatsRuntime\bin\Debug\WatchDogStatsRuntime1.dll]]></FullOutputFileName>
<OutputPath><![CDATA[..\Stats\StatsRuntime\bin\Debug\]]></OutputPath>
<ProjectPath><![CDATA[..\Stats\StatsRuntime]]></ProjectPath>
</Project>
</BuildInfo>
</xml>
@@ -0,0 +1,45 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("WatchdogDef")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ArchestrA")]
[assembly: AssemblyProduct("WatchdogDef")]
[assembly: AssemblyCopyright("Copyright © Wonderware 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("f7d23252-7e19-48f7-be50-fc7b2ee424a5")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
@@ -0,0 +1,108 @@
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary>
<Phrase_Index PhraseID="aaWatchdogMonitoredBitInputSourcePrompt">
<Language LangID="1033">
<VALUE>MonitoredBit.InputSource:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaStats_EnablePrompt">
<Language LangID="1033">
<VALUE>Stats.Enable:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogStatsTimeoutCnt_HistorizedPrompt">
<Language LangID="1033">
<VALUE>Stats.TimeoutCnt.Historized:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaTimeout_AlarmedPrompt">
<Language LangID="1033">
<VALUE>Timeout.Alarmed:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaTimeout_LimitPrompt">
<Language LangID="1033">
<VALUE>Timeout.Limit:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaTimeSinceChange_HistorizedPrompt">
<Language LangID="1033">
<VALUE>TimeSinceChange.Historized:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="GeneralTab">
<Language LangID="1033">
<VALUE>General</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogStatsResetPrompt">
<Language LangID="1033">
<VALUE>Stats.Reset:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogStatsTimeoutCntHistForceStoragePeriodPrompt">
<Language LangID="1033">
<VALUE>Stats.TimeoutCnt.ForceStoragePeriod:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogStatsTimeoutCntHistTrendHiPrompt">
<Language LangID="1033">
<VALUE>Stats.TimeoutCnt.TrendHi:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogStatsTimeoutCntHistTrendLoPrompt">
<Language LangID="1033">
<VALUE>Stats.TimeoutCnt.TrendLo:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogStatsTimeoutCntHistValueDeadBandPrompt">
<Language LangID="1033">
<VALUE>Stats.TimeoutCnt.ValueDeadBand:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogTimeoutAlarmAckMsgPrompt">
<Language LangID="1033">
<VALUE>Timeout.AckMsg:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogTimeoutAlarmDescAttrNamePrompt">
<Language LangID="1033">
<VALUE>Timeout.DescAttrName:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogTimeoutAlarmPriorityPrompt">
<Language LangID="1033">
<VALUE>Timeout.Priority:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogTimeSinceChangeHistForceStoragePeriodPrompt">
<Language LangID="1033">
<VALUE>TimeSinceChange.ForceStoragePeriod:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogTimeSinceChangeHistTrendHiPrompt">
<Language LangID="1033">
<VALUE>TimeSinceChange.TrendHi:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogTimeSinceChangeHistTrendLoPrompt">
<Language LangID="1033">
<VALUE>TimeSinceChange.TrendLo:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="aaWatchdogTimeSinceChangeHistValueDeadBandPrompt">
<Language LangID="1033">
<VALUE>TimeSinceChange.ValueDeadBand:</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="AdvancedTab">
<Language LangID="1033">
<VALUE>Advanced</VALUE>
</Language>
</Phrase_Index>
<Phrase_Index PhraseID="Timeout.Limit must be a positive number.">
<Language LangID="1033">
<VALUE>Timeout.Limit must be a positive number.</VALUE>
</Language>
</Phrase_Index>
</Dictionary>
+79
View File
@@ -0,0 +1,79 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using System.Collections;
using ArchestrA.Core;
using ArchestrA.Toolkit;
using ArchestrA.Toolkit.SystemPrimitive;
namespace ArchestrA.Toolkit.Watchdog
{
#region Object Information - Toolkit generated code
// Required region for Object Information - do not modify
// the contents of this region with the code editor.
[AObject()]
[Stats("Stats", true)]
[Guid("d53d3f79-53f7-40c9-9718-531accb6bb6d")]
[ObjectAttributes.Dictionary(@"WatchDog1.aaDCT")]
[ObjectAttributes.ConfigtimeCLSID("0fba961c-3462-49d6-9963-11aac3c6e9d1")]
[ObjectAttributes.RuntimeCLSID("886e73ad-ddb7-45ca-8ca2-e652e1e9bafd")]
[ObjectAttributes.MajorVersion(1)]
[ObjectAttributes.MinorVersion(1)]
[ObjectAttributes.MinIASVersion("3.1.0")]
[ObjectAttributes.Migrate("")]
#endregion
// Required attributes for Object Information.
// Changes made using the code editor will appear in the Toolkit Editor.
[ObjectAttributes.Name("WatchDog")]
[ObjectAttributes.Vendor("ArchestrA")]
[ObjectAttributes.ShortDescription("This object raises an alarm when an input stops changing for too long. It optionally maintains statistics.")]
[ObjectAttributes.ToolsetName("AOT Samples")]
[ObjectAttributes.Events()]
[ObjectAttributes.IDEBehavior()]
[AReusablePrimitiveRef(@"ArchestrA\InputPrimitive1.aaPri", "InputPrimitive1", "MonitoredBit", false)]
[AReusablePrimitiveRef.AttrOverride("InputPrimitive1", "DataType", "LockStatus", true)]
[AReusablePrimitiveRef.AttrOverride("InputPrimitive1", "DataType", "Value", MxDataType.MxBoolean)]
/// <summary>
/// Summary description for Watchdog
/// </summary>
public class WatchDog
{
[Attributes.AAttrName("Timeout.Limit")]
[Attributes.AAttrSecurityClassification(MxSecurityClassification.MxSecurityTune)]
[Attributes.AAttrFrequentlyAccessed(true)]
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryWriteable_UC_Lockable)]
public CMxElapsedTime Timeout_Limit = new CMxElapsedTime("00:00:05.0000000");
[Attributes.AAttrName("Stats.Enable")]
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryPackageOnly_Lockable)]
public CMxBoolean Stats_Enable = new CMxBoolean();
[SystemPrimitive.HistoryPrimitive.AttrOverride("TimeSinceChangeHistory", SystemPrimitive.HistoryPrimitive.EngineeringUnits, "LockStatus", true)]
[SystemPrimitive.HistoryPrimitive("TimeSinceChangeHistory", Common.SystemPrimitive.ExtensionMode.VirtualEnable)]
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryCalculated)]
public CMxElapsedTime TimeSinceChange = new CMxElapsedTime();
[SystemPrimitive.AlarmPrimitive.AttrOverride("TimeoutAlarm", SystemPrimitive.AlarmPrimitive.Value, "LockStatus", true)]
[SystemPrimitive.AlarmPrimitive.AttrOverride("TimeoutAlarm", SystemPrimitive.AlarmPrimitive.Limit, "LockStatus", true)]
[SystemPrimitive.AlarmPrimitive.AttrOverride("TimeoutAlarm", SystemPrimitive.AlarmPrimitive.EngineeringUnits, "LockStatus", true)]
[SystemPrimitive.AlarmPrimitive.AttrOverride("TimeoutAlarm", SystemPrimitive.AlarmPrimitive.Category, "LockStatus", true)]
[SystemPrimitive.AlarmPrimitive.AttrOverride("TimeoutAlarm", SystemPrimitive.AlarmPrimitive.Category, "Value", 12)]
[SystemPrimitive.AlarmPrimitive("TimeoutAlarm", Common.SystemPrimitive.ExtensionMode.VirtualEnable)]
[Attributes.AAttrCategory(MxAttributeCategory.MxCategoryCalculated)]
public CMxBoolean Timeout = new CMxBoolean();
public WatchDog()
{
}
}
}
@@ -0,0 +1,133 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{0E30645D-B574-41BF-B302-64FEE3C8208A}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ArchestrA.Toolkit.Watchdog</RootNamespace>
<AssemblyName>WatchDog1</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Watchdog.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArchestrA.Toolkit.ArchestrAObjectSupport, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f787e550f2f530ee, processorArchitecture=MSI">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Toolkit.ArchestrAObjectSupport.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ArchestrA.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=23106a86e706d0ae">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Core.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Watchdog.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="AAObjectInfo.xml" />
</ItemGroup>
<ItemGroup>
<None Include="..\Watchdog.snk">
<Link>Watchdog.snk</Link>
</None>
<None Include="WatchDog1.aaDCT" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Stats\Statsobj\Statsobj.csproj">
<Project>{A7BA2304-935A-4DDD-80CC-E6387B2980E6}</Project>
<Name>Statsobj</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
@@ -0,0 +1,44 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Configtime")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ArchestrA")]
[assembly: AssemblyProduct("Configtime")]
[assembly: AssemblyCopyright("Copyright © Wonderware 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("b23434ca-aaab-4ec7-90c5-5689e0ac7892")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
@@ -0,0 +1,573 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using System.Collections;
using ArchestrA.Core;
using ArchestrA.Toolkit;
namespace ArchestrA.Toolkit.Watchdog
{
[Guid("0fba961c-3462-49d6-9963-11aac3c6e9d1")]
/// <summary>
/// Summary description for WatchdogConfigtime
/// </summary>
public class WatchdogConfigtime : ConfigtimeBase
{
#region Attributes - Toolkit generated code
// The following C# properties have been defined to simplify access to
// attribute values - do not modify the contents of this region with
// the code editor.
private bool Timeout_Alarmed
{
get { return GetValue("Timeout.Alarmed"); }
set { SetValue("Timeout.Alarmed", (value)); }
}
private CMxBoolean Stats_Enable
{
get { return InternalReferenceOnly.Stats_Enable; }
set { InternalReferenceOnly.Stats_Enable.Set(value); }
}
private bool TimeSinceChange_Historized
{
get { return GetValue("TimeSinceChange.Historized"); }
set { SetValue("TimeSinceChange.Historized", (value)); }
}
private CMxElapsedTime Timeout_Limit
{
get { return InternalReferenceOnly.Timeout_Limit; }
set { InternalReferenceOnly.Timeout_Limit.Set(value); }
}
public __InputPrimitive1 InputPrimitive1 = null;
public class __InputPrimitive1
{
public SupportWrapper Wrapper = new SupportWrapper();
private CMxReference _InputSource = null;
public CMxReference InputSource
{
get { if (_InputSource == null) { _InputSource = new CMxReference(Wrapper, "MonitoredBit.InputSource"); } return _InputSource; }
set { if (_InputSource == null) { _InputSource = new CMxReference(Wrapper, "MonitoredBit.InputSource"); } _InputSource.Set(value); }
}
private CMxDataType _DataType = null;
public CMxDataType DataType
{
get { if (_DataType == null) { _DataType = new CMxDataType(Wrapper, "MonitoredBit.DataType"); } return _DataType; }
set { if (_DataType == null) { _DataType = new CMxDataType(Wrapper, "MonitoredBit.DataType"); } _DataType.Set(value); }
}
public __InputPrimitive1(AObjectBase baseClass)
{
Wrapper.baseClass = baseClass;
}
}
#endregion Attributes
#region Internal Reference Only
//Toolkit code required to access the attributes declared in the Object Class
private WatchDog InternalReferenceOnly = null;
#endregion Internal Reference Only
#region Declarations
//Declare Configtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Configtime Class.
#endregion Declarations
public WatchdogConfigtime()
{
InternalReferenceOnly = new WatchDog();
this.AObjectInstance = InternalReferenceOnly;
#region Configuration Event Registration - Toolkit generated code
// Required region for Configuration Events - do not modify
// the contents of this region with the code editor.
this.ConfigtimeInitialize += new ConfigtimeInitializeDelegate(WatchdogConfigtime_ConfigtimeInitialize);
this.ConfigtimeValidate += new ConfigtimeValidateDelegate(WatchdogConfigtime_ConfigtimeValidate);
this.ConfigtimeMigrate += new MigrateDelegate(WatchdogConfigtime_ConfigtimeMigrate);
this.ConfigtimeDynamic += new ConfigtimeDynamicSetHandlerDelegate(WatchdogConfigtime_ConfigtimeDynamic);
this.PreValidate += new ObjectEventDelegate(WatchdogConfigtime_PreValidate);
this.PostCreate += new ObjectEventDelegate(WatchdogConfigtime_PostCreate);
#endregion Configuration Event Registration
#region Optional Configuration Event Registration - Toolkit generated code
// Required region for Configuration Events - do not modify
// the contents of this region with the code editor.
// Optional events are enabled by the ObjectAttributes.Events
// attribute in the Object class.
#endregion Optional Configuration Event Registration
#region Configtime Set Handler Registration Toolkit generated code
// Required method for Configtime SetHandlers.
// Changes made using the code editor will appear in the Toolkit Editor.
//
// WARNING: Changes made to this region will result in a Shape Change.
// TODO: Configtime SetHandler registration
// this.RegisterConfigtimeSetHandler("Example_001", new ConfigtimeSetHandlerDelegate(Example_001SetHandler));
this.RegisterConfigtimeSetHandler("Timeout.Alarmed", new ConfigtimeSetHandlerDelegate(Timeout_AlarmedSetHandler));
this.RegisterConfigtimeSetHandler("TimeSinceChange.Historized", new ConfigtimeSetHandlerDelegate(TimeSinceChange_HistorizedSetHandler));
this.RegisterConfigtimeSetHandler("Stats.Enable", new ConfigtimeSetHandlerDelegate(Stats_EnableSetHandler));
this.RegisterConfigtimeSetHandler("Timeout.Limit", new ConfigtimeSetHandlerDelegate(Timeout_LimitSetHandler));
#endregion Configtime Set Handler Registration
#region Primitive Wrapper Initialization - Toolkit generated code
InputPrimitive1 = new __InputPrimitive1(this);
#endregion Primitive Wrapper Initialization
}
private void WatchdogConfigtime_ConfigtimeInitialize(object sender)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - Initialize
//
// Any custom initialization can be done here, including caching of attribute
// values, primitive IDs etc.
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_ConfigtimeMigrate(object sender, ref MigrateHandler migrate)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - Migrate
//
// Migrate executes when importing a template into a Galaxy that contains
// a previous version (major) of the template. The template must be derived or
// instantiated for migrate to execute.
//
// Migrate provides access to the previous versions attribute information.
// A typical application for migrate code is to preserve attribute values
// when an attribute name has changed (refer to the Example code below).
//
// To enable this event the migrate option must be configured via the Toolkit
// Editor or in code (i.e. [ObjectAttributes.AMigrate("1","2")]).
//
// If no implementation is provided, the system will copy all attribute values
// from the old object to the new one by matching the attribute names.
//------------------------------------------------------------------------------
#region Example code
// //Check major version of previous template
// if (migrate.MajorVersion() == 1)
// {
// //Attribute "Eg_001" has been renamed to "Example_001".
// //Transfer attribute value, lock and security classification
// Example_001 = migrate.GetValue("Eg_001"); //Gets value
// Example_001.Locked = migrate.GetLocked("Eg_001"); //Gets lock status
// Example_001.Security = migrate.GetSecurity("Eg_001"); //Gets Security Classification
//
// //Transfer primitive values
// SetValue("Example_001.TrendHi", migrate.GetValue("Eg_001.TrendHi"));
// SetValue("Example_001.TrendHi", EATTRIBUTEPROPERTY.idxAttribPropLocked, migrate.GetLocked("Eg_001.TrendHi"));
//
// //Automatically migrate all child primitives
// migrate.AutoMigrateChildPrimitives = true;
// }
#endregion
}
private void WatchdogConfigtime_ConfigtimeValidate(object sender, ref EPACKAGESTATUS status)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - Validate
//
// Validate sets the warning or error text for the object.
// It is used to check conditions that would not be checked using
// a SetHandler, such as reporting that an object was not
// configured, or that combinations of attributes are illegal.
//
// Other than calling AddWarningMessage or AddErrorMessage, Validate
// should never modify the state of the object.
//------------------------------------------------------------------------------
#region Example code
// if (MyTestDefaultState)
// {
// //Add a warning message using the dictionay phrase ID "ObjectStillInDefaultState"
// AddWarningMessage(GetText("ObjectStillInDefaultState"));
//
// //Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
//
// if (MyTestAttributeCombinationValid)
// {
// //Add a warning message using the dictionay phrase ID "AttributeCombinationInvalid"
// AddWarningMessage(GetText("AttributeCombinationInvalid"));
//
// // Change the status to Warning if the current status is Good
// if (status == EPACKAGESTATUS.ePackageGood)
// {
// status = EPACKAGESTATUS.ePackageWarning;
// }
// }
#endregion
// By default set the object status to Good
status = EPACKAGESTATUS.ePackageGood;
// The following statement will exit validate when validating templates.
// Place code that should be validated in templates and instances before this
// statement. Code placed after this statement will execute in instances only.
if (IsTemplate)
{
return;
}
}
private void WatchdogConfigtime_ConfigtimeDynamic(object sender, ref ConfigtimeSetHandlerEventArgs e)
{
string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Configtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
SetValue(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
}
private void WatchdogConfigtime_PostCreate(object sender, object optionalParameter)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostCreate
//
// OnPostCreate is called when an object is first created.
//
// One purpose for implementing this method is to insure that the initial
// state of the primitive is valid.
//
// This method can be used by a Resuable Primitive to correct invalid initial
// states that can arise when an attribute value has been overridden. If the
// attribute has a SetHandler with validation or side effects the SetHandler
// does not execute as overrides do not trigger SetHandlers.
//------------------------------------------------------------------------------
#region Example code
// // If statistics are enabled, add the Statistics virtual primitive
// // the way the SetHandler would have done it.
// if (StatsEnable)
// {
// AddPrimitive("Statistics", "Statistics1", "Statistics1");
// }
#endregion
}
private void WatchdogConfigtime_PreValidate(object sender, object optionalParameter)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreValidate
//
// PreValidate is called when the object is about to be validated (e.g. when
// an edit session is ending and the object is about to be saved.)
//
// A primitive can modify attributes within this method.
//
// Note: It is often not necessary to perform any actions in OnPreValidate.
//------------------------------------------------------------------------------
}
#region Optional Configuration Events
//------------------------------------------------------------------------------
// TODO: Optional Configtime Events
//
// Use the Toolkit Editor to enable each optional event or add the event to the
// ObjectAttributes.Events attribute in the object class.
//
// Multiple events can be enabled using the | delimiter.
//
// Example:
// [ObjectAttributes.Events(a.EventHandlerEnum.OnPreDeploy | a.EventHandlerEnum.OnPreDelete)]
//
//------------------------------------------------------------------------------
private void WatchdogConfigtime_PreUndeploy(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreUndeploy
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PreUnassign(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreUnassign
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PreRename(object sender, ref RenameEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreRename
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PreDeploy(object sender, ref DeployEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreDeploy
//
// Use the Toolkit Editor to enable this event or add OnPreDeploy to the
// ObjectAttributes.Events attribute in the object class. Multiple events can
// be enabled using the | delimiter.
//
// Example: [ObjectAttributes.Events(a.EventHandlerEnum.OnPreDeploy)]
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PreDelete(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreDelete
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PreCheckIn(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreCheckIn
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PreAssignTo(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PreAssignTo
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PostUndeploy(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostUndeploy
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PostUnassignFrom(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostUnassignFrom
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PostUnassign(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostUnassign
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PostRename(object sender, ref RenameEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostRename
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PostDeploy(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostDeploy
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PostDelete(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostDelete
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PostAssignTo(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostAssignTo
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PostAssign(object sender, ref GeneralEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostAssign
//
//------------------------------------------------------------------------------
}
private void WatchdogConfigtime_PostCheckIn(object sender, ref SupportEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Configtime Event - PostCheckIn
//
//------------------------------------------------------------------------------
}
#endregion
private void TimeSinceChange_HistorizedSetHandler(object sender, ref ConfigtimeSetHandlerEventArgs e)
{
// Required Set Handler for Virtual History Primtive.
// Do not modify this Set Handler via the code editor.
//
// WARNING: Changes made to this Set Handler will be overwritten by the code generator.
if (TimeSinceChange_Historized == e.Value)
{
return;
}
if (e.Value)
{
if (!AddPrimitive("TimeSinceChangeHistory", "TimeSinceChangeHistory1", "TimeSinceChange"))
{
e.Message = PrimitiveResult.message;
return; // Add failed
}
}
else
{
if (!DeletePrimitive("TimeSinceChangeHistory1"))
{
e.Message = PrimitiveResult.message;
return; // Remove Failed failed
}
}
TimeSinceChange_Historized = e.Value;
}
private void Timeout_AlarmedSetHandler(object sender, ref ConfigtimeSetHandlerEventArgs e)
{
// Required Set Handler for Virtual Alarm Primtive.
// Do not modify this Set Handler via the code editor.
//
// WARNING: Changes made to this Set Handler will be overwritten by the code generator.
if (Timeout_Alarmed == e.Value)
{
return;
}
if (e.Value)
{
if (!AddPrimitive("TimeoutAlarm", "TimeoutAlarm1", "Timeout"))
{
e.Message = PrimitiveResult.message;
return; // Add failed
}
}
else
{
if (!DeletePrimitive("TimeoutAlarm1"))
{
e.Message = PrimitiveResult.message;
return; // Remove Failed failed
}
}
Timeout_Alarmed = e.Value;
}
private void Timeout_LimitSetHandler(object sender, ref ConfigtimeSetHandlerEventArgs e)
{
if (e.Value < 0)
{
e.Message = GetText("Timeout.Limit must be a positive number.");
}
Timeout_Limit.SetHandlerValue = e;
}
private void Stats_EnableSetHandler(object sender, ref ConfigtimeSetHandlerEventArgs e)
{
if (e.Value == Stats_Enable) return;
if (e.Value)
{
if (!AddPrimitive("Stats", "Stats1", "Stats"))
{
e.Message = PrimitiveResult.message;
return; //Add failed
}
}
else
{
if (!DeletePrimitive("Stats1"))
{
e.Message = PrimitiveResult.message;
return; //delete failed
}
}
Stats_Enable.SetHandlerValue = e;
}
}
}
@@ -0,0 +1,132 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{9C114E5F-13AC-4864-8301-4D3B422D075F}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ArchestrA.Toolkit.Watchdog</RootNamespace>
<AssemblyName>WatchdogConfigtime1</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Watchdog.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArchestrA.Toolkit.ArchestrAObjectSupport, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f787e550f2f530ee, processorArchitecture=MSI">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Toolkit.ArchestrAObjectSupport.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ArchestrA.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=23106a86e706d0ae">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Core.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="WatchdogConfigtime.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Watchdog\Watchdog.csproj">
<Project>{0E30645D-B574-41BF-B302-64FEE3C8208A}</Project>
<Name>Watchdog</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="..\Watchdog.snk">
<Link>Watchdog.snk</Link>
</None>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
@@ -0,0 +1,44 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Editor")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ArchestrA")]
[assembly: AssemblyProduct("Editor")]
[assembly: AssemblyCopyright("Copyright © Wonderware 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("1ce95fcc-1c0e-4318-aec4-8871c21457b8")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,36 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace ArchestrA.Toolkit.Watchdog
{
[Guid("146f620e-19d6-43b6-80b9-e9cdfcb383e8")]
[ProgId("ArchestrA.WatchDog.1")]
public partial class WatchdogEditor : ArchestraEditorFramework.aaBaseEditorForm
{
public WatchdogEditor()
{
this.Dictionary = "ArchestrA:WatchDog1.aaDCT";
// This call is required by the Windows Form Designer.
InitializeComponent();
// TODO: Add any initialization after the InitializeComponent call
}
}
}
@@ -0,0 +1,139 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{B2B3A624-324D-47B1-956D-94B48B7140A6}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ArchestrA.Toolkit.Watchdog</RootNamespace>
<AssemblyName>WatchdogEditor1</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Watchdog.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArchestrA.Toolkit.ArchestrAControlLibrary, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f787e550f2f530ee, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Toolkit.ArchestrAControlLibrary.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ArchestraEditorFramework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=fdcbee9982d955e0, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestraEditorFramework.dll</HintPath>
</Reference>
<Reference Include="IaaEditorFormLibInterop, Version=2.0.0.0, Culture=neutral, PublicKeyToken=fdcbee9982d955e0, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\IaaEditorFormLibInterop.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="WatchdogEditor.cs">
</Compile>
<Compile Include="WatchdogEditor.Designer.cs">
<DependentUpon>WatchdogEditor.cs</DependentUpon>
</Compile>
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="WatchdogEditor.resx">
<SubType>Designer</SubType>
<DependentUpon>WatchdogEditor.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="..\Watchdog.snk">
<Link>Watchdog.snk</Link>
</None>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0 %28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>
@@ -0,0 +1,540 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="m_ToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="aaWatchdogMonitoredBitInputSourceSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogMonitoredBitInputSourceLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaStats_EnableLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogStatsTimeoutCnt_HistorizedLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaTimeout_AlarmedLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaTimeout_LimitSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaTimeout_LimitLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaTimeSinceChange_HistorizedLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogStatsResetSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogStatsTimeoutCntHistForceStoragePeriodSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogStatsTimeoutCntHistForceStoragePeriodLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogStatsTimeoutCntHistTrendHiSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogStatsTimeoutCntHistTrendHiLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogStatsTimeoutCntHistTrendLoSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogStatsTimeoutCntHistTrendLoLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogStatsTimeoutCntHistValueDeadBandSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogStatsTimeoutCntHistValueDeadBandLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeoutAlarmAckMsgSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeoutAlarmDescAttrNameLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeoutAlarmPrioritySecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeoutAlarmPriorityLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeSinceChangeHistForceStoragePeriodSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeSinceChangeHistForceStoragePeriodLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeSinceChangeHistTrendHiSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeSinceChangeHistTrendHiLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeSinceChangeHistTrendLoSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeSinceChangeHistTrendLoLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeSinceChangeHistValueDeadBandSecurityClass.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAg1JREFUOE+t1G1P2lAYBuDtN/mf+Dt+NPu4uDcWEyMKggxM3CIimMoUcAjIoLSFliJS
oLSnvXfOqZV24sYWmjwfSHku7ofz8hrAq7U+DFxnhbBoVMey2toqY1ktC/IEMog9hACm6cIYu9B1B0rP
Qb1BUK3YKJVsFAsWcjkL0c+32NzMspZQqGfgcAgMBi5UzYEs22g2TRwfq8hmVWQyfaTTPaSOFCQT4v+D
mYyKL2mKUSiVknF4KK0Gui7wlFBdJDxKL6BEXMLBvrga6DiPoB4eOZmUkUhIiB+IiMVE7O11VgOJ4/KE
OgMDCePxLvZpqkjkzYvlL05oUQjxQL4oATBGEzGMvfOL/aimed9TFMLf80Piy2zb2PYj+FvC3d12CNzY
iMAvSbIhitZy0LKcRcLAttnZaXkg3aoM6vdZKhvdrsU/392Zz0GWlKU05w4fWQuMHP3U5A2q6qLXI5Ak
gk7HQqs15+CP2nQ56KOzGQn9hx8/NHiDIhM+3s/2nG94hlVvJri+Nl4GfXQ6Jd5JaZh4/+6WN3TaFh1v
jnp9xrFKeYLvpTEEYfRn0Ecnhnf0tt/WeEOD4jU6XrUywdXVGJeXD7i4GOE8f/930EeNMb0UBIc33NDx
ymWDXhJjnrBQuMfZmY7TU301kKHsRmHFQJZKEB5QLI6Qzw+Ro9C3rwOcnGirg8Hr6Z9Oyrpu7V90BMb8
GyGmhwAAAABJRU5ErkJggg==
</value>
</data>
<data name="aaWatchdogTimeSinceChangeHistValueDeadBandLock.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAWtJREFUOE+tlG1ugkAQhtuLeAkv0lNwHX97mf6wxmrVoFXUGhE/qboUxY8qiL7urLFZ
Wws0heRNYNl5Zt6B2XsAd7FeBIxTscKE29+qU5QSZEV1cRNIoFIJV0okHjgzvD0/gBdYOg3IogRRoIFA
GRArUFHSvJ+39b0NoRUSaD7Hl2z7CMs6grEDJhNfJJKhV0DqXyr1eCUZmEwquMg09xiNvHAgsw6QJYA2
BGg2o6r2GI898WwYu2jA6dTHcORCNz5FAGNH0Jpp8vWhh17PFcC39vl9oGWqrtff8s1rVGsLETB594W9
/sBFt7sTsGZrg3p9HQ1Y15Yol21ks0wEDAcet+ei09kKWEPb4LW6gqo60YDyD01AXd+hze01GxvUaitU
KpTQwUvh7CDQsvwl6Z4CWtyepvEW8KporVhcIJ+3kcvZwcBbs0pAqkpVl3y2HRQKczxzUPbpA5mM9Xcg
JfnXpEQ5UYL2xH7AngA3wnpl9OQ1/wAAAABJRU5ErkJggg==
</value>
</data>
</root>
@@ -0,0 +1,44 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Runtime")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("ArchestrA")]
[assembly: AssemblyProduct("Runtime")]
[assembly: AssemblyCopyright("Copyright © Wonderware 2006")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("8f60c23a-adac-41fd-a589-8006d96dd206")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.1.0.0")]
@@ -0,0 +1,381 @@
//------------------------------------------------------------------------------
// Copyright (C) 2008 Invensys Systems Inc. All rights reserved.
//
// THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//------------------------------------------------------------------------------
using System;
using System.Runtime.InteropServices;
using System.Collections;
using ArchestrA.Core;
using ArchestrA.Toolkit;
namespace ArchestrA.Toolkit.Watchdog
{
[Guid("886e73ad-ddb7-45ca-8ca2-e652e1e9bafd")]
/// <summary>
/// Summary description for Watchdog
/// </summary>
public class WatchdogRuntime : RuntimeBase
{
#region Attributes - Toolkit generated code
// The following C# properties have been defined to simplify access to
// attribute values - do not modify the contents of this region with
// the code editor.
private CMxBoolean Timeout
{
get { return InternalReferenceOnly.Timeout; }
set { InternalReferenceOnly.Timeout.Set(value); }
}
private CMxElapsedTime TimeSinceChange
{
get { return InternalReferenceOnly.TimeSinceChange; }
set { InternalReferenceOnly.TimeSinceChange.Set(value); }
}
private CMxElapsedTime Timeout_Limit
{
get { return InternalReferenceOnly.Timeout_Limit; }
set { InternalReferenceOnly.Timeout_Limit.Set(value); }
}
public __InputPrimitive1 InputPrimitive1 = null;
public class __InputPrimitive1 : InputPrimBase
{
protected override void Initialize(SupportWrapper _Wrapper)
{
if (_Value == null) { _Value = new CMxVariant(Wrapper, "MonitoredBit.Value"); }
if (_DataType == null) { _DataType = new CMxDataType(Wrapper, "MonitoredBit.DataType"); }
attrId = _Value.Attribute.shAttributeId;
primId = _Value.Attribute.shPrimitiveId;
dataType = _DataType.Value;
base.Initialize(Wrapper);
}
public SupportWrapper Wrapper = new SupportWrapper();
private CMxVariant _Value = null;
public CMxVariant Value
{
get { if (_Value == null) { _Value = new CMxVariant(Wrapper, "MonitoredBit.Value"); } return _Value; }
set { if (_Value == null) { _Value = new CMxVariant(Wrapper, "MonitoredBit.Value"); } _Value.Set(value); }
}
private CMxStatus _ReadStatus = null;
public CMxStatus ReadStatus
{
get { if (_ReadStatus == null) { _ReadStatus = new CMxStatus(Wrapper, "MonitoredBit.ReadStatus"); } return _ReadStatus; }
set { if (_ReadStatus == null) { _ReadStatus = new CMxStatus(Wrapper, "MonitoredBit.ReadStatus"); } _ReadStatus.Set(value); }
}
private CMxReference _InputSource = null;
public CMxReference InputSource
{
get { if (_InputSource == null) { _InputSource = new CMxReference(Wrapper, "MonitoredBit.InputSource"); } return _InputSource; }
set { if (_InputSource == null) { _InputSource = new CMxReference(Wrapper, "MonitoredBit.InputSource"); } _InputSource.Set(value); }
}
private CMxDataType _DataType = null;
public CMxDataType DataType
{
get { if (_DataType == null) { _DataType = new CMxDataType(Wrapper, "MonitoredBit.DataType"); } return _DataType; }
}
public AoAWrapper AoA = null;
public void SuspendUpdatesList()
{
if (AoA == null) { AoA = new AoAWrapper(Wrapper, new string[] { "MonitoredBit.Value" }); } AoA.SuspendUpdatesList();
}
public void ActivateUpdatesList()
{
if (AoA == null) { AoA = new AoAWrapper(Wrapper, new string[] { "MonitoredBit.Value" }); } AoA.ActivateUpdatesList();
}
public __InputPrimitive1(AObjectBase baseClass)
{
Wrapper.baseClass = baseClass;
}
}
#endregion Attributes
#region Internal Reference Only
//Toolkit code required to access the attributes declared in the Object Class
private WatchDog InternalReferenceOnly = null;
#endregion Internal Reference Only
#region Declarations
//Declare Runtime Class Variables here.
//Variables declared in this region are available to all methods
//in the Runtime Class.
DateTime m_TimeOfLastChange;
bool m_LastInputValue;
#endregion Declarations
public WatchdogRuntime()
{
InternalReferenceOnly = new WatchDog();
this.AObjectInstance = InternalReferenceOnly;
#region Runtime Event Registration - Toolkit generated code
// Required region for Runtime Events - do not modify
// the contents of this region with the code editor.
base.RuntimeGetStatusDesc += new RuntimeGetStatusDescDelegate(WatchdogRuntime_RuntimeGetStatusDesc);
base.RuntimeSetScanState += new RuntimeSetScanStateDelegate(Watchdog_RuntimeSetScanState);
base.RuntimeExecute += new RuntimeExecuteDelegate(Watchdog_RuntimeExecute);
base.RuntimeShutdown += new RuntimeShutdownDelegate(Watchdog_RuntimeShutdown);
base.RuntimeStartup += new RuntimeStartupDelegate(Watchdog_RuntimeStartup);
base.RuntimeDynamic += new RuntimeDynamicSetHandlerDelegate(WatchdogRuntime_RuntimeDynamic);
base.RuntimeInitialize += new RuntimeInitializeDelegate(WatchdogRuntime_RuntimeInitialize);
#endregion Runtime Event Registration
#region Runtime Set Handler Registration Toolkit generated code
// Required method for Runtime SetHandlers.
// Changes made using the code editor will appear in the Toolkit Editor.
//
// WARNING: Changes made to this region will result in a Shape Change.
// TODO: Runtime SetHandler registration
this.RegisterRuntimeSetHandler("Timeout.Limit", new RuntimeSetHandlerDelegate(Timeout_LimitSetHandler));
#endregion Runtime Set Handler Registration
#region Primitive Wrapper Initialization - Toolkit generated code
InputPrimitive1 = new __InputPrimitive1(this);
#endregion Primitive Wrapper Initialization
#region Primitive Advise only Activate Registration - Toolkit generated code
#endregion Primitive Advise only Activate Initialization
}
private void WatchdogRuntime_RuntimeInitialize(object sender)
{
//------------------------------------------------------------------------------
// TODO: Runtime - Initialize
//
// Do not read or write attribute values of this primitive during Initialize
//------------------------------------------------------------------------------
}
private void Watchdog_RuntimeExecute(object sender)
{
//------------------------------------------------------------------------------
// TODO: Runtime - Execute
//
// This is where the main logic of the object periodically executes when
// the object is on scan.
//
// Read or write the attributes of this primitive using the generated
// properties (Value, Quality).
//------------------------------------------------------------------------------
#region Example code
// // The lines below both increment the value of the attribute "Attribute1" by 1
// Example_001 ++;
// Example_001 = Example_001 + 1;
//
// //Example_001 quality is set to Bad on Condition_001 being true.
// Example_001.Quality = (Condition_001 ? DataQuality.DataQualityBad : DataQuality.DataQualityGood);
//
// // The attribute "ElapsedTime" contains the time elapsed since the last reset
// ElapsedTime = GetScanTime() - TimeOfLastReset;
//
// // Increment the 3rd element of an array
// FloatArray[3] ++;
//
// // Increment all the elements of an array
// for( short counter = 1; counter <= FloatArray.Length; counter ++)
// {
// FloatArray[counter] ++;
// }
#endregion
bool CurrentBitValue = (bool)InputPrimitive1.GetValue();
DateTime Now = GetScanTime();
//Cache the current time internally if the monitored bit has just changed
if (CurrentBitValue != m_LastInputValue)
{
m_TimeOfLastChange = Now; //remember the current time
}
m_LastInputValue = CurrentBitValue;
//Now update the calculated attributes: "TimeSinceChange" and "Timeout.Condition"
TimeSinceChange = Now - m_TimeOfLastChange;
Timeout = TimeSinceChange > Timeout_Limit;
}
private void Watchdog_RuntimeShutdown(object sender)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - Shutdown
//
// Clean up dynamic allocation, release open resources, etc.
//------------------------------------------------------------------------------
// Activate marked attributes before shutting down
AdviseOnlyActivateAttributes();
}
private void Watchdog_RuntimeStartup(object sender, RuntimeStartupEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - Startup
//
// Cache attributes. Cache Primitive IDs of other known primitives.
//------------------------------------------------------------------------------
// RestoreDynamicAttributes will recreate the Dynamic Attributes and restore the check pointed
// values during failover startup. The Failover Support for Dynamic Attributes option must
// be enabled via the Object Editor to support this function. To maintain the
// Dynamic Attribute values the CheckpointDynamicAttributeData function must be called
// when Dynamic Attribute values are modified (refer to the Dynamic Attribute Set Handler).
//RestoreDynamicAttributes();
m_TimeOfLastChange = GetScanTime();
// Execute offscan code to initialize the object in its offscan state.
SetScanState(false);
// Suspend marked attributes at startup
AdviseOnlySuspendAttributes();
}
private void AdviseOnlySuspendAttributes()
{
// Required Method for Advise only Active.
// Do not modify this method via the code editor.
//
// WARNING: Changes made to this method will be overwritten by the code generator.
if (AdviseOnlyActiveEnabled)
{
}
}
private void AdviseOnlyActivateAttributes()
{
// Required Method for Advise only Active.
// Do not modify this method via the code editor.
//
// WARNING: Changes made to this method will be overwritten by the code generator.
if (AdviseOnlyActiveEnabled)
{
}
}
private void Watchdog_RuntimeSetScanState(object sender, RuntimeSetScanStateEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - SetScanState
//
// Perform actions when the object goes on or off scan.
//------------------------------------------------------------------------------
}
private void WatchdogRuntime_RuntimeGetStatusDesc(object sender, ref RuntimeGetStatusDescEventArgs e)
{
//------------------------------------------------------------------------------
// TODO: Runtime Event - GetStatusDesc
//
// This routine provides a String for an error code when a client requests it.
// By default this method looks for an entry in the dictionary that has the
// DetailedErrorCode as the PhraseID.
//
// You need to change this implmentation if you want to provide embedded values
// within your messages, or you want to use string PhraseIDs instead of integer
// PhraseIDs.
//------------------------------------------------------------------------------
switch (e.detailedErrorCode)
{
case 10000:
e.status = GetText("Timeout.Limit must be a positive number.");
break;
default:
e.status = GetText((int)e.detailedErrorCode);
break;
}
}
private void WatchdogRuntime_RuntimeDynamic(object sender, ref RuntimeSetHandlerEventArgs e)
{
string attrName = Get(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, EATTRIBUTEPROPERTY.idxAttribPropName);
//------------------------------------------------------------------------------
// TODO: Runtime Event - Dynamic Set Handler
//
// Implement set handler code for any dynamic attributes you create with set handlers
//------------------------------------------------------------------------------
// CheckpointDynamicAttributeData will update the checkpoint values for all Dynamic Attributes.
// To recreate Dynamic Attributes and restore Dynamic Attribute values the RestoreDynamicAttributes
// function must be called when starting up from failover (refer to the Startup method).
//CheckpointDynamicAttributeData();
#region Example
// if (attrName == "MyDynamic")
// {
// if (e.Value > 10)
// {
// LogWarning(string.Format("value for {0} must be less or equal to 10", attrName));
// }
// else
// {
// SetValue(attrName, e.Value);
// }
//
//
// return;
// }
#endregion
// if unhandled a warning is shown as a reminder
SetValue(e.attributeHandle.shAttributeId, e.attributeHandle.shPrimitiveId, e.Value);
LogWarning(string.Format("Uknown set handler for attribute '{0}'", attrName));
}
private void Timeout_LimitSetHandler(object sender, ref RuntimeSetHandlerEventArgs e)
{
if (e.Value < 0)
{
e.status.detail = 10000;
e.status.Category = MxStatusCategory.MxCategoryConfigurationError;
return;
}
Timeout_Limit.SetHandlerValue = e;
}
//TODO: Runtime SetHandler declaration
//private void Example_001SetHandler(object sender, ref RuntimeSetHandlerEventArgs e)
//{
// Example_001 = e.Value;
//}
}
}
@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{FCAA2DA3-97F2-4C42-BB09-6729738D6872}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ArchestrA.Toolkit.Watchdog</RootNamespace>
<AssemblyName>WatchdogRuntime1</AssemblyName>
<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>..\Watchdog.snk</AssemblyOriginatorKeyFile>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
<UpdateEnabled>false</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<RegisterForComInterop>false</RegisterForComInterop>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<Reference Include="ArchestrA.Toolkit.ArchestrAObjectSupport, Version=4.0.0.0, Culture=neutral, PublicKeyToken=f787e550f2f530ee, processorArchitecture=MSI">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Toolkit.ArchestrAObjectSupport.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ArchestrA.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=23106a86e706d0ae">
<SpecificVersion>False</SpecificVersion>
<HintPath>C:\Program Files\Archestra\Toolkits\AOT\bin\ArchestrA.Core.dll</HintPath>
<Private>True</Private>
</Reference>
</ItemGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="WatchdogRuntime.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Service Include="{94E38DFF-614B-4cbd-B67C-F211BB35CE8B}" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Watchdog\Watchdog.csproj">
<Project>{0E30645D-B574-41BF-B302-64FEE3C8208A}</Project>
<Name>Watchdog</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="..\Watchdog.snk">
<Link>Watchdog.snk</Link>
</None>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<PropertyGroup>
<PostBuildEvent>
</PostBuildEvent>
<PreBuildEvent>
</PreBuildEvent>
</PropertyGroup>
</Project>