85 lines
3.2 KiB
C++
85 lines
3.2 KiB
C++
#include "util.h"
|
|
#include <string.h>
|
|
|
|
/// \~chinese 打印错误信息后退出程序 \~english Print error message and exit the program
|
|
void printErrorAndExit(ITKSTATUS errc)
|
|
{
|
|
fprintf(stderr, "Error Code:%08X\n", errc);
|
|
ItkManTerminate();
|
|
pressEnterToExit();
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
/// \~chinese 打印 IKapBoard 错误信息后退出程序 \~english Print IKapBoard error message and exit the program
|
|
void printIKapBoardErrorAndExit()
|
|
{
|
|
IKAPERRORINFO errc;
|
|
IKapGetLastError(&errc, 1);
|
|
|
|
fprintf(stderr, "IKapBoard:Index: %d, error code:%04x\n", errc.uBoardIndex, errc.uErrorCode);
|
|
|
|
pressEnterToExit();
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
/// \~chinese 打印 IKapC 错误信息后退出程序 \~english Print IKapC error message and exit the program
|
|
void printIKapCErrorAndExit(ITKSTATUS errc)
|
|
{
|
|
fprintf(stderr, "IKapC error code: %08X", errc);
|
|
ItkManTerminate();
|
|
pressEnterToExit();
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
void printCameraInfo(uint32_t numCameras)
|
|
{
|
|
ITKSTATUS res = ITKSTATUS_OK;
|
|
ITKDEV_INFO di;
|
|
ITK_CXP_DEV_INFO cxp_cam_info = {};
|
|
ITK_GVB_DEV_INFO gvb_cam_info = {};
|
|
ITK_CL_DEV_INFO cl_cam_info = {};
|
|
|
|
printf("Camera Index: \t serial: \t name: \t interface: \t\n");
|
|
for (uint32_t i = 0; i < numCameras; i++)
|
|
{
|
|
res = ItkManGetDeviceInfo(i,&di);
|
|
if (res==ITKSTATUS_OK)
|
|
{
|
|
printf("%d \t %s \t %s \t %s \t\n",i,di.SerialNumber,di.FullName,di.DeviceClass);
|
|
}
|
|
|
|
if (strcmp(di.DeviceClass, "CoaXPress") == 0) {
|
|
res = ItkManGetCXPDeviceInfo(i, &cxp_cam_info);
|
|
if (res==ITKSTATUS_OK)
|
|
{
|
|
printf("\t cxpInfo: BoardIndex:%d \t MasterPort:%d \t SlaveCount:%d \t CameraId:%d \t Topology:%d \t\n",cxp_cam_info.BoardIndex,cxp_cam_info.MasterPort,cxp_cam_info.SlaveCount,cxp_cam_info.CameraId,cxp_cam_info.Topology);
|
|
printf("\t ");
|
|
for (int i = 0; i < 7; i++)
|
|
{
|
|
printf("SlavePort[%d]:%d \t ", i, cxp_cam_info.SlavePort[i]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
} else if (strcmp(di.DeviceClass, "GigEVisionBoard") == 0) {
|
|
res = ItkManGetGVBDeviceInfo(i, &gvb_cam_info);
|
|
if (res == ITKSTATUS_OK)
|
|
{
|
|
printf("\t gvbInfo: BoardIndex:%d \t MasterPort:%d \t MAC:%s \t Ip:%s \t SubNetMask:%s \t GateWay:%s \t SlaveCount:%d \t EffectPixel:%d \t\n",gvb_cam_info.BoardIndex,gvb_cam_info.MasterPort,gvb_cam_info.MAC,gvb_cam_info.Ip,gvb_cam_info.SubNetMask,gvb_cam_info.GateWay,gvb_cam_info.SlaveCount,gvb_cam_info.EffectPixel);
|
|
printf("\t ");
|
|
for (int i = 0; i < 3; i++)
|
|
{
|
|
printf("SlavePort[%d]:%d \t ", i, gvb_cam_info.SlavePort[i]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
}
|
|
else if (strcmp(di.DeviceClass, "CameraLink") == 0) {
|
|
res = ItkManGetCLDeviceInfo(i, &cl_cam_info);
|
|
if (res == ITKSTATUS_OK)
|
|
{
|
|
printf("\t clInfo: HostInterface:%d \t BoardIndex:%d \t SerialPort:%s \t\n",cl_cam_info.HostInterface,cl_cam_info.BoardIndex,cl_cam_info.SerialPort);
|
|
}
|
|
}
|
|
}
|
|
}
|