增加滚轴耗材提示

This commit is contained in:
yangjiaxuan 2023-06-13 15:24:58 +08:00
parent 385ed673ed
commit 1ab3d035d0
10 changed files with 64 additions and 3 deletions

View File

@ -7,7 +7,15 @@
#include <QTranslator>
#include <QMessageBox>
#include "base/HGBase.h"
#if defined(HG_CMP_MSC)
#include <shlobj.h>
#else
#include <grp.h>
#include <sys/types.h>
#include <unistd.h>
#include <pwd.h>
#endif
HGResult GetConfigPath(HGChar* configPath, HGUInt maxLen)
{
@ -17,7 +25,7 @@ HGResult GetConfigPath(HGChar* configPath, HGUInt maxLen)
}
const char *appName = "HuaGoScan";
#if defined(HG_CMP_MSC)
CHAR cfgPath[MAX_PATH] = { 0 };
BOOL ret = SHGetSpecialFolderPathA(NULL, cfgPath, CSIDL_APPDATA, FALSE);
if (!ret)
@ -27,6 +35,17 @@ HGResult GetConfigPath(HGChar* configPath, HGUInt maxLen)
strcat(cfgPath, appName);
strcat(cfgPath, "\\Cfg\\");
#else
char cfgPath[512] = { 0 };
struct passwd* pw = getpwuid(getuid());
strcpy(cfgPath, pw->pw_dir);
if (cfgPath[strlen(cfgPath) - 1] != '/')
strcat(cfgPath, "/");
strcat(cfgPath, ".");
strcat(cfgPath, appName);
strcat(cfgPath, "/Cfg/");
#endif
if (maxLen < strlen(cfgPath) + 1)
return HGBASE_ERR_FAIL;

View File

@ -3273,8 +3273,6 @@ void MainWindow::on_act_help_triggered()
filename = QApplication::applicationDirPath() + "/HuaGoScan_App_Help_manual.pdf";
#endif
#else
QString filename;
std::string osName;
FILE *file = popen("cat /etc/issue | cut -d\' \' -f1", "r");
if (NULL != file)

View File

@ -299,6 +299,13 @@ HGResult DeviceUser::ClearRollerCount()
return HGSane_ClearRollerCount(m_saneDev);
}
int DeviceUser::GetDeviceRollerLife()
{
int rollerLife = 0;
HGSane_GetDeviceRollerLife(m_saneDev, &rollerLife);
return rollerLife;
}
QString DeviceUser::GetDriverLog()
{
QString fileName = QFileDialog::getSaveFileName(m_wnd, tr("Select log file path"), ".", tr("text(*.txt)"));

View File

@ -106,6 +106,7 @@ public:
HGResult Login();
HGResult Logout();
HGResult ClearRollerCount();
int GetDeviceRollerLife();
QString GetDriverLog();
HGResult ClearDriverLog();
QString GetDeviceLog();

View File

@ -389,6 +389,7 @@ MainWindow::MainWindow(const QString& appLang, QWidget *parent)
connect(m_devUser, SIGNAL(scanFinishEvent()), this, SLOT(on_scanFinishEvent()), Qt::QueuedConnection);
}
checkRollerLife();
updateSideBar();
updateActionStatus();
}
@ -3591,6 +3592,20 @@ void MainWindow::updateSideBar()
m_propertyAnimation2->setDuration(600);
}
void MainWindow::checkRollerLife()
{
if (m_devUser != nullptr)
{
int life = m_devUser->GetDeviceRollerLife();
HGSaneDeviceCustomInfo info = {0};
m_devUser->GetDeviceCustomInfo(&info);
if (info.rollerCount >= life)
{
QMessageBox::information(this, tr("Prompt"), tr("The Device has reached roller life"), QMessageBox::Ok);
}
}
}
void MainWindow::on_act_sortPages_triggered()
{
if (m_isScanning)
@ -3825,6 +3840,7 @@ void MainWindow::on_act_selectDevice_triggered()
connect(m_devUser, SIGNAL(newImage(void*)), this, SLOT(on_newImage(void*)), Qt::DirectConnection);
connect(m_devUser, SIGNAL(scanWorkingEvent()), this, SLOT(on_scanWorkingEvent()), Qt::QueuedConnection);
connect(m_devUser, SIGNAL(scanFinishEvent()), this, SLOT(on_scanFinishEvent()), Qt::QueuedConnection);
checkRollerLife();
updateActionStatus();
}
}

View File

@ -241,6 +241,7 @@ private:
void deleteUpgradePkg(const QString& cfgFilePath);
void initAcquireIntoComboBox();
void updateSideBar();
void checkRollerLife();
private:
Ui::MainWindow *ui;

View File

@ -276,6 +276,17 @@ HGResult HGAPI HGSane_ClearRollerCount(HGSaneDevice dev)
return saneDeviceImpl->ClearRollerCount();
}
HGResult HGAPI HGSane_GetDeviceRollerLife(HGSaneDevice dev, HGInt *rollerLife)
{
if (NULL == dev)
{
return HGBASE_ERR_INVALIDARG;
}
HGSaneDeviceImpl* saneDeviceImpl = (HGSaneDeviceImpl*)dev;
return saneDeviceImpl->GetRollerLife(rollerLife);
}
HGResult HGAPI HGSane_GetDriverLog(HGSaneDevice dev, const HGChar *fileName)
{
if (NULL == dev)

View File

@ -84,6 +84,8 @@ HGEXPORT HGResult HGAPI HGSane_Logout(HGSaneDevice dev);
HGEXPORT HGResult HGAPI HGSane_ClearRollerCount(HGSaneDevice dev);
HGEXPORT HGResult HGAPI HGSane_GetDeviceRollerLife(HGSaneDevice dev, HGInt *rollerLife);
HGEXPORT HGResult HGAPI HGSane_GetDriverLog(HGSaneDevice dev, const HGChar *fileName);
HGEXPORT HGResult HGAPI HGSane_ClearDriverLog(HGSaneDevice dev);

View File

@ -731,6 +731,11 @@ HGResult HGSaneDeviceImpl::ClearRollerCount()
return SetValueInt32(0x9902, 0);
}
HGResult HGSaneDeviceImpl::GetRollerLife(HGInt *rollerLife)
{
return GetValueInt32(0x885B, rollerLife);
}
HGResult HGSaneDeviceImpl::GetDriverLog(const HGChar *fileName)
{
if (NULL == fileName || strlen(fileName) >= 256)

View File

@ -80,6 +80,7 @@ public:
HGResult Login(const HGChar *user, const HGChar *pwd);
HGResult Logout();
HGResult ClearRollerCount();
HGResult GetRollerLife(HGInt *rollerLife);
HGResult GetDriverLog(const HGChar *fileName);
HGResult ClearDriverLog();
HGResult GetDeviceLog(const HGChar *fileName);