namespace Bro.Common.Procedure
{
///
/// 基础单元
///
public class UnitBase
{
#region 枚举
///
/// 单元模块状态定义
///
public enum UnitStat
{
DSUninit = 0, // 未初始化
DSInit, // 已初始化
DSOpen, // 已打开
DSClose, // 已关闭
DSExcept // 异常状态
}
#endregion
#region 常量定义
#endregion
#region 设备基本属性
// 设备描述
public string Desp { get;set; }
// 设备状态
public UnitStat Stat { get;set;}
// 设备是否初始化
public bool IsInit {
get { return UnitStat.DSInit == this.Stat; }
}
// 设备是否打开
public bool IsOpen {
get { return UnitStat.DSOpen == this.Stat;}
}
// 设备ID(可用来唯一指定本设备)
public int Id { get;set; }
// 设备异常描述
public string ExceptionDesp { get;set;}
// 设备携带数据
public object Data { get;set; }
#endregion
///
/// 设备构造函数
///
/// 使用了默认的设备id
///
public UnitBase()
{
// 默认描述
this.Desp = this.GetType().Name;
// 初始状态
this.Stat = UnitStat.DSUninit;
// 默认单元ID
this.Id = this.GetHashCode();
}
#region 基本动作
///
/// 设备初始化
///
///
public virtual bool Init()
{
Stat = UnitStat.DSInit;
return true;
}
///
/// 设备销毁
///
public virtual void Fnit()
{
Stat = UnitStat.DSUninit;
}
///
/// 设备打开
///
///
public virtual bool Open()
{
Stat = UnitStat.DSOpen;
return true;
}
///
/// 设备关闭
///
public virtual void Close()
{
Stat = UnitStat.DSClose;
}
///
/// 打开前动作
///
public virtual void OnBeforeOpen()
{
}
///
/// 打开后动作
///
public virtual void OnAfterOpen()
{
}
///
/// 关闭前动作
///
public virtual void OnBeforeClose()
{
}
///
/// 关闭后动作
///
public virtual void OnAfterClose()
{
}
#endregion
}
}