11/25
This commit is contained in:
481
ZBD_IIIDL_S_Project/Src/Setting/settingwidget.cpp
Normal file
481
ZBD_IIIDL_S_Project/Src/Setting/settingwidget.cpp
Normal file
@@ -0,0 +1,481 @@
|
||||
#include "settingwidget.h"
|
||||
#include "ui_settingwidget.h"
|
||||
#include <QDir>
|
||||
#include <QSettings>
|
||||
#include <QMessageBox>
|
||||
#include <QDebug>
|
||||
#include "ccommunicateapi.h"
|
||||
#include "languagemanager.h"
|
||||
#include "readconfig.h"
|
||||
#include <QDebug>
|
||||
#include <QDateTime>
|
||||
#include "icemodule.h"
|
||||
#include "torquedialog.h"
|
||||
#include "fescontroldialog.h"
|
||||
#include "icemodule.h"
|
||||
SettingWidget::SettingWidget(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::SettingWidget),
|
||||
m_buttonGroup(nullptr),
|
||||
checkTimer(NULL),
|
||||
fesAState(false),
|
||||
fesBState(false),
|
||||
bioelectricityState(false),
|
||||
m_powerLevel(0),
|
||||
m_mainBoXueyang(NULL)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
//隐藏电刺激和调节高度
|
||||
ui->groupBox_3->hide();
|
||||
ui->groupBox_13->hide();
|
||||
ui->OpenFES_Btn->setVisible(false);
|
||||
#ifdef UpLowLimpNormal
|
||||
|
||||
ui->groupBox_3->setVisible(true);
|
||||
|
||||
ui->groupBox_5->move(875,267);
|
||||
ui->groupBox_14->move(225,267);
|
||||
#endif
|
||||
|
||||
//设置血氧可见
|
||||
#ifndef OXYGEN
|
||||
ui->groupBox_5->setVisible(false);
|
||||
#endif
|
||||
|
||||
//设置按钮互斥,配合样式表
|
||||
m_buttonGroup = new QButtonGroup;
|
||||
m_buttonGroup->setExclusive(true);
|
||||
m_buttonGroup->addButton(ui->systemSetting_Btn);
|
||||
m_buttonGroup->addButton(ui->secretManage_Btn);
|
||||
m_buttonGroup->addButton(ui->productMsg_Btn);
|
||||
|
||||
ui->originalPasswordTips_Label->setVisible(false);
|
||||
ui->confirmPasswordTips_Label->setVisible(false);
|
||||
|
||||
ui->stackedWidget->setCurrentIndex(0);
|
||||
|
||||
checkTimer = new QTimer;
|
||||
checkTimer->setInterval(3000);
|
||||
|
||||
connect(checkTimer,SIGNAL(timeout()),this,SLOT(slotCheckTimerSlot()));
|
||||
|
||||
|
||||
|
||||
// initWidget();
|
||||
//设置按钮
|
||||
E_LANGUAGE lan = LanguageManager::getInstance()->getConfigLanguage();
|
||||
switch(lan)
|
||||
{
|
||||
case Chinese_E:
|
||||
ui->CH_RadioButton->setChecked(true);
|
||||
break;
|
||||
case English_E:
|
||||
ui->EN_RadioButton->setChecked(true);
|
||||
|
||||
//单独设置按钮大小
|
||||
QFont font ;
|
||||
font.setPointSize(13);
|
||||
font.setBold(true);
|
||||
ui->productMsg_Btn->setFont(font);
|
||||
|
||||
ui->productMsg_Btn->resize(265,60);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
connect(ui->torque_Low,SIGNAL(clicked()),this,SLOT(on_torque_Radio_clicked()));
|
||||
connect(ui->torque_Middle,SIGNAL(clicked()),this,SLOT(on_torque_Radio_clicked()));
|
||||
connect(ui->torque_Hign,SIGNAL(clicked()),this,SLOT(on_torque_Radio_clicked()));
|
||||
|
||||
m_mainBoXueyang = new MaiBoXueyangDialog();
|
||||
|
||||
//设置不同肢体的产品介绍页面
|
||||
#ifdef NORMALEXE
|
||||
E_LANGUAGE language = LanguageManager::getInstance()->getCurrentLanguage();
|
||||
if(language == Chinese_E)
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIIDL_CH.png);");
|
||||
//
|
||||
else if(language == English_E)
|
||||
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIIDL_EN.png);");
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef UpLowLimpNormal
|
||||
E_LANGUAGE language = LanguageManager::getInstance()->getCurrentLanguage();
|
||||
if(language == Chinese_E)
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIIDLH_CH.png);");
|
||||
else if(language == English_E)
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIIDLH_EN.png);");
|
||||
|
||||
#endif
|
||||
//单上肢
|
||||
|
||||
#ifdef ONLYUPLIMP
|
||||
E_LANGUAGE language = LanguageManager::getInstance()->getCurrentLanguage();
|
||||
if(language == Chinese_E)
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IDL_CH.png);");
|
||||
else if(language == English_E)
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IDL_EN.png);");
|
||||
|
||||
#endif
|
||||
//单下肢
|
||||
#ifdef ONLYDOWNLIMP
|
||||
E_LANGUAGE language = LanguageManager::getInstance()->getCurrentLanguage();
|
||||
if(language == Chinese_E)
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIDL_CH.png);");
|
||||
else if(language == English_E)
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIDL_EN.png);");
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
SettingWidget::~SettingWidget()
|
||||
{
|
||||
if(m_buttonGroup != nullptr)
|
||||
delete m_buttonGroup;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
|
||||
void SettingWidget::on_resetPassword_Btn_clicked()
|
||||
{
|
||||
QString dirPath = "./DependFile/conf/";
|
||||
QDir confdir(dirPath);
|
||||
if(!confdir.exists())
|
||||
confdir.mkdir(dirPath);
|
||||
QString confFile(dirPath + "IDconf.ini");
|
||||
QSettings iniSetting(confFile, QSettings::IniFormat);
|
||||
QString password("666666");
|
||||
iniSetting.setValue("password",password);
|
||||
iniSetting.setValue("user","xyyl");
|
||||
QMessageBox::warning(NULL,tr("提示"),tr("密码重置成功"));
|
||||
}
|
||||
|
||||
void SettingWidget::on_bioelectricity_Btn_clicked()
|
||||
{
|
||||
/***
|
||||
QMessageBox::warning(NULL,tr("提示"),tr("未检测到脉搏血氧设备"));
|
||||
return;
|
||||
if(ui->bioelectricity_Btn->text() == tr("启用"))
|
||||
{
|
||||
ui->bioelectricity_Btn->setText(tr("断开"));
|
||||
ui->bioelectricityState_Label->setText(tr("已连接"));
|
||||
}
|
||||
else if(ui->bioelectricity_Btn->text() == tr("断开"))
|
||||
{
|
||||
ui->bioelectricity_Btn->setText(tr("启用"));
|
||||
ui->bioelectricityState_Label->setText(tr("未连接"));
|
||||
}
|
||||
***/
|
||||
|
||||
if(!m_mainBoXueyang)
|
||||
m_mainBoXueyang = new MaiBoXueyangDialog();
|
||||
|
||||
m_mainBoXueyang->show();
|
||||
|
||||
}
|
||||
|
||||
|
||||
void SettingWidget::on_systemSetting_Btn_clicked()
|
||||
{
|
||||
//系统设置界面
|
||||
ui->stackedWidget->setCurrentIndex(0);
|
||||
}
|
||||
|
||||
|
||||
void SettingWidget::on_secretManage_Btn_clicked()
|
||||
{
|
||||
//密码管理界面
|
||||
ui->stackedWidget->setCurrentIndex(1);
|
||||
ui->originalPasswordTips_Label->setVisible(false);
|
||||
ui->confirmPasswordTips_Label->setVisible(false);
|
||||
}
|
||||
|
||||
|
||||
void SettingWidget::on_productMsg_Btn_clicked()
|
||||
{
|
||||
ui->stackedWidget->setCurrentIndex(2);
|
||||
}
|
||||
|
||||
|
||||
void SettingWidget::on_cancelPassword_Btn_clicked()
|
||||
{
|
||||
ui->originalPassword_LineEdit->clear();
|
||||
ui->newPassword_LineEdit->clear();
|
||||
ui->confirmPassword_LineEdit->clear();
|
||||
}
|
||||
|
||||
|
||||
void SettingWidget::on_savePassword_Btn_clicked()
|
||||
{
|
||||
QString originalPassword = ui->originalPassword_LineEdit->text();
|
||||
QString dirPath = "./DependFile/conf/";
|
||||
QDir confdir(dirPath);
|
||||
if(!confdir.exists())
|
||||
confdir.mkdir(dirPath);
|
||||
QString confFile(dirPath + "IDconf.ini");
|
||||
QSettings iniSetting(confFile, QSettings::IniFormat);
|
||||
QString password = iniSetting.value("password").toString();
|
||||
if(password != originalPassword)
|
||||
{
|
||||
ui->originalPasswordTips_Label->setText(tr("原密码输入错误"));
|
||||
ui->originalPasswordTips_Label->setVisible(true);
|
||||
return;
|
||||
}
|
||||
|
||||
if(ui->newPassword_LineEdit->text() != ui->confirmPassword_LineEdit->text())
|
||||
{
|
||||
ui->confirmPasswordTips_Label->setText(tr("两次输入的密码不同"));
|
||||
ui->confirmPasswordTips_Label->setVisible(true);
|
||||
return;
|
||||
}
|
||||
|
||||
iniSetting.setValue("password",ui->confirmPassword_LineEdit->text());
|
||||
|
||||
ui->confirmPasswordTips_Label->setVisible(false);
|
||||
ui->originalPasswordTips_Label->setVisible(false);
|
||||
ui->confirmPassword_LineEdit->clear();
|
||||
ui->newPassword_LineEdit->clear();
|
||||
ui->originalPassword_LineEdit->clear();
|
||||
|
||||
QMessageBox::warning(NULL,tr("提示"),tr("密码更新成功"));
|
||||
}
|
||||
|
||||
|
||||
void SettingWidget::slotCheckTimerSlot()
|
||||
{
|
||||
if(!fesAState)
|
||||
{
|
||||
ui->FESConfig_Btn->setEnabled(false);
|
||||
ui->FESConfig_Btn->setStyleSheet("background: #E1E1E1;border-radius: 8px;color:white;");
|
||||
// ui->FESAState_Label->setText(tr("未连接"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->FESConfig_Btn->setEnabled(true);
|
||||
ui->FESConfig_Btn->setStyleSheet("background: #0D9DDB;border-radius: 8px;color:white;");
|
||||
}
|
||||
|
||||
if(!fesBState)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
if(!bioelectricityState)
|
||||
{
|
||||
ui->bioelectricity_Btn->setEnabled(false);
|
||||
ui->bioelectricity_Btn->setStyleSheet("background: #E1E1E1;border-radius: 8px;color:white;");
|
||||
ui->bioelectricityState_Label->setText(tr("未连接"));
|
||||
}
|
||||
else
|
||||
{
|
||||
ui->bioelectricity_Btn->setEnabled(true);
|
||||
ui->bioelectricity_Btn->setStyleSheet("background: #0D9DDB;border-radius: 8px;color:white;");
|
||||
}
|
||||
}
|
||||
|
||||
void SettingWidget::initWidget()
|
||||
{
|
||||
ui->FESConfig_Btn->setEnabled(false);
|
||||
ui->bioelectricity_Btn->setEnabled(false);
|
||||
}
|
||||
|
||||
void SettingWidget::getVersion()
|
||||
{
|
||||
//读取上位机版本号
|
||||
//获取下位机版本号
|
||||
QByteArray array(4,0);
|
||||
array[0] = GET_VERSION_CMD;
|
||||
CCommunicateAPI::getInstance()->sendData(array);
|
||||
|
||||
QTimer::singleShot(1000,this,[this](){
|
||||
QString version = IceModule::getInstance()->getVersion();
|
||||
ui->lowVersion_Label->setText(version);
|
||||
});
|
||||
}
|
||||
|
||||
void SettingWidget::on_reset_Btn_clicked()
|
||||
{
|
||||
CCommunicateAPI::getInstance()->setConfigParam();
|
||||
}
|
||||
|
||||
void SettingWidget::on_CH_RadioButton_toggled(bool checked)
|
||||
{
|
||||
if(checked)
|
||||
{
|
||||
LanguageManager::getInstance()->setCurrentLanguage(Chinese_E);
|
||||
//单独设置按钮大小
|
||||
QFont font ;
|
||||
font.setPointSize(15);
|
||||
font.setBold(true);
|
||||
ui->productMsg_Btn->setFont(font);
|
||||
|
||||
ui->productMsg_Btn->resize(230,60);
|
||||
|
||||
#ifdef NORMALEXE
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIIDL_CH.png);");
|
||||
#endif
|
||||
#ifdef UpLowLimpNormal
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIIDLH_CH.png);");
|
||||
#endif
|
||||
//单上肢
|
||||
|
||||
#ifdef ONLYUPLIMP
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IDL_CH.png);");
|
||||
#endif
|
||||
//单下肢
|
||||
#ifdef ONLYDOWNLIMP
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIDL_CH.png);");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void SettingWidget::on_EN_RadioButton_toggled(bool checked)
|
||||
{
|
||||
if(checked)
|
||||
{
|
||||
LanguageManager::getInstance()->setCurrentLanguage(English_E);
|
||||
//单独设置按钮大小
|
||||
QFont font ;
|
||||
font.setPointSize(13);
|
||||
font.setBold(true);
|
||||
ui->productMsg_Btn->setFont(font);
|
||||
|
||||
ui->productMsg_Btn->resize(265,60);
|
||||
#ifdef NORMALEXE
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIIDL_EN.png);");
|
||||
#endif
|
||||
#ifdef UpLowLimpNormal
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIIDLH_EN.png);");
|
||||
#endif
|
||||
|
||||
#ifdef ONLYUPLIMP
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IDL_EN.png);");
|
||||
#endif
|
||||
//单下肢
|
||||
#ifdef ONLYDOWNLIMP
|
||||
ui->label_9->setStyleSheet("border-image: url(:/DependFile/Source/channel/IIDL_EN.png);");
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
void SettingWidget::changeEvent(QEvent* event)
|
||||
{
|
||||
switch (event->type())
|
||||
{
|
||||
case QEvent::LanguageChange:
|
||||
ui->retranslateUi(this);
|
||||
break;
|
||||
default:
|
||||
QWidget::changeEvent(event);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void SettingWidget::showEvent(QShowEvent *event)
|
||||
{
|
||||
Q_UNUSED(event)
|
||||
getVersion();
|
||||
}
|
||||
|
||||
void SettingWidget::on_Up_Btn_clicked()
|
||||
{
|
||||
if(!IceModule::getInstance()->getEmergencyState())
|
||||
CCommunicateAPI::getInstance()->sendRealTimeParam(TUIGAN_UPDOWN,1);
|
||||
}
|
||||
|
||||
|
||||
void SettingWidget::on_down_Btn_clicked()
|
||||
{
|
||||
if(!IceModule::getInstance()->getEmergencyState())
|
||||
CCommunicateAPI::getInstance()->sendRealTimeParam(TUIGAN_UPDOWN,2);
|
||||
}
|
||||
|
||||
void SettingWidget::on_torque_Radio_clicked()
|
||||
{
|
||||
TorqueDialog torqueDialog;
|
||||
torqueDialog.setWindowModality(Qt::WindowModal);
|
||||
torqueDialog.exec();
|
||||
bool isConfirmed = torqueDialog.getConfirmState();
|
||||
|
||||
if(!isConfirmed)
|
||||
{
|
||||
switch(m_powerLevel)
|
||||
{
|
||||
case 0:
|
||||
ui->torque_Low->setChecked(true);
|
||||
break;
|
||||
case 1:
|
||||
ui->torque_Middle->setChecked(true);
|
||||
break;
|
||||
case 2:
|
||||
ui->torque_Hign->setChecked(true);
|
||||
break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(QObject::sender()->objectName() == "torque_Low")
|
||||
{
|
||||
m_powerLevel = 0;
|
||||
}
|
||||
else if(QObject::sender()->objectName() == "torque_Middle")
|
||||
{
|
||||
m_powerLevel = 1;
|
||||
}
|
||||
else if(QObject::sender()->objectName() == "torque_Hign")
|
||||
{
|
||||
m_powerLevel = 2;
|
||||
}
|
||||
IceModule::getInstance()->setPower(m_powerLevel);
|
||||
switch(m_powerLevel)
|
||||
{
|
||||
case 0:
|
||||
ui->torque_Low->setChecked(true);
|
||||
break;
|
||||
case 1:
|
||||
ui->torque_Middle->setChecked(true);
|
||||
break;
|
||||
case 2:
|
||||
ui->torque_Hign->setChecked(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//配置电刺激盒
|
||||
void SettingWidget::on_FESConfig_Btn_clicked()
|
||||
{
|
||||
FesControlDialog::getInstance()->show();
|
||||
}
|
||||
|
||||
|
||||
void SettingWidget::on_OpenFES_Btn_clicked()
|
||||
{
|
||||
if(ui->OpenFES_Btn->text() == tr("启用"))
|
||||
{
|
||||
if(FesControlDialog::getInstance()->openFESDevice())
|
||||
{
|
||||
ui->OpenFES_Btn->setText("已启用");
|
||||
}
|
||||
}
|
||||
else if(ui->OpenFES_Btn->text() == tr("已启用"))
|
||||
{
|
||||
//关闭设备
|
||||
ui->OpenFES_Btn->setText(tr("启用"));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
77
ZBD_IIIDL_S_Project/Src/Setting/settingwidget.h
Normal file
77
ZBD_IIIDL_S_Project/Src/Setting/settingwidget.h
Normal file
@@ -0,0 +1,77 @@
|
||||
#ifndef SETTINGWIDGET_H
|
||||
#define SETTINGWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QButtonGroup>
|
||||
#include <QTimer>
|
||||
#include "maiboxueyangdialog.h"
|
||||
|
||||
namespace Ui {
|
||||
class SettingWidget;
|
||||
}
|
||||
|
||||
class SettingWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SettingWidget(QWidget *parent = nullptr);
|
||||
~SettingWidget();
|
||||
|
||||
private slots:
|
||||
|
||||
void on_resetPassword_Btn_clicked();
|
||||
|
||||
|
||||
void on_bioelectricity_Btn_clicked();
|
||||
|
||||
void on_systemSetting_Btn_clicked();
|
||||
|
||||
void on_secretManage_Btn_clicked();
|
||||
|
||||
void on_productMsg_Btn_clicked();
|
||||
|
||||
void on_cancelPassword_Btn_clicked();
|
||||
|
||||
void on_savePassword_Btn_clicked();
|
||||
|
||||
void slotCheckTimerSlot();
|
||||
|
||||
void on_reset_Btn_clicked();
|
||||
|
||||
void on_CH_RadioButton_toggled(bool checked);
|
||||
|
||||
void on_EN_RadioButton_toggled(bool checked);
|
||||
|
||||
void on_Up_Btn_clicked();
|
||||
|
||||
void on_down_Btn_clicked();
|
||||
|
||||
//扭矩选择
|
||||
void on_torque_Radio_clicked();
|
||||
|
||||
void on_FESConfig_Btn_clicked();
|
||||
|
||||
void on_OpenFES_Btn_clicked();
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
virtual void changeEvent(QEvent* event);
|
||||
|
||||
virtual void showEvent(QShowEvent *event);
|
||||
private:
|
||||
void initWidget();
|
||||
|
||||
//获取版本号
|
||||
void getVersion();
|
||||
private:
|
||||
Ui::SettingWidget *ui;
|
||||
QButtonGroup *m_buttonGroup;
|
||||
QTimer *checkTimer;
|
||||
bool fesAState,fesBState,bioelectricityState;
|
||||
int8_t m_powerLevel;
|
||||
MaiBoXueyangDialog *m_mainBoXueyang;
|
||||
};
|
||||
|
||||
#endif // SETTINGWIDGET_H
|
||||
1079
ZBD_IIIDL_S_Project/Src/Setting/settingwidget.ui
Normal file
1079
ZBD_IIIDL_S_Project/Src/Setting/settingwidget.ui
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user