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()
{ }
}
}