// AcqCtrl.cpp : 实现文件 // #include "stdafx.h" #include "AcqCtrl.h" #define DEMOTIMER 1 // CAcqCtrl extern CString strAppPath; extern CString strAppDYNHandleName; extern CString strAppMechCompHandleName; extern CString strAppRFDTHandleName; extern CString strAppDRDTHandleName; extern CString strAppHardwareHandleName; extern CString strAppRFOCHandleName; extern CString g_strLogFilePath; extern CString g_strHWConfFilePath; extern CString g_strConfFilePath; IMPLEMENT_DYNAMIC(CAcqCtrl, CWnd) BEGIN_MESSAGE_MAP(CAcqCtrl, CWnd) ON_WM_TIMER() END_MESSAGE_MAP() CAcqCtrl::CAcqCtrl() { logfile = NULL; m_bState = false; m_bIsHandDwn = false; m_bIsFootDwn = false; m_ImgWidth = 1000; m_ImgHeight = 1000; m_pDemoImgData = NULL; m_ntimerDemoFlu = 0; m_nFluIndex = 0; m_nDemoNum = 0; m_nDemoTimerdur = 100; m_IsExpEnable = false; m_IsFluEnable = false; for (int i = 0; i < 5; i++) { m_pDemoFluData[i] = NULL; } } CAcqCtrl::~CAcqCtrl() { if (logfile) { delete logfile; logfile = NULL; } if (m_pDemoImgData) { delete m_pDemoImgData; m_pDemoImgData = NULL; } } bool CAcqCtrl::Create() { const char * strClassName; //创建背景画刷 HBRUSH m_BrushBGround; m_BrushBGround = ::CreateSolidBrush(RGB(0, 0, 0)); //注册窗口类 strClassName = ::AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW, ::LoadCursor(NULL, IDC_ARROW), m_BrushBGround, NULL); if (!strClassName) { // TRACE("strClassNameis null\n"); return false; } //设置窗口的位置和大小 CRect RectCreate; RectCreate.top = 0; RectCreate.left = 0; RectCreate.bottom = 200; RectCreate.right = 200; //创建窗口对象,注意:Create 函数只能用于创建子窗口,对于应用程序的主窗口,必须使用 //CreateEx函数。 if (!CreateEx(NULL, strClassName, NULL, WS_POPUP | WS_CLIPCHILDREN, RectCreate, NULL, NULL, NULL)) { return false; } return true; } bool CAcqCtrl::StartMonitoring(CAcqCtrl* pCurOprCtl) { if (this->m_bState) return false; return true; } bool CAcqCtrl::StopMonitoring() { if (this->m_bState)return false; return true; } UINT CAcqCtrl::ACQThread(LPVOID pParam) { return 0; } ///////////////////////////////////////////WORKFLOW//////////////////////////// bool CAcqCtrl::InitDETECTOR(HWND hWnd, bool bState) { this->m_bState = bState; this->m_hWnd = hWnd; CAppSettings logsettings(g_strConfFilePath + "\\DROCLogMode.xml"); if (logfile) { delete logfile; logfile = NULL; } logfile = new CLogFile(g_strLogFilePath, _T("ImgAcq"), atoi(logsettings[("LogDays")])); logfile->SetLogMode(atoi(logsettings[_T("ImgAcq")])); if (logfile != NULL) logfile->WriteLog("===================version 1.1.1.17=====================", LOG_INFORMATION, LOG_RELEASE, false); if (!m_bState) return true; this->logfile->WriteLog("Start monitor thread!", LOG_INFORMATION, LOG_DEBUG, true); StartMonitoring(this); return false; } bool CAcqCtrl::ExitDETECTOR() { for (int i = 0; i < 5; i++) { if (m_pDemoFluData[i]) { delete m_pDemoFluData[i]; m_pDemoFluData[i] = NULL; } } for (int i = 0; i < 5; i++) { if (m_pDemoFluData[i]) { delete m_pDemoFluData[i]; m_pDemoFluData[i] = NULL; } } if (m_bState) return false; return true; } bool CAcqCtrl::BeginWorkMode(void) { if (m_bState) return false; return true; } bool CAcqCtrl::EndWorkMode(void) { if (m_bState) return false; return true; } bool CAcqCtrl::InitParameters(void) { if (m_bState) return false; return true; } bool CAcqCtrl::StartGrab() { if (m_bState) return false; return true; } bool CAcqCtrl::StopGrab(int nXRayOnNum) { if (m_bState) return false; return true; } void CAcqCtrl::setNextStepEvent() { return; } bool CAcqCtrl::DownloadCorrectionFile2Device() { return true; } bool CAcqCtrl::SetGrabMode(int nmode)//1: Spot mode, 2: pulse mode, 3: continue mode; { if (m_bState) return false; return true; } ///////////////////////////////////////////MSG Feedback//////////////////////// bool CAcqCtrl::OnXrayGenStart() { if (m_bState)return false; return true; } bool CAcqCtrl::OnXrayGenStop() { if (m_bState)return false; return true; } bool CAcqCtrl::OnXrayGenSetDose() { if (m_bState)return false; return true; } bool CAcqCtrl::OnModeActive() { if (m_bState)return false; return true; } bool CAcqCtrl::OnXrayCalSuccess() { if (m_bState)return false; return true; } bool CAcqCtrl::OnXrayCalFail() { if (m_bState)return false; return true; } bool CAcqCtrl::OnSYNC() { if (m_bState)return false; return true; } bool CAcqCtrl::OnTimeOut() { if (m_bState)return false; return true; } bool CAcqCtrl::OnStatus() { if (m_bState)return false; return true; } bool CAcqCtrl::OnWarning() { if (m_bState)return false; return true; } //////////////////////////////////////////COMMANDS//////////////////////////// bool CAcqCtrl::SelectRADMode(int nLogicMode, int nOffsetIndex) { if (m_bState) return false; return true; } bool CAcqCtrl::SelectFLUMode(int nLogicMode, int nOffsetIndex) { if (m_bState) return false; return true; } bool CAcqCtrl::SelectCINEMode(int nLogicMode, int nOffsetIndex) { if (m_bState) return false; return true; } bool CAcqCtrl::SetRadOffsetMode(int nLogicMode, int nOffsetIndex, int nSpeed) { if (m_bState) return false; return true; } bool CAcqCtrl::SetFluOffsetMode(int nLogicMode, int nOffsetIndex, float fSpeed) { if (m_bState) return false; return true; } bool CAcqCtrl::SetCinOffsetMode(int nLogicMode, int nOffsetIndex, float fSpeed) { if (m_bState) return false; return true; } bool CAcqCtrl::GetActiveMode(int &nLogicMode, int &nOffsetIndex) { if (m_bState) return false; return true; } bool CAcqCtrl::ActiveRADMode() { if (m_bState) return false; return true; } bool CAcqCtrl::ActiveFLUMode() { if (m_bState) return false; return true; } bool CAcqCtrl::ActiveCINEMode() { if (m_bState) return false; return true; } bool CAcqCtrl::SetSpotFrameRate(float fps) { if (m_bState) return false; return true; } bool CAcqCtrl::SetFLUFrameRate(float fps) { if (m_bState) return false; return true; } bool CAcqCtrl::SetCINEFrameRate(float fps) { if (m_bState) return false; return true; } bool CAcqCtrl::ExpEnable() { this->logfile->WriteLog("ExpEnable", LOG_INFORMATION, LOG_DEBUG, true); m_IsExpEnable = true; return true; } bool CAcqCtrl::ExpDisable() { this->logfile->WriteLog("ExpDisable", LOG_INFORMATION, LOG_DEBUG, true); m_IsExpEnable = false; return true; } bool CAcqCtrl::FluEnable() { this->logfile->WriteLog("FluEnable", LOG_INFORMATION, LOG_DEBUG, true); m_IsFluEnable = true; return true; } bool CAcqCtrl::FluDisable() { this->logfile->WriteLog("FluDisable", LOG_INFORMATION, LOG_DEBUG, true); m_IsFluEnable = false; return true; } bool CAcqCtrl::GetOffsetInfo(int nLogicMode, vector &vecOffsetInfo) { if (m_bState) return false; return true; } bool CAcqCtrl::GetLogicModeList(vector &vecDetectorMode) { if (m_bState) return false; return true; } //////////////////////////////////////////MSG Process//////////////////////////// bool CAcqCtrl::OnCOPYDATA_MSG_Process(WPARAM wParam, LPARAM lParam) { return true; } bool CAcqCtrl::OnMSGWORKFLOW_Process(WPARAM wParam, LPARAM lParam) { return true; } bool CAcqCtrl::OnMSGCALIBRATION_Process(WPARAM wParam, LPARAM lParam) { return true; } bool CAcqCtrl::OnMSGPARAMETER_Process(WPARAM wParam, LPARAM lParam) { return true; } bool CAcqCtrl::MSGControl(CWnd *Wnd, int nMSGType, WPARAM nMSGwParam, LPARAM nMSGpParam, int nMSGOutMode, int nTargetPosition) { CString strHandleName = strAppHardwareHandleName; switch (nTargetPosition) { case ZSKK_MSG_TARGETHANDLE_NULL: break; case ZSKK_MSG_TARGETHANDLE_RFOC: strHandleName = strAppRFOCHandleName; break; case ZSKK_MSG_TARGETHANDLE_RFHARDWARE: strHandleName = strAppHardwareHandleName; break; case ZSKK_MSG_TARGETHANDLE_RFMECHNICAL: strHandleName = strAppMechCompHandleName; break; case ZSKK_MSG_TARGETHANDLE_RFDETECTOR: strHandleName = strAppRFDTHandleName; break; case ZSKK_MSG_TARGETHANDLE_DRDETECTOR: strHandleName = strAppDRDTHandleName; break; case ZSKK_MSG_TARGETHANDLE_RFDYN: strHandleName = strAppDYNHandleName; break; default: break; } CWnd *targetWnd = CWnd::FindWindow(NULL, strHandleName); if (targetWnd != NULL) { if (nMSGOutMode == ZSKK_MSG_TYPE_SYNC_NO) { targetWnd->PostMessage(nMSGType, nMSGwParam, nMSGpParam); } else { targetWnd->SendMessage(nMSGType, nMSGwParam, nMSGpParam); } } return true; } ////CAL Mode: 1 defect, 2: Linear Gain, 4: Offset 8: Polynomial gain, 16: Blinking bool CAcqCtrl::EnterCalibration() { if (m_bState) return false; return true; } bool CAcqCtrl::BeginCalibration(int nLogicMode, int nOffsetIndex, int nCalMode) { if (m_bState) return false; return true; } bool CAcqCtrl::GetCalibrationStatus(int nLogicMode, int nOffsetIndex, ZSKK_CAL_STATUS& modeStatus) { if (m_bState) return false; return true; } bool CAcqCtrl::CalibrateAllModes() { if (m_bState) return false; return true; } bool CAcqCtrl::AbortCalibration() { if (m_bState) return false; return true; } bool CAcqCtrl::ExitCalibration() { if (m_bState) return false; return true; } bool CAcqCtrl::StartOffsetRefresh() { if (m_bState) return false; return true; } bool CAcqCtrl::StartOffsetCalibration() { if (m_bState) return false; return true; } bool CAcqCtrl::EnableAutoOffset(bool bEn) { if (m_bState) return false; return true; } bool CAcqCtrl::OffsetByUser() { if (m_bState) return false; return true; } bool CAcqCtrl::ResetConnection() { if (m_bState) { return false; } return true; }