#pragma once #include //SDK头文件 #include "SDK/include/YuYingAPI.h" extern const char * TriggerModeName[]; extern const char * PanelStatus[]; extern const char * PanelErrorStatus[]; extern const char * DetectorState[]; extern const char * PrepCapMode[]; extern const char * Enm_Switch[]; extern const char * InnerSubFlow[]; typedef struct { int nReferDose; int nAvgNum; }RefrenceCal; enum FW_STATUS { FW_NEED_UPDATE = 1, FW_MANDATORY_UPDATE, FW_NOT_SUPPORT, FW_NEW, FW_GET_ERROR }; enum YUYING_SYNC_MODE { TRIGGER_NONE, TRIGGER_SOFT, TRIGGER_PREP, TRIGGER_MAX }; enum ENUM_EXPOSE_STATUS { DOSE_ACCEPT = 0, DOSE_TOO_HIGH = 1, DOSE_TOO_LOW = 2, DOSE_OBJECT = 3 }; //探测器异步事件状态 enum ENUM_PANEL_EVENT_STATE { PANEL_EVENT_END_OK = 0, PANEL_EVENT_END_ERROR = 1, PANEL_EVENT_START = 2, PANEL_EVENT_SUCCESS = 3, PANEL_EVENT_END = 4, PANEL_EVENT_BEGIN = 5, PANEL_EVENT_TIMEOUT = 6, PANEL_EVENT_FWU_ERROR_BATTERY = 7, PANEL_EVENT_CALIB_REPORT = 8, PANEL_EVENT_FWU_ERROR_OMIT = 9, }; typedef enum { EVT_LEVEL_CONFIGURATION = 0x00, EVT_LEVEL_INFORMATOION = 0x01, EVT_LEVEL_STATUS = 0x02, EVT_LEVEL_DATA = 0x03, EVT_LEVEL_WARNING = 0x04, EVT_LEVEL_ERROR = 0x05, } CcosEventLevel; typedef enum { EVT_CONF_PANEL_SERIAL = 0x00, EVT_CONF_RAW_WIDTH = 0x01, EVT_CONF_RAW_HIGHT = 0x02, EVT_CONF_RAW_BITS = 0x03, EVT_CONF_PIXELSPACE = 0x04, EVT_CONF_PREVIEW_WIDTH = 0x05, EVT_CONF_PREVIEW_HIGHT = 0x06, EVT_CONF_MODULE_TYPE = 0x07, EVT_CONF_MODULE_IP = 0x08, EVT_CONF_MODULE_SN = 0x09, EVT_CONF_FIRWARE_UPDATE = 0x0A, EVT_CONF_PART_NUMBER = 0x0B, EVT_CONF_BATTERY_SN = 0x0C, EVT_CONF_WIFI_SSID = 0x0D, EVT_CONF_IFBOARD = 0x0E, EVT_CONF_DATECODE = 0x0F, EVT_CONF_LIFETIME = 0x10, } CcosEventConfigID; typedef enum { EVT_INFO_POWER_ON = 0x00, EVT_INFO_BATTERY_CAPACITY = 0x01, EVT_INFO_BATTERY_TEMPERATURE = 0x02, EVT_INFO_BATTERY_CHARGES = 0x03, EVT_INFO_WIFI_DATARATE = 0x04, EVT_INFO_WIFI_CHANNEL = 0x05, EVT_INFO_WIFI_SIGNALPOWER = 0x06, EVT_INFO_WIFI_NOISEPOWER = 0x07, EVT_INFO_FIRMWARE = 0x08, EVT_INFO_SHOCKSENSOR_INFO = 0x09, EVT_INFO_CALIBRATIOIN_DATE = 0x0A, EVT_INFO_FPVOLTAGE = 0x0B, EVT_INFO_CALIBRATIOIN_DATEL = 0x0C, //长曝光模式 EVT_INFO_CALIBRATIOIN_TIME = 0x0D, EVT_INFO_CALIBRATIOIN_TIMEL = 0x0E, } CcosEventInfoID; typedef enum { EVT_STATUS_INIT = 0x00, EVT_STATUS_MOTION = 0x01, EVT_STATUS_UPDATE_FIRMWARE = 0x02, EVT_STATUS_SELFTEST = 0x03, EVT_STATUS_DETECTORSHARE = 0x04, EVT_STATUS_SINGLEINIT = 0x05, EVT_STATUS_SELECTPANEL = 0x06, EVT_STATUS_PANEL = 0x07, EVT_STATUS_CALIBRATIOIN = 0x08, EVT_STATUS_SAVECALIB = 0x09, EVT_STATUS_SAVEDEFECT = 0x0A, EVT_STATUS_ACQUISITION = 0x0B, EVT_STATUS_SINGLEEXP = 0x0C, EVT_STATUS_IMAGEPENDING = 0x0D, EVT_STATUS_TEMPERATURE = 0x0E, EVT_STATUS_WIFI = 0x0F, EVT_STATUS_BATTERY_VALUE = 0x10, EVT_STATUS_BATTERY_CHARGING = 0x11, EVT_STATUS_SHOCK_SENSOR = 0x12, EVT_STATUS_HALL_SENSOR = 0x13, EVT_STATUS_PING = 0x14, EVT_STATUS_PMSNOTOPEN = 0x15, EVT_STATUS_RESTOREFILES = 0x16, EVT_STATUS_LASTERROR = 0x17, EVT_STATUS_RESET = 0x18, EVT_STATUS_IMAGERECOVERAUTO = 0x19, EVT_STATUS_PREPARE_EDNCALIBRATION = 0x21, } CcosEventStatusID; typedef enum { EVT_DATA_RAW_IMAGE = 0x00, EVT_DATA_PREVIEW_IMAGE = 0x01, EVT_DATA_DOSEPARAM = 0x02, } CcosEventDataID; typedef enum { EVT_ERR_COMMUNICATE = 0x00, EVT_ERR_EXP_REQUEST = 0x01, EVT_ERR_GET_IMAGE = 0x02, EVT_ERR_MAX_NUMBER = 0x03, EVT_ERR_SN_NOTINLIST = 0x04, EVT_ERR_POWER_OFF = 0x05, EVT_ERR_INIT_FAILED = 0x06, } CcosEventErrorID; //探测器状态 enum ENUM_PANEL_STATUS { PANEL_CLOSE = 0, PANEL_STANDBY = 1, PANEL_READY_EXP = 2, PANEL_XWINDOW_ON = 3, PANEL_XWINDOW_OFF = 4, PANEL_START_TRANSMIT = 5, PANEL_END_TRANSMIT = 6, PANEL_START_ACQ = 7, PANEL_END_ACQ = 8, PANEL_EXP_END_TIMEOUT = 9, PANEL_OFFSET_CAL = 10, PANEL_OFFSET_FINISH = 11, PANEL_GAIN_CAL = 12, PANEL_GAIN_FINISH = 13, PANEL_DEFECT_CAL = 14, PANEL_DEFECT_FINISH = 15, PANEL_XRAY_ON, PANEL_XRAY_OFF, PANEL_INIT = 21, PANEL_SLEEP = 22, PANEL_GET_IMAGE = 23, PANEL_GAIN_PREPARE = 24, PANEL_GAIN_READY_EXP = 25, PANEL_OFFSET_FAILED = 26, }; struct DeviceIndexStruct { int nDetectorID; bool bInitOK; bool bConnectStatus; bool bActived; bool bExisted; bool bReadWifi; bool bReadTemperature; bool bReadBattery; bool bCharging; bool bUpdateFirmware; bool bUploadCalibFile; bool bRecoveringImage; bool bWireless; bool bImagePending; bool bPreviewEnable; bool bTemperatureEnable; bool bHumidityEnable; bool bBatteryEnable; bool bWifiEnable; bool bGainDefectEnable; bool bSupportDDR; //是否支持DDR采集模式 int nSyncMode; int nDoseOfEXI; int nWorkstation; int nWifiWarning; int nWifiLimit; int nCurrentWifiValue; int nBatteryWarning; int nBatteryLimit; int nCurrentBatteryValue; int nWifiChannel; int nWifiDataRate; int nWifiSignalPower; int nWifiNoisePower; int nCalibDueSetting; int nShockTimes; int nMaxShockNumber; float fCalibTemperature; int nSaveRaw; int nSID; //ECM信息相关 int nImageBits; int nRawWidth; int nRawHeight; int nFullImageWidth; int nFullImageHeight; int nPreviewWidth; int nPreviewHeight; int nWidthOffset; int nHeightOffset; int nImageLeftOffset; int nImageTopOffset; int nImageRightOffset; int nImageBottomOffset; int nGridSuppFilterType; int nFirmwareStatus; int nTemperatureStatus; int nLastImageID; int nPixelSpace; //像素大小 int nExpWindowMode; int nXWindow; float fFactorEXI2UGY; //探测器EXI -> UGY 转换系数 //Temperature float fTemperMaxLimit; float fTemperUpLimit; float fTemperLowLimit; float fTemperMinLimit; float fCalibTemperUp; float fCalibTemperLow; float fTemperatureErrorMin;//最低温度值 float fTemperatureErrorMax;//最高温度值 float fTemperatureWarnMin;//低温警告 float fTemperatureWarnMax;//高温警告 float fCurrentTemperValue;//当前温度 std::string strDeviceName; //探测器名称 std::string strWifiSSID; std::string strPanelSerial; std::string strFPDConfFilePath;//探测器自身配置文件路径 std::string strWiredIP; //有线IP std::string strWirelessIP; //无线IP std::string strLocalIP; //本地IP std::string strCalibrationDate; //校正日期 std::string strCalibrationTime; //校正时间 std::string strCalibrationDue; //校正过期日 std::string strSoftware; std::string strWorkDir; //SDK配置文件路径 std::string strSupportSyncMode; std::string strGainPath; //加载Gain文件路径 std::string strDefectPath; //加载Defect文件路径 bool bSDKSaveLog; //SDK是否保存日志 std::string strSDKSaveLogPath; //SDK保存日志的路径 bool bSDKSaveRaw; //SDK是否保存原始Raw图 std::string strSDKSaveRawPath; //SDK保存Raw图路径 DeviceIndexStruct() { nDetectorID = 0; bInitOK = false; bConnectStatus = false; bExisted = false; bReadWifi = false; bReadTemperature = false; bReadBattery = false; bCharging = false; bUpdateFirmware = false; bUploadCalibFile = false; bRecoveringImage = false; bWireless = false; bImagePending = false; bActived = true; bTemperatureEnable = false; bHumidityEnable = false; bBatteryEnable = false; bWifiEnable = false; bGainDefectEnable = false; strDeviceName = ""; //探测器名称 strWifiSSID = "NULL"; //无线探测器SSID名称 nSyncMode = 0; nDoseOfEXI = 0; strPanelSerial = ""; strFPDConfFilePath = "";//探测器自身配置文件路径 strCalibrationDate = (" "); strCalibrationTime = (" "); strCalibrationDue = (" "); fFactorEXI2UGY = 0.0f; bPreviewEnable = false; fTemperMaxLimit = 0.0f; fTemperUpLimit = 0.0f; fTemperLowLimit = 0.0f; fTemperMinLimit = 0.0f; fCalibTemperUp = 0.0f; fCalibTemperLow = 0.0f; fCalibTemperature = 0.0f; fCurrentTemperValue = 0.0f; nWorkstation = -1; nWifiWarning = 0; nWifiLimit = 0; nCurrentWifiValue = -1; nBatteryWarning = 0; nBatteryLimit = 0; nCurrentBatteryValue = 0; nGridSuppFilterType = 0; nShockTimes = -1; nWifiChannel = 0; nWifiDataRate = 0; nWifiSignalPower = 0; nWifiNoisePower = 0; nCalibDueSetting = 0; nMaxShockNumber = 0; nSaveRaw = 0; nSID = 0; nPixelSpace = 143; //ECM信息相关 nImageBits = 0; nRawWidth = 0; nRawHeight = 0; nFullImageWidth = 0; nFullImageHeight = 0; nPreviewWidth = 0; nPreviewHeight = 0; nWidthOffset = 0; nHeightOffset = 0; nFirmwareStatus = -1; nTemperatureStatus = 0; nLastImageID = 0; strWiredIP = ""; strWirelessIP = ""; strLocalIP = ""; strWorkDir = ""; bSDKSaveLog = false; strSDKSaveLogPath = ""; bSDKSaveRaw = false; strSDKSaveRawPath = ""; strGainPath = "\\"; strDefectPath = "\\"; } }; enum APP_STATUS { APP_STATUS_IDLE = 0, APP_STATUS_WORK_BEGIN, //1 APP_STATUS_WORK_END, //2 APP_STATUS_DETSHARE_BEGIN, //3 APP_STATUS_DETSHAR_END, //4 APP_STATUS_CAL_BEGIN, //5 APP_STATUS_CAL_END, // 6 APP_STATUS_WORK_IN_SENSITIVITY, //7 }; enum GRID_STATUS { GRID_STATE_ERROR = -3, GRID_STATE_PARAM_ERROR = -2, GRID_STATE_PARAM_NULL = -1, GRID_STATE_NO = 0, GRID_STATE_VERTICAL = 1, GRID_STATE_HORIZONTAL = 2, }; enum TEMP_STATUS { TEMP_NORMAL = 0, TEMP_WARNING, //1 TEMP_TOO_HIGH, //2 TEMP_TOO_LOW, //3 }; //----------------------------------------SDK Function--------------------------------------------// #ifndef YUYING_API #define YUYING_API typedef __declspec(dllimport) YUYING_API int(__cdecl* Func_YI_Initialize_FPD_V4)(const char*, int, const char*, int, char*); YUYING_API int(__cdecl* Func_YI_FPD_Set_Work_Mode)(const char*, ModeType); YUYING_API int(__cdecl* Func_YI_FPD_Stop_Capture_Image)(const char*); YUYING_API int(__cdecl* Func_YI_FPD_Get_Configure_Common)(const char*, int, YIConfigInfo_Common*); YUYING_API int(__cdecl* Func_YI_FPD_Set_Configure_Common)(const char*, int, const YIConfigInfo_Common*); YUYING_API int(__cdecl* Func_YI_FPD_Get_Configure_SyncOut_Mode)(const char*, int, int, YIConfigInfo_SyncOut*); YUYING_API int(__cdecl* Func_YI_FPD_Set_Configure_SyncOut_Mode)(const char*, int, int, const YIConfigInfo_SyncOut*); YUYING_API int(__cdecl* Func_YI_FPD_Restore_Factory_Settings)(const char*); YUYING_API int(__cdecl* Func_YI_FPD_Subtract_Offset)(const char*, bool); YUYING_API int(__cdecl* Func_YI_ImageReady_Callback_Register)(const char*, ImageReadyCallbackFunc); YUYING_API int(__cdecl* Func_YI_ImageReady_Callback_Register_Ex)(const char*, ImageReadyCallbackFuncEx); YUYING_API int(__cdecl* Func_YI_SystemInfo_Callback_Register)(const char*, SystemInfoCallbackFunc); YUYING_API int(__cdecl* Func_YI_SystemInfo_Callback_Register_Ex)(const char*, SystemInfoCallbackFuncEx); YUYING_API int(__cdecl* Func_YI_Get_Callback_Image_Size)(const char*, int&, int&, int&); YUYING_API int(__cdecl* Func_YI_GetLastErrorCode)(); YUYING_API int(__cdecl* Func_YI_Set_Save_Log_Flag)(bool, const char*); YUYING_API int(__cdecl* Func_YI_GetLoacalIPs_V4)(char**); YUYING_API int(__cdecl* Func_YI_Set_Image_Save_State)(const char*, bool); YUYING_API int(__cdecl* Func_YI_Set_Image_Save_Path)(const char*, const char*); YUYING_API int(__cdecl* Func_YI_FPD_Get_FPD_TYPE)(const char*, int&); YUYING_API int(__cdecl* Func_YI_FPD_Get_Invalid_Region)(const char*, int&, int&, int&, int&); YUYING_API int(__cdecl* Func_YI_FPD_Write_Configure_Common_To_File)(const char*, const YIConfigInfo_Common*); YUYING_API int(__cdecl* Func_YI_FPD_Read_Configure_Common_From_File)(const char*, YIConfigInfo_Common*); YUYING_API int(__cdecl* Func_YI_FPD_Write_Configure_SyncOut_To_File)(const char*, int, const YIConfigInfo_SyncOut*); YUYING_API int(__cdecl* Func_YI_FPD_Read_Configure_SyncOut_From_File)(const char*, int, YIConfigInfo_SyncOut*); YUYING_API int(__cdecl* Func_YI_FPD_Capture_Image)(const char*, int); YUYING_API int(__cdecl* Func_YI_FPD_Capture_Prepare)(const char*); YUYING_API int(__cdecl* Func_YI_Load_Gain_Tmp_File)(const char*, const char*); YUYING_API int(__cdecl* Func_YI_Load_Defect_Tmp_File)(const char*, const char*); YUYING_API int(__cdecl* Func_YI_Load_Offset_Tmp_File)(const char*, const char*); YUYING_API int(__cdecl* Func_YI_Load_AED_Offset_Tmp_File)(const char*, const char*); YUYING_API int(__cdecl* Func_YI_Set_Correct_Type)(const char*, int); YUYING_API int(__cdecl* Func_YI_FPD_DO_Correction)(unsigned short*, int, int, char, const char*, const char*, const char*, const char*); YUYING_API int(__cdecl* Func_YI_FPD_Wifi_Re_Connect)(const char*, const char*, int); YUYING_API int(__cdecl* Func_YI_FPD_Wifi_Set_Work_Mode)(const char*, int); YUYING_API int(__cdecl* Func_YI_FPD_Wifi_Get_Work_Mode)(const char*, int&); YUYING_API int(__cdecl* Func_YI_FPD_Wifi_Set_Name)(const char*, const char*); YUYING_API int(__cdecl* Func_YI_FPD_Wifi_Set_Power_Down)(const char*); YUYING_API int(__cdecl* Func_YI_FPD_Wifi_Set_IP_Address)(const char*, int*); YUYING_API int(__cdecl* Func_YI_FPD_Wifi_Set_Route_Info)(const char*, char*, char*); #endif //----------------------------------------SDK Function over--------------------------------------------//