调整热拔插流程

This commit is contained in:
yangjiaxuan 2022-12-31 12:43:02 +08:00
parent d6cb1ca104
commit 3acb2e7960
6 changed files with 143 additions and 90 deletions

View File

@ -124,12 +124,12 @@
<translation></translation>
</message>
<message>
<location filename="dialog_userinput.ui" line="160"/>
<location filename="dialog_userinput.ui" line="163"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="dialog_userinput.ui" line="167"/>
<location filename="dialog_userinput.ui" line="170"/>
<source>Cancel</source>
<translation></translation>
</message>
@ -286,32 +286,32 @@
<translation></translation>
</message>
<message>
<location filename="dialog_login.ui" line="233"/>
<location filename="dialog_login.ui" line="167"/>
<source>account:</source>
<translation></translation>
</message>
<message>
<location filename="dialog_login.ui" line="273"/>
<location filename="dialog_login.ui" line="190"/>
<source>password:</source>
<translation></translation>
</message>
<message>
<location filename="dialog_login.ui" line="313"/>
<location filename="dialog_login.ui" line="215"/>
<source>dbHost:</source>
<translation></translation>
</message>
<message>
<location filename="dialog_login.ui" line="353"/>
<location filename="dialog_login.ui" line="238"/>
<source>dbPort:</source>
<translation></translation>
</message>
<message>
<location filename="dialog_login.ui" line="393"/>
<location filename="dialog_login.ui" line="261"/>
<source>ftpHost:</source>
<translation>FTP地址</translation>
</message>
<message>
<location filename="dialog_login.ui" line="433"/>
<location filename="dialog_login.ui" line="284"/>
<source>ftpPort:</source>
<translation>FTP端口</translation>
</message>
@ -324,12 +324,12 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="dialog_login.ui" line="170"/>
<location filename="dialog_login.ui" line="322"/>
<source>LOG IN</source>
<translation></translation>
</message>
<message>
<location filename="dialog_login.ui" line="183"/>
<location filename="dialog_login.ui" line="309"/>
<source>EXIT</source>
<translation>退</translation>
</message>
@ -349,17 +349,17 @@
<translation></translation>
</message>
<message>
<location filename="dialog_login.cpp" line="27"/>
<location filename="dialog_login.cpp" line="26"/>
<source>LogIn</source>
<translation></translation>
</message>
<message>
<location filename="dialog_login.cpp" line="113"/>
<location filename="dialog_login.cpp" line="116"/>
<source>tips</source>
<translation></translation>
</message>
<message>
<location filename="dialog_login.cpp" line="113"/>
<location filename="dialog_login.cpp" line="116"/>
<source>Login failed: </source>
<translation> </translation>
</message>
@ -500,133 +500,145 @@
<translation></translation>
</message>
<message>
<location filename="form_maininterface.ui" line="80"/>
<location filename="form_maininterface.ui" line="29"/>
<source>devStatus</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.ui" line="87"/>
<source>Privious Step</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.ui" line="94"/>
<location filename="form_maininterface.ui" line="101"/>
<source>PASS</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.ui" line="101"/>
<location filename="form_maininterface.ui" line="108"/>
<source>FAIL</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.ui" line="108"/>
<location filename="form_maininterface.ui" line="115"/>
<source>START</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.ui" line="122"/>
<location filename="form_maininterface.ui" line="129"/>
<source>LeftRotate</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.ui" line="129"/>
<location filename="form_maininterface.ui" line="136"/>
<source>RightRotate</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.ui" line="42"/>
<location filename="form_maininterface.ui" line="49"/>
<source>STOP</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.ui" line="115"/>
<location filename="form_maininterface.ui" line="122"/>
<source>SHOWIMG</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.ui" line="87"/>
<location filename="form_maininterface.ui" line="94"/>
<source>Next Step</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="87"/>
<location filename="form_maininterface.cpp" line="89"/>
<location filename="form_maininterface.cpp" line="158"/>
<source>Device has connected</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="89"/>
<location filename="form_maininterface.cpp" line="91"/>
<source>Device hasnot connected</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="90"/>
<location filename="form_maininterface.cpp" line="92"/>
<source>Device type:</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="90"/>
<location filename="form_maininterface.cpp" line="92"/>
<source> SerialNum:</source>
<translation> </translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="90"/>
<location filename="form_maininterface.cpp" line="93"/>
<location filename="form_maininterface.cpp" line="161"/>
<source> connect status:</source>
<translation> </translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="99"/>
<location filename="form_maininterface.cpp" line="102"/>
<source>load last image which uploaded last time</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="161"/>
<location filename="form_maininterface.cpp" line="539"/>
<location filename="form_maininterface.cpp" line="160"/>
<source>Device has disconnected</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="175"/>
<location filename="form_maininterface.cpp" line="589"/>
<source>tips</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="179"/>
<location filename="form_maininterface.cpp" line="197"/>
<source>yes</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="180"/>
<location filename="form_maininterface.cpp" line="198"/>
<source>no</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="288"/>
<location filename="form_maininterface.cpp" line="311"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="288"/>
<location filename="form_maininterface.cpp" line="311"/>
<source>Test items</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="288"/>
<location filename="form_maininterface.cpp" line="311"/>
<source>status</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="436"/>
<location filename="form_maininterface.cpp" line="461"/>
<source>not test</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="436"/>
<location filename="form_maininterface.cpp" line="461"/>
<source>not pass</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="436"/>
<location filename="form_maininterface.cpp" line="461"/>
<source>not support</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="436"/>
<location filename="form_maininterface.cpp" line="461"/>
<source>pass</source>
<translation></translation>
</message>
<message>
<location filename="form_maininterface.cpp" line="539"/>
<location filename="form_maininterface.cpp" line="589"/>
<source>no image</source>
<translation></translation>
</message>
@ -692,7 +704,7 @@
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="412"/>
<location filename="mainwindow.cpp" line="431"/>
<source>Account login elsewhere</source>
<translation></translation>
</message>
@ -701,104 +713,108 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="415"/>
<location filename="mainwindow.cpp" line="434"/>
<source>You have been forced offline by the administrator account</source>
<translation>线</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="418"/>
<location filename="mainwindow.cpp" line="437"/>
<source>Data base error</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="266"/>
<location filename="mainwindow.cpp" line="361"/>
<location filename="mainwindow.cpp" line="382"/>
<location filename="mainwindow.cpp" line="398"/>
<location filename="mainwindow.cpp" line="428"/>
<location filename="mainwindow.cpp" line="446"/>
<location filename="mainwindow.cpp" line="471"/>
<location filename="mainwindow.cpp" line="475"/>
<location filename="mainwindow.cpp" line="484"/>
<location filename="mainwindow.cpp" line="496"/>
<location filename="mainwindow.cpp" line="272"/>
<location filename="mainwindow.cpp" line="374"/>
<location filename="mainwindow.cpp" line="396"/>
<location filename="mainwindow.cpp" line="407"/>
<location filename="mainwindow.cpp" line="447"/>
<location filename="mainwindow.cpp" line="465"/>
<location filename="mainwindow.cpp" line="490"/>
<location filename="mainwindow.cpp" line="494"/>
<location filename="mainwindow.cpp" line="503"/>
<location filename="mainwindow.cpp" line="515"/>
<source>tips</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="266"/>
<location filename="mainwindow.cpp" line="484"/>
<location filename="mainwindow.cpp" line="496"/>
<location filename="mainwindow.cpp" line="272"/>
<location filename="mainwindow.cpp" line="503"/>
<location filename="mainwindow.cpp" line="515"/>
<source>Is testing, do not close!</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="362"/>
<location filename="mainwindow.cpp" line="375"/>
<source>Are you sure to connect the new device</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="364"/>
<location filename="mainwindow.cpp" line="377"/>
<source>yes</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="365"/>
<location filename="mainwindow.cpp" line="378"/>
<source>no</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="382"/>
<location filename="mainwindow.cpp" line="446"/>
<location filename="mainwindow.cpp" line="396"/>
<location filename="mainwindow.cpp" line="465"/>
<source>cannot create more table</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="398"/>
<source>The device has disconnected</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="466"/>
<location filename="mainwindow.cpp" line="407"/>
<source>Open device failed</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="485"/>
<source>save</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="466"/>
<location filename="mainwindow.cpp" line="485"/>
<source>xls(*.xls)</source>
<translation>xls表格(*.xls)</translation>
</message>
<message>
<location filename="mainwindow.cpp" line="471"/>
<location filename="mainwindow.cpp" line="490"/>
<source>export succeed</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="475"/>
<location filename="mainwindow.cpp" line="494"/>
<source>export failed</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="508"/>
<location filename="mainwindow.cpp" line="527"/>
<source>Illegal user</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="512"/>
<location filename="mainwindow.cpp" line="531"/>
<source>Wrong password</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="516"/>
<location filename="mainwindow.cpp" line="535"/>
<source>Database error</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="520"/>
<location filename="mainwindow.cpp" line="539"/>
<source>connect error</source>
<translation></translation>
</message>
<message>
<location filename="mainwindow.cpp" line="524"/>
<location filename="mainwindow.cpp" line="543"/>
<source>Failed</source>
<translation></translation>
</message>
@ -806,14 +822,14 @@
<context>
<name>QObject</name>
<message>
<location filename="hgscanner.cpp" line="62"/>
<location filename="hgscanner.cpp" line="67"/>
<source>success: </source>
<oldsource>success</oldsource>
<translation>: </translation>
</message>
<message>
<location filename="hgscanner.cpp" line="47"/>
<location filename="hgscanner.cpp" line="64"/>
<location filename="hgscanner.cpp" line="48"/>
<location filename="hgscanner.cpp" line="69"/>
<source>failed: </source>
<translation> </translation>
</message>

View File

@ -65,6 +65,7 @@ Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, SANE_Handle ha
, m_mainwnd(mainwnd)
, m_hg(nullptr)
, m_handle(handle)
, m_disconnect(false)
, m_pdtToolDbuserMgr(pdtToolDbuserMgr)
, m_pdtToolDbDevice(pdtToolDbDevice)
, m_serialNum(serialNum)
@ -89,7 +90,8 @@ Form_mainInterface::Form_mainInterface(class MainWindow *mainwnd, SANE_Handle ha
str = tr("Device has connected");
else
str = tr("Device hasnot connected");
ui->label_sn->setText(tr("Device type:") + m_devType + tr(" SerialNum:") + m_serialNum + tr(" connect status:") + str);
ui->label_sn->setText(tr("Device type:") + m_devType + tr(" SerialNum:") + m_serialNum);
ui->label_devStatus->setText(tr(" connect status:") + str);
setMinimumWidth(500);
ui->tableWidget->setMinimumWidth(400);
@ -150,6 +152,13 @@ hgscanner *Form_mainInterface::getScanner()
return m_hg;
}
void Form_mainInterface::setDevDisconnect()
{
QString str = tr("Device has disconnected");
ui->label_devStatus->setText(tr(" connect status:") + str);
m_disconnect = true;
}
void Form_mainInterface::paintEvent(QPaintEvent *event)
{
(void)event;
@ -166,6 +175,11 @@ void Form_mainInterface::on_testResult(QString text)
updateUiEnabled(true);
m_isTesting = false;
m_mainwnd->releaseTesting();
if (m_disconnect)
{
m_mainwnd->RemoveInterface(this);
}
}
void Form_mainInterface::on_testResultImg(void *img)
@ -195,6 +209,11 @@ void Form_mainInterface::on_testDistortion(QString name, void *data)
updateUiEnabled(true);
m_isTesting = false;
m_mainwnd->releaseTesting();
if (m_disconnect)
{
m_mainwnd->RemoveInterface(this);
}
}
}

View File

@ -29,6 +29,7 @@ public:
QString getDevName();
SANE_Handle getDevHandle();
hgscanner *getScanner();
void setDevDisconnect();
protected:
void paintEvent(QPaintEvent *event) override;
@ -87,6 +88,7 @@ private:
class MainWindow *m_mainwnd;
hgscanner *m_hg;
SANE_Handle m_handle;
bool m_disconnect;
HGPdtToolDbUserMgr m_pdtToolDbuserMgr;
HGPdtToolDbDevice m_pdtToolDbDevice;
QString m_serialNum;

View File

@ -23,6 +23,13 @@
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_devStatus">
<property name="text">
<string>devStatus</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_2">
<property name="orientation">

View File

@ -374,24 +374,30 @@ void MainWindow::on_sane_dev_arrive(QString devName)
{
SANE_Handle devHandle = nullptr;
sane_open(devName.toStdString().c_str(), &devHandle);
Dialog_InputSerialNum dlg(this, getDevSn(devHandle), getDevType(devHandle));
if (dlg.exec())
if (nullptr != devHandle)
{
HGPdtToolDbDevice pdtToolDbDevice = nullptr;
HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, dlg.GetSn().toStdString().c_str(), &pdtToolDbDevice);
Form_mainInterface *mainInterface = new Form_mainInterface(this, devHandle, m_pdtToolDbuserMgr, pdtToolDbDevice,
dlg.GetSn(), dlg.GetDevType(), devName, getDevFwNum(devHandle));
if (!AddInterface(mainInterface))
Dialog_InputSerialNum dlg(this, getDevSn(devHandle), getDevType(devHandle));
if (dlg.exec())
{
QMessageBox::information(this, tr("tips"), tr("cannot create more table"));
delete mainInterface;
HGPdtToolDbDevice pdtToolDbDevice = nullptr;
HGPdtToolDb_OpenDevice(m_pdtToolDbuserMgr, dlg.GetSn().toStdString().c_str(), &pdtToolDbDevice);
Form_mainInterface *mainInterface = new Form_mainInterface(this, devHandle, m_pdtToolDbuserMgr, pdtToolDbDevice,
dlg.GetSn(), dlg.GetDevType(), devName, getDevFwNum(devHandle));
if (!AddInterface(mainInterface))
{
QMessageBox::information(this, tr("tips"), tr("cannot create more table"));
delete mainInterface;
}
}
else
{
sane_close(devHandle);
}
}
else
{
sane_close(devHandle);
QMessageBox::information(this, tr("tips"), tr("Open device failed"));
}
}
}
@ -401,8 +407,11 @@ void MainWindow::on_sane_dev_remove(QString devName)
Form_mainInterface *interface = FindInterfaceByDevName(devName);
if (interface != nullptr)
{
QMessageBox::information(this, tr("tips"), tr("The device has disconnected"));
RemoveInterface(interface);
interface->setDevDisconnect();
if (!interface->isTesting())
{
RemoveInterface(interface);
}
}
}