枚举 EcState
- 所有已实现的接口:
Serializable,Comparable<EcState>,java.lang.constant.Constable
EtherCAT 从站状态枚举
对应 ETG.1000 状态机定义
-
嵌套类概要
嵌套类从类继承的嵌套类/接口 java.lang.Enum
Enum.EnumDesc<E extends Enum<E>> -
枚举常量概要
枚举常量 -
方法概要
修饰符和类型方法说明static Stringformat(int rawState) 格式化状态为可读字符串, 支持复合状态如 0x14 = "SAFE_OP+Error".static EcStatefromValue(int val) 从数值转换为基础状态枚举 (**不保留 Error 位**, 仅返回低 4 位对应的基础状态).bytegetValue()获取原始数值static booleanhasError(int rawState) 检查状态是否包含错误标志 (bit 4 = 0x10).static EcState返回带有指定名称的该类型的枚举常量。static EcState[]values()返回包含该枚举类型的常量的数组, 顺序与声明这些常量的顺序相同
-
枚举常量详细资料
-
NONE
无状态 -
INIT
初始化状态 -
PRE_OP
预运行状态 -
BOOT
Bootstrap 状态 -
SAFE_OP
安全运行状态 -
OP
运行状态 -
ACK
0x10 是 bit 4 标志位, 在不同寄存器有不同语义: - AL Status (0x0130) bit 4 = Error (从站在错误状态) - AL Control (0x0120) bit 4 = Ack (主站确认错误) 是同一个 bit, 不同上下文使用不同名称 — 故 ACK 和 ERROR 共享 0x10 是有意为之的别名, 不是冗余. 解析复合状态请用 EcState.format() (它正确处理 (state 无效输入:'&' 0x10) bit 标志). -
ERROR
错误标志 (与 ACK 相同值, 见 ACK 注释)
-
-
方法详细资料
-
values
返回包含该枚举类型的常量的数组, 顺序与声明这些常量的顺序相同- 返回:
- 包含该枚举类型的常量的数组,顺序与声明这些常量的顺序相同
-
valueOf
返回带有指定名称的该类型的枚举常量。 字符串必须与用于声明该类型的枚举常量的 标识符完全匹配。(不允许有多余 的空格字符。)- 参数:
name- 要返回的枚举常量的名称。- 返回:
- 返回带有指定名称的枚举常量
- 抛出:
IllegalArgumentException- 如果该枚举类型没有带有指定名称的常量NullPointerException- 如果参数为空值
-
getValue
public byte getValue()获取原始数值 -
fromValue
从数值转换为基础状态枚举 (**不保留 Error 位**, 仅返回低 4 位对应的基础状态).注意: 本方法故意丢弃 Error 位 (0x10), 想要保留 Error 信息请用:
hasError(int)单独检查 Error 位format(int)获取带 "+Error" 后缀的字符串EcState.Status.fromRaw(int)获取保留 Error 位的复合枚举 (推荐给 UI 用)
- 参数:
val- 状态数值 (低 4 位为基础状态, 高位 0x10 为 Error 标志)- 返回:
- 对应的基础 EcState (NONE/INIT/PRE_OP/BOOT/SAFE_OP/OP), 未知值返回 NONE
-
hasError
public static boolean hasError(int rawState) 检查状态是否包含错误标志 (bit 4 = 0x10). 直接传 wire 上的原始 byte / int 即可. -
format
格式化状态为可读字符串, 支持复合状态如 0x14 = "SAFE_OP+Error". 推荐 GUI / 日志使用 — 用户看 "OP+Error" 而不是 raw "24".
-