通過二次開發可以擴充套件新的裝置型號,以外掛的方式快速整合到系統。下面幾個步驟快速實現一個簡單的電子秤驅動。
預備動作,先了解一下系統介紹,文章最下面有下載連結。
使用外掛式開發稱重儀表驅動,RS232串列埠對接各類地磅秤資料實現ERP管理
1、新建一個控制檯工程(.Net 4.6版本及以上)
2、新增參照DDS.IOT.Weight.exe
檔案在安裝目錄中獲取
3、新建一個測試電子秤類
繼承DDS.IOT.Weight.WeightBase,並實現虛方法。
利用後臺任務實現一個類比電子秤,定時2秒輸出一個隨機重量。
完整程式碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace Demo
{
public class TestWeight : DDS.IOT.Weight.WeightBase
{
/// <summary>
/// 驅動型別,使用英文字元,保證唯一
/// </summary>
public override string Type => "MyTestWeight";
/// <summary>
/// 驅動名稱
/// </summary>
public override string Name => "我的測試秤";
/// <summary>
/// 讀取到重量事件
/// </summary>
public override event ReadedWeight OnReadWeight;
/// <summary>
/// 初始化介面
/// </summary>
/// <param name="port"></param>
/// <param name="baudRate"></param>
/// <param name="extendData"></param>
/// <returns></returns>
public override bool Init(int port, int baudRate = 9600, string extendData = null)
{
this.Port = port;
// 再次實現開啟串列埠等操作,下面是一段模擬定時輸出隨機重量的程式碼
Task.Run(() => {
while (true)
{
if (OnReadWeight != null)
{
Weight = float.Parse((new Random().NextDouble() * 100).ToString("N1"));
OnReadWeight(this.Id, Weight);
}
Thread.Sleep(2000);
}
});
return true;
}
public override bool Open()
{
// 在此實現關閉串列埠
return true;
}
public override bool Close()
{
// 在此實現關閉串列埠方法
return true;
}
}
}
4、本機測試一下
5、整合到系統
a.拷貝編譯後exe檔案
b.貼上到系統目錄下Plugins/Weight
c.啟動系統
d.檢查系統是否識別到新的驅動
e.設定後測試是否接收到重量
Ok,經過上面幾個步驟一個簡單的模擬秤就開發完成了,真實驅動開發時把模擬部分邏輯改成接收串列埠資料即可。
範例程式碼下載:https://files.cnblogs.com/files/yizhuqing/Demo1.zip?t=1703234473&download=true