类 MasterBuilder
java.lang.Object
com.darra.ethercat.sugar.MasterBuilder
EtherCATMaster 流式构造器 (Builder pattern).
主线 SDK 已经有链式构造方法 (setENI / setEsiFile / SetNetwork), 但
这些方法分布在 EtherCATMaster 上, 需要先 create() 再链式 — 顺序
没那么自然. MasterBuilder 在 build() 前不创建任何原生资源, 失败
不留遗物, 测试更友好.
典型用法:
EtherCATMaster m = MasterBuilder.create()
.network("\\Device\\NPF_{xxx}")
.redundant("\\Device\\NPF_{yyy}")
.esiFolder("C:/Esi")
.eni("C:/cfg/ec.deni")
.targetState(EcState.OP)
.startPdoAfterOp()
.build();
失败模式:
build()抛IllegalStateException, 内部不留半初始化的 master- 已经创建到一半的 master (例如 ENI 加载失败), 自动 close() 释放
本类不替代主线 API — 主线 API 完全保留. Builder 只是把分散的 setNetwork/setENI/setState 串成一句, 适合"声明式"代码.
- 从以下版本开始:
- 2026-05
-
方法概要
修饰符和类型方法说明启用启动参数自动应用.build()执行构造.static MasterBuildercreate()工厂入口 — 不引用主线静态方法名, 防止 IDE 自动补全冲突.ENI / DENI 配置文件路径.单个 ESI 文件路径, 可重复调用.ESI 目录 (加载目录下所有 *.xml).masterNumber(short index) 指定主站编号 (默认自动分配).主网卡设备路径 (\\Device\\NPF_{...}或 Linuxeth0).冗余备用网卡 (可选).进入 OP 后自动启动 PDO 周期线程.targetState(EcState state) 目标 EtherCAT 状态.
-
方法详细资料
-
create
工厂入口 — 不引用主线静态方法名, 防止 IDE 自动补全冲突. -
network
主网卡设备路径 (\\Device\\NPF_{...}或 Linuxeth0). -
redundant
冗余备用网卡 (可选). -
eni
ENI / DENI 配置文件路径. -
esiFile
单个 ESI 文件路径, 可重复调用. -
esiFolder
ESI 目录 (加载目录下所有 *.xml). -
autoStartup
启用启动参数自动应用. -
targetState
目标 EtherCAT 状态.build()内部会 setStateSequence 切到此状态. 默认不切换 (留给调用方手动控制). -
startPdoAfterOp
进入 OP 后自动启动 PDO 周期线程. 仅当targetState设为 OP 或 SAFE_OP 时生效. -
masterNumber
指定主站编号 (默认自动分配). -
build
执行构造. 内部调用主线EtherCATMaster.build(), 失败抛IllegalStateException, 不留半初始化资源.
-