类 SlavePdo
java.lang.Object
com.darra.ethercat.slave.SlavePdo
从站 PDO (过程数据对象) 封装类
对齐 C# Slave/SlavePdo.cs: Inputs, Outputs, 类型化 PDO 读写
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明<T extends com.sun.jna.Structure>
TBindPdoStruct(Class<T> structType, boolean isInput) 将 PDO 映射绑定到 JNA Structure (对应 C# BindPdoStruct) 直接将 IOmap 中的 PDO 数据区映射为 JNA Structure 类型, 实现零拷贝的结构化访问。byteGetGroupCycleDivider(byte group) 获取组周期分频器获取输入数据的 ByteBuffer (零拷贝) 对应 C# InputsMapping / Python get_input_memoryview获取输出数据的 ByteBuffer (零拷贝) 对应 C# OutputsMapping / Python get_output_memoryviewbyte[]GetPDOMapping(short pdoType) 获取 PDO 映射信息byte[]Inputs()获取输入 PDO 数据 (TxPDO, 从站到主站) 每次访问都从 IOmap 读取最新数据获取输入 PDO 映射信息 对应 C# InputsMappingInputsSliceMapping(int offset, int size) 获取输入切片 ByteBuffer (偏移访问) 对应 C# InputsSliceMappingvoid锁定 IOmap (PDO 数据读写前调用) 对齐 C# DarraEtherCAT.LockIOmapbyte[]Outputs()获取输出 PDO 数据 (RxPDO, 主站到从站) - 读取voidOutputs(byte[] data) 设置输出 PDO 数据 (RxPDO, 主站到从站) - 写入获取输出 PDO 映射信息 对应 C# OutputsMappingOutputsSliceMapping(int offset, int size) 获取输出切片 ByteBuffer (偏移访问) 对应 C# OutputsSliceMappingbyte[]PDOReadDirect(short pdoIndex, int dataSize) 高性能直接读取 PDO 数据 对齐 C# PDOManager.ReadPDO / DLL.PDOReadDirectbooleanPDOWriteDirect(short pdoIndex, byte[] data) 高性能直接写入 PDO 数据 对齐 C# PDOManager.WritePDO / DLL.PDOWriteDirectfloatReadInputF32(int offset) 读取输入 Float (零拷贝)doubleReadInputF64(int offset) 读取输入 Double (零拷贝)shortReadInputI16(int offset) 读取输入 I16 (零拷贝)intReadInputI32(int offset) 读取输入 I32 (零拷贝)longReadInputI64(int offset) 读取输入 I64 (零拷贝)intReadInputU16(int offset) 读取输入 U16 (零拷贝)longReadInputU32(int offset) 读取输入 U32 (零拷贝)byteReadInputU8(int offset) 读取输入 U8 (零拷贝, 直接从 IOmap 读取)ReadString(int offset, int maxLength) 从输入 PDO 读取字符串 (零拷贝)booleanSetGroupCycleDivider(byte group, byte divider) 设置组周期分频器voidSetMutexProtection(boolean enable) 设置 Mutex 保护 对齐 C# MasterConfig.MutexProtectionvoid启动 PDO 监控 (默认 100ms 间隔)voidStartMonitoring(int updateIntervalMs) 启动 PDO 监控 对齐 C# PDOManager.StartMonitoringvoid停止 PDO 监控 对齐 C# PDOManager.StopMonitoringvoid解锁 IOmap, 与 LockIOmap 配对使用 对齐 C# DarraEtherCAT.UnlockIOmapbooleanWriteOutputF32(int offset, float value) 写入输出 Float (零拷贝)booleanWriteOutputF64(int offset, double value) 写入输出 Double (零拷贝)booleanWriteOutputI16(int offset, short value) 写入输出 I16 (零拷贝)booleanWriteOutputI32(int offset, int value) 写入输出 I32 (零拷贝)booleanWriteOutputI64(int offset, long value) 写入输出 I64 (零拷贝)booleanWriteOutputU8(int offset, byte value) 写入输出 U8 (零拷贝, 直接写入 IOmap)booleanWriteString(int offset, String value, int maxLength) 向输出 PDO 写入字符串 (零拷贝)
-
构造器详细资料
-
SlavePdo
public SlavePdo(short masterIndex, short slaveIndex)
-
-
方法详细资料
-
Inputs
public byte[] Inputs()获取输入 PDO 数据 (TxPDO, 从站到主站) 每次访问都从 IOmap 读取最新数据 -
Outputs
public byte[] Outputs()获取输出 PDO 数据 (RxPDO, 主站到从站) - 读取 -
Outputs
public void Outputs(byte[] data) 设置输出 PDO 数据 (RxPDO, 主站到从站) - 写入 -
ReadInputU8
public byte ReadInputU8(int offset) 读取输入 U8 (零拷贝, 直接从 IOmap 读取) -
ReadInputI16
public short ReadInputI16(int offset) 读取输入 I16 (零拷贝) -
ReadInputU16
public int ReadInputU16(int offset) 读取输入 U16 (零拷贝) -
ReadInputI32
public int ReadInputI32(int offset) 读取输入 I32 (零拷贝) -
ReadInputU32
public long ReadInputU32(int offset) 读取输入 U32 (零拷贝) -
ReadInputI64
public long ReadInputI64(int offset) 读取输入 I64 (零拷贝) -
ReadInputF32
public float ReadInputF32(int offset) 读取输入 Float (零拷贝) -
ReadInputF64
public double ReadInputF64(int offset) 读取输入 Double (零拷贝) -
WriteOutputU8
public boolean WriteOutputU8(int offset, byte value) 写入输出 U8 (零拷贝, 直接写入 IOmap) -
WriteOutputI16
public boolean WriteOutputI16(int offset, short value) 写入输出 I16 (零拷贝) -
WriteOutputI32
public boolean WriteOutputI32(int offset, int value) 写入输出 I32 (零拷贝) -
WriteOutputI64
public boolean WriteOutputI64(int offset, long value) 写入输出 I64 (零拷贝) -
WriteOutputF32
public boolean WriteOutputF32(int offset, float value) 写入输出 Float (零拷贝) -
WriteOutputF64
public boolean WriteOutputF64(int offset, double value) 写入输出 Double (零拷贝) -
GetInputByteBuffer
获取输入数据的 ByteBuffer (零拷贝) 对应 C# InputsMapping / Python get_input_memoryview -
GetOutputByteBuffer
获取输出数据的 ByteBuffer (零拷贝) 对应 C# OutputsMapping / Python get_output_memoryview -
InputsMappingInfo
获取输入 PDO 映射信息 对应 C# InputsMapping -
OutputsMappingInfo
获取输出 PDO 映射信息 对应 C# OutputsMapping -
InputsSliceMapping
获取输入切片 ByteBuffer (偏移访问) 对应 C# InputsSliceMapping -
OutputsSliceMapping
获取输出切片 ByteBuffer (偏移访问) 对应 C# OutputsSliceMapping -
BindPdoStruct
将 PDO 映射绑定到 JNA Structure (对应 C# BindPdoStruct) 直接将 IOmap 中的 PDO 数据区映射为 JNA Structure 类型, 实现零拷贝的结构化访问。- 类型参数:
T- Structure 类型- 参数:
structType- JNA Structure 子类isInput- true=绑定输入数据, false=绑定输出数据- 返回:
- 绑定的 Structure 实例, 失败返回 null
-
StartMonitoring
public void StartMonitoring(int updateIntervalMs) 启动 PDO 监控 对齐 C# PDOManager.StartMonitoring- 参数:
updateIntervalMs- 监控更新间隔 (毫秒)
-
StartMonitoring
public void StartMonitoring()启动 PDO 监控 (默认 100ms 间隔) -
StopMonitoring
public void StopMonitoring()停止 PDO 监控 对齐 C# PDOManager.StopMonitoring -
GetPDOMapping
public byte[] GetPDOMapping(short pdoType) 获取 PDO 映射信息- 参数:
pdoType- PDO 类型 (0=TxPDO/输入, 1=RxPDO/输出)- 返回:
- 映射数据, 失败返回 null
-
LockIOmap
public void LockIOmap()锁定 IOmap (PDO 数据读写前调用) 对齐 C# DarraEtherCAT.LockIOmap -
UnlockIOmap
public void UnlockIOmap()解锁 IOmap, 与 LockIOmap 配对使用 对齐 C# DarraEtherCAT.UnlockIOmap -
SetMutexProtection
public void SetMutexProtection(boolean enable) 设置 Mutex 保护 对齐 C# MasterConfig.MutexProtection- 参数:
enable- 是否启用
-
PDOReadDirect
public byte[] PDOReadDirect(short pdoIndex, int dataSize) 高性能直接读取 PDO 数据 对齐 C# PDOManager.ReadPDO / DLL.PDOReadDirect- 参数:
pdoIndex- PDO 索引dataSize- 期望数据大小- 返回:
- PDO 数据, 失败返回 null
-
PDOWriteDirect
public boolean PDOWriteDirect(short pdoIndex, byte[] data) 高性能直接写入 PDO 数据 对齐 C# PDOManager.WritePDO / DLL.PDOWriteDirect- 参数:
pdoIndex- PDO 索引data- 要写入的数据- 返回:
- 成功返回 true
-
ReadString
从输入 PDO 读取字符串 (零拷贝)- 参数:
offset- 起始偏移maxLength- 最大长度- 返回:
- 字符串, 失败返回 null
-
WriteString
向输出 PDO 写入字符串 (零拷贝)- 参数:
offset- 起始偏移value- 字符串值maxLength- 最大长度 (包含 NUL 终止符)- 返回:
- 成功返回 true
-
GetGroupCycleDivider
public byte GetGroupCycleDivider(byte group) 获取组周期分频器- 参数:
group- 组编号- 返回:
- 分频器值
-
SetGroupCycleDivider
public boolean SetGroupCycleDivider(byte group, byte divider) 设置组周期分频器- 参数:
group- 组编号divider- 分频器值- 返回:
- 成功返回 true
-