using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; namespace M423project { /// /// 所有设备的基类 /// public class DevBase { #region 枚举 /// /// 设备状态定义 /// public enum DevStat { DSUninit = 0, // 未初始化 DSInit, // 已初始化 DSOpen, // 已打开 DSClose, // 已关闭 DSExcept // 异常状态 } /// /// 设备动作定义 /// public enum DevAction { DAIdle = 0, // 空闲状态 DASnaping, // 抓拍中 DAScanning, // 扫描中 DAMoving, // 移动中 // TODO:根据不同设备可继续添加 } #endregion #region 常量定义 #endregion #region 设备基本属性 // 设备描述 public string Desp { get; set; } // 设备状态 public DevStat Stat { get; set; } // 设备是否初始化 public bool IsInit { get { return DevStat.DSInit == this.Stat; } } // 设备是否打开 public bool IsOpen { get { return DevStat.DSOpen == this.Stat; } } // 设备ID(可用来唯一指定本设备) public int DevId { get; set; } // 设备异常描述 public string ExceptionDesp { get; set; } // 设备携带数据 public object Data { get; set; } // 默认的设备ID起始值 private static int DevIdBase { get; set; } private static object DevIdBaseLocker = new object(); #endregion /// /// 设备构造函数 /// /// 使用了默认的设备id /// public DevBase() { // 默认设备描述 Desp = this.GetType().Name; Stat = DevStat.DSUninit; lock (DevIdBaseLocker) { DevIdBase++; } this.DevId = DevIdBase; } #region 基本动作 /// /// 设备初始化 /// /// public virtual bool Init() { Stat = DevStat.DSInit; return true; } /// /// 设备销毁 /// public virtual void Fnit() { Stat = DevStat.DSUninit; } /// /// 设备打开 /// /// public virtual bool Open() { Stat = DevStat.DSOpen; return true; } /// /// 设备关闭 /// public virtual void Close() { Stat = DevStat.DSClose; } #endregion } }