關于驅動
驅動(也稱連接器)是對傳統的數據采集程序的標準化,驅動可以作為你的資產進行管理
系統為每個設備創建一個驅動實例
通過反射創建驅動實例
驅動不可以是靜態的
驅動要繼承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;}
:::info 說明
你可以有多個讀取數據的方法,只要加上
MethodAttribute
即可識別
DriverAddressIoArgModel.Address
是通過前端傳入的地址,你可以發揮想象(如使用逗號分隔符)傳入更多的內容
DriverAddressIoArgModel.ValueType
是通過前端傳入的數據類型,你可以選擇是否使用它
DriverReturnValueModel.Value
?是object
類型,你可以傳出任何類型,或者與DriverAddressIoArgModel.ValueType
呼應起來 :::
斷開
public?bool?Close(){}
釋放
public?void?Dispose(){}