生产工具增加固件版本号判断

This commit is contained in:
yangjiaxuan 2024-03-01 11:22:32 +08:00
parent a1be80f341
commit d38f52300c
7 changed files with 135 additions and 65 deletions

View File

@ -130,35 +130,40 @@
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="526"/> <location filename="dialog_inputserialnum.cpp" line="568"/>
<location filename="dialog_inputserialnum.cpp" line="533"/> <location filename="dialog_inputserialnum.cpp" line="575"/>
<location filename="dialog_inputserialnum.cpp" line="542"/> <location filename="dialog_inputserialnum.cpp" line="584"/>
<location filename="dialog_inputserialnum.cpp" line="549"/> <location filename="dialog_inputserialnum.cpp" line="591"/>
<source>tips</source> <source>tips</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="474"/> <location filename="dialog_inputserialnum.cpp" line="516"/>
<source>Speed mode</source> <source>Speed mode</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="425"/> <location filename="dialog_inputserialnum.cpp" line="454"/>
<source>Failed!</source> <source>Failed!</source>
<translation>!</translation> <translation>!</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="432"/> <location filename="dialog_inputserialnum.cpp" line="461"/>
<source>Succeed!</source> <source>Succeed!</source>
<translation>!</translation> <translation>!</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="484"/> <location filename="dialog_inputserialnum.cpp" line="509"/>
<source>Inconsistent firmware detected, please burn the correct firmware, and check again</source>
<translation></translation>
</message>
<message>
<location filename="dialog_inputserialnum.cpp" line="526"/>
<source>Sleep time</source> <source>Sleep time</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="493"/> <location filename="dialog_inputserialnum.cpp" line="535"/>
<source>Vid and Pid</source> <source>Vid and Pid</source>
<translation>Vid和Pid</translation> <translation>Vid和Pid</translation>
</message> </message>
@ -171,32 +176,32 @@
<translation type="vanished">%1</translation> <translation type="vanished">%1</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="512"/> <location filename="dialog_inputserialnum.cpp" line="554"/>
<source>Consistent configuration</source> <source>Consistent configuration</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="526"/> <location filename="dialog_inputserialnum.cpp" line="568"/>
<source>device is lost</source> <source>device is lost</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="533"/> <location filename="dialog_inputserialnum.cpp" line="575"/>
<source>Serial num is empty</source> <source>Serial num is empty</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="542"/> <location filename="dialog_inputserialnum.cpp" line="584"/>
<source>sn is illegal</source> <source>sn is illegal</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="549"/> <location filename="dialog_inputserialnum.cpp" line="591"/>
<source>The device is testing</source> <source>The device is testing</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="426"/> <location filename="dialog_inputserialnum.cpp" line="455"/>
<source>set sn failed</source> <source>set sn failed</source>
<translation></translation> <translation></translation>
</message> </message>
@ -206,7 +211,7 @@
<translation> %1</translation> <translation> %1</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="292"/> <location filename="dialog_inputserialnum.cpp" line="308"/>
<source>Target Configration:</source> <source>Target Configration:</source>
<oldsource>Target Configration: <oldsource>Target Configration:
</oldsource> </oldsource>
@ -214,16 +219,16 @@
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="125"/> <location filename="dialog_inputserialnum.cpp" line="125"/>
<location filename="dialog_inputserialnum.cpp" line="297"/> <location filename="dialog_inputserialnum.cpp" line="316"/>
<location filename="dialog_inputserialnum.cpp" line="335"/> <location filename="dialog_inputserialnum.cpp" line="364"/>
<location filename="dialog_inputserialnum.cpp" line="588"/> <location filename="dialog_inputserialnum.cpp" line="630"/>
<source>Speep mode: %1PPM</source> <source>Speep mode: %1PPM</source>
<oldsource>Speep mode: %1PPM <oldsource>Speep mode: %1PPM
</oldsource> </oldsource>
<translation>: %1PPM</translation> <translation>: %1PPM</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="401"/> <location filename="dialog_inputserialnum.cpp" line="430"/>
<source>Pass</source> <source>Pass</source>
<translation>Pass</translation> <translation>Pass</translation>
</message> </message>
@ -237,9 +242,9 @@
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="142"/> <location filename="dialog_inputserialnum.cpp" line="142"/>
<location filename="dialog_inputserialnum.cpp" line="298"/> <location filename="dialog_inputserialnum.cpp" line="317"/>
<location filename="dialog_inputserialnum.cpp" line="336"/> <location filename="dialog_inputserialnum.cpp" line="365"/>
<location filename="dialog_inputserialnum.cpp" line="589"/> <location filename="dialog_inputserialnum.cpp" line="631"/>
<source>Sleep time: %1minute</source> <source>Sleep time: %1minute</source>
<oldsource>Sleep time: %1minute <oldsource>Sleep time: %1minute
</oldsource> </oldsource>
@ -247,9 +252,7 @@
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="166"/> <location filename="dialog_inputserialnum.cpp" line="166"/>
<location filename="dialog_inputserialnum.cpp" line="299"/> <location filename="dialog_inputserialnum.cpp" line="632"/>
<location filename="dialog_inputserialnum.cpp" line="337"/>
<location filename="dialog_inputserialnum.cpp" line="590"/>
<source>Vid: %1 Pid: %2</source> <source>Vid: %1 Pid: %2</source>
<oldsource>Vid: %1 Pid: %2 <oldsource>Vid: %1 Pid: %2
</oldsource> </oldsource>
@ -257,43 +260,65 @@
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="182"/> <location filename="dialog_inputserialnum.cpp" line="182"/>
<location filename="dialog_inputserialnum.cpp" line="295"/> <location filename="dialog_inputserialnum.cpp" line="311"/>
<location filename="dialog_inputserialnum.cpp" line="333"/> <location filename="dialog_inputserialnum.cpp" line="359"/>
<location filename="dialog_inputserialnum.cpp" line="586"/> <location filename="dialog_inputserialnum.cpp" line="628"/>
<source>Device model: %1</source> <source>Device model: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="330"/> <location filename="dialog_inputserialnum.cpp" line="314"/>
<location filename="dialog_inputserialnum.cpp" line="362"/>
<source>Firmware version: %1</source>
<translation>%1</translation>
</message>
<message>
<location filename="dialog_inputserialnum.cpp" line="318"/>
<location filename="dialog_inputserialnum.cpp" line="366"/>
<source>Vid: %1
Pid: %2</source>
<translation>Vid: %1
Pid: %2</translation>
</message>
<message>
<location filename="dialog_inputserialnum.cpp" line="356"/>
<source>Current Configration of device:</source> <source>Current Configration of device:</source>
<translation>:</translation> <translation>:</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="406"/> <location filename="dialog_inputserialnum.cpp" line="435"/>
<source>Fail</source> <source>Fail</source>
<translation>Fail</translation> <translation>Fail</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="421"/> <location filename="dialog_inputserialnum.cpp" line="450"/>
<location filename="dialog_inputserialnum.cpp" line="425"/> <location filename="dialog_inputserialnum.cpp" line="454"/>
<location filename="dialog_inputserialnum.cpp" line="432"/> <location filename="dialog_inputserialnum.cpp" line="461"/>
<source>Set serial number: %1 </source> <source>Set serial number: %1 </source>
<translation>: %1 </translation> <translation>: %1 </translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="463"/> <location filename="dialog_inputserialnum.cpp" line="493"/>
<source>Device model</source> <source>Device model</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="504"/> <source>Firmware version</source>
<location filename="dialog_inputserialnum.cpp" line="600"/> <translation type="vanished"></translation>
</message>
<message>
<source>Inconsistent configuration %1detected, please burn the correct firmware, and check again</source>
<translation type="vanished">%1</translation>
</message>
<message>
<location filename="dialog_inputserialnum.cpp" line="546"/>
<location filename="dialog_inputserialnum.cpp" line="642"/>
<source>Detected that the current device&apos;s vid-pid and device object are not consistent. </source> <source>Detected that the current device&apos;s vid-pid and device object are not consistent. </source>
<translation>vid-pid和设备对象不一致. </translation> <translation>vid-pid和设备对象不一致. </translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="505"/> <location filename="dialog_inputserialnum.cpp" line="547"/>
<location filename="dialog_inputserialnum.cpp" line="601"/> <location filename="dialog_inputserialnum.cpp" line="643"/>
<source>Please reboot device to update. </source> <source>Please reboot device to update. </source>
<translation>. </translation> <translation>. </translation>
</message> </message>
@ -314,24 +339,24 @@
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="467"/> <location filename="dialog_inputserialnum.cpp" line="497"/>
<location filename="dialog_inputserialnum.cpp" line="478"/> <location filename="dialog_inputserialnum.cpp" line="520"/>
<location filename="dialog_inputserialnum.cpp" line="487"/> <location filename="dialog_inputserialnum.cpp" line="529"/>
<source>Inconsistent configuration %1detected, please reconfigure, and check again</source> <source>Inconsistent configuration %1detected, please reconfigure, and check again</source>
<translation> %1</translation> <translation> %1</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="496"/> <location filename="dialog_inputserialnum.cpp" line="538"/>
<source>Inconsistent configuration %1detected, please reboot and reconfigure, and check again</source> <source>Inconsistent configuration %1detected, please reboot and reconfigure, and check again</source>
<translation> %1</translation> <translation> %1</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="592"/> <location filename="dialog_inputserialnum.cpp" line="634"/>
<source>Set configuration to device </source> <source>Set configuration to device </source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="593"/> <location filename="dialog_inputserialnum.cpp" line="635"/>
<source>Test content: </source> <source>Test content: </source>
<translation> </translation> <translation> </translation>
</message> </message>
@ -341,20 +366,20 @@
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="142"/> <location filename="dialog_inputserialnum.cpp" line="142"/>
<location filename="dialog_inputserialnum.cpp" line="298"/> <location filename="dialog_inputserialnum.cpp" line="317"/>
<location filename="dialog_inputserialnum.cpp" line="336"/> <location filename="dialog_inputserialnum.cpp" line="365"/>
<location filename="dialog_inputserialnum.cpp" line="589"/> <location filename="dialog_inputserialnum.cpp" line="631"/>
<source>Sleep time: Not sleeping</source> <source>Sleep time: Not sleeping</source>
<translation>休眠时间: 不休眠</translation> <translation>休眠时间: 不休眠</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="421"/> <location filename="dialog_inputserialnum.cpp" line="450"/>
<location filename="dialog_inputserialnum.cpp" line="592"/> <location filename="dialog_inputserialnum.cpp" line="634"/>
<source>Tester: %1, Test item: %2</source> <source>Tester: %1, Test item: %2</source>
<translation>: %1, : %2</translation> <translation>: %1, : %2</translation>
</message> </message>
<message> <message>
<location filename="dialog_inputserialnum.cpp" line="433"/> <location filename="dialog_inputserialnum.cpp" line="462"/>
<source>set sn succeed</source> <source>set sn succeed</source>
<translation></translation> <translation></translation>
</message> </message>

View File

@ -58,7 +58,8 @@ AnalysisJson::json_global AnalysisJson::GetGlobal()
obj["sleep-time"].toInt(), obj["sleep-time"].toInt(),
obj["device-model"].toString(), obj["device-model"].toString(),
obj["cpu-size"].toInt(), obj["cpu-size"].toInt(),
obj["disk-size"].toInt()}; obj["disk-size"].toInt(),
obj["firmware-version"].toString()};
} }

View File

@ -28,6 +28,7 @@ public:
QString device_model; QString device_model;
std::int32_t cpu_size; std::int32_t cpu_size;
std::int32_t disk_size; std::int32_t disk_size;
QString firmware_version;
}; };
AnalysisJson() = delete ; AnalysisJson() = delete ;

View File

@ -269,6 +269,21 @@ QString Dialog_InputSerialNum::getDeviceModel()
return QString::fromStdString(devs_model); return QString::fromStdString(devs_model);
} }
QString Dialog_InputSerialNum::getDeviceFwVersion()
{
std::string firmwareVersion;
unsigned int devs_len = 0;
SANE_Status ret = sane_io_control(m_handle, IO_CTRL_CODE_GET_HARDWARE_VERSION, &firmwareVersion[0], &devs_len);
if (ret == SANE_STATUS_NO_MEM)
{
firmwareVersion.resize(devs_len);
ret = sane_io_control(m_handle, IO_CTRL_CODE_GET_HARDWARE_VERSION, &firmwareVersion[0], &devs_len);
}
return QString::fromStdString(firmwareVersion).left(10);
}
void Dialog_InputSerialNum::updateTargetCfg() void Dialog_InputSerialNum::updateTargetCfg()
{ {
ui->textBrowser_target->clear(); ui->textBrowser_target->clear();
@ -281,6 +296,7 @@ void Dialog_InputSerialNum::updateTargetCfg()
int vid_to = jsonGlobal.vid_to; int vid_to = jsonGlobal.vid_to;
int pid_to = jsonGlobal.pid_to; int pid_to = jsonGlobal.pid_to;
QString devideModel = jsonGlobal.device_model; QString devideModel = jsonGlobal.device_model;
QString fwVersion = jsonGlobal.firmware_version;
char buf[10]; char buf[10];
sprintf(buf, "%x", vid_to); sprintf(buf, "%x", vid_to);
@ -294,9 +310,12 @@ void Dialog_InputSerialNum::updateTargetCfg()
if (!devideModel.isEmpty()) if (!devideModel.isEmpty())
content.append(tr("Device model: %1").arg(devideModel) + "\n"); content.append(tr("Device model: %1").arg(devideModel) + "\n");
if (!fwVersion.isEmpty())
content.append(tr("Firmware version: %1").arg(fwVersion) + "\n");
content.append(tr("Speep mode: %1PPM").arg(QString::number(speedMode)) + "\n"); content.append(tr("Speep mode: %1PPM").arg(QString::number(speedMode)) + "\n");
content.append((sleepTime > 0 ? tr("Sleep time: %1minute").arg(QString::number(sleepTime)) : tr("Sleep time: Not sleeping")) + "\n"); content.append((sleepTime > 0 ? tr("Sleep time: %1minute").arg(QString::number(sleepTime)) : tr("Sleep time: Not sleeping")) + "\n");
content.append(tr("Vid: %1 Pid: %2").arg(QString::fromStdString(buf)).arg(QString::fromStdString(buf2)) + "\n"); content.append(tr("Vid: %1\nPid: %2").arg(QString::fromStdString(buf)).arg(QString::fromStdString(buf2)) + "\n");
ui->textBrowser_target->setText(content); ui->textBrowser_target->setText(content);
} }
@ -320,6 +339,13 @@ void Dialog_InputSerialNum::updateCurDeviceCfg()
{ {
devideModel = getDeviceModel(); devideModel = getDeviceModel();
} }
QString fwVersion("");
if (!jsonGlobal.firmware_version.isEmpty())
{
fwVersion = getDeviceFwVersion();
}
char buf[10]; char buf[10];
sprintf(buf, "%x", vid_to); sprintf(buf, "%x", vid_to);
@ -332,9 +358,12 @@ void Dialog_InputSerialNum::updateCurDeviceCfg()
if (!devideModel.isEmpty()) if (!devideModel.isEmpty())
content.append(tr("Device model: %1").arg(devideModel) + "\n"); content.append(tr("Device model: %1").arg(devideModel) + "\n");
if (!fwVersion.isEmpty())
content.append(tr("Firmware version: %1").arg(fwVersion) + "\n");
content.append(tr("Speep mode: %1PPM").arg(QString::number(speedMode)) + "\n"); content.append(tr("Speep mode: %1PPM").arg(QString::number(speedMode)) + "\n");
content.append(sleepTime > 0 ? tr("Sleep time: %1minute").arg(QString::number(sleepTime)) + "\n" : tr("Sleep time: Not sleeping") + "\n"); content.append(sleepTime > 0 ? tr("Sleep time: %1minute").arg(QString::number(sleepTime)) + "\n" : tr("Sleep time: Not sleeping") + "\n");
content.append(tr("Vid: %1 Pid: %2").arg(QString::fromStdString(buf)).arg(QString::fromStdString(buf2)) + "\n"); content.append(tr("Vid: %1\nPid: %2").arg(QString::fromStdString(buf)).arg(QString::fromStdString(buf2)) + "\n");
ui->textBrowser_curConfig->setText(content); ui->textBrowser_curConfig->setText(content);
} }
@ -445,6 +474,7 @@ void Dialog_InputSerialNum::on_pbtn_checkConfig_clicked()
int vid_to = jsonGlobal.vid_to; int vid_to = jsonGlobal.vid_to;
int pid_to = jsonGlobal.pid_to; int pid_to = jsonGlobal.pid_to;
QString deviceModel_to = jsonGlobal.device_model; QString deviceModel_to = jsonGlobal.device_model;
QString firmwareVersion_to = jsonGlobal.firmware_version;
int speedMode = getSpeedMode(); int speedMode = getSpeedMode();
int sleepTime = getSleepTime(); int sleepTime = getSleepTime();
@ -469,6 +499,18 @@ void Dialog_InputSerialNum::on_pbtn_checkConfig_clicked()
} }
} }
if (!firmwareVersion_to.isEmpty())
{
QString fwVersion = getDeviceFwVersion();
if (firmwareVersion_to != fwVersion)
{
right = false;
QString info = tr("Inconsistent firmware detected, please burn the correct firmware, and check again");
addInteractInfo(info, false);
}
}
if (speedMode_to != speedMode) if (speedMode_to != speedMode)
{ {
item.append(tr("Speed mode")); item.append(tr("Speed mode"));

View File

@ -35,6 +35,7 @@ public:
int getDevVid(); int getDevVid();
int getDevPid(); int getDevPid();
QString getDeviceModel(); QString getDeviceModel();
QString getDeviceFwVersion();
private: private:
void updateTargetCfg(); void updateTargetCfg();

View File

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>795</width> <width>812</width>
<height>608</height> <height>615</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -16,7 +16,7 @@
<widget class="QPushButton" name="pbtn_setConfig"> <widget class="QPushButton" name="pbtn_setConfig">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>570</x> <x>580</x>
<y>300</y> <y>300</y>
<width>190</width> <width>190</width>
<height>35</height> <height>35</height>
@ -44,7 +44,7 @@
<widget class="QPushButton" name="pbtn_checkConfig"> <widget class="QPushButton" name="pbtn_checkConfig">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>570</x> <x>580</x>
<y>210</y> <y>210</y>
<width>190</width> <width>190</width>
<height>35</height> <height>35</height>
@ -72,7 +72,7 @@
<widget class="QPushButton" name="pbtn_enterTest"> <widget class="QPushButton" name="pbtn_enterTest">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>570</x> <x>580</x>
<y>390</y> <y>390</y>
<width>190</width> <width>190</width>
<height>35</height> <height>35</height>
@ -102,7 +102,7 @@
<rect> <rect>
<x>10</x> <x>10</x>
<y>320</y> <y>320</y>
<width>521</width> <width>531</width>
<height>231</height> <height>231</height>
</rect> </rect>
</property> </property>
@ -112,7 +112,7 @@
<rect> <rect>
<x>10</x> <x>10</x>
<y>110</y> <y>110</y>
<width>521</width> <width>531</width>
<height>191</height> <height>191</height>
</rect> </rect>
</property> </property>
@ -148,7 +148,7 @@
<widget class="QPushButton" name="pbtn_reboot"> <widget class="QPushButton" name="pbtn_reboot">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>610</x> <x>620</x>
<y>480</y> <y>480</y>
<width>101</width> <width>101</width>
<height>41</height> <height>41</height>
@ -196,7 +196,7 @@
<widget class="QPushButton" name="pbtn_setSn"> <widget class="QPushButton" name="pbtn_setSn">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>390</x> <x>400</x>
<y>50</y> <y>50</y>
<width>141</width> <width>141</width>
<height>31</height> <height>31</height>
@ -215,7 +215,7 @@
<widget class="QPushButton" name="pbtn_slectLogPath"> <widget class="QPushButton" name="pbtn_slectLogPath">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>560</x> <x>580</x>
<y>50</y> <y>50</y>
<width>181</width> <width>181</width>
<height>31</height> <height>31</height>
@ -234,7 +234,7 @@
<widget class="QPushButton" name="pushButton_status"> <widget class="QPushButton" name="pushButton_status">
<property name="geometry"> <property name="geometry">
<rect> <rect>
<x>600</x> <x>610</x>
<y>110</y> <y>110</y>
<width>121</width> <width>121</width>
<height>61</height> <height>61</height>