Files
wwtools/aot/Samples/Watchdog/Watchdog/Watchdog.cs
T
Joseph Doherty 32f26272ae 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>
2026-05-03 18:22:20 -04:00

80 lines
4.0 KiB
C#

//------------------------------------------------------------------------------
// 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()
{
}
}
}