4

称重驱动二次开发教程 - 木子清

 8 months ago
source link: https://www.cnblogs.com/yizhuqing/p/17921902.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

称重驱动二次开发教程

通过二次开发可以扩展新的设备型号,以插件的方式快速集成到系统。下面几个步骤快速实现一个简单的电子秤驱动。

预备动作,先了解一下系统介绍,文章最下面有下载链接。

称重系统免费下载,支持耀华、顶尖等多款设备型号

使用插件式开发称重仪表驱动,RS232串口对接各类地磅秤数据实现ERP管理

1、新建一个控制台工程(.Net 4.6版本及以上)

107331-20231222163956775-855286658.png

2、添加引用DDS.IOT.Weight.exe

文件在安装目录中获取

107331-20231222163956817-1334922589.png
107331-20231222163956815-718212421.png

3、新建一个测试电子秤类

继承DDS.IOT.Weight.WeightBase,并实现虚方法。

107331-20231222163956724-1633327551.png

利用后台任务实现一个模拟电子秤,定时2秒输出一个随机重量。

107331-20231222163956794-802020723.png
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、本机测试一下

107331-20231222163956833-1515237579.png
107331-20231222163956775-638318323.png

5、集成到系统

a.拷贝编译后exe文件

107331-20231222163956820-214441047.png

b.粘贴到系统目录下Plugins/Weight

107331-20231222163956797-1392860319.png

c.启动系统

107331-20231222163956744-1460387785.png

d.检查系统是否识别到新的驱动

107331-20231222163956792-1454518064.png

e.设置后测试是否接收到重量

107331-20231222163956818-1012405350.png

Ok,经过上面几个步骤一个简单的模拟秤就开发完成了,真实驱动开发时把模拟部分逻辑改成接收串口数据即可。

示例代码下载:https://files.cnblogs.com/files/yizhuqing/Demo1.zip?t=1703234473&download=true


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK