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
}
}