类 ProtocolCodes
java.lang.Object
com.darra.ethercat.statics.ProtocolCodes
协议解码 / 错误码表 Java 友好封装.
对齐 C# Static/ProtocolCodes.cs (协议解码下沉到运行库). roundSDKSAN2.
所有原生函数返回的字符串均为 UTF-8 (const char*), 经 JNA Pointer 解码.
Java 调用方使用纯 Java 类型 (int/long/byte/byte[]/short[]), 无需直接接触 JNA Pointer.
覆盖 10 个协议头: AL_StatusCode (4) / SDO_Abort (4) / EMCY (5) / ESM 状态机 (8) / PDO Codec (16) / CiA402 (13) / Mailbox (5) / SII (19) / Coupler ID (6) / DiagStrings (4) — 共 84 个 wrapper 方法 (含重载).
-
嵌套类概要
嵌套类 -
方法概要
修饰符和类型方法说明static StringalStatusDescription(int code) AL Status Code 中文描述.static booleanalStatusIsVendorSpecific(int code) AL Status Code 是否为厂商专有码.static StringalStatusRecoveryHint(int code) AL Status Code 恢复建议.static intalStatusSeverity(int code) AL Status Code 严重等级 (0=Info, 1=Warning, 2=Error, 3=Fatal).static byte[]cia402ExpandSupportedMask(long mask) 展开 0x6502 掩码为支持的模式数组.static intcia402GetHomingDirection(int method) 回零方向 (1=Positive, -1=Negative, 0=未指定).static Stringcia402GetHomingMethodName(int method) 回零方法名称.static intcia402GetHomingTrigger(int method) 回零触发源 (0=Index/1=PositiveLimit/2=NegativeLimit/3=HomeSwitch).static Stringcia402GetModeDescription(int mode) 模式详细描述.static Stringcia402GetModeName(int mode) 模式中文名 (-3=循环同步力矩, 1=PP, 6=HM, 8=CSP 等).static Stringcia402GetModeNameEn(int mode) 模式英文名 (CSP/CSV/CST/PP/PV/HM 等).static booleancia402IsCyclicSyncMode(int mode) 是否为循环同步模式 (CSP/CSV/CST: 8/9/10).static booleancia402IsModeSupportedInMask(long mask, int mode) 0x6502 掩码中是否启用了指定模式.static booleancia402IsStandardHomingMethod(int method) 是否为标准回零方法 (1..35, CiA402-2).static byte[]列出所有标准回零方法编号.static intcia402ModeToSupportedBit(int mode) CiA402 操作模式 → SupportedDriveModes (0x6502) 位掩码索引 (-1 表示不支持).static booleancia402RequiresDC(int mode) 是否需 DC 时钟同步 (循环同步模式必需).static intcouplerDetectDeviceType(long vendorId, long productCode) 探测设备类型 (0=Unknown, 1=Coupler, 2=Terminal, 3=Drive, 4=Bridge ...).static StringcouplerDeviceTypeName(int type) 设备类型名称 (耦合器/端子/驱动器/...).static booleancouplerIsCoupler(long vendorId, long productCode) 是否为耦合器 (EK1100/EK1110/...).static booleancouplerIsTerminal(long vendorId, long productCode) 是否为 IO 端子 (EL1xxx/EL2xxx 等).static StringcouplerVendorName(long vendorId) 厂商中文名.static StringcouplerVendorNameEn(long vendorId) 厂商英文名 (Beckhoff/Omron/Delta 等).static StringdiagBreakpointType(int bp) 断点类型描述 (热插拔诊断/链路重连等).static StringdiagFormatBreakpoint(int slaveIdx, int port, int bp) 格式化断点报告字符串.static StringdiagTimingMode(long mode) DC 时钟同步模式描述 (0=自由运行, 1=SM 同步, 2=DC 同步等).static StringdiagTopologyDescription(int topo) 拓扑图字段中文描述.static StringecStateGetName(int state) 状态名称 (中文).static StringecStateGetNameEn(int state) 状态名称 (英文 INIT/PREOP/SAFEOP/OP/BOOT).static short[]ecStateGetTransitionPath(int from, int to) 获取状态转换路径 (中间状态序列).static intecStateGetTransitionType(int from, int to) 状态转换类型 (0=Direct, 1=Multi-step, -1=Invalid).static booleanecStateHasErrorAck(int state) 状态字段是否带 ErrorAck 位 (0x10).static booleanecStateIsBootstrapRequired(int state) 是否需先进入 BOOT 状态 (用于 FoE 固件升级).static booleanecStateIsValidTransition(int from, int to) 状态转换是否合法.static intecStateStripErrorAck(int state) 去掉 ErrorAck 位返回纯状态值.static intemcyClass(int errorCode) EMCY 错误码所属大类 (0x00=Reset, 0x10=Generic, 0x20=Current, ...).static StringemcyClassName(int classCode) EMCY 大类名称.static StringemcyDescription(int errorCode) EMCY 错误码中文描述.static StringemcyFormatErrorRegister(int errorRegister) 格式化 EMCY 错误寄存器位 (Object 0x1001 8 个 bit).static booleanemcyIsRecovery(int errorCode) EMCY 是否为恢复消息 (0x0000 表示错误已恢复).static StringmailboxErrorDescription(int mbxErrorCode) 邮箱错误码描述 (Syntax/Unsupported/InvalidHeader/...).static intmailboxNextCounter(int current) 邮箱计数器递增 (1..7 循环, 0 保留).static StringmailboxTypeName(int type) 邮箱类型中文名 (0=AoE, 1=EoE, 2=CoE, 3=FoE, 4=SoE, 5=VoE, ...).static StringmailboxTypeNameEn(int type) 邮箱类型英文名 (AoE/EoE/CoE/FoE/SoE/VoE).static intpdoCountActivePorts(int activePorts) 端口活动数 (DL_Status 的 portX_status 计数).static intpdoDataTypeBitSize(int dataType) EtherCAT 数据类型 bit 长度 (BOOL=1, BYTE=8, INT16=16, REAL32=32, ...).static StringpdoDataTypeName(int dataType) EtherCAT 数据类型名称 (BOOL/UINT16/REAL32 等).static longpdoExtractI64(byte[] src, int bitOffset, int bitLength) 从 PDO 缓冲区按位提取有符号整数 (1..64 bit).static floatpdoExtractReal32(byte[] src, int bitOffset) 提取 REAL32 (IEEE 754 单精度浮点).static doublepdoExtractReal64(byte[] src, int bitOffset) 提取 REAL64 (IEEE 754 双精度浮点).static longpdoExtractU64(byte[] src, int bitOffset, int bitLength) 从 PDO 缓冲区按位提取无符号整数 (1..64 bit).static intpdoGetTopology(int activePorts) 由 active_ports 推断从站拓扑. 0=终点(线尾), 1=直通, 2=分支(两个出口), 3=三分支static StringpdoGetTopologyName(int topo) 拓扑名称 (中文).static StringpdoGetTopologyNameEn(int topo) 拓扑名称 (英文 line/branch/cross).static booleanpdoInsertI64(byte[] dst, int bitOffset, int bitLength, long value) 写入有符号整数到 PDO 缓冲区.static booleanpdoInsertReal32(byte[] dst, int bitOffset, float value) 写入 REAL32 (IEEE 754 单精度).static booleanpdoInsertReal64(byte[] dst, int bitOffset, double value) 写入 REAL64 (IEEE 754 双精度).static booleanpdoInsertU64(byte[] dst, int bitOffset, int bitLength, long value) 写入无符号整数到 PDO 缓冲区.static booleanpdoIsPortActive(int activePorts, int port) 指定端口是否激活 (port=0..3).static intsdoAbortCategory(long abortCode) SDO Abort Code 分类 (0=访问/1=参数/2=对象/3=数据等).static StringsdoAbortDescription(long abortCode) SDO Abort Code 中文描述.static StringsdoAbortHint(long abortCode) SDO Abort Code 处理建议.static booleansdoAbortIsRetryable(long abortCode) SDO Abort Code 是否可重试 (true=瞬时错误可重试).static booleansiiCoeCompleteAccess(int coeDetails) CoE Details bit5: Complete Access (整对象 SDO).static booleansiiCoeEnabled(int coeDetails) CoE Details bit0: CoE 启用.static booleansiiCoePdoAssign(int coeDetails) CoE Details bit2: PDO Assign (0x1C12/0x1C13) 支持.static booleansiiCoePdoConfig(int coeDetails) CoE Details bit3: PDO Configuration (0x1600.../0x1A00...)static booleansiiCoeSdoInfo(int coeDetails) CoE Details bit1: SDO Info 服务支持.static booleansiiCoeUploadAtStartup(int coeDetails) CoE Details bit4: Upload at Startup.static short[]siiEnumerateCategories(byte[] siiData) 枚举 SII 中所有类别类型, 返回 short 数组.static booleansiiEoeEnabled(int eoeDetails) EoE Details bit0: EoE 启用.static ProtocolCodes.SiiCategorysiiFindCategory(byte[] siiData, int catType) 在 SII 数据中查找指定类别.static booleansiiFoeEnabled(int foeDetails) FoE Details bit0: FoE 启用.static intsiiGetConfiguredAlias(byte[] siiData) 配置别名 (ConfiguredStation Alias, word 0x0004).static longsiiGetProductCode(byte[] siiData) 从 SII 头读取 ProductCode (word 0x000A).static longsiiGetRevision(byte[] siiData) 从 SII 头读取 RevisionNumber (word 0x000C).static longsiiGetSerialNumber(byte[] siiData) 从 SII 头读取 SerialNumber (word 0x000E).static StringsiiGetStringByIndex(byte[] catData, int idx) 从字符串类别 (cat 10) 中按索引读取字符串 (1-based, idx=1 是第一个).static intsiiGetStringCount(byte[] catData) 字符串类别中的字符串总数.static longsiiGetVendorId(byte[] siiData) 从 SII 头读取 VendorId (word 0x0008).static StringsoeErrorDescription(int soeError) SoE (Servo Drive Profile) 错误码描述.
-
方法详细资料
-
alStatusDescription
AL Status Code 中文描述. -
alStatusSeverity
public static int alStatusSeverity(int code) AL Status Code 严重等级 (0=Info, 1=Warning, 2=Error, 3=Fatal). -
alStatusRecoveryHint
AL Status Code 恢复建议. -
alStatusIsVendorSpecific
public static boolean alStatusIsVendorSpecific(int code) AL Status Code 是否为厂商专有码. -
sdoAbortDescription
SDO Abort Code 中文描述. -
sdoAbortCategory
public static int sdoAbortCategory(long abortCode) SDO Abort Code 分类 (0=访问/1=参数/2=对象/3=数据等). -
sdoAbortIsRetryable
public static boolean sdoAbortIsRetryable(long abortCode) SDO Abort Code 是否可重试 (true=瞬时错误可重试). -
sdoAbortHint
SDO Abort Code 处理建议. -
emcyDescription
EMCY 错误码中文描述. -
emcyClass
public static int emcyClass(int errorCode) EMCY 错误码所属大类 (0x00=Reset, 0x10=Generic, 0x20=Current, ...). -
emcyClassName
EMCY 大类名称. -
emcyFormatErrorRegister
格式化 EMCY 错误寄存器位 (Object 0x1001 8 个 bit).- 参数:
errorRegister- 错误寄存器值- 返回:
- 已置位错误的中文描述, 例如 "通用 | 电流 | 制造商专有"
-
emcyIsRecovery
public static boolean emcyIsRecovery(int errorCode) EMCY 是否为恢复消息 (0x0000 表示错误已恢复). -
ecStateIsValidTransition
public static boolean ecStateIsValidTransition(int from, int to) 状态转换是否合法. -
ecStateGetTransitionType
public static int ecStateGetTransitionType(int from, int to) 状态转换类型 (0=Direct, 1=Multi-step, -1=Invalid). -
ecStateGetTransitionPath
public static short[] ecStateGetTransitionPath(int from, int to) 获取状态转换路径 (中间状态序列).- 返回:
- 路径 short 数组, 长度=转换步数; 例如 INIT→OP 返回 {INIT, PREOP, SAFEOP, OP}
-
ecStateIsBootstrapRequired
public static boolean ecStateIsBootstrapRequired(int state) 是否需先进入 BOOT 状态 (用于 FoE 固件升级). -
ecStateGetName
状态名称 (中文). -
ecStateGetNameEn
状态名称 (英文 INIT/PREOP/SAFEOP/OP/BOOT). -
ecStateHasErrorAck
public static boolean ecStateHasErrorAck(int state) 状态字段是否带 ErrorAck 位 (0x10). -
ecStateStripErrorAck
public static int ecStateStripErrorAck(int state) 去掉 ErrorAck 位返回纯状态值. -
pdoDataTypeBitSize
public static int pdoDataTypeBitSize(int dataType) EtherCAT 数据类型 bit 长度 (BOOL=1, BYTE=8, INT16=16, REAL32=32, ...). -
pdoDataTypeName
EtherCAT 数据类型名称 (BOOL/UINT16/REAL32 等). -
pdoExtractU64
public static long pdoExtractU64(byte[] src, int bitOffset, int bitLength) 从 PDO 缓冲区按位提取无符号整数 (1..64 bit). 注意: 底层 C 函数 EcPdoCodec_ExtractU64 返回 0=成功, 非 0=错误码. -
pdoExtractI64
public static long pdoExtractI64(byte[] src, int bitOffset, int bitLength) 从 PDO 缓冲区按位提取有符号整数 (1..64 bit). -
pdoInsertU64
public static boolean pdoInsertU64(byte[] dst, int bitOffset, int bitLength, long value) 写入无符号整数到 PDO 缓冲区. @return true 成功 (底层 rc==0). -
pdoInsertI64
public static boolean pdoInsertI64(byte[] dst, int bitOffset, int bitLength, long value) 写入有符号整数到 PDO 缓冲区. @return true 成功. -
pdoExtractReal32
public static float pdoExtractReal32(byte[] src, int bitOffset) 提取 REAL32 (IEEE 754 单精度浮点). -
pdoExtractReal64
public static double pdoExtractReal64(byte[] src, int bitOffset) 提取 REAL64 (IEEE 754 双精度浮点). -
pdoInsertReal32
public static boolean pdoInsertReal32(byte[] dst, int bitOffset, float value) 写入 REAL32 (IEEE 754 单精度). -
pdoInsertReal64
public static boolean pdoInsertReal64(byte[] dst, int bitOffset, double value) 写入 REAL64 (IEEE 754 双精度). -
pdoCountActivePorts
public static int pdoCountActivePorts(int activePorts) 端口活动数 (DL_Status 的 portX_status 计数). -
pdoGetTopology
public static int pdoGetTopology(int activePorts) 由 active_ports 推断从站拓扑. 0=终点(线尾), 1=直通, 2=分支(两个出口), 3=三分支 -
pdoGetTopologyName
拓扑名称 (中文). -
pdoGetTopologyNameEn
拓扑名称 (英文 line/branch/cross). -
pdoIsPortActive
public static boolean pdoIsPortActive(int activePorts, int port) 指定端口是否激活 (port=0..3). -
cia402ModeToSupportedBit
public static int cia402ModeToSupportedBit(int mode) CiA402 操作模式 → SupportedDriveModes (0x6502) 位掩码索引 (-1 表示不支持). -
cia402IsModeSupportedInMask
public static boolean cia402IsModeSupportedInMask(long mask, int mode) 0x6502 掩码中是否启用了指定模式. -
cia402ExpandSupportedMask
public static byte[] cia402ExpandSupportedMask(long mask) 展开 0x6502 掩码为支持的模式数组. -
cia402GetModeName
模式中文名 (-3=循环同步力矩, 1=PP, 6=HM, 8=CSP 等). -
cia402GetModeNameEn
模式英文名 (CSP/CSV/CST/PP/PV/HM 等). -
cia402GetModeDescription
模式详细描述. -
cia402IsCyclicSyncMode
public static boolean cia402IsCyclicSyncMode(int mode) 是否为循环同步模式 (CSP/CSV/CST: 8/9/10). -
cia402RequiresDC
public static boolean cia402RequiresDC(int mode) 是否需 DC 时钟同步 (循环同步模式必需). -
cia402IsStandardHomingMethod
public static boolean cia402IsStandardHomingMethod(int method) 是否为标准回零方法 (1..35, CiA402-2). -
cia402GetHomingMethodName
回零方法名称. -
cia402GetHomingTrigger
public static int cia402GetHomingTrigger(int method) 回零触发源 (0=Index/1=PositiveLimit/2=NegativeLimit/3=HomeSwitch). -
cia402GetHomingDirection
public static int cia402GetHomingDirection(int method) 回零方向 (1=Positive, -1=Negative, 0=未指定). -
cia402ListStandardHomingMethods
public static byte[] cia402ListStandardHomingMethods()列出所有标准回零方法编号. -
mailboxTypeName
邮箱类型中文名 (0=AoE, 1=EoE, 2=CoE, 3=FoE, 4=SoE, 5=VoE, ...). -
mailboxTypeNameEn
邮箱类型英文名 (AoE/EoE/CoE/FoE/SoE/VoE). -
mailboxErrorDescription
邮箱错误码描述 (Syntax/Unsupported/InvalidHeader/...). -
mailboxNextCounter
public static int mailboxNextCounter(int current) 邮箱计数器递增 (1..7 循环, 0 保留). -
soeErrorDescription
SoE (Servo Drive Profile) 错误码描述. -
siiFindCategory
在 SII 数据中查找指定类别.- 返回:
- wordOffset (-1 表示未找到), sizeBytes 为类别数据字节数
-
siiEnumerateCategories
public static short[] siiEnumerateCategories(byte[] siiData) 枚举 SII 中所有类别类型, 返回 short 数组. -
siiGetStringByIndex
从字符串类别 (cat 10) 中按索引读取字符串 (1-based, idx=1 是第一个). -
siiGetStringCount
public static int siiGetStringCount(byte[] catData) 字符串类别中的字符串总数. -
siiGetVendorId
public static long siiGetVendorId(byte[] siiData) 从 SII 头读取 VendorId (word 0x0008). -
siiGetProductCode
public static long siiGetProductCode(byte[] siiData) 从 SII 头读取 ProductCode (word 0x000A). -
siiGetRevision
public static long siiGetRevision(byte[] siiData) 从 SII 头读取 RevisionNumber (word 0x000C). -
siiGetSerialNumber
public static long siiGetSerialNumber(byte[] siiData) 从 SII 头读取 SerialNumber (word 0x000E). -
siiGetConfiguredAlias
public static int siiGetConfiguredAlias(byte[] siiData) 配置别名 (ConfiguredStation Alias, word 0x0004). -
siiCoeEnabled
public static boolean siiCoeEnabled(int coeDetails) CoE Details bit0: CoE 启用. -
siiCoeSdoInfo
public static boolean siiCoeSdoInfo(int coeDetails) CoE Details bit1: SDO Info 服务支持. -
siiCoePdoAssign
public static boolean siiCoePdoAssign(int coeDetails) CoE Details bit2: PDO Assign (0x1C12/0x1C13) 支持. -
siiCoePdoConfig
public static boolean siiCoePdoConfig(int coeDetails) CoE Details bit3: PDO Configuration (0x1600.../0x1A00...) 支持. -
siiCoeUploadAtStartup
public static boolean siiCoeUploadAtStartup(int coeDetails) CoE Details bit4: Upload at Startup. -
siiCoeCompleteAccess
public static boolean siiCoeCompleteAccess(int coeDetails) CoE Details bit5: Complete Access (整对象 SDO). -
siiFoeEnabled
public static boolean siiFoeEnabled(int foeDetails) FoE Details bit0: FoE 启用. -
siiEoeEnabled
public static boolean siiEoeEnabled(int eoeDetails) EoE Details bit0: EoE 启用. -
couplerDetectDeviceType
public static int couplerDetectDeviceType(long vendorId, long productCode) 探测设备类型 (0=Unknown, 1=Coupler, 2=Terminal, 3=Drive, 4=Bridge ...). -
couplerIsCoupler
public static boolean couplerIsCoupler(long vendorId, long productCode) 是否为耦合器 (EK1100/EK1110/...). -
couplerIsTerminal
public static boolean couplerIsTerminal(long vendorId, long productCode) 是否为 IO 端子 (EL1xxx/EL2xxx 等). -
couplerVendorName
厂商中文名. -
couplerVendorNameEn
厂商英文名 (Beckhoff/Omron/Delta 等). -
couplerDeviceTypeName
设备类型名称 (耦合器/端子/驱动器/...). -
diagTopologyDescription
拓扑图字段中文描述. -
diagTimingMode
DC 时钟同步模式描述 (0=自由运行, 1=SM 同步, 2=DC 同步等). -
diagBreakpointType
断点类型描述 (热插拔诊断/链路重连等). -
diagFormatBreakpoint
格式化断点报告字符串.- 参数:
slaveIdx- 从站索引port- 端口 (0..3)bp- 断点类型- 返回:
- UTF-8 中文格式化字符串
-