类 State

java.lang.Object
com.darra.ethercat.master.State

public class State extends Object
EtherCAT 状态管理 对应 C# Master/State.cs 提供主站状态获取/设置、关闭、中止等操作的便捷方法
  • 构造器概要

    构造器
    构造器
    说明
    State(short masterIndex)
    创建状态管理实例
  • 方法概要

    修饰符和类型
    方法
    说明
    static void
    中断 DLL 层所有阻塞操作 可安全地从任意线程调用
    获取当前主站 EtherCAT 状态
    static int
    获取状态级别 (用于比较状态优先级)
    static boolean
    isStateCompatible(EcState current, EcState required)
    判断当前状态是否满足要求
    boolean
    setState(EcState targetState)
    设置主站状态 (阻塞, 等待转换完成)
    boolean
    setStateSequence(EcState targetState, int timeoutMs)
    顺序设置主站状态 (INIT → PREOP → SAFEOP → OP)
    验证启动配置 (对应 C# VerifyStartupConfiguration) 检查从站状态、PDO 映射、DC 配置是否正确。
    boolean
    waitForSlaveState(int slaveIndex, EcState target, int timeoutMs, int pollIntervalMs)
    轮询等待单个从站到达指定状态 (PDO 启动后状态确认场景)
    boolean
    等待主站到达指定状态 (默认 10s 超时, 50ms 轮询间隔)
    boolean
    waitForState(EcState target, int timeoutMs, int pollIntervalMs)
    轮询等待主站到达指定状态 (对齐 C# WaitForState / C++ master_state::WaitForState) 不发起状态切换, 仅等待已请求的转换完成 / PDO 流稳定确认

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造器详细资料

    • State

      public State(short masterIndex)
      创建状态管理实例
      参数:
      masterIndex - 主站编号
  • 方法详细资料

    • getState

      public EcState getState()
      获取当前主站 EtherCAT 状态
      返回:
      当前状态
    • setState

      public boolean setState(EcState targetState)
      设置主站状态 (阻塞, 等待转换完成)
      参数:
      targetState - 目标状态
      返回:
      成功返回 true
    • setStateSequence

      public boolean setStateSequence(EcState targetState, int timeoutMs)
      顺序设置主站状态 (INIT → PREOP → SAFEOP → OP)
      参数:
      targetState - 最终目标状态
      timeoutMs - 每个转换步骤的超时时间 (毫秒)
      返回:
      成功返回 true
    • waitForState

      public boolean waitForState(EcState target, int timeoutMs, int pollIntervalMs)
      轮询等待主站到达指定状态 (对齐 C# WaitForState / C++ master_state::WaitForState) 不发起状态切换, 仅等待已请求的转换完成 / PDO 流稳定确认
      参数:
      target - 目标状态
      timeoutMs - 最大等待 (毫秒)
      pollIntervalMs - 轮询间隔 (毫秒)
      返回:
      是否到达目标状态
    • waitForState

      public boolean waitForState(EcState target)
      等待主站到达指定状态 (默认 10s 超时, 50ms 轮询间隔)
    • waitForSlaveState

      public boolean waitForSlaveState(int slaveIndex, EcState target, int timeoutMs, int pollIntervalMs)
      轮询等待单个从站到达指定状态 (PDO 启动后状态确认场景)
      参数:
      slaveIndex - 从站编号 (1-based)
      target - 目标状态
      timeoutMs - 最大等待 (毫秒)
      pollIntervalMs - 轮询间隔 (毫秒)
      返回:
      是否到达目标状态
    • abort

      public static void abort()
      中断 DLL 层所有阻塞操作 可安全地从任意线程调用
    • getStateLevel

      public static int getStateLevel(EcState state)
      获取状态级别 (用于比较状态优先级)
      参数:
      state - 状态
      返回:
      级别 (0=None, 1=Init, 2=PreOp, 3=SafeOp, 4=Op)
    • isStateCompatible

      public static boolean isStateCompatible(EcState current, EcState required)
      判断当前状态是否满足要求
      参数:
      current - 当前状态
      required - 要求的状态
      返回:
      当前状态级别 >= 要求状态级别
    • VerifyStartupConfiguration

      public Map<String,Object> VerifyStartupConfiguration()
      验证启动配置 (对应 C# VerifyStartupConfiguration) 检查从站状态、PDO 映射、DC 配置是否正确。
      返回:
      验证结果: issues 为空表示配置有效