Sic.Framework-Nanjing-Baishi/MECF.Framework.Common/Aitex/Core/RT/EMS/IObserver.cs

132 lines
3.1 KiB
C#
Raw Normal View History

2024-01-29 11:12:21 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MECF.Framework.Common.Aitex.Core.RT.EMS
{
/// <summary>
/// 观察者:对某一参数进行观察记录,观察到参数达到阈值时,进行一系列动作
/// </summary>
public interface IObserver
{
#region Properties
/// <summary>
/// 观察者名称(要保证唯一性)
/// </summary>
string Name { get; set; }
/// <summary>
/// 观察者模组
/// </summary>
string Module { get; set; }
/// <summary>
/// 观察者序号
/// </summary>
int Index { get; set; }
/// <summary>
/// 描述
/// </summary>
string Description { get; set; }
/// <summary>
/// 是否使能
/// </summary>
bool Enable { get; set; }
/// <summary>
/// 是否超时
/// </summary>
bool IsTrigger { get; }
/// <summary>
/// 是否计时中
/// </summary>
bool IsProcessing { get; }
/// <summary>
/// 开始观察时间
/// </summary>
DateTime StartDate { get; }
/// <summary>
/// 记录值
/// </summary>
double Value { get; }
/// <summary>
/// 阈值
/// </summary>
double Threshold { get; }
/// <summary>
/// 触发时间
/// </summary>
DateTime? TrigDate { get; }
/// <summary>
/// 超时时间
/// </summary>
double TimeExceeded { get; }
/// <summary>
/// 超时单位
/// </summary>
TimeUnit TimeDisplayUnit { get; set; }
/// <summary>
/// 超出阈值量
/// </summary>
double ValueExceeded { get; }
#endregion
#region Methods
/// <summary>
/// 复位观察者
/// </summary>
/// <returns>操作结果</returns>
bool Reset();
/// <summary>
/// 复位条件
/// </summary>
/// <returns></returns>
bool CanReset();
/// <summary>
/// 监控运行
/// </summary>
void Monitor();
/// <summary>
/// 设置阈值
/// </summary>
/// <returns>操作结果</returns>
bool SetThreshold(double threshold);
/// <summary>
/// 设置开始时间
/// </summary>
/// <param name="t">开始日期</param>
/// <returns>操作结果</returns>
bool SetStartDate(DateTime t);
bool SetMaintain(string parentname, string name, int itemid, DateTime date);
public Dictionary<string, List<MaintainerItem>> GetAllMaintainerItemsDic();
public bool SetMaintainerItemEnable(string parentname, string name, int itemid, bool enable);
public void AddMaintainerItem(string parentname, MaintainerItem item);
public void RemoveMaintainerItem(string parentname, string itemname, int id);
#endregion
}
}