枚举 EcState.Status

java.lang.Object
java.lang.Enum<EcState.Status>
com.darra.ethercat.data.EcState.Status
所有已实现的接口:
Serializable, Comparable<EcState.Status>, java.lang.constant.Constable
封闭类:
EcState

public static enum EcState.Status extends Enum<EcState.Status>
EtherCAT 从站完整状态 (基础状态 + Error 标志位 0x10 复合).

相比 EcState (只列基础状态), Status 把工业现场实际会出现的 "OP+Error" / "SafeOp+Error" 等复合状态作为显式命名成员列出, 用户不再看到 raw 数字 24 这种困惑值, 而是看到 OP_FAULT / SAFE_OP_FAULT 等清晰名称.

命名约定: XXX_FAULT = 该基础状态 + Error bit, 即 "在 XXX 状态下报错了".

用法:

   int raw = slave.getRawState();
   EcState.Status s = EcState.Status.fromRaw(raw);
   System.out.println(s.pretty());        // "OP_FAULT (OP+Error)" 而不是 "24"
   if (s.hasFault())   { ... 从站报错 ... }
   if (s.isRunning())  { ... PDO 正在跑 ... }
   EcState base = s.baseState();          // 取基础状态 (OP/SAFE_OP/...)
 
  • 枚举常量详细资料

  • 方法详细资料

    • values

      public static EcState.Status[] values()
      返回包含该枚举类型的常量的数组, 顺序与声明这些常量的顺序相同
      返回:
      包含该枚举类型的常量的数组,顺序与声明这些常量的顺序相同
    • valueOf

      public static EcState.Status valueOf(String name)
      返回带有指定名称的该类型的枚举常量。 字符串必须与用于声明该类型的枚举常量的 标识符完全匹配。(不允许有多余 的空格字符。)
      参数:
      name - 要返回的枚举常量的名称。
      返回:
      返回带有指定名称的枚举常量
      抛出:
      IllegalArgumentException - 如果该枚举类型没有带有指定名称的常量
      NullPointerException - 如果参数为空值
    • getValue

      public int getValue()
      获取原始数值 (含 Error 位)
    • fromRaw

      public static EcState.Status fromRaw(int raw)
      从原始 wire 字节 / int 构造 Status (**保留 Error 位**, 与 EcState.fromValue(int) 不同). 未命名值兜底返回基础状态 + ERROR_FLAG 合成不到时返回 NONE.
    • baseState

      public EcState baseState()
      获取基础状态 (低 4 位, 不含 Error 标志)
    • hasFault

      public boolean hasFault()
      是否包含 Error 标志位 (0x10)
    • isRunning

      public boolean isRunning()
      是否在运行 (SAFE_OP 或 OP, 且不带 Error)
    • isOp

      public boolean isOp()
      是否在 OP 真运行 (OP 且不带 Error)
    • pretty

      public String pretty()
      人类可读字符串. 命名状态返回如 "OP_FAULT (OP+Error)", 未命名返回 "0x1A". 推荐 GUI / 日志使用, 替代 toString() (避免暴露 raw 数字).