Skip to content

1) 地址由什么组成

MC 驱动的地址解析见 @ng-gateway-southward/mc/src/protocol/frame/addr.rs,地址由三部分组成:

  • 设备前缀:如 XYMD(具体支持集合由 McDeviceType 决定)
  • head 编号:设备号,按该设备的记数法解析(十进制或十六进制)
  • 可选 bit 下标:形如 .2(用于位寻址,例如 D20.2

示例:

  • D100:D 设备,十进制 100
  • X1A0:X 设备,十六进制 1A0
  • D20.2:D 设备,head=20,bit=2

2) 十进制 vs 十六进制

不同设备前缀的编号记数法不同(由驱动内的 McNotation 决定):

  • 有些设备用十进制(Dec)
  • 有些设备用十六进制(Hex)

如果你发现 X1A0 之类地址在手册中以 hex 表示,请保持 hex 形式填写;驱动会按设备的约定解析。

3) bit 下标的语义

.bit 用于“一个 word 内的位寻址”,常见于:

  • 需要访问某个寄存器的某一位标志(例如 D20.2

注意:

  • bit 下标只做基本语法校验(是否是数字)
  • 语义约束(bit 是否允许、与 data_type 是否匹配)在更高层处理;建议 bit 点位使用 data_type=Boolean

4) 常见错误

  • 地址为空或缺少 head:如 DX
  • 设备前缀不支持:如输入了驱动未实现的设备码
  • head/bit 不是数字或 hex 格式非法

基于 MIT 许可发布.