Skip to content

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在实现时要注意一个参数:组合的最长长度。连续的地址字节数量必须少于这个最长长度,这个长度由协议决定,超出这个数量之后有可能会发生通讯失败的情况。

Home

Clone this wiki locally