DLLGetDriveInfo
函数 DLLGetDriveInfo 获取指定驱动的完整信息结构体。(结构体二进制布局为 SDK ABI 组成部分,Pack=1,大小 148 字节。)
C/C++
ErrorCode DLLGetDriveInfo(INT_PTR hClientHandle, int driveIndex, ONE_DRIVE_INFO* pDriveInfo);
C#
Controller.Information.MotionDrives — 驱动信息集合(含节点号、轴掩码、硬件名、固件版本、序列号等)。
参数
hClientHandle (INT_PTR)
客户端会话句柄,由 DLLSysConnect 获取。
driveIndex (int)
驱动索引(0-indexed),范围 0 至 DLLGetNumberDrives - 1。
pDriveInfo (ONE_DRIVE_INFO*)
输出。指向 ONE_DRIVE_INFO 结构体的指针,函数成功后填充以下字段: | 字段 | 类型 | 说明 | |------|------|------| | NodeID | int32_t | EtherCAT 节点 ID | | AxisMask | int32_t | 该驱动包含的轴掩码 | | HardwareName | char[32] | 硬件名称字符串 | | FirmwareVersion | char[16] | 固件版本字符串 | | SerialNumber | uint32_t | 序列号 | | HardwareVersion | char[32] | 硬件版本字符串 | | ServoRate | int32_t | 伺服速率(Hz) | | PeakAmperage | float | 峰值电流(A) | | CurrentSenseScaleQ16 | uint32_t | 电流检测标度(Q16 格式,mA/IqCount×65536;0 表示旧固件不支持) | | Reserved | int32_t[11] | 保留字段 |
返回值
返回 ErrorCode;NoError (0) 表示成功,InvalidAxisIndex 表示驱动索引无效,详见 SDK 发布头 ErrorCode.h。
说明
ONE_DRIVE_INFO 结构体使用 #pragma pack(push,1) 确保无填充字节,其二进制布局为 SDK ABI 稳定组成部分,不应随意修改字段顺序。
示例
ONE_DRIVE_INFO info;
for (int i = 0; i < driveCount; i++) {
if (DLLGetDriveInfo(handle, i, &info) == NoError)
printf("Drive %d: %s (fw %s)\n", i, info.HardwareName, info.FirmwareVersion);
}