diff --git a/app/scanner/mainwindow.cpp b/app/scanner/mainwindow.cpp index 47c1a0da..f6aa9ea6 100644 --- a/app/scanner/mainwindow.cpp +++ b/app/scanner/mainwindow.cpp @@ -69,6 +69,8 @@ MainWindow::MainWindow(QWidget *parent) , auto_save_changes_(false) , save_from_changed_(false) , m_closeTip(true) + , m_devSerialNum("") + , m_devVersionNum("") { ui->setupUi(this); @@ -2585,7 +2587,10 @@ void MainWindow::on_act_clearRoller_triggered() int ret = sane_io_control(cur_dev_.handle(), IO_CTRL_CODE_CLEAR_ROLLER_COUNT, nullptr, &count); if(ret == SANE_STATUS_GOOD) + { QMessageBox::information(this, tr("hint"), tr("Roller scanned count has been set to 0.")); + m_versionDll->PostDeviceClearRollerInfo(HGVERSION_APPNAME_SCANNER, m_devSerialNum.toStdString().c_str(), "", m_devVersionNum.toStdString().c_str()); + } else QMessageBox::information(this, tr("hint"), tr("Roller scanned count reset failed.")); } @@ -3062,6 +3067,22 @@ bool MainWindow::open_scanner(const QString& name, OPTSCHEME* schm) if(ret) { + std::string serialNum; + unsigned int serialNumLen = 0; + sane_io_control(cur_dev_.handle(), IO_CTRL_CODE_GET_SERIAL, &serialNum, &serialNumLen); + serialNum.resize(serialNumLen); + sane_io_control(cur_dev_.handle(), IO_CTRL_CODE_GET_SERIAL, &serialNum[0], &serialNumLen); + m_devSerialNum = QString::fromStdString(serialNum); + + std::string versionNum; + unsigned int versionNumLen = 0; + sane_io_control(cur_dev_.handle(), IO_CTRL_CODE_GET_HARDWARE_VERSION, &versionNum, &versionNumLen); + versionNum.resize(versionNumLen); + sane_io_control(cur_dev_.handle(), IO_CTRL_CODE_GET_HARDWARE_VERSION, &versionNum[0], &versionNumLen); + m_devVersionNum = QString::fromStdString(versionNum); + + m_versionDll->PostDeviceOpenInfo(HGVERSION_APPNAME_SCANNER, m_devSerialNum.toStdString().c_str(), "", m_devVersionNum.toStdString().c_str()); + title = name; info += tr("success"); m_wndStatusBar->setDeviceStatusInfo(info, false); @@ -3307,6 +3328,7 @@ void MainWindow::on_scanOptions_changed(const QString &device, const QString &op if(msg.clickedButton() == msg.button(QMessageBox::Yes)) { cur_dev_.close(); + m_versionDll->PostDeviceCloseInfo(HGVERSION_APPNAME_SCANNER, m_devSerialNum.toStdString().c_str(), "", m_devVersionNum.toStdString().c_str()); m_dialogLog->addLog(tr("close ") + device, false); m_wndStatusBar->setDeviceStatusInfo(tr("close ") + device, false); diff --git a/app/scanner/mainwindow.h b/app/scanner/mainwindow.h index 94b0a55f..6a3a4e10 100644 --- a/app/scanner/mainwindow.h +++ b/app/scanner/mainwindow.h @@ -286,6 +286,8 @@ private: int m_aquireIntoMultiPageCount; bool m_isScanning; bool m_closeTip; + QString m_devSerialNum; + QString m_devVersionNum; class HGLineEdit* m_multiPageLineEdit; class Widget_StatusBar *m_wndStatusBar;