setting page using local thread to fetch device data,battery bug fixes

This commit is contained in:
xueyan hu
2022-01-12 17:59:05 +08:00
parent 376c343945
commit 80528751e4
13 changed files with 271 additions and 221 deletions

View File

@@ -6,6 +6,7 @@
#include "event/EventCenter.h"
#include <QStringList>
#include "json/cmdhelper.h"
#include <QThread>
AboutWidget::AboutWidget(QWidget* parent)
: QWidget(parent)
@@ -112,12 +113,12 @@ void AboutWidget::initUi()
pSUSEVer = new QLabel(this);
pSUSEVer->setText(cmdHelper::Instance()->getLinuxVersion());
pSUSEVer->setText(tr("Loading..."));
pMainLayout->addWidget(pSUSEVer);
pMainLayout->addSpacing(subContentSpacing);
pDcmtkVer = new QLabel(this);
pDcmtkVer->setText(cmdHelper::Instance()->getDCMTKVersion());
pDcmtkVer->setText(tr("Loading..."));
pMainLayout->addWidget(pDcmtkVer);
pDcmtkCopyright = new QLabel(this);
pDcmtkCopyright->setObjectName("normal");
@@ -139,8 +140,16 @@ void AboutWidget::initUi()
pMainLayout->addStretch();
connect(pBtnHelp, SIGNAL(clicked()), this, SLOT(openHelpFile()));
QThread* t = QThread::create([=]() {
pSUSEVer->setText(cmdHelper::Instance()->getLinuxVersion());
pDcmtkVer->setText(cmdHelper::Instance()->getDCMTKVersion());
});
t->start();
connect(t, SIGNAL(finished()), t, SLOT(deleteLater()));
connect(pBtnHelp, SIGNAL(clicked()), this, SLOT(openHelpFile()));
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]() {
pProductVer->setText(tr("HJ-USCT-01 V1.0"));
pBtnHelp->setText(tr("?"));

View File

@@ -304,6 +304,12 @@ void Battery::setValue(double value)
this->value = value;
this->update();
emit valueChanged(value);
//timer->stop();
//timer->start();
}
void Battery::startAnimation()
{
timer->stop();
timer->start();
}

View File

@@ -53,6 +53,7 @@ protected:
void drawHead(QPainter* painter);
private slots:
void startAnimation();
void updateValue();
private:

View File

@@ -10,7 +10,6 @@
#include <QDateTime>
#include <qdebug.h>
#include "appvals/AppGlobalValues.h"
#define TRIGGER_EVENT EventCenter::Default()->triggerEvent
#define THROW_ERROR(errormsg)\
@@ -52,7 +51,6 @@ void DeviceManager::initDevice() {
InitLib(ErrorCallback);
deviceInfTimerID = startTimer(1000);
diskInfTimerID = startTimer(60000);
// empty scan
connect(EventCenter::Default(), &EventCenter::RequestEmptyScan, [=](QObject* sender, QObject* detail) {
@@ -182,6 +180,8 @@ void DeviceManager::initDevice() {
}
});
previewDataCaller->start();
}
void DeviceManager::timerEvent(QTimerEvent* event) {
@@ -189,12 +189,6 @@ void DeviceManager::timerEvent(QTimerEvent* event) {
QString temp = QString(GetDeviceInfo(MEAN_TEMPERATURE));
TRIGGER_EVENT(GUIEvents::ResponseDeviceTemperature, nullptr, (QObject*)&temp);
return;
}
if (event->timerId() == diskInfTimerID)
{
TRIGGER_EVENT(GUIEvents::ResponseDeviceStoragement, nullptr, nullptr);
return;
}
//scanning progress timer
{

View File

@@ -30,7 +30,6 @@ private:
void processScan(const char* json, bool empty = false);
int timerID = -1;
int deviceInfTimerID = -1;
int diskInfTimerID = -1;
int lastStatus = -1;
bool previewing = false;
bool endLoop = false;

View File

@@ -16,7 +16,6 @@ ADD_EVENT_VALUE(RequestEmptyScan)\
ADD_EVENT_VALUE(RequestPatientScan)\
ADD_EVENT_VALUE(RequestStop)\
ADD_EVENT_VALUE(ResponseDeviceTemperature)\
ADD_EVENT_VALUE(ResponseDeviceStoragement)\
ADD_EVENT_VALUE(ResponsePreview)\
ADD_EVENT_VALUE(ResponsePreviewData)\
ADD_EVENT_VALUE(ResponseStop)\

View File

@@ -20,6 +20,7 @@
#include "event/EventCenter.h"
#include "device/DeviceManager.h"
#include "json/cmdhelper.h"
#include "appvals/AppGlobalValues.h"
systemSettingForm::systemSettingForm(QWidget* parent) :
QWidget(parent),
@@ -27,31 +28,9 @@ systemSettingForm::systemSettingForm(QWidget* parent) :
{
ui->setupUi(this);
//[step]
//1)get total size and setMaxValue
//2)calculate percent(total-85)/total*100 and setAlarmValue
//3)get used size and setValue
ui->lbl_size->setText(tr("Loading..."));
ui->lbl_used->setText(tr("Loading..."));
double dsize;
if (cmdHelper::Instance()->getDiskSize(dsize))
{
m_disksize = dsize;
}
else
{
m_disksize = -1.0;
}
updateDiskSize();
double duse;
if (cmdHelper::Instance()->getDiskUsed(duse))
{
m_diskuse = duse;
}
else
{
m_diskuse = -1.0;
}
updateDiskUse();
//style init
//ui->btn_dicom->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
ui->btn_dicom->setIcon(QIcon(":/icons/dicomsettings.png"));
@@ -69,25 +48,42 @@ systemSettingForm::systemSettingForm(QWidget* parent) :
//ui->lbl_protocal->setFixedWidth(100);
ui->lbl_verify->setFixedWidth(100);
//data init
ui->btnPro->setText(JsonObject::Instance()->defaultProtocal());
ui->btnPro->setObjectName("BigBtn");
ui->btnFlt->setText(JsonObject::Instance()->defaultFilter());
ui->btnFlt->setObjectName("BigBtn");
connect(EventCenter::Default(), &EventCenter::ResponseDeviceStoragement, [=](QObject*) {
double duse;
if (cmdHelper::Instance()->getDiskUsed(duse))
////test begin
//flag_disksize = true;
//m_disksize = 75.0;
////test end
//updateStorageSize();
////test begin
//flag_diskuse = true;
//m_diskuse = 23.0;
////test end
//updateStorageUsed();
diskInfoCaller = QThread::create([=]() {
double disksize = 0;
flag_disksize = cmdHelper::Instance()->getDiskSize(disksize);
m_disksize = disksize;
updateStorageSize();
while (true)
{
double duse = 0;
flag_diskuse = cmdHelper::Instance()->getDiskUsed(duse);
m_diskuse = duse;
updateStorageUsed();
QMetaObject::invokeMethod(ui->batIcon, "startAnimation", Qt::QueuedConnection);
QThread::msleep(1000);
}
else
{
m_diskuse = -1.0;
}
updateDiskUse();
});
diskInfoCaller->start();
//connection
connect(ui->swt_verify, &ImageSwitch::clicked, [=]() {
@@ -149,21 +145,42 @@ systemSettingForm::systemSettingForm(QWidget* parent) :
connect(EventCenter::Default(), &EventCenter::ReloadLanguage, [=]() {
ui->retranslateUi(this);
ui->btnPro->setText(JsonObject::Instance()->defaultProtocal());
ui->btnFlt->setText(JsonObject::Instance()->defaultFilter());
ui->swt_verify->setChecked(true);
updateDiskSize();
updateDiskUse();
updateStorageSize();
updateStorageUsed();
});
}
void systemSettingForm::updateDiskSize()
systemSettingForm::~systemSettingForm()
{
if (m_disksize != -1.0)
diskInfoCaller->quit();
diskInfoCaller->wait();
}
void systemSettingForm::updateStorageUsed()
{
if (flag_diskuse)
{
ui->batIcon->setValue(m_diskuse);
ui->lbl_used->setText(tr("used:\t%1G").arg(m_diskuse));
}
else
{
ui->lbl_used->setText(tr("Get disk used size fail!"));
}
}
void systemSettingForm::updateStorageSize()
{
//bool flag = AppGlobalValues::StorageFlag();
if (flag_disksize)
{
//double total_size = AppGlobalValues::StorageSize();
ui->batIcon->setMaxValue(m_disksize);
double aValue = (m_disksize - JsonObject::Instance()->storageAlarmSize().toDouble()) / m_disksize;
ui->batIcon->setAlarmValue(aValue);
@@ -173,23 +190,4 @@ void systemSettingForm::updateDiskSize()
{
ui->lbl_size->setText(tr("Get disk total size fail!"));
}
}
void systemSettingForm::updateDiskUse()
{
if (m_diskuse != -1.0)
{
ui->batIcon->setValue(m_diskuse);
ui->lbl_used->setText(tr("used:\t%1G").arg(m_diskuse));
}
else
{
ui->lbl_used->setText(tr("Get disk used size fail!"));
}
}
systemSettingForm::~systemSettingForm()
{
delete ui;
}

View File

@@ -19,20 +19,24 @@ class systemSettingForm : public QWidget
public:
explicit systemSettingForm(QWidget* parent = nullptr);
~systemSettingForm();
//protected:
// void changeEvent(QEvent* event);
private:
void updateStorageSize();
void updateStorageUsed();
Ui::systemSettingForm* ui;
SelectDialog* sd_protocal = nullptr;
SelectDialog* sd_filter = nullptr;
double m_disksize = -1.0;
double m_diskuse = -1.0;
QThread* diskInfoCaller = nullptr;
void updateDiskSize();
void updateDiskUse();
double m_disksize;
double m_diskuse;
bool flag_disksize = false;
bool flag_diskuse = false;
};
#endif // SYSTEMSETTINGFORM_H

View File

@@ -51,6 +51,10 @@
<source>Copyright (c) 2009-2017 Dave Gamble</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AccountFormDialog</name>
@@ -785,16 +789,20 @@ parameters
<source>Disk Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>total: %1G</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>used: %1G</source>
<source>Get disk total size fail!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Get disk total size fail!</source>
<source>used: %1G</source>
<translation type="unfinished"></translation>
</message>
<message>

View File

@@ -51,6 +51,10 @@
<source>Copyright (c) 2009-2017 Dave Gamble</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>AccountFormDialog</name>
@@ -785,16 +789,20 @@ parameters
<source>Disk Storage</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>total: %1G</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>used: %1G</source>
<source>Get disk total size fail!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Get disk total size fail!</source>
<source>used: %1G</source>
<translation type="unfinished"></translation>
</message>
<message>

Binary file not shown.

View File

@@ -4,68 +4,74 @@
<context>
<name>AboutWidget</name>
<message>
<location filename="../aboutwidget.cpp" line="55"/>
<location filename="../aboutwidget.cpp" line="145"/>
<location filename="../aboutwidget.cpp" line="56"/>
<location filename="../aboutwidget.cpp" line="154"/>
<source>HJ-USCT-01 V1.0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="59"/>
<location filename="../aboutwidget.cpp" line="146"/>
<location filename="../aboutwidget.cpp" line="60"/>
<location filename="../aboutwidget.cpp" line="155"/>
<source>?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="131"/>
<location filename="../aboutwidget.cpp" line="132"/>
<source>cJSON</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="147"/>
<location filename="../aboutwidget.cpp" line="156"/>
<source>Copyright © 2017-2020 Zhejiang Equilibrium Nine Medical Equipment Co., Ltd. All Rights Reversed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="72"/>
<location filename="../aboutwidget.cpp" line="148"/>
<location filename="../aboutwidget.cpp" line="73"/>
<location filename="../aboutwidget.cpp" line="157"/>
<source>GUI Software V1.3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="65"/>
<location filename="../aboutwidget.cpp" line="66"/>
<source>Copyright © 2017-2022 Zhejiang Equilibrium Nine Medical Equipment Co., Ltd. All Rights Reversed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="77"/>
<location filename="../aboutwidget.cpp" line="149"/>
<location filename="../aboutwidget.cpp" line="78"/>
<location filename="../aboutwidget.cpp" line="158"/>
<source>Embedded Software V1.5</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="82"/>
<location filename="../aboutwidget.cpp" line="150"/>
<location filename="../aboutwidget.cpp" line="83"/>
<location filename="../aboutwidget.cpp" line="159"/>
<source>Reconstruction Software V1.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="88"/>
<location filename="../aboutwidget.cpp" line="151"/>
<location filename="../aboutwidget.cpp" line="89"/>
<location filename="../aboutwidget.cpp" line="160"/>
<source>FEB Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="94"/>
<location filename="../aboutwidget.cpp" line="95"/>
<source>Qt 5.12.0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="124"/>
<location filename="../aboutwidget.cpp" line="116"/>
<location filename="../aboutwidget.cpp" line="121"/>
<source>Loading...</source>
<translation></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="125"/>
<source>Copyright (c) 1994-2021, OFFIS e.V.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="135"/>
<location filename="../aboutwidget.cpp" line="136"/>
<source>Copyright (c) 2009-2017 Dave Gamble</source>
<translation type="unfinished"></translation>
</message>
@@ -1153,22 +1159,28 @@ parameters
<translation></translation>
</message>
<message>
<location filename="../systemsettingform.cpp" line="170"/>
<location filename="../systemsettingform.cpp" line="31"/>
<location filename="../systemsettingform.cpp" line="32"/>
<source>Loading...</source>
<translation>...</translation>
</message>
<message>
<location filename="../systemsettingform.cpp" line="196"/>
<source>total: %1G</source>
<translation>%1G</translation>
</message>
<message>
<location filename="../systemsettingform.cpp" line="174"/>
<location filename="../systemsettingform.cpp" line="200"/>
<source>Get disk total size fail!</source>
<translation></translation>
</message>
<message>
<location filename="../systemsettingform.cpp" line="183"/>
<location filename="../systemsettingform.cpp" line="179"/>
<source>used: %1G</source>
<translation>%1G</translation>
<translation>使%1G</translation>
</message>
<message>
<location filename="../systemsettingform.cpp" line="187"/>
<location filename="../systemsettingform.cpp" line="183"/>
<source>Get disk used size fail!</source>
<translation>使</translation>
</message>

View File

@@ -4,68 +4,74 @@
<context>
<name>AboutWidget</name>
<message>
<location filename="../aboutwidget.cpp" line="55"/>
<location filename="../aboutwidget.cpp" line="145"/>
<location filename="../aboutwidget.cpp" line="56"/>
<location filename="../aboutwidget.cpp" line="154"/>
<source>HJ-USCT-01 V1.0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="59"/>
<location filename="../aboutwidget.cpp" line="146"/>
<location filename="../aboutwidget.cpp" line="60"/>
<location filename="../aboutwidget.cpp" line="155"/>
<source>?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="131"/>
<location filename="../aboutwidget.cpp" line="132"/>
<source>cJSON</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="147"/>
<location filename="../aboutwidget.cpp" line="156"/>
<source>Copyright © 2017-2020 Zhejiang Equilibrium Nine Medical Equipment Co., Ltd. All Rights Reversed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="72"/>
<location filename="../aboutwidget.cpp" line="148"/>
<location filename="../aboutwidget.cpp" line="73"/>
<location filename="../aboutwidget.cpp" line="157"/>
<source>GUI Software V1.3</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="65"/>
<location filename="../aboutwidget.cpp" line="66"/>
<source>Copyright © 2017-2022 Zhejiang Equilibrium Nine Medical Equipment Co., Ltd. All Rights Reversed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="77"/>
<location filename="../aboutwidget.cpp" line="149"/>
<location filename="../aboutwidget.cpp" line="78"/>
<location filename="../aboutwidget.cpp" line="158"/>
<source>Embedded Software V1.5</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="82"/>
<location filename="../aboutwidget.cpp" line="150"/>
<location filename="../aboutwidget.cpp" line="83"/>
<location filename="../aboutwidget.cpp" line="159"/>
<source>Reconstruction Software V1.2</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="88"/>
<location filename="../aboutwidget.cpp" line="151"/>
<location filename="../aboutwidget.cpp" line="89"/>
<location filename="../aboutwidget.cpp" line="160"/>
<source>FEB Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="94"/>
<location filename="../aboutwidget.cpp" line="95"/>
<source>Qt 5.12.0</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="124"/>
<location filename="../aboutwidget.cpp" line="116"/>
<location filename="../aboutwidget.cpp" line="121"/>
<source>Loading...</source>
<translation></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="125"/>
<source>Copyright (c) 1994-2021, OFFIS e.V.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../aboutwidget.cpp" line="135"/>
<location filename="../aboutwidget.cpp" line="136"/>
<source>Copyright (c) 2009-2017 Dave Gamble</source>
<translation type="unfinished"></translation>
</message>
@@ -1153,22 +1159,28 @@ parameters
<translation></translation>
</message>
<message>
<location filename="../systemsettingform.cpp" line="170"/>
<location filename="../systemsettingform.cpp" line="31"/>
<location filename="../systemsettingform.cpp" line="32"/>
<source>Loading...</source>
<translation>...</translation>
</message>
<message>
<location filename="../systemsettingform.cpp" line="196"/>
<source>total: %1G</source>
<translation>%1G</translation>
</message>
<message>
<location filename="../systemsettingform.cpp" line="174"/>
<location filename="../systemsettingform.cpp" line="200"/>
<source>Get disk total size fail!</source>
<translation></translation>
</message>
<message>
<location filename="../systemsettingform.cpp" line="183"/>
<location filename="../systemsettingform.cpp" line="179"/>
<source>used: %1G</source>
<translation>%1G</translation>
<translation>使%1G</translation>
</message>
<message>
<location filename="../systemsettingform.cpp" line="187"/>
<location filename="../systemsettingform.cpp" line="183"/>
<source>Get disk used size fail!</source>
<translation>使</translation>
</message>