Skip to main content
Version: 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​

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

CMD_TEST_FAIL​

CoreRtv = xx, PhyRtv = xx, PC reconnect is needed​

U3/FPGA通信存在异常,执行PC重连

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线材质量不行,或者阻抗不匹配

解决:

  • 硬件: 可以通过换线尝试解决
  • 软件: 通过重连设备(或设备自动重连功能)尝试恢复 ;如果直接重连无法恢复, 可以尝试在重连前CoreHardReset

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