DotNetty 实现 Modbus TCP 系列 (二) ModbusFunction 类图及继承举例
DotNetty 實現(xiàn) Modbus TCP 系列 (一) 報文類
ModbusFunction 類圖如下:
如前文所述,所有請求/相應(yīng)的 PDU 均繼承自 ModbusFunction,其子類傳入對應(yīng)的 Function Code 并實現(xiàn)三個方法:
CalculateLength:Data 部分的長度(該方法也可以為屬性,但屬性沒有強制性,怕漏掉故改為抽象方法)
Decode:從緩沖區(qū)解析 Data
Encode:在傳輸前對 Data 編碼
實現(xiàn)舉例
每個 Function Code 均對應(yīng) ModbusFunction 的兩個子類:請求類和響應(yīng)類,以 0x03(讀取保持寄存器值)為例:
請求類
請求報文 Data 說明:
響應(yīng)類
響應(yīng)報文 Data 說明:
其中 ModbusCommand 為 Function Code 的枚舉:
文中為方便理解請求類和響應(yīng)類均直接繼承 ModbusFunction,實際開發(fā)中請求類和響應(yīng)類均沒有直接繼承 ModbusFunction,而是根據(jù)其他 Function Code 的 Data 進行再次抽象后繼承。
開源地址:https://github.com/VictorBu/modbus-tcp
原文地址:https://www.cnblogs.com/victorbu/p/10370286.html
.NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的DotNetty 实现 Modbus TCP 系列 (二) ModbusFunction 类图及继承举例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 未来新特性:静态委托和函数指针
- 下一篇: 开源的类似于Apache ab的压力测试