3.1.1 驱动简介
关于驱动
驱动是对传统的数据采集程序的标准化,驱动可以作为你的资产进行管理
- 系统为每个设备创建一个驱动实例
- 通过反射创建驱动实例
- 驱动不可以是静态的
- 驱动要继承IDriver接口
- 驱动内需要通过web配置的属性(支持枚举等基本类型),上要加上Attribute
[ConfigParameter("端口号")]
public int Port { get; set; } = 666; - 系统通过反射为属性赋值
- 若设备设置为启动,则进行连接、读取的工作
- 可以在驱动内,使用任何C#语法,记得在关闭和释放后释放你创建的资源,尤其是后台线程等
驱动生命周期
构造
[DriverInfoAttribute("YourDriver", "V1.0.0", "Copyright iotgateway© 2022-06-04")]
public class YourDriverClass : IDriver{
}连接
public bool Connect(){
}读取
[Method("方法中文名", description: "方法描述")]
public DriverReturnValueModel Read(DriverAddressIoArgModel ioarg){
}
public class DriverAddressIoArgModel
{
public string Address { get; set; }
public DataTypeEnum ValueType { get; set; }
}
public class DriverReturnValueModel
{
public object Value { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public VaribaleStatusTypeEnum StatusType { get; set; } = VaribaleStatusTypeEnum.UnKnow;
}
说明
你可以有多个读取数据的方法,只要加上
MethodAttribute
即可识别
DriverAddressIoArgModel.Address
是通过前端传入的地址,你可以发挥想象(如使用逗号分隔符)传入更多的内容
DriverAddressIoArgModel.ValueType
是通过前端传入的数据类型,你可以选择是否使用它
DriverReturnValueModel.Value
是object
类型,你可以传出任何类型,或者与DriverAddressIoArgModel.ValueType
呼应起来
- 断开
public bool Close(){
} - 释放
public void Dispose(){
}