类 State
java.lang.Object
com.darra.ethercat.master.State
EtherCAT 状态管理
对应 C# Master/State.cs
提供主站状态获取/设置、关闭、中止等操作的便捷方法
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static voidabort()中断 DLL 层所有阻塞操作 可安全地从任意线程调用getState()获取当前主站 EtherCAT 状态static intgetStateLevel(EcState state) 获取状态级别 (用于比较状态优先级)static booleanisStateCompatible(EcState current, EcState required) 判断当前状态是否满足要求boolean设置主站状态 (阻塞, 等待转换完成)booleansetStateSequence(EcState targetState, int timeoutMs) 顺序设置主站状态 (INIT → PREOP → SAFEOP → OP)验证启动配置 (对应 C# VerifyStartupConfiguration) 检查从站状态、PDO 映射、DC 配置是否正确。booleanwaitForSlaveState(int slaveIndex, EcState target, int timeoutMs, int pollIntervalMs) 轮询等待单个从站到达指定状态 (PDO 启动后状态确认场景)booleanwaitForState(EcState target) 等待主站到达指定状态 (默认 10s 超时, 50ms 轮询间隔)booleanwaitForState(EcState target, int timeoutMs, int pollIntervalMs) 轮询等待主站到达指定状态 (对齐 C# WaitForState / C++ master_state::WaitForState) 不发起状态切换, 仅等待已请求的转换完成 / PDO 流稳定确认
-
构造器详细资料
-
State
public State(short masterIndex) 创建状态管理实例- 参数:
masterIndex- 主站编号
-
-
方法详细资料
-
getState
获取当前主站 EtherCAT 状态- 返回:
- 当前状态
-
setState
设置主站状态 (阻塞, 等待转换完成)- 参数:
targetState- 目标状态- 返回:
- 成功返回 true
-
setStateSequence
顺序设置主站状态 (INIT → PREOP → SAFEOP → OP)- 参数:
targetState- 最终目标状态timeoutMs- 每个转换步骤的超时时间 (毫秒)- 返回:
- 成功返回 true
-
waitForState
轮询等待主站到达指定状态 (对齐 C# WaitForState / C++ master_state::WaitForState) 不发起状态切换, 仅等待已请求的转换完成 / PDO 流稳定确认- 参数:
target- 目标状态timeoutMs- 最大等待 (毫秒)pollIntervalMs- 轮询间隔 (毫秒)- 返回:
- 是否到达目标状态
-
waitForState
等待主站到达指定状态 (默认 10s 超时, 50ms 轮询间隔) -
waitForSlaveState
轮询等待单个从站到达指定状态 (PDO 启动后状态确认场景)- 参数:
slaveIndex- 从站编号 (1-based)target- 目标状态timeoutMs- 最大等待 (毫秒)pollIntervalMs- 轮询间隔 (毫秒)- 返回:
- 是否到达目标状态
-
abort
public static void abort()中断 DLL 层所有阻塞操作 可安全地从任意线程调用 -
getStateLevel
获取状态级别 (用于比较状态优先级)- 参数:
state- 状态- 返回:
- 级别 (0=None, 1=Init, 2=PreOp, 3=SafeOp, 4=Op)
-
isStateCompatible
判断当前状态是否满足要求- 参数:
current- 当前状态required- 要求的状态- 返回:
- 当前状态级别 >= 要求状态级别
-
VerifyStartupConfiguration
验证启动配置 (对应 C# VerifyStartupConfiguration) 检查从站状态、PDO 映射、DC 配置是否正确。- 返回:
- 验证结果: issues 为空表示配置有效
-