跳到主要内容
版本:Next

诊断日志

介绍

常用获取诊断日志的方法有三种(代码以C++为例):

  • 可通过在SDK Control Center诊断页面中手动导出,如下图:
image
  • 在代码中通过设置相机构造函数的日志输出方式的参数为文件输出来获取日志,输出的日志将保存在运行程序目录下
image
  • 在代码中通过设置相机日志回调的方式获取日志,在回调中可获取新输出的日志
image
image

常规日志类型

DISCONNECTED

Device Disconnected, ConnectionTimeMS = xxx

设备状态变为断开连接,并输出当前硬件时间

UNDER_INIT

Device Under Init, ConnectionTimeMS = xxx

设备状态变为初始化中,并输出当前硬件时间

STAND_BY

Device StandBy, ConnectionTimeMS = xxx

设备状态变为就绪状态,并输出当前硬件时间

UNDER_EXPOSURE

Device UnderExposure, ConnectionTimeMS = xxx

设备状态变为曝光中,并输出当前硬件时间

UNDER_TRANSFER

Device UnderTransfer, ConnectionTimeMS = xxx

设备状态变为传输中,并输出当前硬件时间

RECOVER_SENT

Trying to recover from no response, reconnect sent ok

phy重连信号发送成功

DEVICE_CNT

Open Device, USBDeviceCount = xxx

打开相机,输出识别到的相机数量

DeviceCount = xxx

输出当前的相机数量

OPEN_DEVICE

Update Software Preprocess Lists failed

更新软件预处理设置列表

OPEN_DEVICE_SUCCESS

Open Device Success (tidCapture=xxx tidConnection=xxx)

打开设备成功

CLASS_DISPOSE

Class dispose enter

进入相机类析构函数

Class disposed

相机类析构函数执行完毕

SET_WORKINGMODE_SUCCESS

WorkingMode = xxx

设置工作模式成功,工作模式 = xxx

SET_BINNINGSTATE_SUCCESS

Set FlipNextBinningStateEnable xxx success

设置翻转下一次像素合并状态使能 xxx 成功

SET_TRIGGERSOURCETYPE_SUCCESS

Set TriggerSource xxx success

设置触发源xxx成功

SET_EXPOSUREBASICSETTING_SUCCESS

Set ExposureMode/ExposureBasicSetting xxx Success. ExposureNumber = xxx

设置曝光模式 xxx 成功,曝光次数 = xxx

SET_USERGAIN_SUCCESS

Set UserGain xxx success

设置用户增益 xxx 成功

SET_EXPOSUREINTENSITY_SUCCESS

Set ExposureIntensity3D_1st xxx success

设置3D第一次曝光强度 xxx 成功

Set ExposureIntensity3D_2nd xxx success

设置3D第二次曝光强度 xxx 成功

Set ExposureIntensity3D_3rd xxx success

设置3D第三次曝光强度 xxx 成功

Set ExposureIntensity2D xxx success

设置2D曝光强度 xxx 成功

ET_OTHER_SETTING_SUCCESS

Set ExternalExposureEnable xxx success

设置外部曝光使能 xxx 成功

Set ProjectionMode xxx success

设置投影模式 xxx 成功

Set DataOutMode = xxx success

设置数据输出模式 = xxx 成功

TRIGGER_SEND_SUCCESS

Trigger sent OK with SW TSN xxx

软触发发送触发信号成功

SNAP_ENTER

Start snap

开始执行Snap

SNAP_OK

Snap success

Snap成功

C_HD_RESET_ENA

Series M fatal exception, transfer is done and stuck, core hard reset is needed.

M系列相机传输完成但是卡顿,需要硬重启。

Series M fatal exception, camera transfer failure out of time, core hard reset is needed.

M系列相机传输失败次数超出指定阈值,需要硬重启。

C_HD_RESET_DIS

Going to a core hard reset, reset CoreHardReset to False.

即将执行硬重启,设置CoreHardReset为false。

CoreHardReset is about to start.

即将开始硬重启。

C_HD_RESET_SUCCESS

Series M trying to recover from no response, core hard reset request sent successfully. Reset all check state count.

M系列尝试从无响应恢复,硬重启请求已成功发送,重置所有状态检查计数。

DATA_CALLBACK_ENTER

Enter user data callback

进入用户数据回调

DATA_CALLBACK_EXIT

Exit user data callback

退出用户回调

RECIEVE_ZLP

ZLP recieved

接收到ZLP数据包

RECIEVE_NZLP

NZLP recieved with len %ld, InTrans = xxx

接收到NZLP数据包

Snap data end, address is: xxx

Snap完成

NZLP Exit with len xxx, InTrans = xxx

退出接收NZLP数据包

RECIEVE_PACK_DATA_HEAD

Data body resolve begin. TSN is xxx

接收到图像数据包

ACK_REQ

ACK Req Pack recognized, TSN = xxx

接收数据包完成

RECIEVE_DATA

Copy data total len after copy xxx

接收到图像数据

COMMIT_DATA

Data Commit to Snap

图像数据输出,由Snap接收

Data Commit to CallBack

图像数据输出,由用户数据回调接收

Data Commit, no recieve

图像数据输出,未被接收

READ_OFFLINE_DATA

Read offline mpdat success : xxx

读取离线数据成功,文件名 = xxx

ACK_SENT

ACK is sent for TSN = xxx

ACK(Acknowledgment)信号已发送

ACK信号表示接收方成功接收到数据,并且数据的校验和(CRC)匹配,没有出现错误。当发送方收到ACK信号时,它会确认数据传输成功,并继续发送下一个数据包。

NAK_SENT

NAK is sent for TSN = xxx

NAK(Negative Acknowledgment)信号已发送

NAK信号表示接收方在接收数据时出现了错误。这可能是由于数据传输中的错误、数据包的格式错误或接收方暂时无法接受数据等原因导致的。此时相机会启动重发机制。

GET_HARD_TIMES

Get Hardware StartUpTimeMS = xxx

获取硬件开机时间(毫秒)

异常(错误)日志类型&分析

RECOVER_FAIL

Trying to recover from no response, reconnect sent failed

phy重连信号发送失败

CLASS_CONSTRUCTED

Incorrect version! HEAD vs BINARY file

检查相机库文件版本失败(版本不匹配)

Incorrect MPSizectorS_API binary and head file version. Binary version is:xxx, HEAD file version is:xxx

检查相机库文件版本失败(版本不匹配)

Class constructed with instance ID xxx

相机类构造函数执行完毕

XFER_TH_ABORT

Xfer thread abort, with code xxx

数据传输出现错误或异常/USB 设备发生了错误或异常

XFER_TH_INIT_FAIL

Xfer thread init failed, with code xxx

批量输入端点的 Windows NT状态和 USB设备状态存在异常或错误

XFER_TH_WAIT_XFER_TIMEOUT

Wait for xfer time out, LastError = xxx

LastError = 997

造成的原因没有定论:

  • 可能是通信不稳定,受到了干扰
  • 可能是USB线材质量不行,或者阻抗不匹配

解决: 可以通过换线尝试解决

XFER_TH_FINISH_XFER_FAIL

Finish data xfer fail, LastError = xxx

数据传输失败,最近的一次错误 = xxx

CORE_CMD_FAIL

Fatal error in flash loading...

USB通信失败

Control failed due to ...

USB通信失败

CORE_CMD_FLASH_BUSY

Control is freezed due to flash is busy.

flash繁忙导致控制冻结。

GET_INSTANCE_ID_FAIL

Open device GetInstanceID Failed

重连时获取phy对象id失败

DEVICE_OCCUPIED

Device Occupied

重连时设备已被占用

GET_INIT_STATE_FAIL

Get InitState failed

重连时获取初始化状态失败

TRIGGER_SEND_COM_FAIL

Trigger send com fail

软触发发送触发信号失败

TRIGGER_CHECK_COM_FAIL

Trigger send check com fail, cnt = xxx

软触发获取当前触发序列号失败

TRIGGER_CHECK_DIFFER

Trigger is sent, but not executed: sent ID = xxx, cur ID = xxx, cur src = xxx, cnt = xxx

触发频率过高,当前设备处于忙碌状态,此次触发不会被执行

C_HD_RESET_FAIL

Series M trying to recover from no response, core hard reset request sent failed!

M系列尝试从未响应中恢复,硬重启请求发送失败!

CHK_STATE_XFER_FAIL

Series M exception state in transfer failure progress over 3 times.

M系列在传输时发生异常超过3次。

CHK_STATE_XPOSE_FAIL

Series M exception state in under exposure progress 30s.

M系列发生异常,处于曝光过程30秒

CHK_STATE_INIT_ERR_FAIL

Series M exception state in UnderTransfer progress with state error 20s. State code is xxx.

M系列发生异常,处于传输过程且状态错误持续20秒,状态码为 xxx。

状态码分析流程:

  • 数值转换:

检查状态码是否为负数,若为负数需要将这个负数加上2^32作为新的状态码。例如:-525055 + 2^32(也就是4294967296)= 4294442241

将状态码转换为二进制数,例如:4294442241转换为二进制为1111 1111 1111 0111 1111 1101 0000 0001

从右往左去掉前八位,例如:1111 1111 1111 0111 1111 1101 0000 0001去掉后变为1111 1111 1111 0111 1111 1101

此时,从右往左数,若第一位为0则分别表示S0错误,第二位为0则表示S1错误,第三位为0则表示S2错误。。。

例如:1111 1111 1111 0111 1111 1101,他的第二位,第十二位为0,对应的错误就是S1,S11

如下图所示:

image

错误如诊断页面所示:

image

对应错误的含义见文档诊断模块说明

CHK_HEADPACK_TEMPERATURE_FAIL

Device temperature out of range

设备温度超出范围

CHK_HEADPACK_INIT_STATES_FAIL

Check device init state error

检查设备初始化状态出错

CHK_HEADPACK_SETTING_VALIDATION_FAIL

Check device setting validation error

检查设备设置有效性出错

SNAP_FAIL

Snap fail due to disconnected

Snap失败(设备未连接)

Snap fail due to null input

Snap失败(存在空值输入)

Snap fail due to sw trigger fail

Snap失败(软触发失败)

Snap fail due to time out

Snap失败(等待接收数据超时)

RECIEVE_DATA

Need phy reconnect due to transfer too long

传输时间过长,需要phy重连

DATA_TOO_BIG

Drop data total len after copy xxx, estimated is xxx

接收到的图像数据长度超过限制长度

Data is larger than buffer, ignore

根据HeadPack计算的数据长度大于限制长度,忽略

READ_OFFLINE_DATA_FAIL

Read offline mpdat fail : xxx, xxx

读取离线数据失败,返回值 = xxx,文件名 = xxx

RECIEVE_INVALID_HEAD

Invalid packet head, lend = xxx , ignore following data

无法识别的数据包头,忽略接下来的数据

ACK_SENT

ACK send fail for TSN = xxx

ACK信号发送失败

NAK_SENT

NAK send fail for TSN = xxx

NAK信号发送失败

RECIEVE_FRAME_FAIL

copy len = xxx, estimated len = xxx

接收帧数据失败,拷贝长度为xxx, 预计长度为xxx