2022-12-16 11:01:30 +00:00
|
|
|
#include "dialog_inputserialnum.h"
|
|
|
|
#include "ui_dialog_inputserialnum.h"
|
2023-01-06 07:17:48 +00:00
|
|
|
#include "base/HGBase.h"
|
2023-09-07 08:45:32 +00:00
|
|
|
#include "HGUIGlobal.h"
|
2022-12-16 11:01:30 +00:00
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
Dialog_InputSerialNum::Dialog_InputSerialNum(class MainWindow *mainWnd, Dialog_logIn::LogInType logInType, const QString &devName, const QString &profileName,
|
|
|
|
const QString &accountName, SANE_Handle handle, const QString &serialNum, const QString &devType) :
|
2022-12-16 11:01:30 +00:00
|
|
|
QDialog(mainWnd),
|
|
|
|
ui(new Ui::Dialog_InputSerialNum),
|
|
|
|
m_mainWnd(mainWnd),
|
2023-09-07 08:45:32 +00:00
|
|
|
m_logInType(logInType),
|
2023-01-06 05:39:49 +00:00
|
|
|
m_handle(handle),
|
|
|
|
m_valid(true),
|
2023-08-31 07:15:14 +00:00
|
|
|
m_profileName(profileName),
|
2023-09-07 08:45:32 +00:00
|
|
|
m_accountName(accountName),
|
2022-12-16 11:01:30 +00:00
|
|
|
m_serialNum(serialNum),
|
2023-01-06 07:17:48 +00:00
|
|
|
m_devType(devType),
|
|
|
|
m_devName(devName),
|
2023-09-07 08:45:32 +00:00
|
|
|
m_hg(nullptr),
|
|
|
|
m_curIndex(0)
|
2022-12-16 11:01:30 +00:00
|
|
|
{
|
|
|
|
ui->setupUi(this);
|
|
|
|
|
|
|
|
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
|
|
|
|
|
2022-12-28 06:57:00 +00:00
|
|
|
QFont ft;
|
|
|
|
ft.setPointSize(15);
|
|
|
|
this->setFont(ft);
|
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
if (m_logInType != Dialog_logIn::LogInType_InitTest)
|
|
|
|
{
|
|
|
|
ui->lineEdit_sn->setEnabled(false);
|
|
|
|
ui->pbtn_setSn->setEnabled(false);
|
|
|
|
ui->pbtn_setConfig->setEnabled(false);
|
|
|
|
}
|
|
|
|
|
|
|
|
ui->pbtn_enterTest->setEnabled(false);
|
|
|
|
ui->textEdit_curConfig->setReadOnly(true);
|
|
|
|
ui->textEdit_target->setReadOnly(true);
|
|
|
|
|
|
|
|
ui->label_scanner->setText(tr("Device name: %1").arg(m_devName));
|
|
|
|
|
2022-12-16 11:01:30 +00:00
|
|
|
ui->lineEdit_sn->setValidator(new QRegExpValidator(QRegExp("[a-zA-Z0-9]+$")));
|
2023-01-06 07:17:48 +00:00
|
|
|
ui->lineEdit_sn->setMaxLength(14);
|
2023-01-04 12:48:53 +00:00
|
|
|
|
|
|
|
if (handle != nullptr)
|
2022-12-23 10:32:57 +00:00
|
|
|
{
|
2023-01-04 12:48:53 +00:00
|
|
|
ui->lineEdit_sn->setText(serialNum);
|
2023-01-06 05:39:49 +00:00
|
|
|
ui->lineEdit_sn->selectAll();
|
2023-01-04 12:48:53 +00:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
ui->lineEdit_sn->setText("");
|
2023-01-06 05:39:49 +00:00
|
|
|
ui->pbtn_setSn->setEnabled(false);
|
2022-12-23 10:32:57 +00:00
|
|
|
}
|
2023-01-06 07:17:48 +00:00
|
|
|
|
|
|
|
if (m_handle != nullptr)
|
|
|
|
m_hg = new hgscanner(nullptr, nullptr, this, m_handle);
|
|
|
|
|
|
|
|
connect(this, SIGNAL(testResult()), this, SLOT(on_testResult()));
|
2023-09-07 08:45:32 +00:00
|
|
|
|
|
|
|
setSleepTime();
|
|
|
|
updateTargetCfg();
|
|
|
|
updateCurDeviceCfg();
|
2022-12-16 11:01:30 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Dialog_InputSerialNum::~Dialog_InputSerialNum()
|
|
|
|
{
|
2023-01-06 08:18:57 +00:00
|
|
|
delete m_hg;
|
|
|
|
m_hg = nullptr;
|
|
|
|
|
2022-12-16 11:01:30 +00:00
|
|
|
delete ui;
|
|
|
|
}
|
|
|
|
|
|
|
|
QString Dialog_InputSerialNum::GetSn()
|
|
|
|
{
|
|
|
|
return ui->lineEdit_sn->text();
|
|
|
|
}
|
|
|
|
|
|
|
|
QString Dialog_InputSerialNum::GetDevType()
|
|
|
|
{
|
2023-09-07 08:45:32 +00:00
|
|
|
return m_devType;
|
2022-12-16 11:01:30 +00:00
|
|
|
}
|
|
|
|
|
2023-01-06 05:39:49 +00:00
|
|
|
void Dialog_InputSerialNum::Invalid(const QString &devName)
|
|
|
|
{
|
|
|
|
if (devName == m_devName)
|
|
|
|
{
|
|
|
|
sane_close(m_handle);
|
|
|
|
m_handle = nullptr;
|
|
|
|
m_valid = false;
|
|
|
|
reject();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
void Dialog_InputSerialNum::setSpeedMode()
|
2023-01-06 07:17:48 +00:00
|
|
|
{
|
2023-09-07 08:45:32 +00:00
|
|
|
AnalysisJson analysisJson(m_profileName);
|
|
|
|
AnalysisJson::json_global jsonGlobal = analysisJson.GetGlobal();
|
|
|
|
LPWRITECFG lp = new WRITECFG;
|
|
|
|
|
|
|
|
int speedMode = jsonGlobal.speed_mode;
|
|
|
|
lp->cat = WRITE_CAT_SPEED;
|
|
|
|
lp->val = (void*)&speedMode;
|
|
|
|
func_test_go(WRITE_CFG_NAME, (const wchar_t*)lp, m_hg);
|
|
|
|
|
|
|
|
delete lp;
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_InputSerialNum::setSleepTime()
|
|
|
|
{
|
|
|
|
AnalysisJson analysisJson(m_profileName);
|
|
|
|
AnalysisJson::json_global jsonGlobal = analysisJson.GetGlobal();
|
|
|
|
LPWRITECFG lp = new WRITECFG;
|
2023-01-06 08:18:57 +00:00
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
int sleepTime = jsonGlobal.sleep_time;
|
|
|
|
lp->cat = WRITE_CAT_SLEEP;
|
|
|
|
lp->val = (void*)&sleepTime;
|
|
|
|
func_test_go(WRITE_CFG_NAME, (const wchar_t*)lp, m_hg);
|
2023-08-08 10:29:16 +00:00
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
delete lp;
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_InputSerialNum::setVidPid()
|
|
|
|
{
|
2023-08-31 07:15:14 +00:00
|
|
|
AnalysisJson analysisJson(m_profileName);
|
2023-08-08 10:29:16 +00:00
|
|
|
AnalysisJson::json_global jsonGlobal = analysisJson.GetGlobal();
|
|
|
|
LPWRITECFG lp = new WRITECFG;
|
2023-01-06 07:17:48 +00:00
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
VIDPID vidpid;
|
|
|
|
vidpid.VID = jsonGlobal.vid_to;
|
|
|
|
vidpid.PID = jsonGlobal.pid_to;
|
|
|
|
int vidpidValue = vidpid.Value;
|
|
|
|
lp->cat = WRITE_CAT_VID_PID;
|
|
|
|
lp->val = (void*)&vidpidValue;
|
|
|
|
func_test_go(WRITE_CFG_NAME, (const wchar_t*)lp, m_hg);
|
|
|
|
|
|
|
|
delete lp;
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_InputSerialNum::rebootDevice()
|
|
|
|
{
|
|
|
|
const wchar_t *p = L"0";
|
|
|
|
func_test_go(HGPDTTOOLDB_NAME_REBOOT_DEVICE, p, m_hg);
|
|
|
|
}
|
|
|
|
|
|
|
|
int Dialog_InputSerialNum::getSpeedMode()
|
|
|
|
{
|
|
|
|
SANE_Int speedMode = 0;
|
|
|
|
unsigned int len = sizeof(SANE_Int);
|
|
|
|
sane_io_control(m_handle, IO_CTRL_CODE_GET_SPEED_MODE, &speedMode, &len);
|
|
|
|
|
|
|
|
const wchar_t G100[6] = { 70,80,90,110 };
|
|
|
|
const wchar_t G200[6] = { 100,110,120,130 };
|
|
|
|
const wchar_t G300[6] = { 40,50,60,70,80,90 };
|
|
|
|
const wchar_t G400[6] = { 40,50,60,70,80,90 };
|
|
|
|
|
|
|
|
int speed = 0;
|
|
|
|
|
|
|
|
if ((int)speedMode >= 40)
|
|
|
|
speed = (int)speedMode;
|
|
|
|
else
|
2023-08-08 10:29:16 +00:00
|
|
|
{
|
2023-09-07 08:45:32 +00:00
|
|
|
if (m_devType == "G100")
|
|
|
|
speed = G100[(int)speedMode - 1];
|
|
|
|
else if (m_devType == "G200")
|
|
|
|
speed = G200[(int)speedMode - 1];
|
|
|
|
else if (m_devType == "G300")
|
|
|
|
speed = G300[(int)speedMode - 1];
|
|
|
|
else if (m_devType == "G400")
|
|
|
|
speed = G400[(int)speedMode - 1];
|
|
|
|
}
|
|
|
|
|
|
|
|
return speed;
|
|
|
|
}
|
|
|
|
|
|
|
|
int Dialog_InputSerialNum::getSleepTime()
|
|
|
|
{
|
|
|
|
int sleepTime = SANE_POWER_FIRST;
|
|
|
|
unsigned int len2 = sizeof(int);
|
|
|
|
sane_io_control(m_handle, IO_CTRL_CODE_GET_POWER_LEVEL, &sleepTime, &len2);
|
|
|
|
|
|
|
|
if (sleepTime > 99999 || sleepTime == -1)
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
return (sleepTime / 60);
|
|
|
|
}
|
|
|
|
|
|
|
|
int Dialog_InputSerialNum::getDevVid()
|
|
|
|
{
|
|
|
|
VIDPID vidpid;
|
|
|
|
int vidpid_val;
|
|
|
|
unsigned int len = sizeof(int);
|
|
|
|
sane_io_control(m_handle, IO_CTRL_CODE_GET_VIDPID, &vidpid_val, &len);
|
|
|
|
vidpid.Value = vidpid_val;
|
|
|
|
int vid = vidpid.VID;
|
|
|
|
return vid;
|
|
|
|
}
|
|
|
|
|
|
|
|
int Dialog_InputSerialNum::getDevPid()
|
|
|
|
{
|
|
|
|
VIDPID vidpid;
|
|
|
|
int vidpid_val;
|
|
|
|
unsigned int len = sizeof(int);
|
|
|
|
sane_io_control(m_handle, IO_CTRL_CODE_GET_VIDPID, &vidpid_val, &len);
|
|
|
|
vidpid.Value = vidpid_val;
|
|
|
|
int pid = vidpid.PID;
|
|
|
|
return pid;
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_InputSerialNum::updateTargetCfg()
|
|
|
|
{
|
|
|
|
ui->textEdit_target->clear();
|
2023-01-06 08:18:57 +00:00
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
AnalysisJson analysisJson(m_profileName);
|
|
|
|
AnalysisJson::json_global jsonGlobal = analysisJson.GetGlobal();
|
|
|
|
|
|
|
|
int speedMode = jsonGlobal.speed_mode;
|
|
|
|
int sleepTime = jsonGlobal.sleep_time;
|
|
|
|
int vid_to = jsonGlobal.vid_to;
|
|
|
|
int pid_to = jsonGlobal.pid_to;
|
|
|
|
|
|
|
|
char buf[10];
|
|
|
|
sprintf(buf, "%x", vid_to);
|
|
|
|
|
|
|
|
char buf2[10];
|
|
|
|
sprintf(buf2, "%x", pid_to);
|
|
|
|
|
|
|
|
QString content;
|
|
|
|
content.append(tr("Target Configration:") + "\n\t");
|
|
|
|
content.append(tr("Speep mode: %1PPM").arg(QString::number(speedMode)) + "\n\t");
|
|
|
|
content.append((sleepTime > 0 ? tr("Sleep time: %1minute").arg(QString::number(sleepTime)) : tr("Sleep time: Not sleeping")) + "\n\t");
|
|
|
|
content.append(tr("Vid: %1 Pid: %2").arg(QString::fromStdString(buf)).arg(QString::fromStdString(buf2)) + "\n\t");
|
|
|
|
|
|
|
|
ui->textEdit_target->setText(content);
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_InputSerialNum::updateCurDeviceCfg()
|
|
|
|
{
|
|
|
|
ui->textEdit_curConfig->clear();
|
|
|
|
|
|
|
|
if (m_handle == nullptr)
|
|
|
|
return;
|
|
|
|
|
|
|
|
int speedMode = getSpeedMode();
|
|
|
|
int sleepTime = getSleepTime();
|
|
|
|
int vid_to = getDevVid();
|
|
|
|
int pid_to = getDevPid();
|
|
|
|
|
|
|
|
char buf[10];
|
|
|
|
sprintf(buf, "%x", vid_to);
|
|
|
|
|
|
|
|
char buf2[10];
|
|
|
|
sprintf(buf2, "%x", pid_to);
|
|
|
|
|
|
|
|
QString content;
|
|
|
|
content.append(tr("Current Configration of device:") + "\n\t");
|
|
|
|
content.append(tr("Speep mode: %1PPM").arg(QString::number(speedMode)) + "\n\t");
|
|
|
|
content.append(sleepTime > 0 ? tr("Sleep time: %1minute").arg(QString::number(sleepTime)) : tr("Sleep time: Not sleeping") + "\n\t");
|
|
|
|
content.append(tr("Vid: %1 Pid: %2").arg(QString::fromStdString(buf)).arg(QString::fromStdString(buf2)) + "\n\t");
|
|
|
|
|
|
|
|
ui->textEdit_curConfig->setText(content);
|
|
|
|
}
|
|
|
|
|
|
|
|
QString Dialog_InputSerialNum::getLogPath()
|
|
|
|
{
|
|
|
|
HGChar cachePath[512];
|
|
|
|
HGBase_GetDocumentsPath(cachePath, 512);
|
|
|
|
HGChar procName[512];
|
|
|
|
HGBase_GetProcessName(procName, 512);
|
|
|
|
strcat(cachePath, procName);
|
|
|
|
strcat(cachePath, "/Test_Log/");
|
|
|
|
|
|
|
|
return getStdFileName(cachePath);
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_InputSerialNum::writeTestLog(QString logContent)
|
|
|
|
{
|
|
|
|
QString logPath = getLogPath();
|
|
|
|
HGBase_CreateDir(getStdString(logPath).c_str());
|
|
|
|
|
|
|
|
QString fileName = logPath + m_serialNum + ".log";
|
|
|
|
QFile file(fileName);
|
|
|
|
if(!file.open(QIODevice::ReadWrite | QIODevice::Append))
|
|
|
|
{
|
2023-08-08 10:29:16 +00:00
|
|
|
return;
|
2023-01-06 07:17:48 +00:00
|
|
|
}
|
2023-08-08 10:29:16 +00:00
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
QDateTime dateTime= QDateTime::currentDateTime();
|
|
|
|
QString curTime = dateTime .toString("yyyy-MM-dd hh:mm:ss");
|
|
|
|
QString content = "[" + curTime + "] ";
|
|
|
|
content += logContent;
|
2023-08-08 10:29:16 +00:00
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
QTextStream txtOutput(&file);
|
|
|
|
txtOutput << content << endl;
|
|
|
|
file.close();
|
2023-01-06 07:17:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_InputSerialNum::on_testResult()
|
|
|
|
{
|
2023-09-07 08:45:32 +00:00
|
|
|
//m_mainWnd->releaseTesting();
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_InputSerialNum::on_pbtn_setSn_clicked()
|
|
|
|
{
|
|
|
|
QString sn = ui->lineEdit_sn->text();
|
|
|
|
std::string serialNum = sn.toStdString();
|
|
|
|
|
|
|
|
QString testLog = tr("Tester: %1, Test item: %2").arg(m_accountName).arg(QString(tr("Set serial number: %1 ").arg(sn)));
|
|
|
|
if(SANE_STATUS_GOOD != sane_io_control(m_handle, IO_CTRL_CODE_SET_SERIAL, &serialNum[0], nullptr))
|
|
|
|
{
|
|
|
|
QMessageBox::information(this, tr("tips"), tr("set sn failed"));
|
|
|
|
writeTestLog(testLog + tr("Test result: Failed!"));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
QMessageBox::information(this, tr("tips"), tr("set sn succeed"));
|
|
|
|
writeTestLog(testLog + tr("Test result: Succeed!"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void Dialog_InputSerialNum::on_pbtn_checkConfig_clicked()
|
|
|
|
{
|
|
|
|
AnalysisJson analysisJson(m_profileName);
|
|
|
|
AnalysisJson::json_global jsonGlobal = analysisJson.GetGlobal();
|
|
|
|
|
|
|
|
int speedMode_to = jsonGlobal.speed_mode;
|
|
|
|
int sleepTime_to = jsonGlobal.sleep_time;
|
|
|
|
int vid_to = jsonGlobal.vid_to;
|
|
|
|
int pid_to = jsonGlobal.pid_to;
|
|
|
|
|
|
|
|
int speedMode = getSpeedMode();
|
|
|
|
int sleepTime = getSleepTime();
|
|
|
|
int vid = getDevVid();
|
|
|
|
int pid = getDevPid();
|
|
|
|
|
|
|
|
QString item;
|
|
|
|
bool right = true;
|
|
|
|
LPWRITECFG lp = new WRITECFG;
|
|
|
|
if (speedMode_to != speedMode)
|
|
|
|
{
|
|
|
|
item.append(tr("Speed mode"));
|
|
|
|
item.append(" ");
|
|
|
|
right = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (sleepTime_to != sleepTime)
|
|
|
|
{
|
|
|
|
item.append(tr("Sleep time"));
|
|
|
|
item.append(" ");
|
|
|
|
right = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (vid != vid_to || pid != pid_to)
|
|
|
|
{
|
|
|
|
item.append(tr("Vid and Pid"));
|
|
|
|
item.append(" ");
|
|
|
|
right = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!right)
|
|
|
|
{
|
|
|
|
QMessageBox::information(this, tr("Prompt"), tr("Inconsistent configuration %1detected, please reconfigure, and check again").arg(item));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
QMessageBox::information(this, tr("Prompt"), tr("Consistent configuration"));
|
|
|
|
ui->pbtn_enterTest->setEnabled(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
delete lp;
|
|
|
|
|
|
|
|
updateTargetCfg();
|
|
|
|
updateCurDeviceCfg();
|
2023-01-06 07:17:48 +00:00
|
|
|
}
|
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
void Dialog_InputSerialNum::on_pbtn_enterTest_clicked()
|
2022-12-16 11:01:30 +00:00
|
|
|
{
|
2023-01-06 05:39:49 +00:00
|
|
|
if (!m_valid)
|
|
|
|
{
|
|
|
|
QMessageBox::information(this, tr("tips"), tr("device is lost"));
|
|
|
|
reject();
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2022-12-16 11:01:30 +00:00
|
|
|
if (ui->lineEdit_sn->text().isEmpty())
|
|
|
|
{
|
|
|
|
QMessageBox::information(this, tr("tips"), tr("Serial num is empty"));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2023-01-04 14:24:41 +00:00
|
|
|
QString str = ui->lineEdit_sn->text();
|
|
|
|
for (int i = 0; i < str.size(); ++i)
|
|
|
|
{
|
|
|
|
if ((str.at(i) < '0' && str.at(i) > '9') || (str.at(i) < 'A' && str.at(i) > 'Z'))
|
|
|
|
{
|
|
|
|
QMessageBox::information(this, tr("tips"), tr("sn is illegal"));
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
2023-01-04 12:48:53 +00:00
|
|
|
|
2022-12-16 11:01:30 +00:00
|
|
|
if (m_mainWnd->FindInterface(ui->lineEdit_sn->text()) != nullptr)
|
|
|
|
{
|
|
|
|
QMessageBox::information(this, tr("tips"), tr("The device is testing"));
|
|
|
|
return;
|
|
|
|
}
|
2023-08-08 10:29:16 +00:00
|
|
|
|
2022-12-16 11:01:30 +00:00
|
|
|
accept();
|
|
|
|
}
|
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
void Dialog_InputSerialNum::on_pbtn_setConfig_clicked()
|
2022-12-16 11:01:30 +00:00
|
|
|
{
|
2023-09-07 08:45:32 +00:00
|
|
|
setSpeedMode();
|
|
|
|
setSleepTime();
|
|
|
|
setVidPid();
|
2023-01-06 05:39:49 +00:00
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
AnalysisJson analysisJson(m_profileName);
|
|
|
|
AnalysisJson::json_global jsonGlobal = analysisJson.GetGlobal();
|
|
|
|
|
|
|
|
int speedMode = jsonGlobal.speed_mode;
|
|
|
|
int sleepTime = jsonGlobal.sleep_time;
|
|
|
|
int vid_to = jsonGlobal.vid_to;
|
|
|
|
int pid_to = jsonGlobal.pid_to;
|
|
|
|
|
|
|
|
char buf[10];
|
|
|
|
sprintf(buf, "%x", vid_to);
|
|
|
|
char buf2[10];
|
|
|
|
sprintf(buf2, "%x", pid_to);
|
|
|
|
|
|
|
|
QString content;
|
|
|
|
content.append(tr("Speep mode: %1PPM").arg(QString::number(speedMode)) + " ");
|
|
|
|
content.append((sleepTime > 0 ? tr("Sleep time: %1minute").arg(QString::number(sleepTime)) : tr("Sleep time: Not sleeping")) + " ");
|
|
|
|
content.append(tr("Vid: %1 Pid: %2").arg(QString::fromStdString(buf)).arg(QString::fromStdString(buf2)));
|
|
|
|
|
|
|
|
writeTestLog(tr("Tester: %1, Test item: %2").arg(m_accountName).arg(tr("Set configuration to device ") +
|
|
|
|
tr("Test content: ") + content));
|
2023-01-06 07:17:48 +00:00
|
|
|
|
2023-09-07 08:45:32 +00:00
|
|
|
updateTargetCfg();
|
|
|
|
updateCurDeviceCfg();
|
2023-01-06 05:39:49 +00:00
|
|
|
}
|