#include "settingwidget.h" #include "ui_settingwidget.h" #include #include #include #include #include "ccommunicateapi.h" #include "languagemanager.h" #include "readconfig.h" #include #include #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("启用")); } }