using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace YG.Device { /// /// 设备状态 /// public enum DeviceState { /// /// 运行中 /// Runing, /// /// 准备就绪 /// Start, /// /// 停止 /// Stop, } /// /// 发送状态 /// public enum SendState { /// /// 准备发送 /// StartSend, /// /// 发送了请求,没有回应 /// SendNoReceive, /// /// 已回应 /// Received } interface InterfacleDevice { /// /// 初始化设备 /// void DeviceInit(); /// /// 打开设备 /// void DeviceOpen(); /// /// 关闭设备 /// void DeviceClose(); /// /// 设备检测 /// void DeviceCheck(); void DeviceStart(); } public abstract class DeviceList : InterfacleDevice { /// /// 设备类型 /// public DeviceType Dtype { get; set; } = DeviceType.其他; /// /// 设备运行状态 /// /// /// public delegate void RunState(string enumDeviceList, bool ison); /// /// 设备运行状态 /// public virtual event RunState rState; /// /// 接受设备反馈指令 /// /// /// /// public delegate void RunMessage(string obje1,string obje2, string obje3); public virtual object Clone() { return this.MemberwiseClone(); } /// /// 设备正常运行 /// public virtual bool IsOn { get; set; } /// /// 事件 /// public virtual event RunMessage Msg; /// /// 超时时间 /// public int timeout { get; set; } = 2500; /// /// 发送的内容 /// public string SendValue { get; set; } = ""; public DeviceList(string name) { DeviceName = name; } public DeviceList() { DeviceName = ""; } /// /// 设备名称 /// public virtual string DeviceName { get; set; } public virtual string ServerUrl { get; set; } public virtual string Ip { get; set; } public virtual string ReadType { get; set; } public virtual void DeviceClose() { Console.WriteLine(this.DeviceName+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff") + this.DeviceName + "关闭"); if (Msg != null) { Msg(this.DeviceName,"", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff")+ this.DeviceName + "关闭"); } } public virtual void DeviceInit() { Console.WriteLine(this.DeviceName+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff") + this.DeviceName + "初始化"); if (Msg != null) { Msg(this.DeviceName,"", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff") + this.DeviceName + "初始化"); } } public virtual T DeviceRead(string value,ushort leng=0) { return default(T); } public virtual void DeviceOpen() { Console.WriteLine(this.DeviceName+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff") + this.DeviceName + "打开"); if (Msg != null) { Msg(this.DeviceName,"",DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff") + this.DeviceName + "打开"); } } /// /// 设备运行状态 /// public virtual void DeviceSend(object ob) { Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff") + this.DeviceName + "发送一次数据"); Log.Instance.WriteLogAdd(this.DeviceName + "发送一次数据"+ob.ToString()); if (Msg != null) { Msg(this.DeviceName, ob.ToString(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff") + this.DeviceName + "发送一次数据"); } } public virtual void DeviceSend(object ob, object ob1) { Console.WriteLine(this.DeviceName+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff") + ob.ToString()+" "+ob1.ToString()); } public virtual void DeviceSend(object ob, object ob1,string readType) { Console.WriteLine(this.DeviceName + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss fff") + ob.ToString() + " " + ob1.ToString()); } public virtual void DeviceCheck() { } public virtual void PrintMsg() { } public virtual void DeviceStart() { } public virtual void DeviceState() { } } }