118 lines
3.3 KiB
C++
118 lines
3.3 KiB
C++
#include "mainwindow.h"
|
|
#include "ui_mainwindow.h"
|
|
#include "imgfmt/HGImgFmt.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);
|
|
HGBase_DestroyImage((HGImage)image);
|
|
}
|
|
|
|
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*)));
|
|
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 (nullptr != m_devUser)
|
|
m_devUser->ShowSettingDlg();
|
|
}
|
|
|
|
void MainWindow::on_pushButton_scan_clicked()
|
|
{
|
|
if (nullptr != m_devUser)
|
|
m_devUser->StartScan();
|
|
}
|