-
Notifications
You must be signed in to change notification settings - Fork 136
3.6 创建地址的编码、解码和组合方法,扩展Formater、Translator和Combiner
parallelbgls edited this page Jun 29, 2017
·
2 revisions
-
AddressTranslator中有两个方法:
- AddressTranslate就是翻译一个string地址
- GetAreaByteLength是指,在某个地址区域中,地址每增加一个,增加多少字节。比如Modbus的40001和40002之间差2个字节,因此对于4X来说应返回2。
-
AddressFormater表示把AddressUnit中的地址翻译成string地址,提供给BaseUtility,它有两个FormatAddress方法:
- 第一个FormatAddress是指在没有子地址的情况下应如何转换地址。
- 第二个FormatAddress是指在有子地址的情况下应该如何转化地址。
-
AddressCombiner表示如何把离散的AddressUnit组合在一起,它只有一个Combine函数,表示组合地址。
- Combine的参数表示待组合的AddressUnit。
- Combine的返回值中的CommunicationUnit可以理解为:以哪个AddressUnit开始,连续读取多少个地址。这样的信息可以有多条。
- AddressCombiner在实现时要注意一个参数:组合的最长长度。连续的地址字节数量必须少于这个最长长度,这个长度由协议决定,超出这个数量之后有可能会发生通讯失败的情况。
Modbus.Net Hangzhou Delian Science Technology Co.,Ltd. © 2023
-
2 Specification of Modbus.Net main framework
- 2.1 Modbus.Net Architecture
- 2.2 Transmission Control Layer Controller
- 2.3 Transmission Link Layer Connector
- 2.4 Concrete Protocol Layer ProtocolLinker
- 2.5 Abstract Protocol Layer Protocol
- 2.6 Protocol Presentation Layer Utility
- 2.7 Device Application Layer Machine
- 2.8 Task Application Layer MachineJob
-
3 Using Modbus.Net to implement a protocol
- 3.1 Global Tools
- 3.2 Extends Protocol and ProtocolUnit according to protocol specification
- 3.3 Extends Connector to create a link method
- 3.4 Extends Machine and Utility, creating two apis
- 3.5 Extends API methods to Machine and Utility
- 3.6 Extends Formater, Translator and Combiner, Creating Encoding,Decoding,Combining methods for address
- 3.7 Extends Controller, to control message