MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->setWindowTitle("Barcode Decoder"); this->timer = new QTimer(this); //QPainter *painter = new QPainter(this); Camera *camera = new Camera(); Process *process = new Process(); process->moveToThread(&decodeThread); decodeThread.start(); camera->moveToThread(&cameraThread); cameraThread.start(); connect(timer , SIGNAL(timeout()) , camera , SLOT(imgRequest()) ); connect(camera, SIGNAL(sendImg(cv::Mat)) , ui->play , SLOT(loadImg(cv::Mat)) ); connect(camera, SIGNAL(sendImg(cv::Mat)) , process , SLOT(getImgAndProcess(cv::Mat)) ); connect(process, SIGNAL(sendIsBarcaode(bool)) , ui->play , SLOT(slotIsBarcodeLocated(bool)) ); connect(process, SIGNAL(sendLoc(cv::Rect)) , ui->play , SLOT(slotGetBarcodeLocation(cv::Rect)) ); connect(process, SIGNAL(sendBarcodeImg(cv::Mat)) , this , SLOT(updateBarcodeImg(cv::Mat)) ); connect(process, SIGNAL(sendBarcode(QString)) , this , SLOT(updateBarcode(QString)) ); connect(ui->close, SIGNAL(pressed()) , ui->play, SLOT(cleanScrean()) ); connect(ui->start, SIGNAL(pressed()) , ui->play, SLOT(startDisplay()) ); //connect(ui->checkBox, SIGNAL(stateChanged(int)) , camera , SLOT(autofocus(int)) ); connect(ui->focusValue, SIGNAL(sliderReleased()) , this , SLOT(getSliderValue()) ); //connect(this , SIGNAL(focusNum(int)) , camera , SLOT(focusValue(int)) ); connect(ui->checkBox , SIGNAL(clicked(bool)) , ui->focusValue, SLOT(setEnabled(bool)) ); //connect(camera , SIGNAL(cameraCheck(bool)) , this , SLOT(slotCameraCheck(bool)) ); //connect(ui->start, SIGNAL(pressed()) , camera , SLOT(autoFocusCheck()) ); connect(ui->start, SIGNAL(pressed()) , camera , SLOT(sendID()) ); connect(camera, SIGNAL(cameraID(int)) , this, SLOT(checkCamera(int)) ); connect(this , SIGNAL(focusNum(int)) , this, SLOT(setCameraFocusValue(int)) ); connect(ui->checkBox , SIGNAL(stateChanged(int)) , this , SLOT(setFocusStatus(int)) ); //camera->autoFocusCheck(); ui->close->setEnabled(false); ui->checkBox->setEnabled(false); ui->focusValue->setEnabled(false); this->cameraFocus = false; //this->timer->start(33);//using timer to trigger update }
/** * @brief KGuardiantServer::run */ void KGuardiantServer::run() { //Bloque de código principal. qDebug() << "KGuardiantServer.Run is executing"; log->log("KGuardiantServer.Run is executing"); cam = new DeviceMgr(this); clock = new QTimer(this); clock->setInterval(300); clock->setSingleShot(false); connect(cam, SIGNAL(finished()), cam, SLOT(deleteLater())); connect(clock, SIGNAL(timeout()), cam, SLOT(requestImage())); detector = new MovementDetector(this); connect(cam, SIGNAL(newImage(cv::Mat&)), detector, SLOT(processImg(cv::Mat&)), Qt::DirectConnection); connect(cam, SIGNAL(newImage(cv::Mat&,cv::Mat&)), detector, SLOT(processImg(cv::Mat&,cv::Mat&)) ,Qt::DirectConnection); connect(detector, SIGNAL(processedImg(QByteArray)), &server, SLOT(sendImg(QByteArray))); connect(detector, SIGNAL(finished()), detector, SLOT(deleteLater())); console = new Console(this); connect(console,SIGNAL(finished()),console,SLOT(deleteLater())); connect(console,SIGNAL(startServer()),&server,SLOT(startServer())); connect(console,SIGNAL(stopServer()),&server,SLOT(stopServer())); connect(console,SIGNAL(checkClients()),&server,SLOT(requestClients())); connect(&server, SIGNAL(clientList(QHash<qintptr,TCPConnection*>*)), console, SLOT(printClients(QHash<qintptr,TCPConnection*>*))); connect(console,SIGNAL(finish()),this,SLOT(quit())); cam->start(); detector->start(); clock->start(); server.startServer(); //console->start(); //QTimer::singleShot(10,console,SLOT(startC())); //Débese chamar a quit() para finalizar o bucle de eventos do sistema. //quit(); }