using SKMC.Api.Common.Monitor;
using System;
namespace SKMC.Api.Machine.Monitor
{
///
/// 状态锁存管理器, 用于低频的状态判断并锁定
/// 例如总线连接状态、设备物料状态、是否长时间无人操作等
///
public abstract class MachineStateLatchMonitor : BaseMonitor
{
///
/// 添加任务,支持返回 bool 或可转换为 int 的数值类型
///
public abstract void AddTask(string key, Func task, Action callback = null, LatchMode mode = LatchMode.OpenMode);
///
/// 获取任务信息
///
///
///
public abstract MachineLatchTask GetTask(string key);
///
/// 获取累计结果
///
public abstract int GetResult(string key);
///
/// 重置任务结果
///
public abstract void ResetResult(string key);
}
public enum LatchMode
{
///
/// 适用常闭模式:11101/11001返回-1,11111返回1
///
CloseMode,
///
/// 适用常开模式:00010/00110返回-1,00000返回1
///
OpenMode
}
}