ARTICLE · 1213434
[NL源码精读] 从零写一个自定义 Driver:8
[NL源码精读] 从零写一个自定义 Driver:8
上篇刚拆完 NewLife.IoT 的组件,这篇直接上手——从零写个自定义 Modbus Driver,8 步让它真跑起来。
第一步先搞参数类,继承 DriverParameter,IP、端口、从站号全塞进去。接着写驱动类,挂上 [Driver] 特性,继承 DriverBase。泛型一指定,基类就自动帮你把骨架搭好。传输层直接 new 一个 TcpTransport,以后想换串口,改这一行就行。
物模型里把温度、压力那 4 个点位一配,ReadRule 换算公式也写上。程序一启动,调一句 DriverFactory.ScanAll(),框架自己就把驱动扫出来注册了。按名字 Create 拿实例,再 OpenAsync 连上设备,会话句柄到手。
最后就是读写。ReadAsync 发请求拿回字节,先 Convert 解析,再套表达式引擎算出真实值。WriteAsync 更简单,把值转成字节一发就完事。底层协议怎么拼帧、怎么算 CRC,全封装在 BuildReadRequest 和 ParseResponse 里。
新手最容易栽在几个坑上:忘了加 [Driver] 特性,工厂死活找不到你;identifier 传空,多设备的状态全串了;读回来的原始字节忘了 Convert,或者写入浮点数时强转翻车。只要把这 8 步走通,接手任何工业协议都不怕。
原文[NL源码精读] 从零写一个自定义 Driver:8 步从代码到可跑
江西,10月18日,















































































