联调测试流程
This commit is contained in:
parent
f5bfdf0468
commit
24ccdd1458
|
@ -62,6 +62,7 @@ SOURCES += \
|
|||
dialog_login.cpp \
|
||||
dialog_rootfuntion.cpp \
|
||||
dialog_uploadcfgfile.cpp \
|
||||
dialog_userinput.cpp \
|
||||
form_maininterface.cpp \
|
||||
form_texttips.cpp \
|
||||
hgscanner.cpp \
|
||||
|
@ -80,6 +81,7 @@ HEADERS += \
|
|||
dialog_login.h \
|
||||
dialog_rootfuntion.h \
|
||||
dialog_uploadcfgfile.h \
|
||||
dialog_userinput.h \
|
||||
form_maininterface.h \
|
||||
form_texttips.h \
|
||||
hgscanner.h \
|
||||
|
@ -93,6 +95,7 @@ FORMS += \
|
|||
dialog_login.ui \
|
||||
dialog_rootfuntion.ui \
|
||||
dialog_uploadcfgfile.ui \
|
||||
dialog_userinput.ui \
|
||||
form_maininterface.ui \
|
||||
form_texttips.ui \
|
||||
mainwindow.ui
|
||||
|
|
|
@ -29,7 +29,7 @@ Dialog_logIn::Dialog_logIn(QWidget *parent) :
|
|||
ui->lineEdit_dbHost->setText("192.168.1.70");
|
||||
ui->lineEdit_dbPort->setText("3306");
|
||||
ui->lineEdit_ftpHost->setText("192.168.1.70");
|
||||
ui->lineEdit_ftpPort->setText("3306");
|
||||
ui->lineEdit_ftpPort->setText("21");
|
||||
|
||||
ui->label_dbHost->setVisible(false);
|
||||
ui->label_dbPort->setVisible(false);
|
||||
|
@ -52,6 +52,16 @@ HGPdtToolDbUserMgr Dialog_logIn::GetUserMgr()
|
|||
return m_pdtToolDbuserMgr;
|
||||
}
|
||||
|
||||
QString Dialog_logIn::GetFtpHost()
|
||||
{
|
||||
return ui->lineEdit_ftpHost->text();
|
||||
}
|
||||
|
||||
unsigned short Dialog_logIn::GetFtpPort()
|
||||
{
|
||||
return ui->lineEdit_ftpPort->text().toUShort();
|
||||
}
|
||||
|
||||
void Dialog_logIn::mousePressEvent(QMouseEvent *event)
|
||||
{
|
||||
if(event->button()==Qt::LeftButton)
|
||||
|
|
|
@ -17,6 +17,8 @@ public:
|
|||
~Dialog_logIn();
|
||||
|
||||
HGPdtToolDbUserMgr GetUserMgr();
|
||||
QString GetFtpHost();
|
||||
unsigned short GetFtpPort();
|
||||
|
||||
void mousePressEvent(QMouseEvent *event);
|
||||
void mouseMoveEvent(QMouseEvent *event);
|
||||
|
|
|
@ -169,6 +169,9 @@ QPushButton#pbtn_close::hover
|
|||
<property name="text">
|
||||
<string>LOG IN</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="default">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
|
|
|
@ -0,0 +1,107 @@
|
|||
#include "dialog_userinput.h"
|
||||
#include "ui_dialog_userinput.h"
|
||||
|
||||
Dialog_UserInput::Dialog_UserInput(ui_helper::value_type type, const QString &title, const QString &desc, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::Dialog_UserInput),
|
||||
m_type(type),
|
||||
m_title(title),
|
||||
m_desc(desc)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
if (type == ui_helper::VAL_TYPE_BOOL)
|
||||
{
|
||||
ui->radioButton_yes->setVisible(true);
|
||||
ui->radioButton_no->setVisible(true);
|
||||
ui->lineEdit->setVisible(false);
|
||||
}
|
||||
else if (type == ui_helper::VAL_TYPE_INT || type == ui_helper::VAL_TYPE_FLOAT || type == ui_helper::VAL_TYPE_STRING)
|
||||
{
|
||||
ui->radioButton_yes->setVisible(false);
|
||||
ui->radioButton_no->setVisible(false);
|
||||
ui->lineEdit->setVisible(true);
|
||||
}
|
||||
|
||||
setWindowTitle(m_title);
|
||||
ui->label->setText(m_desc);
|
||||
}
|
||||
|
||||
Dialog_UserInput::~Dialog_UserInput()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
parameter *Dialog_UserInput::getParam()
|
||||
{
|
||||
UserInputParams *param = new UserInputParams(m_type);
|
||||
if (m_type == ui_helper::VAL_TYPE_BOOL)
|
||||
{
|
||||
if (ui->radioButton_yes->isChecked())
|
||||
param->m_bData = true;
|
||||
else if (ui->radioButton_no->isChecked())
|
||||
param->m_bData = false;
|
||||
}
|
||||
else if (m_type == ui_helper::VAL_TYPE_INT)
|
||||
{
|
||||
param->m_iData = ui->lineEdit->text().toInt();
|
||||
}
|
||||
else if (m_type == ui_helper::VAL_TYPE_FLOAT)
|
||||
{
|
||||
param->m_fData = ui->lineEdit->text().toDouble();
|
||||
}
|
||||
else if (m_type == ui_helper::VAL_TYPE_STRING)
|
||||
{
|
||||
param->m_sData = ui->lineEdit->text().toStdWString();
|
||||
}
|
||||
|
||||
return param;
|
||||
}
|
||||
|
||||
void Dialog_UserInput::on_pbtn_yes_clicked()
|
||||
{
|
||||
getParam();
|
||||
accept();
|
||||
}
|
||||
|
||||
void Dialog_UserInput::on_pbtn_no_clicked()
|
||||
{
|
||||
reject();
|
||||
}
|
||||
|
||||
|
||||
UserInputParams::UserInputParams(ui_helper::value_type type)
|
||||
{
|
||||
m_type = type;
|
||||
}
|
||||
|
||||
UserInputParams::~UserInputParams()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
size_t UserInputParams::get_size()
|
||||
{
|
||||
if (m_type == ui_helper::VAL_TYPE_BOOL)
|
||||
return sizeof(bool);
|
||||
if (m_type == ui_helper::VAL_TYPE_INT)
|
||||
return sizeof(int);
|
||||
if (m_type == ui_helper::VAL_TYPE_FLOAT)
|
||||
return sizeof(double);
|
||||
if (m_type == ui_helper::VAL_TYPE_STRING)
|
||||
return m_sData.size() + 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *UserInputParams::get_data()
|
||||
{
|
||||
if (m_type == ui_helper::VAL_TYPE_BOOL)
|
||||
return &m_bData;
|
||||
if (m_type == ui_helper::VAL_TYPE_INT)
|
||||
return &m_iData;
|
||||
if (m_type == ui_helper::VAL_TYPE_FLOAT)
|
||||
return &m_fData;
|
||||
if (m_type == ui_helper::VAL_TYPE_STRING)
|
||||
return (void*)m_sData.c_str();
|
||||
return nullptr;
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
#ifndef DIALOG_USERINPUT_H
|
||||
#define DIALOG_USERINPUT_H
|
||||
|
||||
#include <QDialog>
|
||||
#include "ui_helper.h"
|
||||
#include <string>
|
||||
|
||||
namespace Ui {
|
||||
class Dialog_UserInput;
|
||||
}
|
||||
|
||||
class UserInputParams : public parameter
|
||||
{
|
||||
public:
|
||||
UserInputParams(ui_helper::value_type type);
|
||||
~UserInputParams();
|
||||
|
||||
size_t get_size();
|
||||
void* get_data();
|
||||
|
||||
ui_helper::value_type m_type;
|
||||
bool m_bData;
|
||||
int m_iData;
|
||||
double m_fData;
|
||||
std::wstring m_sData;
|
||||
};
|
||||
|
||||
class Dialog_UserInput : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit Dialog_UserInput(ui_helper::value_type type, const QString &title, const QString &desc, QWidget *parent = nullptr);
|
||||
~Dialog_UserInput();
|
||||
|
||||
parameter *getParam();
|
||||
|
||||
private slots:
|
||||
void on_pbtn_yes_clicked();
|
||||
|
||||
void on_pbtn_no_clicked();
|
||||
|
||||
private:
|
||||
Ui::Dialog_UserInput *ui;
|
||||
|
||||
ui_helper::value_type m_type;
|
||||
QString m_title;
|
||||
QString m_desc;
|
||||
};
|
||||
|
||||
#endif // DIALOG_USERINPUT_H
|
|
@ -0,0 +1,97 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Dialog_UserInput</class>
|
||||
<widget class="QDialog" name="Dialog_UserInput">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>408</width>
|
||||
<height>164</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<item>
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_yes">
|
||||
<property name="text">
|
||||
<string>YES</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="radioButton_no">
|
||||
<property name="text">
|
||||
<string>NO</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLineEdit" name="lineEdit"/>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pbtn_yes">
|
||||
<property name="text">
|
||||
<string>OK</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pbtn_no">
|
||||
<property name="text">
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -6,6 +6,7 @@
|
|||
#include "base/HGBase.h"
|
||||
#include "imgfmt/HGImgFmt.h"
|
||||
#include "HGUIGlobal.h"
|
||||
#include "HGString.h"
|
||||
#include "form_texttips.h"
|
||||
#include "test_base.h"
|
||||
#include "hgscanner.h"
|
||||
|
@ -71,6 +72,9 @@ Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, SANE_Handle ha
|
|||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
connect(this, SIGNAL(testResult(QString)), this, SLOT(on_testResult(QString)), Qt::QueuedConnection);
|
||||
connect(this, SIGNAL(testResultImg(void*)), this, SLOT(on_testResultImg(void*)), Qt::QueuedConnection);
|
||||
|
||||
QString str;
|
||||
if (m_handle)
|
||||
str = tr("Device has connected");
|
||||
|
@ -136,6 +140,36 @@ void Form_mainInterface::paintEvent(QPaintEvent *event)
|
|||
p.drawRect(0, 0, width() -1, height() -1);
|
||||
}
|
||||
|
||||
void Form_mainInterface::on_testResult(QString text)
|
||||
{
|
||||
QMessageBox::information(this, tr("tips"), text);
|
||||
}
|
||||
|
||||
void Form_mainInterface::on_testResultImg(void *img)
|
||||
{
|
||||
HGImage image = (HGImage)img;
|
||||
ui->stackedWidget->setCurrentWidget(m_view);
|
||||
m_view->addImage(image);
|
||||
|
||||
QString fileName = getCacheFileName();
|
||||
HGResult ret = HGImgFmt_SaveImage(image, 0, 0, getStdString(fileName).c_str());
|
||||
if(ret == HGBASE_ERR_OK)
|
||||
{
|
||||
int row = ui->tableWidget->currentRow();
|
||||
QTableWidgetItem *item = ui->tableWidget->item(row, 1);
|
||||
QString title = item->text();
|
||||
HGUInt entryName = getTestItem(title);
|
||||
|
||||
ret = HGPdtToolDb_UploadDeviceEntryImage(m_pdtToolDbDevice, entryName, m_mainwnd->m_ftpHost.toStdString().c_str(),
|
||||
m_mainwnd->m_ftpPort, fileName.toStdString().c_str());
|
||||
qDebug() << ret << m_mainwnd->m_ftpHost << m_mainwnd->m_ftpPort << fileName;
|
||||
QFile file(fileName);
|
||||
file.remove();
|
||||
}
|
||||
|
||||
HGBase_DestroyImage(image);
|
||||
}
|
||||
|
||||
void Form_mainInterface::on_pbtn_preStep_clicked()
|
||||
{
|
||||
int row = ui->tableWidget->currentRow();
|
||||
|
@ -342,6 +376,27 @@ QString Form_mainInterface::getItemStatusStr(HGUInt status)
|
|||
return statusStr[status];
|
||||
}
|
||||
|
||||
QString Form_mainInterface::getCachePath()
|
||||
{
|
||||
HGChar cachePath[512];
|
||||
HGBase_GetTmpPath(cachePath, 512);
|
||||
strcat(cachePath, "/Cache/");
|
||||
|
||||
return getStdFileName(StdStringToUtf8(cachePath).c_str());
|
||||
}
|
||||
|
||||
QString Form_mainInterface::getCacheFileName()
|
||||
{
|
||||
QString cachePath = getCachePath();
|
||||
HGBase_CreateDir(getStdString(cachePath).c_str());
|
||||
|
||||
char uuid[256] = {0};
|
||||
HGBase_GetUuid(uuid, 256);
|
||||
QString suffix = ".jpg";
|
||||
QString fileName = getStdFileName(cachePath + uuid + suffix);
|
||||
return fileName;
|
||||
}
|
||||
|
||||
void Form_mainInterface::on_tableWidget_currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous)
|
||||
{
|
||||
(void)previous;
|
||||
|
@ -356,19 +411,8 @@ void Form_mainInterface::on_tableWidget_currentItemChanged(QTableWidgetItem *cur
|
|||
bool man = m_map_title_name.value(title).is_man;
|
||||
ui->pbtn_start->setEnabled(!man);
|
||||
|
||||
QString testName;
|
||||
if (title == HGPDTTOOLDB_TITLE_DIAL_SWITCH)
|
||||
{
|
||||
m_textTips->setViewContent(m_map_title_name.value(title).desc);
|
||||
testName = m_map_title_name.value(title).name;
|
||||
ui->stackedWidget->setCurrentWidget(m_textTips);
|
||||
}
|
||||
else if (title == HGPDTTOOLDB_TITLE_SINGLE_PAGE_TEST_1)
|
||||
{
|
||||
//addImg
|
||||
testName = m_map_title_name.value(title).name;
|
||||
ui->stackedWidget->setCurrentWidget(m_view);
|
||||
}
|
||||
m_textTips->setViewContent(m_map_title_name.value(title).desc);
|
||||
ui->stackedWidget->setCurrentWidget(m_textTips);
|
||||
}
|
||||
|
||||
void Form_mainInterface::on_pbtn_start_clicked()
|
||||
|
@ -376,5 +420,6 @@ void Form_mainInterface::on_pbtn_start_clicked()
|
|||
int row = ui->tableWidget->currentRow();
|
||||
QTableWidgetItem *item = ui->tableWidget->item(row, 1);
|
||||
QString title = item->text();
|
||||
func_test_go(title.toStdWString().c_str(), L"null", m_hg);
|
||||
QString name = m_map_title_name.value(title).name;
|
||||
int ret = func_test_go(name.toStdWString().c_str(), L"null", m_hg);
|
||||
}
|
||||
|
|
|
@ -32,6 +32,14 @@ public:
|
|||
protected:
|
||||
void paintEvent(QPaintEvent *event) override;
|
||||
|
||||
signals:
|
||||
void testResult(QString text);
|
||||
void testResultImg(void* img);
|
||||
|
||||
private slots:
|
||||
void on_testResult(QString text);
|
||||
void on_testResultImg(void* img);
|
||||
|
||||
private slots:
|
||||
void on_pbtn_preStep_clicked();
|
||||
|
||||
|
@ -53,6 +61,8 @@ private:
|
|||
HGUInt getTestItemStatus(const QString &title);
|
||||
bool setTestItemStatus(const QString &title, HGUInt status);
|
||||
QString getItemStatusStr(HGUInt status);
|
||||
QString getCachePath();
|
||||
QString getCacheFileName();
|
||||
|
||||
private:
|
||||
Ui::Form_mainInterface *ui;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "hgscanner.h"
|
||||
#include <QMessageBox>
|
||||
#include "form_maininterface.h"
|
||||
#include "dialog_userinput.h"
|
||||
|
||||
hgscanner::hgscanner(Form_mainInterface *form, SANE_Handle h)
|
||||
: m_interface(form)
|
||||
|
@ -14,22 +15,68 @@ hgscanner::~hgscanner()
|
|||
|
||||
parameter* hgscanner::get_user_input(data_from from, value_type type, const wchar_t* title, const wchar_t* desc)
|
||||
{
|
||||
if (from == DATA_FROM_USER)
|
||||
{
|
||||
Dialog_UserInput dlg(type, QString::fromStdWString(title), QString::fromStdWString(desc), m_interface);
|
||||
if (dlg.exec())
|
||||
{
|
||||
return dlg.getParam();
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void hgscanner::test_callback(const wchar_t* name, test_event ev, void* data, size_t flag)
|
||||
{
|
||||
QString testName = QString::fromStdWString(name);
|
||||
QString info = QString::fromStdWString((const wchar_t*)data);
|
||||
if (ev == ui_helper::TEST_EVENT_TIPS)
|
||||
{
|
||||
if (ev == TEST_EVENT_TIPS)
|
||||
{
|
||||
|
||||
}
|
||||
else if(ev == ui_helper::TEST_EVENT_RESULT)
|
||||
{
|
||||
}
|
||||
else if (ev == TEST_EVENT_RESULT)
|
||||
{
|
||||
QString ret;
|
||||
QString info = QString::fromStdWString((const wchar_t*)data);
|
||||
if (flag)
|
||||
ret = QObject::tr("success");
|
||||
else
|
||||
ret = QObject::tr("failed: ") + info;
|
||||
|
||||
}
|
||||
emit m_interface->testResult(ret);
|
||||
}
|
||||
else if (ev == TEST_EVENT_NOT_FIND_TEST)
|
||||
{
|
||||
QString info = QObject::tr("Not find test item");
|
||||
emit m_interface->testResult(info);
|
||||
}
|
||||
else if (ev == TEST_EVENT_HAVE_IMAGE)
|
||||
{
|
||||
SANE_Image *sane_img = (SANE_Image *)data;
|
||||
|
||||
HGUInt imgType = 0;
|
||||
if (sane_img->header.format == SANE_FRAME_GRAY)
|
||||
{
|
||||
if (1 == sane_img->header.depth)
|
||||
imgType = HGBASE_IMGTYPE_BINARY;
|
||||
else if (8 == sane_img->header.depth)
|
||||
imgType = HGBASE_IMGTYPE_GRAY;
|
||||
}
|
||||
else if (sane_img->header.format == SANE_FRAME_RGB)
|
||||
{
|
||||
imgType = HGBASE_IMGTYPE_RGB;
|
||||
}
|
||||
|
||||
HGByte *imgData = sane_img->data;
|
||||
HGImageInfo imgInfo = {(HGUInt)sane_img->header.pixels_per_line, (HGUInt)sane_img->header.lines,
|
||||
imgType, (HGUInt)sane_img->header.bytes_per_line, HGBASE_IMGORIGIN_TOP};
|
||||
|
||||
HGImage img = nullptr;
|
||||
HGBase_CreateImageFromData(imgData, &imgInfo, nullptr, imgType, HGBASE_IMGORIGIN_TOP, &img);
|
||||
if (nullptr != img)
|
||||
{
|
||||
emit m_interface->testResultImg(img);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int hgscanner::register_sane_callback(sane_callback cb, void* param)
|
||||
|
|
|
@ -18,7 +18,7 @@ int main(int argc, char *argv[])
|
|||
Dialog_logIn login;
|
||||
if (login.exec())
|
||||
{
|
||||
MainWindow w(login.GetUserMgr());
|
||||
MainWindow w(login.GetUserMgr(), login.GetFtpHost(), login.GetFtpPort());
|
||||
a.exec();
|
||||
if (w.isExitApp())
|
||||
{
|
||||
|
|
|
@ -10,10 +10,12 @@
|
|||
#include "dialog_uploadcfgfile.h"
|
||||
#include "dialog_inputserialnum.h"
|
||||
|
||||
MainWindow::MainWindow(HGPdtToolDbUserMgr pdtToolDbuserMgr, QWidget *parent)
|
||||
MainWindow::MainWindow(HGPdtToolDbUserMgr pdtToolDbuserMgr, const QString &ftpHost, unsigned short ftpPort, QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
, ui(new Ui::MainWindow)
|
||||
, m_pdtToolDbuserMgr(pdtToolDbuserMgr)
|
||||
, m_ftpHost(ftpHost)
|
||||
, m_ftpPort(ftpPort)
|
||||
, m_lock(nullptr)
|
||||
, m_top_splitter(nullptr)
|
||||
, m_bot_splitter(nullptr)
|
||||
|
|
|
@ -19,7 +19,7 @@ class MainWindow : public QMainWindow
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
MainWindow(HGPdtToolDbUserMgr pdtToolDbuserMgr, QWidget *parent = nullptr);
|
||||
MainWindow(HGPdtToolDbUserMgr pdtToolDbuserMgr, const QString &ftpHost, unsigned short ftpPort, QWidget *parent = nullptr);
|
||||
~MainWindow();
|
||||
static QString getLogInfo(HGResult ret);
|
||||
bool isExitApp();
|
||||
|
@ -73,5 +73,9 @@ private:
|
|||
Ui::MainWindow *ui;
|
||||
HGPdtToolDbUserMgr m_pdtToolDbuserMgr;
|
||||
HGLock m_lock;
|
||||
|
||||
public:
|
||||
QString m_ftpHost;
|
||||
unsigned short m_ftpPort;
|
||||
};
|
||||
#endif // MAINWINDOW_H
|
||||
|
|
|
@ -86,6 +86,7 @@ public:
|
|||
TEST_EVENT_IO_FAIL, // IO. err flag is SCANNER_ERR_DEVICE_NOT_SUPPORT or io err,data is null
|
||||
TEST_EVENT_MANUAL_CONFIRMATION, // After send cmd ,need manual confirmation.
|
||||
TEST_EVENT_RESULT, // test result, data is (wchar_t*)description, flag is (bool)result, true - test pass
|
||||
TEST_EVENT_HAVE_IMAGE // have image.
|
||||
};
|
||||
virtual void test_callback(const wchar_t* name/*test name*/, test_event ev, void* data, size_t flag)=0 ;
|
||||
|
||||
|
|
Loading…
Reference in New Issue