类 EtherCATMaster
- 所有已实现的接口:
AutoCloseable,Iterable<Slave>
属性风格: PascalCase 方法名 (匹配 C# 命名), 不使用 get/set 前缀
不变值使用 public final 字段, 动态值使用无前缀方法
支持 try-with-resources 自动释放:
try (EtherCATMaster master = EtherCATMaster.create()) {
master.setNetwork("\\Device\\NPF_{...}", "");
master.setStateSequence(EcState.OP, 10000);
master.start();
// ... PDO 操作 ...
}
-
嵌套类概要
嵌套类修饰符和类型类说明static class构建结果 (对应 C# BuildResult) 包含主站实例、从站数量、成功标志和消息static interface初始化进度监听 (buildAsync / setStateAsync 长流程期间触发: "正在扫描 / 正在配置 / 正在进 OP" 等)。static final classPDO 丢帧统计.static interface状态变化监听器接口static class验证结果类 -
字段概要
字段 -
方法概要
修饰符和类型方法说明static voidbooleanAcknowledgeSlaveReplacement(int slaveNum) 用户确认从站替换 (v2 热插拔自修复)byte活跃组数量 (扫描从站集合计算, 对齐 C# ActiveGroupCount)intapplyStartupParametersAll(byte transition, byte timing) 对所有从站执行启动参数int自动计算 DC 偏移intautoConfigureSM(short slaveIndex) 自动配置 SMbuild()构建并初始化主站 (终结方法) 对应 C# Build()buildAsync(Consumer<String> progress) build()的异步变体: 把整条 验证→加载 ENI→扫描→自动配置 同步流程 放本主站串行闸的后台单线程跑, 调用方拿 future 不堵。boolean检查冗余健康状态int清除所有从站的启动参数booleanvoidclose()com.sun.jna.Pointer获取通信统计信息指针Config()获取主站配置intconfigureDCAll(int sync0Ns, int sync1Ns) 为所有 DC 从站配置 DC 同步static EtherCATMastercreate()创建并初始化主站 (自动分配编号)static EtherCATMastercreate(short masterIndex) 创建并初始化指定编号的主站static EtherCATMastercreateFromJson(String jsonConfig) 一步初始化: JSON 配置 -> 创建主站static EtherCATMastercreateFromJsonFile(String jsonFilePath) 一步初始化: 从 JSON 文件longDCtime()DC 时间戳 (纳秒, 对齐 C# DCtime)解构赋值 (对应 C# Deconstruct)com.sun.jna.Pointer获取详细诊断信息指针获取主站诊断信息boolean获取诊断功能启用状态com.sun.jna.Pointer获取诊断指针 (零拷贝)byteDivider(byte group) 获取组循环分频器 (对齐 C# SlaveGroupList.Divider)voidDivider(byte group, byte value) 设置组循环分频器static void紧急释放所有主站资源 (对齐 C# EmergencyCleanup) 崩溃/进程退出时使用, 直接关闭网卡句柄static void启用自动启动配置 (Build 时执行) 已有启动参数的从站 (ENI/DENI 已配置) 会被跳过, 仅对未配置的从站生效。voidenableContinuousMeasurement(boolean enable, int intervalSec) 启用/禁用连续测量static voidenableDebugLogging(boolean enable) voidenableDriftCompensation(boolean enable, int thresholdNs, int gain) 启用/禁用漂移补偿static voidenableMailboxLogging(boolean enable) static voidenablePDOLogging(boolean enable) static voidenablePDOMonitoring(boolean enable) 启用/禁用 PDO 监控.booleanenableRedundancy(boolean enable) 启用/禁用冗余intErrorCnt()错误计数 (对齐 C# ErrorCnt)错误码 (AL Status Code, 对齐 C# ErrorCode)Events()获取主站事件集合short获取期望的工作计数器voidExpectedWKC(short expectedWkc) 设置期望的工作计数器intexportPerfCsv(String filepath) boolean强制冗余故障切换static intstatic intintgetBreakPoints(short[] outSlaves, byte[] outPorts, byte[] outTypes, short maxResults) 获取断点信息boolean获取 DC 自动偏移状态static Stringstatic Stringstatic Stringlong主站最近一次 PDO 周期取回的 64-bit DC 系统时间 (纳秒, ETG 2000-01-01 纪元).获取主站诊断数据 (ETG.1510 对象 0xF120)获取主站身份信息 (ETG.1510 对象 0x1018)static intstatic int获取 PDO 丢帧统计 (默认 group=0).getPdoFrameLossStats(byte group) 获取 PDO 丢帧统计 (返回值风格 — 推荐, 与其他 SDK 对齐).voidgetPDOFrameLossStats(byte group, com.sun.jna.ptr.IntByReference totalLost, com.sun.jna.ptr.IntByReference consecutiveLost, com.sun.jna.ptr.IntByReference maxConsecutiveLost) 获取 PDO 丢帧统计 (out 参数风格 — 旧 API).booleangetPDOMapping(short slaveIndex, short pdoType, com.sun.jna.Pointer mappingBuffer, int bufferSize, com.sun.jna.ptr.IntByReference mappingCount) 获取 PDO 映射 (native 返回 C boolean=uint8, 上层!= 0判真)int当前参考时钟从站索引 (1-based).static intstatic intstatic booleangetScannedSlaveInfo(int index, com.sun.jna.ptr.IntByReference vendorId, com.sun.jna.ptr.IntByReference productCode, com.sun.jna.ptr.IntByReference revision, com.sun.jna.ptr.IntByReference serial, byte[] name, int nameSize, com.sun.jna.ptr.ShortByReference configAddr, com.sun.jna.ptr.ShortByReference aliasAddr, com.sun.jna.ptr.ShortByReference parent, com.sun.jna.ptr.ByteByReference topology, com.sun.jna.ptr.ByteByReference activePorts, com.sun.jna.ptr.ByteByReference entryPort, com.sun.jna.ptr.ByteByReference parentPort, com.sun.jna.ptr.ByteByReference ptype) static StringgetSlave(int slaveIndex) 获取从站实例 (1-based)获取从站列表 (可迭代, 对齐 C# GetSlaves)static Stringstatic StringbooleanHasDC()是否支持 DC (对齐 C# HasDC, 读取 slave[0])shortIbits()输入位数 (对齐 C# Ibits, 读取 slave[0] 汇总)intIbytes()输入字节数 (对齐 C# Ibytes, 读取 slave[0] 汇总)voidstatic booleanisAdapterAvailable(String adapterName) boolean检查所有从站是否同步boolean获取是否已释放 (对齐 C# IsDisposed)booleanstatic boolean获取 PDO 监控是否已启用.boolean是否已启动 PDOboolean检查 UDP 是否可用iterator()支持 for-each 迭代 (对齐 C# IEnumerable)链路状态枚举值 (对齐 C# LinkState)获取链路状态 (LinkState 别名)intloadConfigJson(String jsonStr) 从 JSON 字符串加载配置void锁定 IOmapLogs()获取日志视图获取邮箱网关服务short主站编号 (C# MasterNumber 对应)MasterOD()获取主站对象字典int获取最大传播延迟 (纳秒)int获取最大同步偏差 (纳秒)boolean获取 Mutex 保护状态shortObits()输出位数 (对齐 C# Obits, 读取 slave[0] 汇总)intObytes()输出字节数 (对齐 C# Obytes, 读取 slave[0] 汇总)intpdoBatchRead(short[] slaveIndices, int slaveCount, com.sun.jna.Pointer[] dataBuffers, int[] bufferSizes, int[] bytesRead) PDO 批量读取intpdoBatchWrite(short[] slaveIndices, int slaveCount, com.sun.jna.Pointer[] dataBuffers, int[] dataSizes) PDO 批量写入int获取当前连续丢帧数 (对应 C# PdoConsecutiveLost)int获取 PDO 总丢帧数 (对应 C# PdoLostFrames)int获取历史最大连续丢帧数 (对应 C# PdoMaxConsecutiveLost)booleanpdoReadDirect(short slaveIndex, short pdoIndex, com.sun.jna.Pointer dataBuffer, int bufferSize, com.sun.jna.ptr.IntByReference bytesRead) PDO 直接读取 (native 返回 C boolean=uint8, 上层!= 0判真)com.sun.jna.PointerPDOStats(short slaveIndex) 获取 PDO 统计信息指针booleanpdoWriteDirect(short slaveIndex, short pdoIndex, com.sun.jna.Pointer dataBuffer, int dataSize) PDO 直接写入 (native 返回 C boolean=uint8, 上层!= 0判真)获取主网卡名称static int[]quickFindRedundantPairBatch(String[] adapterNames) 批量探测冗余配对static intquickSlaveCountRedundant(String primary, String secondary) 快速检测冗余网卡对上的从站数量.int读取所有从站端口错误计数器static intreadSlaveInfo(String adapterName) booleanreadSlavePortErrorCounters(short slaveIndex, byte[] rxError, byte[] invalidFrame, byte[] lostLink) 读取从站端口错误计数器void重建拓扑结构void记录 PDO 周期开始voidrecordWKC(short wkc) 记录工作计数器int获取冗余处理模式com.sun.jna.Pointer获取冗余状态指针获取冗余网卡名称voidvoidvoidvoidvoidvoidvoidvoidvoidvoid重置所有从站的同步窗口统计void重置通信统计void重置诊断信息void重置 PDO 丢帧统计 (所有组)voidresetPDOStats(short slaveIndex) 重置 PDO 统计static voidbooleanresetSlavePortErrorCounters(short slaveIndex) 重置从站端口错误计数器intRingMode()获取环拓扑冗余模式static CompletableFuture<Integer> scanAsync(String, String)单口扫描版 (无冗余)。static CompletableFuture<Integer> scanSlaveCount(String)的异步变体: 把扫描放后台线程跑, 调用方拿 future 不堵。static intscanSlaveCount(String adapterName) 扫描指定网卡上的从站数量 (完整扫描).static intscanSlaveCountRedundant(String primary, String secondary) 扫描冗余网卡对上的从站数量 (完整扫描, 环形拓扑).boolean获取冗余链路状态intsetAllSlavePdiWatchdog(int timeoutMs) 为所有从站设置统一PDI看门狗超时intsetAllSlaveWatchdog(int timeoutMs) 为所有从站设置统一看门狗超时booleansetCpuAffinity(int cpuCore) 设置主站 CPU 亲和性voidvoidsetCycleTime(int timeNs) 设置 PDO 循环时间 (纳秒)voidsetDCAutoShiftEnabled(boolean enable) 设置 DC 自动偏移启用voidstatic voidsetDebugLogging(boolean enable) voidsetDiagnosticsEnabled(boolean enable) 启用/禁用诊断功能设置 ENI/DENI 配置文件路径 (延迟配置, Build 时生效) 对应 C# SetENI()setEsiFile(String path) 设置单个 ESI 文件路径 (延迟配置, Build 时生效) 可多次调用添加多个 ESI 文件 对应 C# SetEsiFile()setEsiFiles(String path) 设置 ESI 文件目录路径 (延迟配置, Build 时生效) 加载目录下所有 ESI 文件。booleanvoid设置初始化进度监听 (对齐 C# OnInitProgress 事件)。voidsetLogCallback(DarraCore.LogCallback callback) static voidsetMailboxLogging(boolean enable) voidsetMasterDCCycleTime(int timeNs) 设置主站 DC 循环时间 (纳秒)voidsetMutexProtection(boolean enable) 设置 Mutex 保护intsetNetwork(String adapter) 设置网络适配器 (无冗余)intsetNetwork(String adapter, String redundantAdapter) 设置网络适配器SetNetwork(String primary) 设置网络适配器 (无冗余, C# SetNetwork 对应)SetNetwork(String primary, String secondary) 设置网络适配器 (C# SetNetwork 对应)setNetworkAsync(String primary, String secondary) 异步设置网卡 (经主站串行闸排队隔离)。static voidsetPDOLogging(boolean enable) voidsetRedProcessdata(int mode) 设置冗余处理模式boolean切换 EtherCAT 主站状态.void设置主站状态 (C# SetState 对应)setStateAsync(EcState state) 异步版 setState, 不阻塞调用线程.setStateAsync(EcState state, Consumer<String> progress) 异步版 setState (带进度回调), 不阻塞调用线程, 经主站串行闸排队隔离。void设置状态变化监听器 (对齐 C# StateChanged 事件)voidsetSyncWindowThreshold(int thresholdNs) 设置同步窗口阈值 (纳秒)booleansetUdpMode(boolean enable) 设置 UDP 模式int获取从站数量shortSlaveLinkQuality(short slaveIndex) 获取从站链路质量 (0-100%)com.sun.jna.PointerSlavePortErrorStats(short slaveIndex) 获取从站端口错误统计指针Slaves()获取所有从站列表 (不可修改)获取从站拓扑访问器voidstart()启动 PDO 循环线程和状态监控线程voidStart()启动 PDO 循环 (C# Start 对应)State()获取主站 EtherCAT 状态 (C# State 对应)voidstop()停止 PDO 循环线程voidStop()停止 PDO 循环 (C# Stop 对应)com.sun.jna.Pointer获取摘要指针 (零拷贝)int获取同步窗口阈值Topology()获取网络拓扑节点列表TopologyChildren(int parent) 获取指定从站的子节点编号列表获取拓扑根节点编号列表toString()booleanUdpMode()获取 UDP 模式void解锁 IOmapvoid更新诊断快照void使用 ESC 错误更新诊断数据int更新传播延迟Validate()验证配置是否完整, 不执行 Build 在调用 build() 前可先调用此方法预检查配置booleanverifyAllSlaveIdentities(DarraCore.SlaveIdentity[] expectedIdentities, int slaveCount, boolean checkRevision, boolean checkSerial, long[] mismatchMask) 批量验证所有从站身份booleanshortWKC()工作计数器 (对齐 C# WKC)从类继承的方法 java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait从接口继承的方法 java.lang.Iterable
forEach, spliterator
-
字段详细资料
-
MasterIndex
public final short MasterIndex主站编号 (构造后不变)
-
-
方法详细资料
-
setInitProgressListener
设置初始化进度监听 (对齐 C# OnInitProgress 事件)。 -
create
创建并初始化主站 (自动分配编号) -
create
创建并初始化指定编号的主站 -
createFromJson
一步初始化: JSON 配置 -> 创建主站 -
createFromJsonFile
一步初始化: 从 JSON 文件 -
MasterNumber
public short MasterNumber()主站编号 (C# MasterNumber 对应) -
State
获取主站 EtherCAT 状态 (C# State 对应) -
IsDisposed
public boolean IsDisposed()获取是否已释放 (对齐 C# IsDisposed) -
DCtime
public long DCtime()DC 时间戳 (纳秒, 对齐 C# DCtime) -
getMasterDCTime
public long getMasterDCTime()主站最近一次 PDO 周期取回的 64-bit DC 系统时间 (纳秒, ETG 2000-01-01 纪元).
Latest 64-bit DC system time (ns, ETG 2000-01-01 epoch) read via FRMW.- 返回:
- DC 时间 (纳秒) / DC time in nanoseconds; 0 表示 DC 未激活.
-
getReferenceClockSlaveIndex
public int getReferenceClockSlaveIndex()当前参考时钟从站索引 (1-based).
Reference-clock slave index (1-based). 0 = no DC-capable slave on bus. -
ErrorCnt
public int ErrorCnt()错误计数 (对齐 C# ErrorCnt) -
ErrorCode
错误码 (AL Status Code, 对齐 C# ErrorCode) -
WKC
public short WKC()工作计数器 (对齐 C# WKC) -
HasDC
public boolean HasDC()是否支持 DC (对齐 C# HasDC, 读取 slave[0]) -
Obits
public short Obits()输出位数 (对齐 C# Obits, 读取 slave[0] 汇总) -
Obytes
public int Obytes()输出字节数 (对齐 C# Obytes, 读取 slave[0] 汇总) -
Ibits
public short Ibits()输入位数 (对齐 C# Ibits, 读取 slave[0] 汇总) -
Ibytes
public int Ibytes()输入字节数 (对齐 C# Ibytes, 读取 slave[0] 汇总) -
LinkState
链路状态枚举值 (对齐 C# LinkState) -
Divider
public byte Divider(byte group) 获取组循环分频器 (对齐 C# SlaveGroupList.Divider) -
Divider
public void Divider(byte group, byte value) 设置组循环分频器 -
GetSlaves
获取从站列表 (可迭代, 对齐 C# GetSlaves) -
iterator
支持 for-each 迭代 (对齐 C# IEnumerable) -
ActiveGroupCount
public byte ActiveGroupCount()活跃组数量 (扫描从站集合计算, 对齐 C# ActiveGroupCount) -
setStateChangedListener
设置状态变化监听器 (对齐 C# StateChanged 事件) -
EmergencyCleanup
public static void EmergencyCleanup()紧急释放所有主站资源 (对齐 C# EmergencyCleanup) 崩溃/进程退出时使用, 直接关闭网卡句柄 -
IsStarted
public boolean IsStarted()是否已启动 PDO -
SlaveCount
public int SlaveCount()获取从站数量 -
Slaves
获取所有从站列表 (不可修改) -
Config
获取主站配置 -
Diagnostics
获取主站诊断信息 -
Events
获取主站事件集合 -
AcknowledgeSlaveReplacement
public boolean AcknowledgeSlaveReplacement(int slaveNum) 用户确认从站替换 (v2 热插拔自修复)调用场景: 订阅
MasterEvents.addSlaveIdentityMismatchListener(com.darra.ethercat.master.MasterEvents.SlaveIdentityMismatchListener)接收到身份不符报警后, 操作员检查/更换设备完毕, 调用本方法触发 ident FSM 重新探测。- 若身份已纠正 (换回正确设备 / 同型号升级 Revision) -> 自动恢复并触发 SlaveOnline
- 若身份仍不匹配 -> 再次触发 SlaveIdentityMismatch, 回到 IDENT_REJECTED
注意: 在收到 SlaveIdentityMismatch 事件之前调用无效 (返回 false)。
- 参数:
slaveNum- 从站编号 (1-based, 与配置中一致)- 返回:
- true=确认已接受并复位 FSM; false=参数无效或从站当前不在 IDENT_REJECTED/FAILED 状态
-
MasterOD
获取主站对象字典 -
MailboxGateway
获取邮箱网关服务 -
SlaveTopology
获取从站拓扑访问器 -
Logs
获取日志视图 -
LinkStatus
获取链路状态 (LinkState 别名) -
ExpectedWKC
public short ExpectedWKC()获取期望的工作计数器 -
ExpectedWKC
public void ExpectedWKC(short expectedWkc) 设置期望的工作计数器 -
PrimaryNicName
获取主网卡名称 -
RedundantNicName
获取冗余网卡名称 -
SetNetwork
设置网络适配器 (C# SetNetwork 对应)- 参数:
primary- 主网卡名称secondary- 冗余网卡名称, 空串或 null 表示无冗余- 返回:
- 当前实例, 支持链式调用
-
SetNetwork
设置网络适配器 (无冗余, C# SetNetwork 对应) -
setNetwork
设置网络适配器 -
setNetwork
设置网络适配器 (无冗余) -
SetState
设置主站状态 (C# SetState 对应)- 参数:
targetState- 目标状态
-
Start
public void Start()启动 PDO 循环 (C# Start 对应) -
Stop
public void Stop()停止 PDO 循环 (C# Stop 对应) -
setState
切换 EtherCAT 主站状态. 唯一公开状态机 API.内部自动:
- 链式转换 (Init→PreOp→SafeOp→OP, 跨多级一次到位)
- 每步执行 Before/After Transition 启动参数
- SafeOp/OP 进入后启动 PDO 线程
- 默认每步 5s 超时
- 参数:
state- 目标状态 (EcState.INIT/PRE_OP/SAFE_OP/OP)- 返回:
- true 切换成功, false 失败
-
setStateAsync
异步版 setState, 不阻塞调用线程.[2026-06-11 异步隔离层] 改为经本主站串行闸 (
AsyncGate) 排队执行 — 与本主站其它 async 操作 (build/setState/SDO) 严格串行, 绝不并发打总线; 阻塞 native 调用在闸的单线程后台跑, 调用方拿 future 不堵。原 supplyAsync(commonPool) 版本无串行/无守门, 已替换。语义/返回值对外不变。- 参数:
state- 目标状态- 返回:
- CompletableFuture<Boolean> 成功返回 true
-
setStateAsync
异步版 setState (带进度回调), 不阻塞调用线程, 经主站串行闸排队隔离。对齐 C#
SetStateAsync(state, progress, ct)。- 参数:
state- 目标状态progress- 进度回调 (可选, null 则不回调)。在异步 executor 线程触发, 调用方需自己 marshal 回 UI 线程 (Swing/JavaFX)。与setInitProgressListener(com.darra.ethercat.master.EtherCATMaster.InitProgressListener)并行上报。- 返回:
- CompletableFuture<Boolean> 成功返回 true; 取消返回的 future
(
cancel(true)) 会调 native AbortNetwork 让阻塞中的状态机切换返回。
-
buildAsync
build()的异步变体: 把整条 验证→加载 ENI→扫描→自动配置 同步流程 放本主站串行闸的后台单线程跑, 调用方拿 future 不堵。与本主站其它 async 操作串行。对齐 C#
BuildAsync(progress, ct)。原同步build()不拆解/不乱序, 顺序由它自身保证。典型用法:
master.SetNetwork(nic).setENI("config.xml") .buildAsync(msg -> System.out.println(msg)) .thenAccept(r -> System.out.println("ok=" + r.success));- 参数:
progress- 进度回调 (可选)。异步 executor 线程触发, 调用方自己 marshal。- 返回:
- CompletableFuture<BuildResult> — 同同步 build (成功含 master, 失败含 null + 消息)。
取消返回的 future (
cancel(true)) 会调 native AbortNetwork。
-
buildAsync
-
setNetworkAsync
异步设置网卡 (经主站串行闸排队隔离)。setNetwork 本身是同步快速操作, 异步化 主要是为了与后续 buildAsync/setStateAsync 在同一把闸上串行链式组合, 不与其它 EtherCAT 操作并发。- 参数:
primary- 主网卡名称secondary- 冗余网卡名称 (null/空串表示无冗余)- 返回:
- CompletableFuture<Integer> — 扫描到的从站数 (<0 失败); 取消会调 native AbortNetwork。
-
scanAsync
scanSlaveCount(String)的异步变体: 把扫描放后台线程跑, 调用方拿 future 不堵。静态扫描没有 master 实例闸可挂; 用
AsyncGate的进程级静态扫描闸串行化所有 并发扫描请求 (共享同一份 native 扫描缓存, 不能并发扫)。对齐 C#ScanAsync。- 参数:
adapterName- 主网络适配器名称 (不能为 null/空)secondaryAdapter- 冗余网络适配器名称 (null = 单口扫描)- 返回:
- CompletableFuture<Integer> — 扫描到的从站数; 取消会调 native AbortScan (扫描专用 flag)。
-
scanAsync
scanAsync(String, String)单口扫描版 (无冗余)。 -
start
public void start()启动 PDO 循环线程和状态监控线程 -
stop
public void stop()停止 PDO 循环线程 -
getSlave
获取从站实例 (1-based) -
loadConfigJson
从 JSON 字符串加载配置 -
autoConfigureSM
public int autoConfigureSM(short slaveIndex) 自动配置 SM -
clearAllStartupParameters
public int clearAllStartupParameters()清除所有从站的启动参数 -
applyStartupParametersAll
public int applyStartupParametersAll(byte transition, byte timing) 对所有从站执行启动参数 -
setMasterDCCycleTime
public void setMasterDCCycleTime(int timeNs) 设置主站 DC 循环时间 (纳秒) -
configureDCAll
public int configureDCAll(int sync0Ns, int sync1Ns) 为所有 DC 从站配置 DC 同步 -
autoCalculateDCShift
public int autoCalculateDCShift()自动计算 DC 偏移 -
enableDriftCompensation
public void enableDriftCompensation(boolean enable, int thresholdNs, int gain) 启用/禁用漂移补偿 -
setDCAutoShiftEnabled
public void setDCAutoShiftEnabled(boolean enable) 设置 DC 自动偏移启用 -
getDCAutoShiftEnabled
public boolean getDCAutoShiftEnabled()获取 DC 自动偏移状态 -
MaxPropagationDelay
public int MaxPropagationDelay()获取最大传播延迟 (纳秒) -
setSyncWindowThreshold
public void setSyncWindowThreshold(int thresholdNs) 设置同步窗口阈值 (纳秒) -
SyncWindowThreshold
public int SyncWindowThreshold()获取同步窗口阈值 -
MaxSyncDifference
public int MaxSyncDifference()获取最大同步偏差 (纳秒) -
isAllSlavesInSync
public boolean isAllSlavesInSync()检查所有从站是否同步 -
updatePropagationDelays
public int updatePropagationDelays()更新传播延迟 -
enableContinuousMeasurement
public void enableContinuousMeasurement(boolean enable, int intervalSec) 启用/禁用连续测量 -
lockIOmap
public void lockIOmap()锁定 IOmap -
unlockIOmap
public void unlockIOmap()解锁 IOmap -
setMutexProtection
public void setMutexProtection(boolean enable) 设置 Mutex 保护 -
MutexProtection
public boolean MutexProtection()获取 Mutex 保护状态 -
setRedProcessdata
public void setRedProcessdata(int mode) 设置冗余处理模式 -
RedProcessdata
public int RedProcessdata()获取冗余处理模式 -
enableRedundancy
public boolean enableRedundancy(boolean enable) 启用/禁用冗余 -
RedundancyStatus
public com.sun.jna.Pointer RedundancyStatus()获取冗余状态指针 -
forceRedundancyFailover
public boolean forceRedundancyFailover()强制冗余故障切换 -
checkRedundancyHealth
public boolean checkRedundancyHealth()检查冗余健康状态 -
RingMode
public int RingMode()获取环拓扑冗余模式 -
SecondaryLinkStatus
public boolean SecondaryLinkStatus()获取冗余链路状态 -
setCycleTime
public void setCycleTime(int timeNs) 设置 PDO 循环时间 (纳秒) -
setCpuAffinity
public boolean setCpuAffinity(int cpuCore) 设置主站 CPU 亲和性 -
setAllSlaveWatchdog
public int setAllSlaveWatchdog(int timeoutMs) 为所有从站设置统一看门狗超时 -
setAllSlavePdiWatchdog
public int setAllSlavePdiWatchdog(int timeoutMs) 为所有从站设置统一PDI看门狗超时 -
DetailedDiagnostics
public com.sun.jna.Pointer DetailedDiagnostics()获取详细诊断信息指针 -
resetDiagnostics
public void resetDiagnostics()重置诊断信息 -
setDiagnosticsEnabled
public void setDiagnosticsEnabled(boolean enable) 启用/禁用诊断功能 -
DiagnosticsEnabled
public boolean DiagnosticsEnabled()获取诊断功能启用状态 -
CommunicationStats
public com.sun.jna.Pointer CommunicationStats()获取通信统计信息指针 -
resetCommunicationStats
public void resetCommunicationStats()重置通信统计 -
getPDOFrameLossStats
public void getPDOFrameLossStats(byte group, com.sun.jna.ptr.IntByReference totalLost, com.sun.jna.ptr.IntByReference consecutiveLost, com.sun.jna.ptr.IntByReference maxConsecutiveLost) 获取 PDO 丢帧统计 (out 参数风格 — 旧 API). -
getPdoFrameLossStats
获取 PDO 丢帧统计 (返回值风格 — 推荐, 与其他 SDK 对齐).- 参数:
group- 组号 (0-7)- 返回:
- PDOFrameLossStats 数据对象 (字段为 unsigned 32-bit, 用 long 承载防止溢出)
-
getPdoFrameLossStats
获取 PDO 丢帧统计 (默认 group=0). -
resetPDOFrameLossStats
public void resetPDOFrameLossStats()重置 PDO 丢帧统计 (所有组) -
getBreakPoints
public int getBreakPoints(short[] outSlaves, byte[] outPorts, byte[] outTypes, short maxResults) 获取断点信息 -
SlaveLinkQuality
public short SlaveLinkQuality(short slaveIndex) 获取从站链路质量 (0-100%) -
recordPDOCycleStart
public void recordPDOCycleStart()记录 PDO 周期开始 -
recordWKC
public void recordWKC(short wkc) 记录工作计数器 -
updateDiagnosticsSnapshot
public void updateDiagnosticsSnapshot()更新诊断快照 -
resetSlavePortErrorCounters
public boolean resetSlavePortErrorCounters(short slaveIndex) 重置从站端口错误计数器 -
DiagnosticsPointer
public com.sun.jna.Pointer DiagnosticsPointer()获取诊断指针 (零拷贝) -
SummaryPointer
public com.sun.jna.Pointer SummaryPointer()获取摘要指针 (零拷贝) -
readSlavePortErrorCounters
public boolean readSlavePortErrorCounters(short slaveIndex, byte[] rxError, byte[] invalidFrame, byte[] lostLink) 读取从站端口错误计数器 -
readAllSlavePortErrorCounters
public int readAllSlavePortErrorCounters()读取所有从站端口错误计数器 -
SlavePortErrorStats
public com.sun.jna.Pointer SlavePortErrorStats(short slaveIndex) 获取从站端口错误统计指针 -
updateDiagnosticsWithESCErrors
public void updateDiagnosticsWithESCErrors()使用 ESC 错误更新诊断数据 -
PDOStats
public com.sun.jna.Pointer PDOStats(short slaveIndex) 获取 PDO 统计信息指针 -
resetPDOStats
public void resetPDOStats(short slaveIndex) 重置 PDO 统计 -
pdoReadDirect
public boolean pdoReadDirect(short slaveIndex, short pdoIndex, com.sun.jna.Pointer dataBuffer, int bufferSize, com.sun.jna.ptr.IntByReference bytesRead) PDO 直接读取 (native 返回 C boolean=uint8, 上层!= 0判真) -
pdoWriteDirect
public boolean pdoWriteDirect(short slaveIndex, short pdoIndex, com.sun.jna.Pointer dataBuffer, int dataSize) PDO 直接写入 (native 返回 C boolean=uint8, 上层!= 0判真) -
pdoBatchRead
public int pdoBatchRead(short[] slaveIndices, int slaveCount, com.sun.jna.Pointer[] dataBuffers, int[] bufferSizes, int[] bytesRead) PDO 批量读取 -
pdoBatchWrite
public int pdoBatchWrite(short[] slaveIndices, int slaveCount, com.sun.jna.Pointer[] dataBuffers, int[] dataSizes) PDO 批量写入 -
getPDOMapping
public boolean getPDOMapping(short slaveIndex, short pdoType, com.sun.jna.Pointer mappingBuffer, int bufferSize, com.sun.jna.ptr.IntByReference mappingCount) 获取 PDO 映射 (native 返回 C boolean=uint8, 上层!= 0判真) -
verifyAllSlaveIdentities
public boolean verifyAllSlaveIdentities(DarraCore.SlaveIdentity[] expectedIdentities, int slaveCount, boolean checkRevision, boolean checkSerial, long[] mismatchMask) 批量验证所有从站身份 -
setUdpMode
public boolean setUdpMode(boolean enable) 设置 UDP 模式 -
UdpMode
public boolean UdpMode()获取 UDP 模式 -
isUdpAvailable
public boolean isUdpAvailable()检查 UDP 是否可用 -
abortScan
public static void abortScan() -
resetScanAbort
public static void resetScanAbort() -
emergencyCloseNics
public static void emergencyCloseNics() -
exportPerfCsv
-
scanSlaveCount
扫描指定网卡上的从站数量 (完整扫描).[审计修复] 原 ScanSlaveCount 在 DLL 已删除; 改用 ScanSlaveInfo 单端口模式 (secondary=null).
-
scanSlaveCountRedundant
扫描冗余网卡对上的从站数量 (完整扫描, 环形拓扑).[审计修复 roundSDKSAN2] 原 ScanSlaveCountRedundant 在 DLL 已删除; 改用 ScanSlaveInfo 传主+副网卡 (与 C# DLL.ScanSlaveInfo 一致).
-
quickSlaveCountRedundant
快速检测冗余网卡对上的从站数量.[审计修复 roundSDKSAN2] 原 QuickSlaveCountRedundant 在 DLL 已删除; 用 quickFindRedundantPairBatch 批量探测取总数 (返回数组 [slaveCount,...]).
-
readSlaveInfo
-
getScannedSlaveCount
public static int getScannedSlaveCount() -
getScannedSlaveInfo
public static boolean getScannedSlaveInfo(int index, com.sun.jna.ptr.IntByReference vendorId, com.sun.jna.ptr.IntByReference productCode, com.sun.jna.ptr.IntByReference revision, com.sun.jna.ptr.IntByReference serial, byte[] name, int nameSize, com.sun.jna.ptr.ShortByReference configAddr, com.sun.jna.ptr.ShortByReference aliasAddr, com.sun.jna.ptr.ShortByReference parent, com.sun.jna.ptr.ByteByReference topology, com.sun.jna.ptr.ByteByReference activePorts, com.sun.jna.ptr.ByteByReference entryPort, com.sun.jna.ptr.ByteByReference parentPort, com.sun.jna.ptr.ByteByReference ptype) -
quickFindRedundantPairBatch
批量探测冗余配对 -
getRingSlaveCount
public static int getRingSlaveCount() -
setPDOLogging
public static void setPDOLogging(boolean enable) -
setMailboxLogging
public static void setMailboxLogging(boolean enable) -
setDebugLogging
public static void setDebugLogging(boolean enable) -
enablePDOLogging
public static void enablePDOLogging(boolean enable) -
enableMailboxLogging
public static void enableMailboxLogging(boolean enable) -
enableDebugLogging
public static void enableDebugLogging(boolean enable) -
setLogCallback
-
setCrashCallback
-
registerPdoCyclicCallbackSync
-
registerStateChangeCallbackSync
-
registerStateChangeCallbackAsync
-
registerEmergencyEventCallback
-
registerDiscoveryCallbackSync
-
registerDiscoveryCallbackAsync
-
registerRedundancyModeChangedCallback
-
registerPDOFrameLossCallback
-
registerSlavePreOpReconfigCallback
-
setDCSyncLostCallback
-
setFoEProgressHook
-
clearFoEProgressHook
public boolean clearFoEProgressHook() -
verifyLicense
public boolean verifyLicense() -
invalidateLicense
public void invalidateLicense() -
isLicenseValid
public boolean isLicenseValid() -
getSerialNumber
-
getDeviceName
-
getUserEmail
-
getWindowsProductKey
-
getDriverList
-
getDllVersion
-
getAvailableCpuCores
public static int getAvailableCpuCores() -
getMaxMasterInstances
public static int getMaxMasterInstances() -
Topology
获取网络拓扑节点列表 -
TopologyChildren
获取指定从站的子节点编号列表 -
TopologyRoots
获取拓扑根节点编号列表 -
rebuildTopology
public void rebuildTopology()重建拓扑结构 -
resetAllSyncWindowStats
public void resetAllSyncWindowStats()重置所有从站的同步窗口统计 -
getActiveInstanceCount
public static int getActiveInstanceCount() -
getMaxInstanceCount
public static int getMaxInstanceCount() -
isAdapterAvailable
-
enablePDOMonitoring
public static void enablePDOMonitoring(boolean enable) 启用/禁用 PDO 监控.[审计修复 roundSDKSAN2]
EnablePDOMonitoring已由运行库导出, 原"未导出死声明"注释为陈旧错误信息. native 形参为 C boolean(uint8), Java 经 byte 传递 (1=启用, 0=禁用) 锁 1 字节宽度.- 参数:
enable- true=启用, false=禁用
-
isPDOMonitoringEnabled
public static boolean isPDOMonitoringEnabled()获取 PDO 监控是否已启用.[审计修复 roundSDKSAN2]
IsPDOMonitoringEnabled已由运行库导出. native 返回 C boolean(uint8), Java 经 byte 取回,!= 0判真.- 返回:
- 是否已启用, DLL 未加载返回 false
-
GetMasterIdentity
获取主站身份信息 (ETG.1510 对象 0x1018)- 返回:
- 主站身份信息, 失败返回 null
-
GetMasterDiagData
获取主站诊断数据 (ETG.1510 对象 0xF120)- 返回:
- 主站诊断数据, 失败返回 null
-
close
public void close()- 指定者:
close在接口中AutoCloseable
-
Deconstruct
解构赋值 (对应 C# Deconstruct)- 返回:
- BuildResult 包含主站构建状态
-
Validate
验证配置是否完整, 不执行 Build 在调用 build() 前可先调用此方法预检查配置- 返回:
- ValidationResult 包含验证结果和错误信息
-
setENI
设置 ENI/DENI 配置文件路径 (延迟配置, Build 时生效) 对应 C# SetENI()- 参数:
path- ENI/DENI 配置文件路径- 返回:
- 当前实例, 支持链式调用
-
setEsiFile
设置单个 ESI 文件路径 (延迟配置, Build 时生效) 可多次调用添加多个 ESI 文件 对应 C# SetEsiFile()- 参数:
path- ESI 文件路径- 返回:
- 当前实例, 支持链式调用
-
setEsiFiles
设置 ESI 文件目录路径 (延迟配置, Build 时生效) 加载目录下所有 ESI 文件。可多次调用添加多个路径。 对应 C# SetEsiFiles()- 参数:
path- ESI 文件目录路径或单个文件路径- 返回:
- 当前实例, 支持链式调用
-
enableAutoStartup
启用自动启动配置 (Build 时执行) 已有启动参数的从站 (ENI/DENI 已配置) 会被跳过, 仅对未配置的从站生效。 对应 C# EnableAutoStartup()- 返回:
- 当前实例, 支持链式调用
-
build
构建并初始化主站 (终结方法) 对应 C# Build()执行流程: 验证配置 → 加载 ENI → 设置网口 → 扫描从站 → 自动配置
推荐用法:
EtherCATMaster master = EtherCATMaster.create(); BuildResult result = master .SetNetwork("\\Device\\NPF_{...}") .setENI("config.xml") .enableAutoStartup() .build(); if (result.success) { ... }- 返回:
- BuildResult 包含主站实例、从站数量和状态消息
-
PdoLostFrames
public int PdoLostFrames()获取 PDO 总丢帧数 (对应 C# PdoLostFrames) -
PdoConsecutiveLost
public int PdoConsecutiveLost()获取当前连续丢帧数 (对应 C# PdoConsecutiveLost) -
PdoMaxConsecutiveLost
public int PdoMaxConsecutiveLost()获取历史最大连续丢帧数 (对应 C# PdoMaxConsecutiveLost) -
toString
-