| 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);
 
- 	}
 
- }
 
 
  |