类 EcatSlaveDiag.EcAlStatusMirror

java.lang.Object
com.darra.ethercat.data.EcatSlaveDiag.EcAlStatusMirror
封闭类:
EcatSlaveDiag

public static final class EcatSlaveDiag.EcAlStatusMirror extends Object
从站 AL 状态镜像解析结果.

native short GetSlaveAlStatusMirror(mi, si) 返回 16bit raw 镜像: 低字节 = AL State (bit4=Error), 有 Error 位时高字节 = AL Status Code. Java short 有符号, 调用方需先 & 0xFFFF 还原 unsigned 再传入 fromRaw(int). 0 = 未知 (无 wdk_shm / 越界).

本类只做位拆分 + 枚举映射 (复用 EcState / EtherCATTypes.EcALState), 不篡改不补值; raw==0 时 isKnown() 为 false, UI 应显示 "未知".

  • 方法详细资料

    • fromRaw

      public static EcatSlaveDiag.EcAlStatusMirror fromRaw(int rawUnsigned)
      从 native 16bit 原始镜像构造 (调用方需先 & 0xFFFF 还原 unsigned short).
      参数:
      rawUnsigned - native short 经 & 0xFFFF 还原后的 0..65535 值
    • getRaw

      public int getRaw()
      原始 16bit 镜像值 (unsigned, 0..65535)
    • getAlState

      public EcState getAlState()
      AL State 基础枚举 (低字节低 4 位, 不含 Error 标志)
    • hasError

      public boolean hasError()
      低字节 bit4 是否置位 (从站在错误状态)
    • getAlStatusCode

      public EtherCATTypes.EcALState getAlStatusCode()
      AL Status Code 枚举 (仅 Error 置位时有效, 否则 NO_ERROR)
    • isKnown

      public boolean isKnown()
      数据是否可信. raw==0 = 无 wdk_shm / 越界 (内核未提供), UI 应显 "未知". 注意: 合法 AL State INIT 值为 0x01, 故 raw==0 (含 State=NONE) 才判未知.
    • toString

      public String toString()
      覆盖:
      toString 在类中 Object