#pragma once #include //转存文件内容使用 #include #include "CcosLock.h" #include "ResDataObject.h" #include "CCOS.Dev.FPD.TrixellDR.h" #include "PanelSerialXMLControl.h" //加载、处理PanelSerial.xml //SDK头文件 #include "include/pixradlib.h" #include "ZSKKCalibration.h" #ifndef EDETSTATUS #define EDETSTATUS enum eDetStatus { DetStatus_NotIni, DetStatus_NotConn, DetStatus_Sleep, DetStatus_Standby, DetStatus_Work, DetStatus_Acquire, DetStatus_Offset, DetStatus_XrayCalibration, }; #endif // !EDETSTATUS //探测器状态 enum ENUM_EXPOSURE_STATUS { EXP_NULL = 0, EXP_START_ACQ = 1, EXP_XWINDOW_ON = 2, EXP_XWINDOW_OFF = 3, EXP_READING = 4, EXP_IMAGE = 5, EXP_END_ACQ = 6 }; //探测器同步模式 enum ENUM_PANEL_SYNC_MODE { PANEL_SYNC_HW = 10, PANEL_SYNC_SW = 11, PANEL_SYNC_AUTO = 12 }; ////探测器异步事件状态 //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 //}; //探测器异步事件状态 //enum ENUM_SHARE_EVENT_STATE //{ // PANEL_CONNECT_ERROR = 0, // PANEL_ATTACH_START = 1, // PANEL_CONNECT_OK = 2, // PANEL_DISCONNECT_SUCCESS = 3, // PANEL_DISCONNECT_ERROR = 4, // PANEL_ATTACH_OVER = 5, // PANEL_ATTACH_FAILED = 6, // PANEL_ATTACH_NULL = 7, //}; //enum ENUM_EXPOSE_STATUS //{ // DOSE_ACCEPT = 0, // DOSE_TOO_HIGH = 1, // DOSE_TOO_LOW = 2, // DOSE_OBJECT = 3 // //}; enum { REQUIRE_HW_MIX, REQUIRE_HW_AUTO, REQUIRE_HW_DEL, }; #ifndef EDETOPERATIONMODE #define EDETOPERATIONMODE enum eDetOperationMode { PIX_OM_RAD = 1, PIX_OM_TOMO, PIX_OM_AED = 3 }; #endif // !EDETOPERATIONMODE #ifndef EDETPIXIMGTYPE #define EDETPIXIMGTYPE enum eDetPixImgType { PIX_IMG_NONE, PIX_IMG_PRE, PIX_IMG_RAW, PIX_IMG_FULL = 4 }; #endif // !EDETPIXIMGTYPE #ifndef EDETINITRESULT #define EDETINITRESULT enum INIT_RESULT { INIT_FAILED, INIT_CONNECT_ERR, INIT_SUCCESS, INIT_FIRMWARE }; #endif // !EDETINITRESULT class TrixellCtrl : public CcosLock { //探测器信息 struct CPanelStatus { string strPanelType; //探测器类型,AddDPC时赋值 string strPanelSN; //探测器序列号,连接成功后获取信息时被赋值 bool bIsPortable; bool bCharging; bool bStatusPolling; bool bDC_AED; bool bDarkCalibDone; //offset刷新结束 bool bAEDDarkCalibDone; bool bLTEDarkCalibDone; //长曝光offset刷新结束 string strModuleIP; //探测器IP地址,attach或收到init回调时赋值 bool bBatteryTooLow; bool bConnectStatus; //是否连接 bool bImagePending; bool bIsLoadRef; //是否加载了校正文件,加载过了不用再次加载 int nBattery; //电池电量 bool bInitOK; //初始化过程探测器连接完毕,用于重连判断 bool bNeedUpdateFW; //是否需要固件升级的标记位 bool bSelftested; //Selftest执行完毕 int nTotalShockNumber; //探测器的shocksenseor总数 int nFWStatus; //探测器固件状态 string strPartNumber; //产品编号,连接成功后获取信息时被赋值 correction_type eCorrectType[3]; //校正类型 All或者offset ResDataObject objPanelConfig; bool bHaveAutonumousMode; //是否支持离线采集 bool bAutonumousMode; //true: 离线模式;false:在线模式 CPanelStatus() { strPanelType = ""; strPanelSN = ""; bIsPortable = false; bCharging = false; bStatusPolling = false; bDC_AED = false; bDarkCalibDone = false; bAEDDarkCalibDone = false; bLTEDarkCalibDone = false; strModuleIP = ""; bBatteryTooLow = false; bConnectStatus = false; bImagePending = false; bIsLoadRef = false; nBattery = 0; bInitOK = false; bNeedUpdateFW = false; bSelftested = false; nTotalShockNumber = -1; nFWStatus = -1; strPartNumber = ""; bHaveAutonumousMode = false; bAutonumousMode = false; } }; public: TrixellCtrl(/*Logger *pLog*/); ~TrixellCtrl(); bool AddDPCs(FPDDeviceTrixell* pDrvDPC, ResDataObject& Configuration, DeviceIndexStruct& DeviceStruct); bool DelDPCs(FPDDeviceTrixell* pDrvDPC); int GetDPCsCount(); bool ActivePanel(FPDDeviceTrixell* pDrvDPC); bool SwitchPanel(int nPanelId); bool EnterExam(APP_STATUS eStatus); bool Connect(string strWorkPath, FPDDeviceTrixell* pDrvDPC); void DisConnect(FPDDeviceTrixell* pDrvDPC); void SetAttachFPDInfo(string strFPDType, int nDetectorID); bool AttachDetector(FPDDeviceTrixell* pDrvDPC); void CancelAttach(); RET_STATUS SetSyncMode(SYNC_MODE nSyncMode, HARDWARE_TRIGGER_MODE TriggerMode); bool SelectExamMode(int nLogicMode, FPDDeviceTrixell* pDrvDPC); RET_STATUS SetFrameRate(FLOAT frameRate, FPDDeviceTrixell* pDrvDPC); RET_STATUS StartAcquisition(FPDDeviceTrixell* pDrvDPC); RET_STATUS StopAcquisition(FPDDeviceTrixell* pDrvDPC); RET_STATUS PrepareAcquisition(FPDDeviceTrixell* pDrvDPC); RET_STATUS ActiveCalibration(CCOS_CALIBRATION_TYPE Type); RET_STATUS StartCalibration(FPDDeviceTrixell* pDrvDPC); RET_STATUS GetDoseRequest(float& DoseReq, FPDDeviceTrixell* pDrvDPC); RET_STATUS AbortCalibration(FPDDeviceTrixell* pDrvDPC); RET_STATUS PrepareCalibration(FPDDeviceTrixell* pDrvDPC); RET_STATUS PostCalibration(FPDDeviceTrixell* pDrvDPC); RET_STATUS CompleteCalibration(FPDDeviceTrixell* pDrvDPC); bool SetLTEMode(bool bEnable); bool RecoverLastImage(); bool WakeupDetector(int nDetectorID); bool LoadDLL(string strWorkPath = ""); static void EventCallback(const event_id eventID, const Event* eventData, void* customData); //static void OutputCallback(const char* string, void* customData); static void RsprogressCallback(const unsigned int transferred_bytes, const unsigned int total_bytes, void* customData); void ProcessEvent(const event_id eventID, const Event* eventData); bool ProcessEventError(string strEventName, error_status err, int nDetectorID = -1); bool TestError(error_status err, int nFpdID = -1, string strFuncName = ""); bool TestRSError(rs_error_status err, int nFpdID = -1, string strFuncName = ""); int InitDetector(bool bAttachProcess = false, int nDetectorID = -1); bool CloseDetector(); bool ConnectDetector(bool bAttachProcess, int nDetectorID); bool ConnectDetectorInFWUpdating(int nDetectorID); bool DisconnectDetector(int nDetectorID); bool LockPixrad(string strPosition = "", int nTimeout = 65000); //等待耗时操作执行完毕,耗时1分钟 void UnlockPixrad(string strPosition = ""); bool GetConfigParameters(int nDetectorID); bool SetFpdExamMode(string strPanelType, int nOmMode, int nAppMode, bool bEnable); //激活探测器特殊模式 aed/tomo bool RefreshOffset(bool bEnablePreview, int nOmMode, int nAppMode, bool bWaitOver = true); //刷新单一模式offset //bool RefreshAllOffset(); //刷新全部模式offset bool LoadReference(int nAppMode, int nDetectorID, bool bLTEenable = false); bool LoadReferenceEx(application_mode aMode, operating_mode oMode, unsigned short usDetectorMode, unsigned short usGainID, unsigned short usDMID); bool ConfigPixradSDK(ResDataObject ResConfig); bool GetSystemState(system_state& stState); bool SetSystemState(system_state stState); bool SetApplicationParam(int nAppMode); //设置应用参数 bool ActiveGainCalibration(); void OnProcessImg(); void SaveRawFunc(eDetPixImgType eImgType, WORD* pInImg); bool ResumeSequence(bool bLock); //校正时触发SDK进行下一步操作 bool GetEffectiveImage(WORD* pOutImg, WORD* pInImg, int nInWidth); //static DWORD __stdcall RefreshOffsetThread(PVOID pvoid); //void OnRefreshOffset(); //offset 刷新 void OnProcessDarkEnd(); void StartModuleThread(); static DWORD __stdcall onModuleThread(PVOID pvoid); bool OnModuleConnect(); bool ModifyModuleFPDConf(string strDetectorIP, string strHostIP); bool ModifyFPDsIPConf(); bool ModifyFPDIPConf(string strConfPath, string strDetectorIP, string strHostIP = ""); //bool ModifyDRFPDIPConf(string strDetectorIP, string strConfPath); bool ModifyOLDFPDIPConf(string strDetectorIP, string strConfPath, string strHostIP); bool ModifyOLDFPDIPConfEx(string strDetectorIP, string strConfPath); bool SetIRPort(string strDetectorType, int nPort); bool CopyFile2Folder(string strSrcPath, string strDstPath); bool SetStatusPolling(int nDetectorID, bool bEnable); bool SetDetectorStatusPolling(int nDetectorID, bool bEnable); bool GetHardwareStatus(int nDetectorID); bool GetDetectorHardwareStatus(int nDetectorID); bool GetDetectorWifiStatus(int nDetectorID); bool GetDetectorInformation(int nDetectorID, bool bRequireVoltage = false); void SimulateShockSensor(int nDetectorID, bool bSend = true); bool UploadSensitivity(int nDetectorID = -1); bool DownloadSensitivity(int nDetectorID = -1); bool UploadReferences(int nDetectorID = -1); bool DownloadReferences(bool bLTEenable = false, int nDetectorID = -1); bool UploadDefectCalibrationFiles(int nDetectorID = -1); bool UploadDefectMap(int nDetectorID = -1); bool DownloadDefectMap(int nDetectorID = -1); bool RestoreCalibrationData(bool bLTEenable = false, int nDetectorID = -1); bool UploadtoDetector(string strFilePath, string strFileName, int nDetectorID = -1); bool DownloadfromDetector(string strFilePath, string strFileName, int nDetectorID = -1); bool IsPortablePanel(string strPanelType); bool FactoryCorrectionActive(bool bAttachProcess, int nDetectorID = -1); bool SelfTestFPD(int nDetectorID = -1); bool GetCalibrationTime(int nDetectorID = -1); bool GetModeMatchInfo(); bool SetActiveDetector(unsigned short usDetectorID); bool GetActiveDetector(unsigned short& usDetectorID); void ConfFeedback(int nEventID, int nDetectorID = -1, const char* pszMsg = "", int nParam1 = 0, float fParam2 = 0, int nPtrParamLen = 0, void* pParam = NULL); void InfoFeedback(int nEventID, int nDetectorID = -1, int nParam1 = 0, float fParam2 = 0, const char* pszMsg = "", int nPtrParamLen = 0, void* pParam = NULL); void StatusFeedback(int nEventID, int nParam1 = 0, const char* pszMsg = "", int nDetectorID = -1, float fParam2 = 0, int nPtrParamLen = 0, void* pParam = NULL); void DataFeedback(int nEventID, void* pParam = NULL, int nParam1 = 0, float fParam2 = 0, const char* pszMsg = "", int nPtrParamLen = 0, int nDetectorID = -1); void WarnFeedback(int nEventID, const char* pszMsg = "", int nParam1 = 0, float fParam2 = 0, int nPtrParamLen = 0, void* pParam = NULL, int nDetectorID = -1); void ErrorFeedback(int nEventID, const char* pszMsg = "", int nDetectorID = -1, int nParam1 = 0, float fParam2 = 0, int nPtrParamLen = 0, void* pParam = NULL); bool IRFuncSetting(bool bModifyConfig, bool bInvokeAPI); static DWORD __stdcall onFPDScanThread(PVOID pvoid); bool SetConnectConf(bool bConnect, int nDetectorID); bool GetConnectConf(int nDetectorID); bool IsConnected(string strIP); //void SetAttachFPDInfo(string strFPDType, int nDetectorID); bool CheckFileExits(string strPath, string strFile); void OnEndCalibraion(); static DWORD __stdcall onCheckShockThread(PVOID pvoid); void StopThread(); void UpdateFirmware(int nDetectorID); static DWORD __stdcall onUpdateFWThread(PVOID pvoid); bool onUpdateFirmware(); bool GetFWVersion(string strPNCode, string& strFirmwareVersion, int nDetectorID); bool ModifyFirmwareLogPath(int nDetectorID); int CallAdapter(string strFirmwareVersion, string strIPAddress, int nDetectorID); UINT ExecuteEXE(string strExeName, string strParameters, DWORD& hProcID); DWORD GetProcessidFromName(string strProcName); static DWORD __stdcall onFPDStatusThread(PVOID pvoid); bool onCheckFPDStatus(); bool InDetectorShare(); string GetPanelResource(string strKey); bool UpdatePanelSerialFile(string strPanelType, string strSN, string strSetIP, string strDate, bool bActive); bool GetPanelSNList(string strPanelSerial, PanelSerialList& stpanelInfo); void RefreshHWStatus(); bool OfflineFPD(int nDetectorID); bool StartOfflineAutonumousThread(); static unsigned __stdcall onOfflineAutonumousMode(void* pParam); bool OfflineAutonumousMode(); bool SetSyncMode(int nDetectorID, SYNC_MODE nSyncMode); bool SetSyncMode(int nDetectorID, int nSyncMode); bool OnlineFPD(int nDetectorID); bool StartOnlineAutonumousThread(); static unsigned __stdcall onOnlineAutonumousMode(void* pParam); bool OnlineAutonumousMode(); bool GetAutonumousImageList(int nDetectorID, vector& AutonumousList); string RecognizeBarcode(string strData, int nLen); bool RemoveAutonumousImageList(string strMeta); bool RemoveAutonumousAll(); bool GetImageMetaData(string strMetaData); static DWORD __stdcall onGetStoredImageThread(PVOID pvoid); bool GetStoredImage(string strMetaData); bool ExportAutonumousAll(); static DWORD __stdcall onExportAutonumousToLocal(PVOID pvoid); bool ExportAutonumousToLocal(); bool SetSaveRawDataMode(int nSaveRawDataMode); bool SaveRawImage(const char* pImgName, const WORD* pRawImg, int nWidth, int nHeight); bool ApplicationAcquireSequence(); //触发采集序列 bool AcceptCalibration(); bool RejectCalibration(); bool GetCalibrationStep(int nCalibCurrentCalibrationRound, int nCalibrationRounds, int nCalibCurrentExposureIndex, int nExposureNumCurrentRound); bool SaveCalibrationFile(); bool SetReferenceNum(int nReferenceNum); public: int m_nPanelCount; int m_nCurrentPanelID; //0, 1, 2 void* m_pCurrentDPC; map* m_pDPC2PanelID; map* m_pPanelID2DPC; ResDataObject m_PanelConfigPath; //加载PanelConfigPath,通过探测器类型获取配置文件名称 ResDataObject m_ModeMatch; //存储配置文件中FPDModeMatch项 ResDataObject m_SelfTest; //存储自检信息 private: bool WaitRespond(int nTimeOut, string strAction = ""); bool SendRespond(string strAction = ""); private: HMODULE m_hTrixellModule; string m_strPanelType; //探测器类型 string m_strWorkPath; //工作路径 string m_strPanelIP; //配置文件中的IP地址 string m_strCfgPath; //SDK配置文件路径 bool m_bOpened; //true: SDK Open成功,避免重复执行 bool m_bConnected; //true: SDK Connect成功,避免重复执行 bool m_bLoaded; //true: 已经加载过SDK APP_STATUS m_eAppStatus; //记录当前软件的工作状态(界面) ConfigParameters m_configParams; string m_strDetectorSSID_Old; system_state m_currentState; //记录当前状态 QUIET REFERENCE PATIENT等 int m_nCurrentMode; //记录探测器当前application mode int m_nCurrentOmMode; //记录探测器当前操作模式,取自自定义枚举类型eDetOperationMode的值 int m_nCurrentAppMode; //记录当前的应用模式 bool m_bWorkMode; //true: 已经进入workmode int m_nImageWidth; int m_nImageHeight; int m_nWidthOffset; int m_nHeightOffset; int m_nRawImgWidth; //图像原始宽 int m_nRawImgHeight; //图像原始高 WORD* m_pPreImgBuffer; WORD* m_pImgBuffer; WORD* m_pRawImgBuffer; int m_nImgBits; int m_nPixelPitch; bool m_bPreviewEnable; int m_nPreviewWidth; int m_nPreviewHeight; CCOS_CALIBRATION_TYPE m_eCaliType; // 记录当前校正模式 float m_fDose; float m_fCurrentDose; // 记录当前的Dose要求 eDetStatus m_eStatus; // 探测器状态 int m_nXwinOnIndex; // tomo开窗次数 int m_nTomoImgIndex; //tomo曝光图像的index,存图时使用 int m_nTomoImgCount; //tomo曝光图像的张数(1~30) int m_nCaliFailedCount; //记录增益校正失败次数,超过一定次数自动停止校正 bool m_bGainPreparing; //true: 正在进入增益校正状态 bool m_bGainProcess; //true: 处于增益曝光的一次小循环当中(WindowOn ~ SDK返回当前曝光结果) bool m_bConfirmCaliRst; //true: 接受当前增益校正曝光结果 bool m_bAutoContinueCal; //true: SDK自动进行下一次增益开窗流程(一般是在当前增益合格);false: 手动触发SDK进行下一次增益 int m_nSaveRaw; //0:不存; 1:预览图; 2:raw图; 4:实际尺寸图像; bool m_bPreviewImg; //true: 当前获取的是预览图 bool m_bExpEnable; //true: 曝光使能。false的情况下不允许进行曝光操作 eDetPixImgType m_eImgType; //图像类型 bool m_bWaitAcqEnd; //true:调用停止采集,等待EVT_END_ACQUISITION bool m_bPrepShot; //true:收到了EVT_PREP_XRAY_SHOT,不用在FramePrep里面进行耗时操作 //int m_nGainNodeCount; //校正曝光的总节点个数 //int m_nGainNodeIndex; //校正曝光的节点Index //int m_nGainExpCount; //校正曝光节点需要曝光的次数 //int m_nGainExpIndex; //校正曝光节点已曝光的次数 correction_type m_eCorrectionType; //记录可以设置给探测器的校正模式 correction_type m_eCurrentCT; //记录当前的设置给探测器的校正模式 bool m_bAbortRefreshOft; //true 终止offset int m_nOftRefreshTimer; //offset刷新计时器 单位:分钟 int m_nAngle; //顺时针旋转角度,支持90 180 270 CRITICAL_SECTION m_cs; int m_nIgnoreImgCount; //tomo模式需要忽略掉的图像张数 int m_nIgnoreImgNum; //tomo模式已经忽略掉的图像张数 int m_nCfgCalibPrepare; CPanelStatus* m_pStPanelStatus[3]; DeviceIndexStruct m_stDeviceIndex[3]; //配置的探测器列表//不超过三块板 int m_nDetectorID; bool m_bAttaching; //true: 探测器正在attach过程中 bool m_bModuleConnecting; //true: 探测器正在连接过程中。固件升级、attach时使用 bool m_bModulePresent; //记录红外探头是否和探测器接触 string m_strModuleType; //红外获取的探测器类型; string m_strModuleIP;//红外获取的探测器IP; string m_strModuleSN; //红外获取的探测器SN string m_strModuleSSID; //红外获取的SSID bool m_bModuleEnable; //true: 使用红外扫描功能 int m_nIRPort; //从配置文件中读取到的红外探头串口号 bool m_bUpdateFirmwareDirect; //true: 直接升级固件 //bool m_bNeedUpdateFW; //true: 需要升级固件 需要通过配置获知是否需要升级 bool m_bNeedFeedback; //true: 获取wifi信息中,需要unlockpixrad unsigned int m_nSessionID; //下载文件时 和探测器的会话ID bool m_bLTEenable; //true: 长曝光模式 SYNC_MODE m_eSyncMode; //同步模式 int m_nXWinMode; int m_nLteXWinMode; bool m_bTransImageSuccess; //true:图像传输成功 //int m_nTotalShockNumber; string m_strAttachFPD; //记录要attach的探测器类型 int m_nAttachFPDID; //记录要attach的探测器ID int m_nUpdateFPDID; //记录要固件升级的探测器ID int m_nShockFPDID; //记录要查询shock sensor信息的探测器ID bool m_bExitShockCheck; //true:退出获取shock sensor信息的线程 int m_nRefreshOftMode; //当前刷新offset的appmode bool m_bIsImageRecovering; //是否处于图像恢复流程 PanelSerialXMLControl m_objSNlist; int m_nRequireHWType; //查询多板状态的机制 int m_nStatusTimeout; //通过SDK polling状态的时间 int m_nPollingTimes; //通过SDK polling状态的次数 int m_nStopPollingIndex; //停止polling功能的探测器index bool m_bIsExpInAuto; //true: aed模式曝光了 bool m_bRefreshing; //true:正在刷新offset bool m_bReInitialize; //true:正在重新初始化 int m_nAutonumousID; //离线采集的探测器ID vector m_vecStorageList; vector m_StoredImageMetaDataList; string m_strGetMetaData; bool m_bAutonumousMode; string m_strAutonumousMetaData; int m_nAutonumousImageIndex; CCOS_CALIBRATION_MODE m_nCalibrationMode; CZSKKCalibrationCtrl* m_pZSKKCalib; int m_nCalibCurrentCalibrationRound; int m_nCalibrationRounds; int m_nCalibCurrentExposureIndex; int m_nExposureNumCurrentRound; bool m_bSaveCalibrationRaw; HANDLE m_hShareEvent; //等待事件锁 //HANDLE m_hRefreshOftEvent; //HANDLE m_hRefreshOftThread; //自动刷新offset线程 HANDLE m_hFPDScanThread; //辅助线程,执行开窗、关窗等通知 HANDLE m_hFPDStatusThread; //检查探测器状态线程句柄 //HANDLE m_hOftEndEvent; //自动刷新offset结束 HANDLE m_hStopScanEvent; HANDLE m_hProcessImgEvent; HANDLE m_hXWinOnEvent; HANDLE m_hXWinOffEvent; HANDLE m_hEndCalibEvent; HANDLE m_hDarkEndEvent; //dark校正结束 HANDLE m_hClosePollingEvent; HANDLE m_hArrayEvent[7]; HANDLE m_hModuleThread; //红外连接线程的句柄 HANDLE m_hCheckShockThread; //获取shock信息的线程的句柄 HANDLE m_hCheckShockEvent; HANDLE m_hToggleEvent; //线程执行结束的通知事件 HANDLE m_hQuitAdaptEvent; //退出固件升级线程 HANDLE m_hQuitStatusEvent; //退出检查探测器状态线程事件 HANDLE m_hRespondEvent; //耗时流程执行等待事件 CB_TED_PixRad_RegisterEventCallback TED_PixRad_RegisterEventCallback; CB_TED_PixRad_RegisterOutputMsgCallback TED_PixRad_RegisterOutputMsgCallback; CB_TED_PixRad_Open TED_PixRad_Open; //同步函数 CB_TED_PixRad_Close TED_PixRad_Close; CB_TED_PixRad_ResetDetector TED_PixRad_ResetDetector; CB_TED_PixRad_StartAcquisition TED_PixRad_StartAcquisition; CB_TED_PixRad_StopAcquisition TED_PixRad_StopAcquisition; CB_TED_PixRad_GetConfigParameters TED_PixRad_GetConfigParameters; //同步函数 CB_TED_PixRad_GetHardwareStatus TED_PixRad_GetHardwareStatus; CB_TED_PixRad_GetDetectorHardwareStatus TED_PixRad_GetDetectorHardwareStatus; CB_TED_PixRad_GetWifiStatus TED_PixRad_GetWifiStatus; CB_TED_PixRad_GetDetectorWifiStatus TED_PixRad_GetDetectorWifiStatus; CB_TED_PixRad_GetSystemStatus TED_PixRad_GetSystemStatus; CB_TED_PixRad_GetSystemState TED_PixRad_GetSystemState; CB_TED_PixRad_LoadReferences TED_PixRad_LoadReferences; CB_TED_PixRad_DarkCalibration TED_PixRad_DarkCalibration; //DarkCalibration --- 先从quiet切换到reference,然后EVT_START_DARK_CALIBRATION,最后EVT_END_DARK_CALIBRATION,再切换到standby状态 CB_TED_PixRad_XRayCalibration TED_PixRad_XRayCalibration; CB_TED_PixRad_CancelSequence TED_PixRad_CancelSequence; CB_TED_PixRad_SetActiveDetector TED_PixRad_SetActiveDetector; CB_TED_PixRad_GetActiveDetector TED_PixRad_GetActiveDetector; CB_TED_PixRad_PerformDetectorSelfTest TED_PixRad_PerformDetectorSelfTest; CB_TED_PixRad_SwitchSSID TED_PixRad_SwitchSSID; CB_TED_PixRad_ResumeSequence TED_PixRad_ResumeSequence; CB_TED_PixRad_SetSystemState TED_PixRad_SetSystemState; CB_TED_PixRad_UnregisterEventCallback TED_PixRad_UnregisterEventCallback; CB_TED_PixRad_UnregisterOutputMsgCallback TED_PixRad_UnregisterOutputMsgCallback; CB_TED_PixRad_ModulePolling TED_PixRad_ModulePolling; CB_TED_PixRad_ModuleSwitchSSID TED_PixRad_ModuleSwitchSSID; CB_TED_PixRad_ModuleSetNetworkConfig TED_PixRad_ModuleSetNetworkConfig; CB_TED_PixRad_ModuleSetIpConfig TED_PixRad_ModuleSetIpConfig; CB_TED_PixRad_Connect TED_PixRad_Connect; CB_TED_PixRad_Disconnect TED_PixRad_Disconnect; CB_TED_PixRad_DetectorControl TED_PixRad_DetectorControl; CB_TED_PixRad_RecoverLastImage TED_PixRad_RecoverLastImage; CB_TED_PixRad_GetLastAcquisitionData TED_PixRad_GetLastAcquisitionData; CB_TED_PixRad_DetectorStatusPolling TED_PixRad_DetectorStatusPolling; CB_TED_PixRad_GetVoltage TED_PixRad_GetVoltage; CB_TED_PixRad_SetImageMetadata TED_PixRad_SetImageMetadata; CB_TED_PixRad_GetStoredImageList TED_PixRad_GetStoredImageList; CB_TED_PixRad_GetStoredImage TED_PixRad_GetStoredImage; CB_TED_PixRad_RemoveStoredImage TED_PixRad_RemoveStoredImage; CB_TED_PixRad_ModuleGetInfo TED_PixRad_ModuleGetInfo; CB_TED_PixRad_SetApplicationParameters TED_PixRad_SetApplicationParameters; CB_TED_PixRad_ApplicationAcquisition TED_PixRad_ApplicationAcquisition; CB_TED_PixRad_GetDetectorInformation TED_PixRad_GetDetectorInformation; CB_TED_PixRad_ApplicationControl TED_PixRad_ApplicationControl; CB_TED_PixRad_RemoveAllStoredImages TED_PixRad_RemoveAllStoredImages; CB_TED_PixRad_GetSystemCalibrationTimeStatus TED_PixRad_GetSystemCalibrationTimeStatus; CB_TED_PixRad_OpenRemoteStorageSession TED_PixRad_OpenRemoteStorageSession; CB_TED_PixRad_CloseRemoteStorageSession TED_PixRad_CloseRemoteStorageSession; CB_TED_PixRad_RemoteStorageUploadFile TED_PixRad_RemoteStorageUploadFile; CB_TED_PixRad_RemoteStorageDownloadFile TED_PixRad_RemoteStorageDownloadFile; CB_TED_PixRad_RemoteStorageCreateDirectory TED_PixRad_RemoteStorageCreateDirectory; CB_TED_PixRad_SaveImage TED_PixRad_SaveImage; CB_TED_PixRad_LoadImage TED_PixRad_LoadImage; CB_TED_PixRad_TransferStoredImages TED_PixRad_TransferStoredImages; ResDataObject m_ModeConfig; ResDataObject m_ObjFPDsInfo; //存储探测器数量和类型 };