类 SlavePdo

java.lang.Object
com.darra.ethercat.slave.SlavePdo

public class SlavePdo extends Object
从站 PDO (过程数据对象) 封装类 对齐 C# Slave/SlavePdo.cs: Inputs, Outputs, 类型化 PDO 读写
  • 构造器概要

    构造器
    构造器
    说明
    SlavePdo(short masterIndex, short slaveIndex)
     
  • 方法概要

    修饰符和类型
    方法
    说明
    <T extends com.sun.jna.Structure>
    T
    BindPdoStruct(Class<T> structType, boolean isInput)
    将 PDO 映射绑定到 JNA Structure (对应 C# BindPdoStruct) 直接将 IOmap 中的 PDO 数据区映射为 JNA Structure 类型, 实现零拷贝的结构化访问。
    byte
    获取组周期分频器
    获取输入数据的 ByteBuffer (零拷贝) 对应 C# InputsMapping / Python get_input_memoryview
    获取输出数据的 ByteBuffer (零拷贝) 对应 C# OutputsMapping / Python get_output_memoryview
    byte[]
    GetPDOMapping(short pdoType)
    获取 PDO 映射信息
    byte[]
    获取输入 PDO 数据 (TxPDO, 从站到主站) 每次访问都从 IOmap 读取最新数据
    获取输入 PDO 映射信息 对应 C# InputsMapping
    InputsSliceMapping(int offset, int size)
    获取输入切片 ByteBuffer (偏移访问) 对应 C# InputsSliceMapping
    void
    锁定 IOmap (PDO 数据读写前调用) 对齐 C# DarraEtherCAT.LockIOmap
    byte[]
    获取输出 PDO 数据 (RxPDO, 主站到从站) - 读取
    void
    Outputs(byte[] data)
    设置输出 PDO 数据 (RxPDO, 主站到从站) - 写入
    获取输出 PDO 映射信息 对应 C# OutputsMapping
    OutputsSliceMapping(int offset, int size)
    获取输出切片 ByteBuffer (偏移访问) 对应 C# OutputsSliceMapping
    byte[]
    PDOReadDirect(short pdoIndex, int dataSize)
    高性能直接读取 PDO 数据 对齐 C# PDOManager.ReadPDO / DLL.PDOReadDirect
    boolean
    PDOWriteDirect(short pdoIndex, byte[] data)
    高性能直接写入 PDO 数据 对齐 C# PDOManager.WritePDO / DLL.PDOWriteDirect
    float
    ReadInputF32(int offset)
    读取输入 Float (零拷贝)
    double
    ReadInputF64(int offset)
    读取输入 Double (零拷贝)
    short
    ReadInputI16(int offset)
    读取输入 I16 (零拷贝)
    int
    ReadInputI32(int offset)
    读取输入 I32 (零拷贝)
    long
    ReadInputI64(int offset)
    读取输入 I64 (零拷贝)
    int
    ReadInputU16(int offset)
    读取输入 U16 (零拷贝)
    long
    ReadInputU32(int offset)
    读取输入 U32 (零拷贝)
    byte
    ReadInputU8(int offset)
    读取输入 U8 (零拷贝, 直接从 IOmap 读取)
    ReadString(int offset, int maxLength)
    从输入 PDO 读取字符串 (零拷贝)
    boolean
    SetGroupCycleDivider(byte group, byte divider)
    设置组周期分频器
    void
    SetMutexProtection(boolean enable)
    设置 Mutex 保护 对齐 C# MasterConfig.MutexProtection
    void
    启动 PDO 监控 (默认 100ms 间隔)
    void
    StartMonitoring(int updateIntervalMs)
    启动 PDO 监控 对齐 C# PDOManager.StartMonitoring
    void
    停止 PDO 监控 对齐 C# PDOManager.StopMonitoring
    void
    解锁 IOmap, 与 LockIOmap 配对使用 对齐 C# DarraEtherCAT.UnlockIOmap
    boolean
    WriteOutputF32(int offset, float value)
    写入输出 Float (零拷贝)
    boolean
    WriteOutputF64(int offset, double value)
    写入输出 Double (零拷贝)
    boolean
    WriteOutputI16(int offset, short value)
    写入输出 I16 (零拷贝)
    boolean
    WriteOutputI32(int offset, int value)
    写入输出 I32 (零拷贝)
    boolean
    WriteOutputI64(int offset, long value)
    写入输出 I64 (零拷贝)
    boolean
    WriteOutputU8(int offset, byte value)
    写入输出 U8 (零拷贝, 直接写入 IOmap)
    boolean
    WriteString(int offset, String value, int maxLength)
    向输出 PDO 写入字符串 (零拷贝)

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

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

    • 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

      public ByteBuffer GetInputByteBuffer()
      获取输入数据的 ByteBuffer (零拷贝) 对应 C# InputsMapping / Python get_input_memoryview
    • GetOutputByteBuffer

      public ByteBuffer GetOutputByteBuffer()
      获取输出数据的 ByteBuffer (零拷贝) 对应 C# OutputsMapping / Python get_output_memoryview
    • InputsMappingInfo

      public Map<String,Object> InputsMappingInfo()
      获取输入 PDO 映射信息 对应 C# InputsMapping
    • OutputsMappingInfo

      public Map<String,Object> OutputsMappingInfo()
      获取输出 PDO 映射信息 对应 C# OutputsMapping
    • InputsSliceMapping

      public ByteBuffer InputsSliceMapping(int offset, int size)
      获取输入切片 ByteBuffer (偏移访问) 对应 C# InputsSliceMapping
    • OutputsSliceMapping

      public ByteBuffer OutputsSliceMapping(int offset, int size)
      获取输出切片 ByteBuffer (偏移访问) 对应 C# OutputsSliceMapping
    • BindPdoStruct

      public <T extends com.sun.jna.Structure> T BindPdoStruct(Class<T> structType, boolean isInput)
      将 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

      public String ReadString(int offset, int maxLength)
      从输入 PDO 读取字符串 (零拷贝)
      参数:
      offset - 起始偏移
      maxLength - 最大长度
      返回:
      字符串, 失败返回 null
    • WriteString

      public boolean WriteString(int offset, String value, int maxLength)
      向输出 PDO 写入字符串 (零拷贝)
      参数:
      offset - 起始偏移
      value - 字符串值
      maxLength - 最大长度 (包含 NUL 终止符)
      返回:
      成功返回 true
    • GetGroupCycleDivider

      public byte GetGroupCycleDivider(byte group)
      获取组周期分频器
      参数:
      group - 组编号
      返回:
      分频器值
    • SetGroupCycleDivider

      public boolean SetGroupCycleDivider(byte group, byte divider)
      设置组周期分频器
      参数:
      group - 组编号
      divider - 分频器值
      返回:
      成功返回 true