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

