code_app/app/demo/mainwindow.cpp

148 lines
4.1 KiB
C++

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "imgfmt/HGImgFmt.h"
#include "base/HGTime.h"
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QNetworkAccessManager>
#include <QHttpPart>
#include <QFileInfo>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
m_devUserMgr = new DeviceUserMgr(this);
m_devUser = nullptr;
ui->label_currDevName->setText(tr("no dev"));
}
MainWindow::~MainWindow()
{
if (nullptr != m_devUser)
{
disconnect(m_devUser, SIGNAL(newImage(void*)), this, SLOT(on_newImage(void*)));
delete m_devUser;
m_devUser = nullptr;
}
delete m_devUserMgr;
m_devUserMgr = nullptr;
delete ui;
}
void MainWindow::on_newImage(void *image)
{
static int i = 0;
char fileName[256];
sprintf(fileName, "D:\\test_%d.jpg", i++);
HGImgFmt_SaveImage((HGImage)image, 0, NULL, fileName);
}
void MainWindow::on_scanEvent(HGUInt event)
{
}
void MainWindow::on_pushButton_selectDev_clicked()
{
#if 1
if (nullptr != m_devUser)
{
disconnect(m_devUser, SIGNAL(newImage(void*)), this, SLOT(on_newImage(void*)));
delete m_devUser;
m_devUser = nullptr;
ui->label_currDevName->setText(tr("no dev"));
}
DeviceUser *devUser = m_devUserMgr->OpenDeviceUser();
if (devUser != nullptr)
{
m_devUser = devUser;
connect(m_devUser, SIGNAL(newImage(void*)), this, SLOT(on_newImage(void*)));
connect(m_devUser, &DeviceUser::scanEvent, this, &MainWindow::on_scanEvent, Qt::QueuedConnection);
ui->label_currDevName->setText(m_devUser->GetName());
}
#else
QString filePath("D:\\1.jpg");
QFileInfo info(filePath);
QFile *file = new QFile(filePath);
file->open(QIODevice::ReadOnly);
QHttpMultiPart *multiPart = new QHttpMultiPart(QHttpMultiPart::FormDataType);
QHttpPart filePart;
filePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"file\"; filename=\"123456.jpg\""));
filePart.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("image/jpeg"));
filePart.setBodyDevice(file);
multiPart->append(filePart);
QHttpPart machinePart;
machinePart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"machine\""));
machinePart.setBody(QByteArray("M2"));
multiPart->append(machinePart);
QHttpPart submitPart;
submitPart.setHeader(QNetworkRequest::ContentDispositionHeader, QVariant("form-data; name=\"submit\""));
submitPart.setBody(QByteArray("Submit"));
multiPart->append(submitPart);
QNetworkRequest request;
request.setUrl(QUrl("http://47.104.31.27:8500/v1/api/file/upload"));
QNetworkAccessManager *accessManager = new QNetworkAccessManager(this);
QNetworkReply *reply = accessManager->post(request, multiPart);
multiPart->setParent(reply);
QEventLoop loop;
QObject::connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
loop.exec();
QString s = QString(reply->readAll());
qDebug(s.toStdString().c_str());
file->close();
reply->abort();
accessManager->deleteLater();//不主动释放会在卸载DLL时造成耗时
accessManager=NULL;
#endif
}
void MainWindow::on_pushButton_setting_clicked()
{
#if 0
if (nullptr != m_devUser)
m_devUser->ShowSettingDlg();
#else
HGImage img = NULL;
HGULonglong t1;
HGBase_GetTickCount(&t1);
HGImgFmt_LoadImage("D:\\1.bmp", 0, NULL, 0, 0, &img);
HGULonglong t2;
HGBase_GetTickCount(&t2);
HGDouble seconds;
HGBase_GetIntervalSeconds(t1, t2, &seconds);
qDebug("HGImgFmt_LoadImage seconds=%f", seconds);
if (nullptr != img)
{
HGULonglong t1;
HGBase_GetTickCount(&t1);
HGImgFmt_SaveImage(img, 0, NULL, "D:\\2.jpg");
HGULonglong t2;
HGBase_GetTickCount(&t2);
HGDouble seconds;
HGBase_GetIntervalSeconds(t1, t2, &seconds);
qDebug("HGImgFmt_SaveImage seconds=%f", seconds);
HGBase_DestroyImage(img);
}
#endif
}
void MainWindow::on_pushButton_scan_clicked()
{
if (nullptr != m_devUser)
m_devUser->StartScan();
}