UpLowLimp/ZBD_IIIDL_S_Project/Src/TrainManager/trainingparamsetting.cpp

489 lines
19 KiB
C++
Raw Normal View History

2024-11-25 17:15:44 +08:00
#include "trainingparamsetting.h"
#include "ui_trainingparamsetting.h"
#include "mainwindowpagecontrol.h"
#include "icemodule.h"
#include "ccommunicateapi.h"
#include "paramtipsdialog.h"
#include "languagemanager.h"
#include <QDebug>
#include "currentuserdata.h"
TrainingParamSetting::TrainingParamSetting(QWidget *parent) :
QWidget(parent),
ui(new Ui::TrainingParamSetting),
m_IsImportPrescription(0),
m_saveParamInWidget(0),
m_trainType(0)
{
ui->setupUi(this);
m_userID = CurrentUserData::getInstace()->getCurrentPatientMsg().ID;
initWidget();
}
TrainingParamSetting::~TrainingParamSetting()
{
delete ui;
}
ST_BicycleParam TrainingParamSetting::get_st_bicycleParam()
{
ST_BicycleParam st_bicycleParam;
st_bicycleParam.trainTime = ui->trainTime1_ComboBox->currentText().toUInt();
//训练阻力
st_bicycleParam.resistance = ui->resistance1_ComboBox->currentText().toInt();
//训练速度
st_bicycleParam.speed = ui->speed1_ComboBox->currentText().toInt();
//转向:1为正向0为逆向
if(ui->CW1_Button->isChecked())
st_bicycleParam.direction = 1;
else if(ui->ACW1_Button->isChecked())
st_bicycleParam.direction = 0;
//痉挛保护
// if(ui->spasmACW2_RadioButton->isChecked())
// st_bicycleParam.spasmType = 0;
if(ui->spasmClose1_Button->isChecked())
st_bicycleParam.spasmSwitch = 1; //保护是1
else
m_st_bicycleParam.spasmSwitch = 0; //不保护是0
//痉挛等级
if(ui->spasmLow1_Button->isChecked())
st_bicycleParam.spasmLevel = 1;
else if(ui->spasmMidd1_Button->isChecked())
st_bicycleParam.spasmLevel = 2;
else if(ui->spasmHigh1_Button->isChecked())
st_bicycleParam.spasmLevel = 3;
return st_bicycleParam;
}
void TrainingParamSetting::setTrainType(bool type)
{
m_trainType = type;
}
void TrainingParamSetting::showEvent(QShowEvent *event)
{
Q_UNUSED(event) //过滤掉同一个用户的多次参数初始化,界面不保存数据
if( m_saveParamInWidget != 1 && m_IsImportPrescription != 1 /*m_userID != CurrentUserData::getInstace()->getCurrentPatientMsg().ID ||*/ ) //过滤掉导入处方事件,第二次进入页面
{//第二次进入要保存:(改用户、游戏结束会跟新)√ 点击返回不更新、不到界面报要保存;
ui->spasmClose1_Button->setChecked(true); //保护打开
//时间
ui->trainTime1_ComboBox->setCurrentIndex(19);
//阻力
ui->resistance1_ComboBox->setCurrentIndex(4);
//速度
ui->speed1_ComboBox->setCurrentIndex(8);
ui->spasmLow1_Button->setChecked(true);
ui->CW1_Button->setChecked(true);
m_userID = CurrentUserData::getInstace()->getCurrentPatientMsg().ID;
}
else
{
m_IsImportPrescription = 0; //重新初始化
}
}
void TrainingParamSetting::changeEvent(QEvent *event)
{
switch (event->type())
{
case QEvent::LanguageChange:
{
E_LANGUAGE language = LanguageManager::getInstance()->getCurrentLanguage();
switch(language)
{
case Chinese_E:
{
// ui->trainPart_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_part.png);");
// ui->trainMode_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_mode.png);");
// ui->trainTime_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_time.png);");
// ui->resistance_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_force.png);");
// ui->speed_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_speed.png);");
// ui->turn_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_turn.png);");
// ui->spasmProtect_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/spasm_control.png);");
// ui->spasmLevel_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/spasm_level.png);");
// ui->game_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_game.png);");
ui->trainTimeIcon_label->move(70,50);
ui->trainTime_label->move(140,40);
ui->trainResistanceIcon_label->move(80,50);
ui->trainResistance_label->move(150,40);
ui->trainSpeedIcon_label->move(90,40);
ui->trainSpeed_label->move(160,30);
//X移动50
ui->spasmProtectIcon_label->move(50,80);
ui->spasmProtect_label->move(120,70);
ui->spasmProtect_label->setStyleSheet("width: 168px;height: 42px;font-size: 42px;font-weight: 500;color: #033333;line-height: 63px;");
ui->trainResistance_label->setStyleSheet("width: 168px;height: 42px;font-size: 42px;font-weight: 500;color: #033333;line-height: 63px;");
}
break;
case English_E:
{
// ui->trainPart_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_part_E.png);");
// ui->trainMode_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_mode_E.png);");
// ui->trainTime_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_time_E.png);");
// ui->resistance_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_force_E.png);");
// ui->speed_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_speed_E.png);");
// ui->turn_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_turn_E.png);");
// ui->spasmProtect_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/spasm_control_E.png);");
// ui->spasmLevel_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/spasm_level_E.png);");
// ui->game_GroupBox->setStyleSheet("border-image: url(:/DependFile/Source/trainPage/train_game_E.png);");
//X移动30
ui->trainTimeIcon_label->move(50,50);
ui->trainTime_label->move(120,40);
ui->trainResistanceIcon_label->move(5,50);
ui->trainResistance_label->move(55,40);
ui->trainSpeedIcon_label->move(40,50);
ui->trainSpeed_label->move(110,40);
//X移动50
ui->spasmProtectIcon_label->move(5,80);
ui->spasmProtect_label->move(55,70);
ui->spasmProtect_label->setStyleSheet("width: 168px;height: 42px;font-size: 32px;font-weight: 500;color: #033333;line-height: 63px;");
ui->trainResistance_label->setStyleSheet("width: 168px;height: 42px;font-size: 36px;font-weight: 500;color: #033333;line-height: 63px;");
}
break;
}
ui->retranslateUi(this);
}
break;
default:
QWidget::changeEvent(event);
break;
}
}
void TrainingParamSetting::initWidget()
{
/*
ui->resistance1_ComboBox->setView(new QListView);
ui->speed1_ComboBox->setView(new QListView);
ui->trainTime1_ComboBox->setView(new QListView);
*/
// ui->CW1_Button->setChecked(true); //优先选择正向
// ui->spasmMidd1_Button->setChecked(true); //中等痉挛
ui->spasmClose1_Button->setChecked(true); //保护打开
//时间
// ui->trainTime1_ComboBox->setView(new QListView);
for(int i = 1;i <= 120;i++)
{
ui->trainTime1_ComboBox->addItem(QString::number(i));
}
ui->trainTime1_ComboBox->setCurrentIndex(19);
//阻力
for(int i = 1;i <= 20;i++)
{
ui->resistance1_ComboBox->addItem(QString::number(i));
}
ui->resistance1_ComboBox->setCurrentIndex(4);
//速度,因为训练速度小于2会出现空
for(int i = 2;i <= 55; i++)
{
ui->speed1_ComboBox->addItem(QString::number(i));
}
//预设定值上肢不超10下肢不超15
ui->speed1_ComboBox->setCurrentIndex(8);
//设置初始化按钮样式
// ui->CW1_Button->setStyleSheet("width: 140px;\nheight: 70px;\nbackground: #05A6EC;\nbox-shadow: 0px 3px 6px 0px rgba(12,49,153,0.59);\nborder-radius: 8px;\nborder: 2px solid #05A6EC;\n\nfont-size: 34px;\n\nfont-weight: 500;\ncolor: #FFFFFF;\nline-height: 51px;\nline-height: 51px;\ntext-shadow: 0px 3px 6px rgba(12,49,153,0.59), 0px 1px 2px #076D99;\n-webkit-background-clip: text;\n-webkit-text-fill-color: transparent;");
//ui->ACW1_Button->setStyleSheet("width: 140px;\nheight: 70px;\nbackground: linear-gradient(180deg, #EEFEFF 0%, #FCFEFF 100%);\nborder-radius: 8px;\nborder: 2px solid #B3D7E7;\n\nfont-size: 30px;\n\nfont-weight: 400;\ncolor: #333333;\nline-height: 45px;");
}
void TrainingParamSetting::slotBicycleParamChanged(ST_BicycleParam st_bicycleParam)
{
qDebug() <<"slotBicycleParamChanged";
if(st_bicycleParam.direction == 0)
ui->ACW1_Button->setChecked(true); //不默认则逆向,0表示逆向
if(st_bicycleParam.spasmLevel == 1)
ui->spasmLow1_Button->setChecked(true);
else if(st_bicycleParam.spasmLevel == 2)
ui->spasmMidd1_Button->setChecked(true);
else if(st_bicycleParam.spasmLevel == 3)
ui->spasmHigh1_Button->setChecked(true);
if(st_bicycleParam.spasmSwitch == 0)
ui->spasmClose1_Button->setChecked(false); //不默认则关闭0代表关闭
else if(st_bicycleParam.spasmSwitch == 1)
ui->spasmClose1_Button->setChecked(true);
m_IsImportPrescription = 1;
//时间、速度、阻力
ui->trainTime1_ComboBox->setCurrentIndex(st_bicycleParam.trainTime-1);
ui->resistance1_ComboBox->setCurrentIndex(st_bicycleParam.resistance-1); //从1开始
if(st_bicycleParam.speed < 2) st_bicycleParam.speed = 2;//避免速度为1出现空的
ui->speed1_ComboBox->setCurrentIndex(st_bicycleParam.speed -2); //从2开始
m_saveParamInWidget = true;
}
void TrainingParamSetting::slotResetParam() //已经到了训练管理界面
{
ui->spasmClose1_Button->setChecked(true); //保护打开
//时间
ui->trainTime1_ComboBox->setCurrentIndex(19);
//阻力
ui->resistance1_ComboBox->setCurrentIndex(4);
//速度
ui->speed1_ComboBox->setCurrentIndex(8);
ui->spasmLow1_Button->setChecked(true);
ui->CW1_Button->setChecked(true);
m_saveParamInWidget = false;
}
//1.点击确定保存参数
void TrainingParamSetting::on_confirm_Btn_clicked()
{
m_saveParamInWidget = true;
//收集参数
//训练时间
m_st_bicycleParam.trainTime = ui->trainTime1_ComboBox->currentText().toUInt();
//训练阻力
m_st_bicycleParam.resistance = ui->resistance1_ComboBox->currentText().toInt();
//训练速度
m_st_bicycleParam.speed = ui->speed1_ComboBox->currentText().toInt();
//转向:1为正向0为逆向
if(ui->CW1_Button->isChecked())
m_st_bicycleParam.direction = 1;
else if(ui->ACW1_Button->isChecked())
m_st_bicycleParam.direction = 0;
//痉挛保护
// if(ui->spasmACW2_RadioButton->isChecked())
// st_bicycleParam.spasmType = 0;
if(ui->spasmClose1_Button->isChecked())
m_st_bicycleParam.spasmSwitch = 1; //保护是1
else
m_st_bicycleParam.spasmSwitch = 0; //不保护是0
//痉挛等级
if(ui->spasmLow1_Button->isChecked())
m_st_bicycleParam.spasmLevel = 1;
else if(ui->spasmMidd1_Button->isChecked())
m_st_bicycleParam.spasmLevel = 2;
else if(ui->spasmHigh1_Button->isChecked())
m_st_bicycleParam.spasmLevel = 3;
emit signalTrainParamChanged(m_st_bicycleParam);
//if()
if(m_trainType == 0)
MainWindowPageControl::getInstance()->setCurrentPage(BicycleParamSet_E);
else if(m_trainType == 1)
MainWindowPageControl::getInstance()->setCurrentPage(FesBicycleParamSet_E);
}
//转向:点击正向
void TrainingParamSetting::on_CW1_Button_toggled(bool checked)
{
if(checked)
{
ui->CW1_Button->setStyleSheet("background: #05A6EC;color: #FFFFFF;font-size: 34px;font-weight: 500;line-height: 51px;text-shadow: 0px 3px 6px rgba(12,49,153,0.59), 0px 1px 2px #076D99;border: 2px solid #05A6EC;");
}
else
{
ui->CW1_Button->setStyleSheet("background: linear-gradient(180deg, #EEFEFF 0%, #FCFEFF 100%);font-size: 30px;font-weight: 500;border: 2px solid #B3D7E7;");
}
}
//转向:点击逆向
void TrainingParamSetting::on_ACW1_Button_toggled(bool checked)
{
if(checked)
{
ui->ACW1_Button->setStyleSheet("background: #05A6EC;color: #FFFFFF;font-size: 34px;font-weight: 500;line-height: 51px;text-shadow: 0px 3px 6px rgba(12,49,153,0.59), 0px 1px 2px #076D99;border: 2px solid #05A6EC;");
}
else
{
ui->ACW1_Button->setStyleSheet("background: linear-gradient(180deg, #EEFEFF 0%, #FCFEFF 100%);font-size: 30px;font-weight: 500;border: 2px solid #B3D7E7;");
}
}
//痉挛等级:高
void TrainingParamSetting::on_spasmHigh1_Button_toggled(bool checked)
{
if(checked)
{
ui->spasmHigh1_Button->setStyleSheet("background: #05A6EC;color: #FFFFFF;font-size: 34px;font-weight: 500;line-height: 51px;text-shadow: 0px 3px 6px rgba(12,49,153,0.59), 0px 1px 2px #076D99;border: 2px solid #05A6EC;");
}
else
{
ui->spasmHigh1_Button->setStyleSheet("background: linear-gradient(180deg, #EEFEFF 0%, #FCFEFF 100%);font-size: 30px;font-weight: 500;border: 2px solid #B3D7E7;");
}
}
//痉挛等级:中
void TrainingParamSetting::on_spasmMidd1_Button_toggled(bool checked)
{
if(checked)
{
ui->spasmMidd1_Button->setStyleSheet("background: #05A6EC;color: #FFFFFF;font-size: 34px;font-weight: 500;line-height: 51px;text-shadow: 0px 3px 6px rgba(12,49,153,0.59), 0px 1px 2px #076D99;border: 2px solid #05A6EC;");
}
else
{
ui->spasmMidd1_Button->setStyleSheet("background: linear-gradient(180deg, #EEFEFF 0%, #FCFEFF 100%);font-size: 30px;font-weight: 500;border: 2px solid #B3D7E7;");
}
}
//痉挛等级:低
void TrainingParamSetting::on_spasmLow1_Button_toggled(bool checked)
{
if(checked)
{
ui->spasmLow1_Button->setStyleSheet("background: #05A6EC;color: #FFFFFF;font-size: 34px;font-weight: 500;line-height: 51px;text-shadow: 0px 3px 6px rgba(12,49,153,0.59), 0px 1px 2px #076D99;border: 2px solid #05A6EC;");
}
else
{
ui->spasmLow1_Button->setStyleSheet("background: linear-gradient(180deg, #EEFEFF 0%, #FCFEFF 100%);font-size: 30px;font-weight: 500;border: 2px solid #B3D7E7;");
}
}
//痉挛保护:开关
void TrainingParamSetting::on_spasmClose1_Button_toggled(bool checked)
{
if(checked)
//if(m_turnState)//当前选择状态,就变为不选择
{
ui->spasmClose1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainPage/protect_on.png);");
ui->spasmMidd1_Button->setCheckable(true);
ui->spasmMidd1_Button->setChecked(true);
ui->spasmMidd1_Button->setStyleSheet("background: #05A6EC;color: #FFFFFF;font-size: 34px;font-weight: 500;line-height: 51px;text-shadow: 0px 3px 6px rgba(12,49,153,0.59), 0px 1px 2px #076D99;border: 2px solid #05A6EC;");
ui->spasmLow1_Button->setCheckable(true);
ui->spasmLow1_Button->setStyleSheet("background: linear-gradient(180deg, #EEFEFF 0%, #FCFEFF 100%);font-size: 30px;font-weight: 500;border: 2px solid #B3D7E7;");
ui->spasmHigh1_Button->setCheckable(true);
ui->spasmHigh1_Button->setStyleSheet("background: linear-gradient(180deg, #EEFEFF 0%, #FCFEFF 100%);font-size: 30px;font-weight: 500;border: 2px solid #B3D7E7;");
}
else
{
ui->spasmClose1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainPage/protect_off.png);");
ui->spasmMidd1_Button->setCheckable(false);
ui->spasmMidd1_Button->setStyleSheet("background: #E0E0E0;width: 30px;height: 30px;font-size: 30px;font-family: SourceHanSansCN-Regular, SourceHanSansCN;font-weight: 400;color: #B2B2B2;line-height: 45px;-webkit-background-clip: text;-webkit-text-fill-color: transparent;");
ui->spasmLow1_Button->setCheckable(false);
ui->spasmLow1_Button->setStyleSheet("background: #E0E0E0;width: 30px;height: 30px;font-size: 30px;font-family: SourceHanSansCN-Regular, SourceHanSansCN;font-weight: 400;color: #B2B2B2;line-height: 45px;-webkit-background-clip: text;-webkit-text-fill-color: transparent;");
ui->spasmHigh1_Button->setCheckable(false);
ui->spasmHigh1_Button->setStyleSheet("background: #E0E0E0;width: 30px;height: 30px;font-size: 30px;font-family: SourceHanSansCN-Regular, SourceHanSansCN;font-weight: 400;color: #B2B2B2;line-height: 45px;-webkit-background-clip: text;-webkit-text-fill-color: transparent;");
}
}
/*
void TrainingParamSetting::on_spasmClose1_Button_clicked()
{
if(ui->spasmClose1_Button->isChecked())
//if(m_turnState)//当前选择状态,就变为不选择
{
ui->spasmClose1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainPage/protect_off.png);");
}
else
{
ui->spasmClose1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainPage/protect_on.png);");
}
// m_turnState = ! m_turnState;
}
*/
//点击上升高度
/*
void TrainingParamSetting::on_upSpeedPlus_Btn_clicked()
{
if(!IceModule::getInstance()->getEmergencyState())
CCommunicateAPI::getInstance()->sendRealTimeParam(TUIGAN_UPDOWN,1);
}
//点击下降高度
void TrainingParamSetting::on_upSpeedMinus_Btn_clicked()
{
if(!IceModule::getInstance()->getEmergencyState())
CCommunicateAPI::getInstance()->sendRealTimeParam(TUIGAN_UPDOWN,2);
}
*/
//单肢速度设置:需要修改
void TrainingParamSetting::on_speed1_ComboBox_currentTextChanged(const QString &arg1)
{
int speed = arg1.toInt();
if(speed > 30)
{
ParamTipsDialog tipDialog;
tipDialog.setParamTipsMsg(tr("设定速度已超30r/min确认使用该速度训练吗"));
tipDialog.exec();
if(0 == tipDialog.getResult())
{
ui->speed1_ComboBox->setCurrentIndex(28);
return;
}
}
}
//按住按钮升高
void TrainingParamSetting::on_upSpeedPlus_Btn_pressed()
{
if(!IceModule::getInstance()->getEmergencyState())
CCommunicateAPI::getInstance()->sendRealTimeParam(TUIGAN_UPDOWN,1);
qDebug() <<"发送时间:"<< QDateTime::currentDateTime();
}
//按住按钮降低
void TrainingParamSetting::on_upSpeedMinus_Btn_pressed()
{
if(!IceModule::getInstance()->getEmergencyState())
CCommunicateAPI::getInstance()->sendRealTimeParam(TUIGAN_UPDOWN,2);
qDebug() <<"发送时间:"<< QDateTime::currentDateTime();
}