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

