123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #include "WorkThread.h"
- #include "datavar.h"
- #include "base64.h"
- #include "client.h"
- #include <util.h>
- #include "container/threadsafequeue.h"
- GrabThread::GrabThread()
- {
- //qRegisterMetaType<HalconCpp::HObject>(" HalconCpp::HObject&");
- m_stopFlag = false;
- }
- GrabThread::~GrabThread()
- {
- if ( isRunning())
- {
- m_stopFlag = true;
- while (isRunning()) QThread::usleep(5);
- }
- }
- void GrabThread::run()
- {
- //用于保存图片到队列
- cv::Mat src;
- cv::Mat t;
- while (!m_stopFlag)
- {
- if (DataVar::g_camOrFileMode == 0 && DataVar::g_camTriggerMode != 1) //执行条件:相机模式 及 非软触发模式
- {
- long nRet = DataVar::g_camera->getOneImage(src);
- if (nRet == 0)
- {
- DataVar::g_imgsQueue.push(src);
- }
-
- else
- {
- QThread::msleep(5);
- }
- }
- }
- }
- WorkThread::WorkThread()
- {
- m_stopFlag = false;
- m_stateReady = true;
- }
- WorkThread::~WorkThread()
- {
- if (isRunning())
- {
- m_stopFlag = true;
- while (isRunning()) QThread::usleep(5);
- }
- }
- void WorkThread::run()
- {
- while (!m_stopFlag)
- {
- //执行条件:相机模式 及 外触发模式
- if (m_stateReady && DataVar::g_camOrFileMode == 0 && DataVar::g_camTriggerMode > 1 && !DataVar::instance()->getPicRef()->isNull())
- {
- emit sig_runAlg(); //运行算法
- m_stateReady = false;
- }
- else
- {
- QThread::msleep(5);
- }
- }
- }
- void WorkThread::changeAlgState(bool r)
- {
- m_stateReady = r;
- }
|