92 lines
1.7 KiB
C++
92 lines
1.7 KiB
C++
#include "widget.h"
|
|
#include "ui_widget.h"
|
|
#include <iostream>
|
|
#include <QTcpSocket>
|
|
#include <QPushButton>
|
|
#include <QTimer>
|
|
#include <QEventLoop>
|
|
#include <QElapsedTimer>
|
|
// #include <windows.h>
|
|
#include <QApplication>
|
|
#include <QLabel>
|
|
#include <QImage>
|
|
#include <QPixmap>
|
|
#include <QDateTime>
|
|
#include <img_utils.h>
|
|
|
|
|
|
using namespace std;
|
|
|
|
// 硬编码参数值
|
|
int file_delay = 1270; // 延迟时间(毫秒)
|
|
int file_encoder = 12000; // 编码器值++
|
|
int file_valve = 120; // 阀门通道
|
|
Widget::Widget(QWidget *parent)
|
|
: QWidget(parent)
|
|
, ui(new Ui::Widget)
|
|
{
|
|
ui->setupUi(this);
|
|
ui->camera_0_img->setScaledContents(true);
|
|
|
|
|
|
iniColor();
|
|
iniLowMac();
|
|
iniCamera();
|
|
|
|
// 启动显示定时器,每秒检查一次
|
|
QTimer* timer = new QTimer(this);
|
|
connect(timer, &QTimer::timeout, this, &Widget::refreshImage);
|
|
timer->start(50); // 每50毫秒秒刷新一次界面
|
|
}
|
|
|
|
Widget::~Widget()
|
|
{
|
|
// DestoryCamera();
|
|
|
|
}
|
|
|
|
void Widget::refreshImage()
|
|
{
|
|
MIL_ID current_id = 0;
|
|
|
|
// 获取当前的 MIL_ID
|
|
{
|
|
QMutexLocker locker(&gPicMutex0);
|
|
current_id = gCurrentPicId0;
|
|
}
|
|
|
|
if (current_id == 0)
|
|
return;
|
|
|
|
// 获取 QPixmap 并设置到 QLabel
|
|
QPixmap pixmap = ImageUtils::mat2QPixmap(ImageUtils::mil2Mat(current_id));
|
|
if (!pixmap.isNull())
|
|
{
|
|
ui->camera_0_img->setPixmap(pixmap);
|
|
}
|
|
}
|
|
|
|
|
|
void Widget::on_pushButton_clicked()
|
|
{
|
|
Start_camera();
|
|
}
|
|
|
|
void Widget::on_pushButton_2_clicked()
|
|
{
|
|
SaveImg_Flag = 1;
|
|
}
|
|
|
|
|
|
void Widget::on_btn_goto_sort_clicked()
|
|
{
|
|
// 获取当前的 MIL_ID
|
|
{
|
|
QMutexLocker locker(&gPicMutex0);
|
|
gCurrentPicId0 = 0;
|
|
}
|
|
DestoryCamera();
|
|
DestoryLowMac();
|
|
}
|
|
|