123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- #include "CGH_CheckStateThread.h"
- #include <qscreen.h>
- #include <QGuiApplication>
- #include "CGH_Printer.h"
- #include "CGH_Shutter.h"
- #include "CGH_State.h"
- CGH_CheckStateThread::CGH_CheckStateThread(QObject* parent) : MyPrinter_Temp(dynamic_cast<CGH_Printer*>(parent))
- {
- connect(this, SIGNAL(isDone(int)), MyPrinter_Temp, SLOT(StateUpdate(int)));
- //MyPrinter_Temp = new CGH_Printer();
- // 初始化变量
- SLMStateNum = 1;
- curSLMState_Temp = false;
- MyShutter_Temp = new CGH_Shutter();
- curShutterState_Temp = false;
- curShutterConnect = false;
- ControllerID_Temp = -1;
- curTransTableState_Temp = false;
- IsConnectedState = false;
- CCDNum = 0;
- curCCDState_Temp = false;
- }
- CGH_CheckStateThread::~CGH_CheckStateThread()
- {
- }
- void CGH_CheckStateThread::Check()
- {
- // 电子快门工作状态检测
- curShutterState_Temp = MyPrinter_Temp->get_ShutterState();
- //MyShutter_Temp->connect();
- curShutterConnect = MyShutter_Temp->isconnected();
- if (!curShutterConnect && curShutterState_Temp)
- isDone(SHUTTER_ERROR);
- else if (curShutterConnect && !curShutterState_Temp)
- isDone(SHUTTER_OK);
- // SLM工作状态检测
- curSLMState_Temp = MyPrinter_Temp->get_SLMState();
- screen_list = QGuiApplication::screens();//获取屏幕列表
- SLMStateNum = screen_list.size();//获取屏幕数量
- if (SLMStateNum != 2 && curSLMState_Temp)
- isDone(SLM_ERROR);
- else if (SLMStateNum == 2 && !curSLMState_Temp)
- isDone(SLM_OK);
- // 平移台工作状态检测
- curTransTableState_Temp = MyPrinter_Temp->get_TransTableState();
- ControllerID_Temp = MyPrinter_Temp->get_ControllerID();
- IsConnectedState = PI_IsConnected(ControllerID_Temp);
- if (!IsConnectedState && curTransTableState_Temp)
- isDone(TRANSTABLE_ERROR);
- else if (IsConnectedState && !curTransTableState_Temp)
- isDone(TRANSTABLE_OK);
- // CCD工作状态检测
- curCCDState_Temp = MyPrinter_Temp->get_CCDState();
- m_pCameraInfos_Temp = QCameraInfo::availableCameras();
- CCDNum = m_pCameraInfos_Temp.size();
- if (CCDNum == 0 && curCCDState_Temp)
- isDone(CCD_ERROR);
- else if (CCDNum > 0 && !curCCDState_Temp)
- isDone(CCD_OK);
- }
- void CGH_CheckStateThread::run()
- {
- while (1) {
- Check();
- msleep(500);
- }
- }
|