#include "armorleg.h" #include "ui_armorleg.h" #include "advanceddialog.h" #include "mainwindowpagecontrol.h" #include #include "icemodule.h" #include "paramtipsdialog.h" #include "gamecontrol.h" #include #include "languagemanager.h" #include #include "currentuserdata.h" #include "cdatabaseinterface.h" #include "trainingparamsetting.h" #include "ccommunicateapi.h" #include "currentuserdata.h" ArmOrLeg::ArmOrLeg(QWidget *parent) : QWidget(parent), ui(new Ui::ArmOrLeg), m_advanceDialog(NULL), m_checkedGame(1), m_gameState(false), m_isImportParamWidget(0), isClickedSave(0), isMoreConfgClick(0), m_trainType(0) //1.构造函数:修改(单上肢、单下肢模式) { ui->setupUi(this); m_advanceDialog = new AdvancedDialog(); m_prescriptionDialog = new PrescriptionDialog(); m_machineStartDialog = new MachineStartDialog(); m_verticalToHorizontal = new VerticalToHorizonDialog(); m_horizontalToVertical = new HorizontalToVerticalDialog(); m_protectGameStart = new ProtectGameStart(); //不过不设置参数、不导入处方,设置一份默认训练参数 m_st_bicycleParam.trainTime = 20; m_st_bicycleParam.resistance = 5; m_st_bicycleParam.speed = 10; m_st_bicycleParam.direction = 1; //正向 m_st_bicycleParam.spasmSwitch = 1; m_st_bicycleParam.spasmLevel = 2; m_gameIDChecked = 0; //选择的游戏 m_userID = CurrentUserData::getInstace()->getCurrentPatientMsg().ID; initWidget(); ui->stackedWidget->setCurrentIndex(0); ui->advanced1_Btn->setVisible(false); //单上肢 #ifdef ONLYUPLIMP //ui->downLimp_Button->setVisible(false); //ui->upDownLimp_Button->setVisible(false); ui->downLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/limbModel_forbidCheck.png);"); ui->downLimp_Button->setCheckable(false); ui->upDownLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/upDown_forbidcheck.png);"); ui->upDownLimp_Button->setCheckable(false); qDebug()<<"单上肢启动"; #endif //单下肢 #ifdef ONLYDOWNLIMP //ui->upLimp_Button->setVisible(false); //ui->upDownLimp_Button->setVisible(false); //ui->downLimp_Button->setChecked(true); //ui->downLimp_Button->move(350,30); ui->verticalUpLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/veritcalLimb_forbidCheck.png);"); ui->verticalUpLimp_Button->setCheckable(false); ui->upDownLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/upDown_forbidcheck.png);"); ui->upDownLimp_Button->setCheckable(false); ui->upLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/horizontalUp_forbidcheck.png);"); ui->upLimp_Button->setCheckable(false); ui->downLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/limbModel_Checked.png);"); ui->upLimp_Button->move(40,360); ui->label_11->move(10,530); ui->downLimp_Button->move(40,70); ui->label_13->move(20,230); ui->downLimp_Button->setChecked(true); //on_upDownLimp_Button_toggled(true); qDebug()<<"单下肢启动"; #endif } ArmOrLeg::~ArmOrLeg() { if(m_advanceDialog) delete m_advanceDialog; if(m_prescriptionDialog) delete m_prescriptionDialog; if(m_machineStartDialog) delete m_machineStartDialog; if(m_verticalToHorizontal) delete m_verticalToHorizontal; if(m_horizontalToVertical) delete m_horizontalToVertical; if(m_protectGameStart) delete m_protectGameStart; delete ui; } //2.初始化页面:修改 void ArmOrLeg::initWidget() { // 改变训练为模式-名称 ui->label_15->setText("主被动模式"); ui->label_16->setText("被动模式"); ui->label_19->setText("主动模式"); ui->label_22->setText("助力模式"); ui->label_23->setText("等速模式"); //训练部位 ui->upLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/horizontalUp_checked.png);"); ui->verticalUpLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/veritcalLimb_unChecked.png);"); ui->downLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/limbModel_unChecked.png);"); ui->upDownLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/upDown_unchecked.png);"); //设置训练模式 ui->activePassive1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/activePassive_checked.png);"); ui->passive1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/passiveModel_unCHeck.png);"); ui->active1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/activeTrain_unchecked.png);"); ui->assistant1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/assistedTrain_unChecked.png);"); ui->speedTrain_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/speedModel_unchecked.png);"); //加载游戏 ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game1.png);"); //初始界面,4中训练部位、5中训练模式都能够被选中 m_gameIDChecked = 0; //选择的游戏 /* ui->resistance1_ComboBox->setView(new QListView); ui->speed1_ComboBox->setView(new QListView); ui->trainTime1_ComboBox->setView(new QListView); ui->upTrainTime2_ComboBox->setView(new QListView); // ui->downTrainTime2_ComboBox->setView(new QListView); ui->upResistance2_ComboBox->setView(new QListView); // ui->downResistance2_ComboBox->setView(new QListView); ui->upSpeed2_ComboBox->setView(new QListView); // ui->downSpeed2_ComboBox->setView(new QListView); ui->advanced1_Btn->setVisible(false); //填充数据 //速度 for(int i = 2;i <= 55; i++) { ui->speed1_ComboBox->addItem(QString::number(i)); ui->upSpeed2_ComboBox->addItem(QString::number(i)); } //预设定值上肢不超10,下肢不超15 ui->speed1_ComboBox->setCurrentIndex(8); ui->upSpeed2_ComboBox->setCurrentIndex(8); //阻力 1~20挡 for(int i = 1;i <= 20;i++) { ui->resistance1_ComboBox->addItem(QString::number(i)); ui->upResistance2_ComboBox->addItem(QString::number(i)); } ui->resistance1_ComboBox->setCurrentIndex(4); ui->upResistance2_ComboBox->setCurrentIndex(4); //时间 for(int i = 1;i <= 99;i++) { ui->trainTime1_ComboBox->addItem(QString::number(i)); ui->upTrainTime2_ComboBox->addItem(QString::number(i)); } ui->trainTime1_ComboBox->setCurrentIndex(19); ui->upTrainTime2_ComboBox->setCurrentIndex(19); //加载游戏 QList gameMsgList = GameControl::getInstance()->getGameMsgs(); for(int i = 0;i gameStackedWidget->move(800,330); ui->game1_RadioButton->setIconSize(QSize(40,40)); ui->game1_radioButton->setIconSize(QSize(40,40)); ui->game2_RadioButton->setIconSize(QSize(40,40)); ui->game2_radioButton->setIconSize(QSize(40,40)); ui->game3_RadioButton->setIconSize(QSize(40,40)); ui->game3_radioButton->setIconSize(QSize(40,40)); ui->game4_RadioButton->setIconSize(QSize(40,40)); //ui->game1_radioButton->setIconSize(QSize(40,40)); ui->game1_RadioButton->setIcon(QIcon(gameMsgList.at(0).gamePath+gameMsgList.at(0).iconPath)); ui->game1_radioButton->setIcon(QIcon(gameMsgList.at(0).gamePath+gameMsgList.at(0).iconPath)); ui->game2_RadioButton->setIcon(QIcon(gameMsgList.at(1).gamePath+gameMsgList.at(1).iconPath)); ui->game2_radioButton->setIcon(QIcon(gameMsgList.at(1).gamePath+gameMsgList.at(1).iconPath)); ui->game3_RadioButton->setIcon(QIcon(gameMsgList.at(2).gamePath+gameMsgList.at(2).iconPath)); ui->game3_radioButton->setIcon(QIcon(gameMsgList.at(2).gamePath+gameMsgList.at(2).iconPath)); ui->game4_RadioButton->setIcon(QIcon(gameMsgList.at(3).gamePath+gameMsgList.at(3).iconPath)); //最开始隐藏最上面的游戏4 ui->game4Widget->setVisible(false); ui->game1_RadioButton->setChecked(true); ui->game1_radioButton->setChecked(true); */ } //3.开始FES游戏:修改 void ArmOrLeg::startFESGamme() { //on_confirm_Btn_clicked(); m_isClickedGameStart ++; //m_isClickedGameStart=1为点击了一次,如果在点击m_isClickedGameStart则不启动游戏 qDebug() << "次数:"<playTipMusic("./DependFile/Music/sitdown_En.MP3"); } ST_BicycleParam st_bicycleParam; emit signalGetBicycleParam(); /* if(ui->upLimp_Button->isChecked()) st_bicycleParam.bodyPart = 0; else if(ui->downLimp_Button->isChecked()) st_bicycleParam.bodyPart = 1; else if(ui->upDownLimp_Button->isChecked()) { st_bicycleParam.bodyPart = 2; //训练模式 if(ui->activePassive1_Button->isChecked()) st_bicycleParam.trainMode = 7; //四肢主被动 else if(ui->passive1_Button->isChecked()) st_bicycleParam.trainMode = 4; //四肢纯被动 } */ //改变训练参数 st_bicycleParam.trainTime = m_st_bicycleParam.trainTime; st_bicycleParam.resistance = m_st_bicycleParam.resistance; st_bicycleParam.speed = m_st_bicycleParam.speed; st_bicycleParam.direction = m_st_bicycleParam.direction; st_bicycleParam.spasmLevel = m_st_bicycleParam.spasmLevel; st_bicycleParam.spasmSwitch = m_st_bicycleParam.spasmSwitch; //上肢、垂直上肢、下肢、上下肢 if(ui->upLimp_Button->isChecked()) st_bicycleParam.bodyPart = 0; else if(ui->verticalUpLimp_Button->isChecked()) st_bicycleParam.bodyPart = 3; else if(ui->downLimp_Button->isChecked()) st_bicycleParam.bodyPart = 1; else if(ui->upDownLimp_Button->isChecked()) st_bicycleParam.bodyPart = 2; //7是单支训练模式 if(!ui->upDownLimp_Button->isChecked()) { if(ui->passive1_Button->isChecked()) st_bicycleParam.trainMode = 0; else if(ui->active1_Button->isChecked()) st_bicycleParam.trainMode = 1; else if(ui->assistant1_Button->isChecked()) st_bicycleParam.trainMode = 2; else if(ui->speedTrain_Button->isChecked()) st_bicycleParam.trainMode = 3; else if(ui->activePassive1_Button->isChecked()) st_bicycleParam.trainMode = 10; } else { if(ui->passive1_Button->isChecked()) st_bicycleParam.trainMode = 4; else if(ui->activePassive1_Button->isChecked()) st_bicycleParam.trainMode = 7; } st_bicycleParam.direction = m_st_bicycleParam.direction; GameControl::getInstance()->setCurrentGame(m_gameIDChecked + 1); st_bicycleParam.controlState = 0; IceModule::getInstance()->setBicycleParam(st_bicycleParam); IceModule::getInstance()->setMaxFESAParam(); //设置8个最大电流 //test: qDebug() <<"游戏方向:"<< st_bicycleParam.direction; qDebug()<<"训练时间:"<winId(); //m_hwndId = (HWND)this->winId(); //SetWindowPos(m_hwndId) //SetWindowPos(m_hwndId, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); /* * QPixmap downPicture = this->grab(); QString dirPath = QApplication::applicationDirPath() + "/DependFile/Source/trainDisplayPage"; QDir resultDir(dirPath); if(!resultDir.exists()) qDebug()<<"保存图片失败"; downPicture.save(dirPath + "/downPicture.png"); emit saveUpPictureSignal(); */ //if(m_protectGameStart->setDownPicture(downPicture)) //m_protectGameStart->move(0,100); m_protectGameStart->show(); //ui->label_2->setPixmap(downPicture); // //从此处启动游戏 MainWindowPageControl::getInstance()->setCurrentPage(TrainingPage_E); Sleep(5000); m_protectGameStart->close(); /* if(m_gameState) return; m_gameState = true; QTimer::singleShot(3000,this,[this](){ m_gameState = false; }); GameControl::getInstance()->playTipMusic("./DependFile/Music/sitdown.MP3"); ST_BicycleParam st_bicycleParam; //训练部位 if(ui->upLimp_Button->isChecked()) st_bicycleParam.bodyPart = 0; else if(ui->downLimp_Button->isChecked()) st_bicycleParam.bodyPart = 1; else if(ui->upDownLimp_Button->isChecked()) { st_bicycleParam.bodyPart = 2; //训练模式 if(ui->activePassive1_RadioButton->isChecked()) st_bicycleParam.trainMode = 7; //四肢主被动 else if(ui->passive2_RadioButton->isChecked()) st_bicycleParam.trainMode = 4; //四肢纯被动 } if(m_gameState) return; m_gameState = true; QTimer::singleShot(3000,this,[this](){ m_gameState = false; }); GameControl::getInstance()->playTipMusic("./DependFile/Music/sitdown.MP3"); ST_BicycleParam st_bicycleParam; //训练部位 if(ui->upLimp_RadioButton->isChecked()) st_bicycleParam.bodyPart = 0; else if(ui->downLimp_RadioButton->isChecked()) st_bicycleParam.bodyPart = 1; else if(ui->upDownLimp_RadioButton->isChecked()) { st_bicycleParam.bodyPart = 2; //训练模式 if(ui->activePassive2_RadioButton->isChecked()) st_bicycleParam.trainMode = 7; //四肢主被动 else if(ui->passive2_RadioButton->isChecked()) st_bicycleParam.trainMode = 4; //四肢纯被动 //训练时间 st_bicycleParam.trainTime = ui->upTrainTime2_ComboBox->currentText().toUInt(); //训练阻力 st_bicycleParam.resistance = ui->upResistance2_ComboBox->currentText().toInt(); //训练速度 st_bicycleParam.speed = ui->upSpeed2_ComboBox->currentText().toInt(); //转向 if(ui->CW2_RadioButton->isChecked()) st_bicycleParam.direction = 1; else if(ui->ACW2_RadioButton->isChecked()) st_bicycleParam.direction = 0; //痉挛保护 if(ui->spasmACW2_RadioButton->isChecked()) st_bicycleParam.spasmType = 0; // else if(ui->spasmCW2_RadioButton->isChecked()) // st_bicycleParam.spasmType = 1; if(ui->spasmClose2_RadioButton->isChecked()) st_bicycleParam.spasmSwitch = 0; else st_bicycleParam.spasmSwitch = 1; //痉挛等级 if(ui->spasmLow2_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 1; else if(ui->spasmMidd2_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 2; else if(ui->spasmHigh2_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 3; if(ui->game1_radioButton->isChecked()) GameControl::getInstance()->setCurrentGame(1); else if(ui->game2_radioButton->isChecked()) GameControl::getInstance()->setCurrentGame(2); else if(ui->game3_radioButton->isChecked()) GameControl::getInstance()->setCurrentGame(3); } //单肢 if(!ui->upDownLimp_RadioButton->isChecked()) { //单肢训练模式 if(ui->passive1_RadioButton->isChecked()) st_bicycleParam.trainMode = 0; else if(ui->active1_RadioButton->isChecked()) st_bicycleParam.trainMode = 1; else if(ui->assistant1_RadioButton->isChecked()) st_bicycleParam.trainMode = 2; else if(ui->constant1_RadioButton->isChecked()) st_bicycleParam.trainMode = 3; else if(ui->activePassive1_RadioButton->isChecked()) st_bicycleParam.trainMode = 10; //训练时间 st_bicycleParam.trainTime = ui->trainTime1_ComboBox->currentText().toUInt(); //训练阻力 st_bicycleParam.resistance = ui->resistance1_ComboBox->currentText().toInt(); //训练速度 st_bicycleParam.speed = ui->speed1_ComboBox->currentText().toInt(); //转向 if(ui->CW1_RadioButton->isChecked()) st_bicycleParam.direction = 1; else if(ui->ACW1_RadioButton->isChecked()) st_bicycleParam.direction = 0; //痉挛保护 if(ui->spasmACW1_RadioButton->isChecked()) st_bicycleParam.spasmType = 0; // else if(ui->spasmCW1_RadioButton->isChecked()) // st_bicycleParam.spasmType = 1; if(ui->spasmClose1_RadioButton->isChecked()) st_bicycleParam.spasmSwitch = 0; else st_bicycleParam.spasmSwitch = 1; //痉挛等级 if(ui->spasmLow1_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 3; else if(ui->spasmMidd1_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 2; else if(ui->spasmHigh1_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 1; //游戏选择 if(ui->game1_RadioButton->isChecked()) GameControl::getInstance()->setCurrentGame(1); else if(ui->game2_RadioButton->isChecked()) GameControl::getInstance()->setCurrentGame(2); else if(ui->game3_RadioButton->isChecked()) GameControl::getInstance()->setCurrentGame(3); else if(ui->game4_RadioButton->isChecked()) GameControl::getInstance()->setCurrentGame(4); } st_bicycleParam.controlState = 0; IceModule::getInstance()->setBicycleParam(st_bicycleParam); //从此处启动游戏 MainWindowPageControl::getInstance()->setCurrentPage(TrainingPage_E); */ } //4.设置训练类型:需要修改 void ArmOrLeg::setTrainType(int8_t type) { //m_trainType = type; if(0 == type) //单踏车 { qDebug() <<"isMoreConfgClick:"<upDownLimp_Button->setVisible(true); //ui->label_14->setVisible(true); ui->upDownLimp_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/upDown_unchecked.png);"); ui->upDownLimp_Button->setCheckable(true); ui->verticalUpLimp_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/veritcalLimb_unChecked.png);"); ui->verticalUpLimp_Button->setCheckable(true); //ui->verticalUpLimp_Button->setVisible(true); //ui->label_12->setVisible(true); ui->verticalUpLimp_Button->move(280,70); ui->label_12->move(260,230); ui->downLimp_Button->move(40,360); ui->label_13->move(20,530); #ifdef ONLYUPLIMP ui->upDownLimp_Button->setVisible(false); ui->label_14->setVisible(false); ui->downLimp_Button->setVisible(false); ui->label_13->setVisible(false); #endif #ifdef ONLYDOWNLIMP ui->upLimp_Button->setVisible(false); ui->label_11->setVisible(false); ui->upDownLimp_Button->setVisible(false); ui->label_14->setVisible(false); ui->verticalUpLimp_Button->setVisible(false); ui->label_12->setVisible(false); ui->downLimp_Button->move(40,70); ui->label_13->move(10,230); #endif //2.确认开始 ui->confirm_Btn->setVisible(true); ui->next_Btn->setVisible(false); //3.隐藏训练部位 ui->passive1_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/passiveModel_unCHeck.png);"); ui->passive1_Button->setCheckable(true); //ui->label_16->setVisible(false); ui->active1_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/activeTrain_unchecked.png);"); ui->active1_Button->setCheckable(true); //ui->label_19->setVisible(false); ui->assistant1_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/assistedTrain_unChecked.png);"); ui->assistant1_Button->setCheckable(true); //ui->label_22->setVisible(false); ui->speedTrain_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/speedModel_unchecked.png);"); ui->speedTrain_Button->setCheckable(true); /* ui->activePassive1_RadioButton->move(1235,30); ui->passive2_RadioButton->setVisible(true); */ } else if(1 == type) //FES踏车 { //1.上下肢和垂直下肢不可选,移动下肢和垂直下肢 //ui->upDownLimp_Button->setVisible(false); //ui->label_14->setVisible(false); ui->upDownLimp_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/upDown_forbidcheck.png);"); ui->upDownLimp_Button->setCheckable(false); //ui->verticalUpLimp_Button->setVisible(false); //ui->label_12->setVisible(false); ui->verticalUpLimp_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/veritcalLimb_forbidCheck.png);"); ui->verticalUpLimp_Button->setCheckable(false); ui->downLimp_Button->move(280,70); ui->label_13->move(260,230); ui->verticalUpLimp_Button->move(40,360); ui->label_12->move(20,530); //2.确认开始 ui->confirm_Btn->setVisible(false); ui->next_Btn->setVisible(true); //3.训练部位不可选 ui->passive1_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/passiveModel_forbidCHeck.png);"); ui->passive1_Button->setCheckable(false); //ui->label_16->setVisible(false); ui->active1_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/activeTrain_forbidchecked.png);"); ui->active1_Button->setCheckable(false); //ui->label_19->setVisible(false); ui->assistant1_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/assistedTrain_forbidCheck.png);"); ui->assistant1_Button->setCheckable(false); //ui->label_22->setVisible(false); ui->speedTrain_Button->setStyleSheet("border-image: url(:/DependFile/Source/trainDisplayPage/speedModel_forbidcheck.png);"); ui->speedTrain_Button->setCheckable(false); //ui->label_23->setVisible(false); /* ui->activePassive1_RadioButton->move(350,30); ui->passive2_RadioButton->setVisible(false); ui->activePassive1_RadioButton->setChecked(true); ui->activePassive2_RadioButton->setChecked(true); */ } } //5.保存训练参数到数据库:修改 void ArmOrLeg::saveTrainParam() { QString table("TrainParamTable"); ST_TrainParam st_trainParam; //获取训练前,界面的所有训练参数,插入到训练参数表,方便"导入处方" st_trainParam.ID = CurrentUserData::getInstace()->getCurrentPatientMsg().ID; //训练部位 if(ui->upLimp_Button->isChecked()) st_trainParam.trainLimp = 0; else if(ui->verticalUpLimp_Button->isChecked()) st_trainParam.trainLimp = 3; else if(ui->downLimp_Button->isChecked()) st_trainParam.trainLimp = 1; else if(ui->upDownLimp_Button->isChecked()) st_trainParam.trainLimp = 2; //训练模式 if(!ui->upDownLimp_Button->isChecked()) { if(ui->passive1_Button->isChecked()) st_trainParam.trainMode = 0; else if(ui->active1_Button->isChecked()) st_trainParam.trainMode = 1; else if(ui->assistant1_Button->isChecked()) st_trainParam.trainMode = 2; else if(ui->speedTrain_Button->isChecked()) st_trainParam.trainMode = 3; else if(ui->activePassive1_Button->isChecked()) st_trainParam.trainMode = 10; } else { if(ui->passive1_Button->isChecked()) st_trainParam.trainMode = 4; else if(ui->activePassive1_Button->isChecked()) st_trainParam.trainMode = 7; } //时间、阻力、速度、转向(1正向,0逆向)、等级、是否保护(1-保护,0不保护) st_trainParam.trainTime = m_st_bicycleParam.trainTime; st_trainParam.trainResistance = m_st_bicycleParam.resistance; st_trainParam.trainSpeed = m_st_bicycleParam.speed; st_trainParam.trainDirection = m_st_bicycleParam.direction; qDebug() <<"st_trainParam.trainDirection:"<setTrainParam(st_trainParam); /* if(!ui->upDownLimp_RadioButton->isChecked()) { //在五个模式的stackWidget if(ui->upLimp_RadioButton->isChecked()) st_trainParam.trainLimp = 1; else if(ui->verticalUpLimp_RadioButton->isChecked()) st_trainParam.trainLimp = 2; else if(ui->downLimp_RadioButton->isChecked()) st_trainParam.trainLimp = 3; if(ui->passive1_RadioButton->isChecked()) st_trainParam.trainMode = 1; else if(ui->active1_RadioButton->isChecked()) st_trainParam.trainMode = 2; else if(ui->assistant1_RadioButton->isChecked()) st_trainParam.trainMode = 3; else if(ui->constant1_RadioButton->isChecked()) st_trainParam.trainMode = 4; else if(ui->activePassive1_RadioButton->isChecked()) st_trainParam.trainMode = 5; st_trainParam.trainTime = ui->trainTime1_ComboBox->currentText().toInt(); st_trainParam.trainResistance = ui->resistance1_ComboBox->currentText().toInt(); st_trainParam.trainSpeed = ui->speed1_ComboBox->currentText().toInt(); if(ui->CW1_RadioButton->isChecked()) //正向为0,反向为1 st_trainParam.trainDirection = 0; else if(ui->ACW1_RadioButton->isChecked()) st_trainParam.trainDirection = 1; if(ui->spasmClose1_RadioButton->isChecked()) //关闭为0,反转为1 st_trainParam.spasmProtect = 0; else if(ui->spasmACW1_RadioButton->isChecked()) st_trainParam.spasmProtect = 1; if(ui->spasmLow1_RadioButton->isChecked()) //低、中、高为1、2、3 st_trainParam.spasmLevel = 0; else if(ui->spasmMidd1_RadioButton->isChecked()) st_trainParam.spasmLevel = 1; else if(ui->spasmHigh1_RadioButton->isChecked()) st_trainParam.spasmLevel = 2; if(ui->game1_RadioButton->isChecked()) st_trainParam.gameID = 1; else if(ui->game2_RadioButton->isChecked()) st_trainParam.gameID = 2; else if(ui->game3_RadioButton->isChecked()) st_trainParam.gameID = 3; } else if(ui->upDownLimp_RadioButton->isChecked()) { st_trainParam.trainLimp = 4; //切换到只有两种模式的stackWidget了 if(ui->activePassive2_RadioButton->isChecked())//主被动 st_trainParam.trainMode = 1; else if(ui->passive2_RadioButton->isChecked()) st_trainParam.trainMode = 2; st_trainParam.trainTime = ui->upTrainTime2_ComboBox->currentText().toInt(); st_trainParam.trainResistance = ui->upResistance2_ComboBox->currentText().toInt(); st_trainParam.trainSpeed = ui->upSpeed2_ComboBox->currentText().toInt(); if(ui->CW2_RadioButton->isChecked()) //正向为0,反向为1 st_trainParam.trainDirection = 0; else if(ui->ACW2_RadioButton->isChecked()) st_trainParam.trainDirection = 1; if(ui->spasmClose2_RadioButton->isChecked()) //关闭为0,反转为1 st_trainParam.spasmProtect = 0; else if(ui->spasmACW2_RadioButton->isChecked()) st_trainParam.spasmProtect = 1; if(ui->spasmLow2_RadioButton->isChecked()) //低、中、高为1、2、3 st_trainParam.spasmLevel = 1; else if(ui->spasmMidd2_RadioButton->isChecked()) st_trainParam.spasmLevel = 2; else if(ui->spasmHigh2_RadioButton->isChecked()) st_trainParam.spasmLevel = 3; if(ui->game1_radioButton->isChecked()) st_trainParam.gameID = 1; else if(ui->game2_radioButton->isChecked()) st_trainParam.gameID = 2; else if(ui->game3_radioButton->isChecked()) st_trainParam.gameID = 3; } //训练处方都交给游戏单例 GameControl::getInstance()->setTrainParam(st_trainParam); */ } //6.event修改 void ArmOrLeg::showEvent(QShowEvent *event) { Q_UNUSED(event) //qDebug()<<"showEvent"; m_isClickedGameStart = 0; //每次初始页面为点击开始游戏 qDebug() <<"m_isImportParamWidget "<getCurrentPatientMsg().ID; //保存用户,一旦更改用户重新初始化 } else { m_isImportParamWidget = 0; //重新更新初始化 } //如果不是参数页面进来,重新初始化训练选择页面 if(!isMoreConfgClick) { ui->upLimp_Button->setChecked(true); ui->activePassive1_Button->setChecked(true); ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game1.png);"); m_gameIDChecked = 0; } else { isMoreConfgClick = 0; } //更改用户重新初始化 if(m_userID != CurrentUserData::getInstace()->getCurrentPatientMsg().ID) { m_userID = CurrentUserData::getInstace()->getCurrentPatientMsg().ID; ui->upLimp_Button->setChecked(true); //单上肢 #ifdef ONLYUPLIMP ui->upLimp_Button->setChecked(true); #endif //单下肢 #ifdef ONLYDOWNLIMP ui->downLimp_Button->setChecked(true); #endif ui->activePassive1_Button->setChecked(true); ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game1.png);"); m_gameIDChecked = 0; } qDebug() <<"训练类型:"<spasmACW1_RadioButton->setChecked(true); ui->spasmACW2_RadioButton->setChecked(true); //预设定值上肢不超10,下肢不超15 ui->speed1_ComboBox->setCurrentIndex(8); ui->upSpeed2_ComboBox->setCurrentIndex(8); ui->resistance1_ComboBox->setCurrentIndex(4); ui->upResistance2_ComboBox->setCurrentIndex(4); ui->trainTime1_ComboBox->setCurrentIndex(19); ui->upTrainTime2_ComboBox->setCurrentIndex(19);*/ qDebug()<upLimp_Button->isChecked() <verticalUpLimp_Button->isChecked() << ui->downLimp_Button->isChecked() << ui->upDownLimp_Button->isChecked(); qDebug()<activePassive1_Button->isChecked() <passive1_Button->isChecked() << ui->active1_Button->isChecked() << ui->assistant1_Button->isChecked() << ui->speedTrain_Button->isChecked(); } //上下肢切换StackedWidget-不需要 /* void ArmOrLeg::on_upDownLimp_RadioButton_toggled(bool checked) { if(checked) ui->stackedWidget->setCurrentIndex(1); else ui->stackedWidget->setCurrentIndex(0); //测试 //if(checked) // ui->gameStackedWidget->setCurrentIndex(2); } */ //单上肢、下肢高级设置 void ArmOrLeg::on_advanced1_Btn_clicked() { m_advanceDialog->show(); m_advanceDialog->exec(); ST_AdvancedParam st_advancedParam = m_advanceDialog->getValue(); Q_UNUSED(st_advancedParam) } //四肢中的上肢 void ArmOrLeg::on_upAdvanced2_Btn_clicked() { m_advanceDialog->show(); m_advanceDialog->exec(); ST_AdvancedParam st_advancedParam = m_advanceDialog->getValue(); Q_UNUSED(st_advancedParam) } //四肢中的下肢 void ArmOrLeg::on_downAdvanced2_Btn_clicked() { m_advanceDialog->show(); m_advanceDialog->exec(); ST_AdvancedParam st_advancedParam = m_advanceDialog->getValue(); Q_UNUSED(st_advancedParam) } //下一步--进入FES界面 void ArmOrLeg::on_next_Btn_clicked() { MainWindowPageControl::getInstance()->setCurrentPage(BicycleToFes_E); } //确认参数--进入游戏,修改 void ArmOrLeg::on_confirm_Btn_clicked() { m_isClickedGameStart ++; //m_isClickedGameStart=1为点击了一次,如果在点击m_isClickedGameStart则不启动游戏 //qDebug()<<"m_isClickedGameStart="<1) return; //避免出现Windows阻塞游戏,系统反应迟钝,出现多个提示框 if(ui->upLimp_Button->isChecked() || ui->upDownLimp_Button->isChecked()) { m_verticalToHorizontal->exec(); if(m_verticalToHorizontal->getConfirmState()) ; //点击确认 else { m_isClickedGameStart = 0; return; //点击取消 } } else if(ui->verticalUpLimp_Button->isChecked()) { m_horizontalToVertical->exec(); if(m_horizontalToVertical->getConfirmState()) ; //点击确认 else { m_isClickedGameStart = 0; return; //点击取消 } } isClickedSave = 0; //开始游戏重新初始化点击了保存 saveTrainParam(); if(m_gameState) return; m_gameState = true; QTimer::singleShot(3000,this,[this](){ m_gameState = false; }); IceModule::getInstance()->setGameType(1); E_LANGUAGE language = LanguageManager::getInstance()->getCurrentLanguage(); if (language == Chinese_E) { GameControl::getInstance()->playTipMusic("./DependFile/Music/sitdown.MP3"); } else if (language == English_E) //初始化英文暂停和结束 { GameControl::getInstance()->playTipMusic("./DependFile/Music/sitdown_En.MP3"); } ST_BicycleParam st_bicycleParam; emit signalGetBicycleParam(); /* if(ui->upLimp_Button->isChecked()) st_bicycleParam.bodyPart = 0; else if(ui->downLimp_Button->isChecked()) st_bicycleParam.bodyPart = 1; else if(ui->upDownLimp_Button->isChecked()) { st_bicycleParam.bodyPart = 2; //训练模式 if(ui->activePassive1_Button->isChecked()) st_bicycleParam.trainMode = 7; //四肢主被动 else if(ui->passive1_Button->isChecked()) st_bicycleParam.trainMode = 4; //四肢纯被动 } */ //改变训练参数 st_bicycleParam.trainTime = m_st_bicycleParam.trainTime; st_bicycleParam.resistance = m_st_bicycleParam.resistance; st_bicycleParam.speed = m_st_bicycleParam.speed; st_bicycleParam.direction = m_st_bicycleParam.direction; st_bicycleParam.spasmLevel = m_st_bicycleParam.spasmLevel; st_bicycleParam.spasmSwitch = m_st_bicycleParam.spasmSwitch; //上肢、垂直上肢、下肢、上下肢 if(ui->upLimp_Button->isChecked()) st_bicycleParam.bodyPart = 0; else if(ui->verticalUpLimp_Button->isChecked()) st_bicycleParam.bodyPart = 3; else if(ui->downLimp_Button->isChecked()) st_bicycleParam.bodyPart = 1; else if(ui->upDownLimp_Button->isChecked()) st_bicycleParam.bodyPart = 2; //7是单支训练模式 if(!ui->upDownLimp_Button->isChecked()) { if(ui->passive1_Button->isChecked()) st_bicycleParam.trainMode = 0; else if(ui->active1_Button->isChecked()) st_bicycleParam.trainMode = 1; else if(ui->assistant1_Button->isChecked()) st_bicycleParam.trainMode = 2; else if(ui->speedTrain_Button->isChecked()) st_bicycleParam.trainMode = 3; else if(ui->activePassive1_Button->isChecked()) st_bicycleParam.trainMode = 10; } else { if(ui->passive1_Button->isChecked()) st_bicycleParam.trainMode = 4; else if(ui->activePassive1_Button->isChecked()) st_bicycleParam.trainMode = 7; } st_bicycleParam.direction = m_st_bicycleParam.direction; GameControl::getInstance()->setCurrentGame(m_gameIDChecked + 1); st_bicycleParam.controlState = 0; IceModule::getInstance()->setBicycleParam(st_bicycleParam); //test: qDebug() <<"游戏方向:"<< st_bicycleParam.direction; qDebug()<<"训练时间:"<winId(); //m_hwndId = (HWND)this->winId(); //SetWindowPos(m_hwndId) //SetWindowPos(m_hwndId, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); /* * QPixmap downPicture = this->grab(); QString dirPath = QApplication::applicationDirPath() + "/DependFile/Source/trainDisplayPage"; QDir resultDir(dirPath); if(!resultDir.exists()) qDebug()<<"保存图片失败"; downPicture.save(dirPath + "/downPicture.png"); emit saveUpPictureSignal(); */ //if(m_protectGameStart->setDownPicture(downPicture)) //m_protectGameStart->move(0,100); m_protectGameStart->show(); //ui->label_2->setPixmap(downPicture); // //从此处启动游戏 MainWindowPageControl::getInstance()->setCurrentPage(TrainingPage_E); Sleep(5000); m_protectGameStart->close(); //训练部位 /* if(ui->upLimp_RadioButton->isChecked()) st_bicycleParam.bodyPart = 0; else if(ui->downLimp_RadioButton->isChecked()) st_bicycleParam.bodyPart = 1; else if(ui->upDownLimp_RadioButton->isChecked()) { st_bicycleParam.bodyPart = 2; //训练模式 if(ui->activePassive2_RadioButton->isChecked()) st_bicycleParam.trainMode = 7; //四肢主被动 else if(ui->passive2_RadioButton->isChecked()) st_bicycleParam.trainMode = 4; //四肢纯被动 //训练时间 st_bicycleParam.trainTime = ui->upTrainTime2_ComboBox->currentText().toUInt(); //训练阻力 st_bicycleParam.resistance = ui->upResistance2_ComboBox->currentText().toInt(); //训练速度 st_bicycleParam.speed = ui->upSpeed2_ComboBox->currentText().toInt(); //转向 if(ui->CW2_RadioButton->isChecked()) st_bicycleParam.direction = 1; else if(ui->ACW2_RadioButton->isChecked()) st_bicycleParam.direction = 0; //痉挛保护 if(ui->spasmACW2_RadioButton->isChecked()) st_bicycleParam.spasmType = 0; // else if(ui->spasmCW2_RadioButton->isChecked()) // st_bicycleParam.spasmType = 1; if(ui->spasmClose2_RadioButton->isChecked()) st_bicycleParam.spasmSwitch = 0; else st_bicycleParam.spasmSwitch = 1; //痉挛等级 if(ui->spasmLow2_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 1; else if(ui->spasmMidd2_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 2; else if(ui->spasmHigh2_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 3; if(ui->game1_radioButton->isChecked()) GameControl::getInstance()->setCurrentGame(1); else if(ui->game2_radioButton->isChecked()) GameControl::getInstance()->setCurrentGame(2); else if(ui->game3_radioButton->isChecked()) GameControl::getInstance()->setCurrentGame(3); } //单肢 if(!ui->upDownLimp_RadioButton->isChecked()) { //单肢训练模式 if(ui->passive1_RadioButton->isChecked()) st_bicycleParam.trainMode = 0; else if(ui->active1_RadioButton->isChecked()) st_bicycleParam.trainMode = 1; else if(ui->assistant1_RadioButton->isChecked()) st_bicycleParam.trainMode = 2; else if(ui->constant1_RadioButton->isChecked()) st_bicycleParam.trainMode = 3; else if(ui->activePassive1_RadioButton->isChecked()) st_bicycleParam.trainMode = 10; //训练时间 st_bicycleParam.trainTime = ui->trainTime1_ComboBox->currentText().toUInt(); //训练阻力 st_bicycleParam.resistance = ui->resistance1_ComboBox->currentText().toInt(); //训练速度 st_bicycleParam.speed = ui->speed1_ComboBox->currentText().toInt(); //转向 if(ui->CW1_RadioButton->isChecked()) st_bicycleParam.direction = 1; else if(ui->ACW1_RadioButton->isChecked()) st_bicycleParam.direction = 0; //痉挛保护 if(ui->spasmACW1_RadioButton->isChecked()) st_bicycleParam.spasmType = 0; // else if(ui->spasmCW1_RadioButton->isChecked()) // st_bicycleParam.spasmType = 1; if(ui->spasmClose1_RadioButton->isChecked()) st_bicycleParam.spasmSwitch = 0; else st_bicycleParam.spasmSwitch = 1; //痉挛等级 if(ui->spasmLow1_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 3; else if(ui->spasmMidd1_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 2; else if(ui->spasmHigh1_RadioButton->isChecked()) st_bicycleParam.spasmLevel = 1; //游戏选择 if(ui->game4_RadioButton->isChecked()) GameControl::getInstance()->setCurrentGame(4); else if(ui->game2_RadioButton->isChecked()) GameControl::getInstance()->setCurrentGame(2); else if(ui->game3_RadioButton->isChecked()) GameControl::getInstance()->setCurrentGame(3); else if(ui->game1_RadioButton->isChecked()) GameControl::getInstance()->setCurrentGame(1); } st_bicycleParam.controlState = 0; IceModule::getInstance()->setBicycleParam(st_bicycleParam); //从此处启动游戏 MainWindowPageControl::getInstance()->setCurrentPage(TrainingPage_E); */ } //7.设置可见:不修改 /* void ArmOrLeg::on_spasmClose2_RadioButton_toggled(bool checked) { ui->groupBox_17->setEnabled(!checked); } void ArmOrLeg::on_spasmClose1_RadioButton_toggled(bool checked) { ui->groupBox_8->setEnabled(!checked); } */ //单肢速度设置:需要修改 /* void ArmOrLeg::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 ArmOrLeg::on_upSpeed2_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->upSpeed2_ComboBox->setCurrentIndex(28); return; } } } //8.修改英文:修改 void ArmOrLeg::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);"); } 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);"); } break; } ui->retranslateUi(this); } break; default: QWidget::changeEvent(event); break; } } //由FES界面启动 void ArmOrLeg::slotStartGame() { //FES模式下只有单上单下肢 IceModule::getInstance()->setGameType(2); startFESGamme(); } //9.导入处方:修改 void ArmOrLeg::on_importPrescription_Btn_clicked() { ST_TrainParam st_trainParam; //查询用户表,如果是游客状态,弹出对话框不读取处方并返回 //int userID = CurrentUserData::getInstace()->getCurrentPatientMsg().ID; // QString queryStr1(QString("select * from PatientTable where ID = '%1' order by 'ID'").arg(userID)); int ID = CurrentUserData::getInstace()->getCurrentPatientMsg().ID; QString queryStr(QString("select * from TrainParamTable where ID = '%1' order by 'ID'").arg(ID)); //训练参数表只有一条记录 if(CDatabaseInterface::getInstance()->exec(queryStr)) { if(CDatabaseInterface::getInstance()->getValuesSize()>0) { st_trainParam = variantMapToTrainParam(CDatabaseInterface::getInstance()->getValues(0,1).at(0)); } //查询表没有处方 else { m_prescriptionDialog->exec(); return ; } } qDebug() <<"速度、阻力:"<< st_trainParam.trainSpeed <upLimp_Button->setChecked(true); else if(st_trainParam.trainLimp == 3) ui->verticalUpLimp_Button->setChecked(true); else if(st_trainParam.trainLimp == 1) ui->downLimp_Button->setChecked(true); else if(st_trainParam.trainLimp == 2) ui->upDownLimp_Button->setChecked(true); //训练模式 /* if(st_trainParam.trainMode == 1) ui->passive1_Button->setChecked(true); else if(st_trainParam.trainMode == 2 ) ui->active1_Button->setChecked(true); else if(st_trainParam.trainMode == 3) ui->assistant1_Button->setChecked(true); else if(st_trainParam.trainMode == 4) ui->speedTrain_Button->setChecked(true); else if(st_trainParam.trainMode == 5) ui->activePassive1_Button->setChecked(true); */ if(st_trainParam.trainMode == 0 || st_trainParam.trainMode == 4) ui->passive1_Button->setChecked(true); else if( st_trainParam.trainMode == 1 )//正常主动=1,上下肢被动=4 ui->active1_Button->setChecked(true); else if(st_trainParam.trainMode == 2) ui->assistant1_Button->setChecked(true); else if(st_trainParam.trainMode == 3) ui->speedTrain_Button->setChecked(true); else if(st_trainParam.trainMode == 10 || st_trainParam.trainMode == 7)//7为上下肢主被动、10为所有模式主被动 ui->activePassive1_Button->setChecked(true); //设置游戏: if(st_trainParam.gameID == 1) { ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game1.png);"); m_gameIDChecked = 0; } else if(st_trainParam.gameID == 2) { ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game2.png);"); m_gameIDChecked = 1; } else if(st_trainParam.gameID == 3) { ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game3.png);"); m_gameIDChecked = 2; }else if(st_trainParam.gameID == 4) { ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game4.png);"); m_gameIDChecked = 3; } //发送训练参数 ST_BicycleParam st_bicycleParam; st_bicycleParam.trainTime = st_trainParam.trainTime; st_bicycleParam.resistance = st_trainParam.trainResistance; st_bicycleParam.speed = st_trainParam.trainSpeed; st_bicycleParam.direction = st_trainParam.trainDirection; st_bicycleParam.spasmLevel = st_trainParam.spasmLevel; st_bicycleParam.spasmSwitch = st_trainParam.spasmProtect; //修改未点击设置就没加载处方的逻辑 m_st_bicycleParam.trainTime = st_trainParam.trainTime; ; m_st_bicycleParam.resistance = st_trainParam.trainResistance; m_st_bicycleParam.speed = st_trainParam.trainSpeed;; m_st_bicycleParam.direction = st_trainParam.trainDirection; m_st_bicycleParam.spasmLevel = st_trainParam.spasmLevel; m_st_bicycleParam.spasmSwitch = st_trainParam.spasmProtect; emit signalBicycleParamChanged(st_bicycleParam); /* if(st_trainParam.trainLimp == 4) { //2种模式的处方 ui->upDownLimp_RadioButton->setChecked(true); if(st_trainParam.trainMode == 1) ui->activePassive2_RadioButton->setChecked(true); else if(st_trainParam.trainMode == 2 ) ui->passive2_RadioButton->setChecked(true); ui->upTrainTime2_ComboBox->setCurrentText(QString::number(st_trainParam.trainTime)); ui->upResistance2_ComboBox->setCurrentText(QString::number(st_trainParam.trainResistance)); ui->upSpeed2_ComboBox->setCurrentText(QString::number(st_trainParam.trainSpeed)); if( st_trainParam.trainDirection == 0 ) //正向为0,反向为1 ui->CW2_RadioButton->setChecked(true); else if(st_trainParam.trainDirection == 1 ) ui->ACW2_RadioButton->setChecked(true); if(st_trainParam.spasmProtect == 0 ) //关闭为0,反转为1 ui->spasmClose2_RadioButton->setChecked(true); else if(st_trainParam.spasmProtect == 1) ui->spasmACW2_RadioButton->setChecked(true); if(st_trainParam.spasmLevel == 1) //低、中、高为1、2、3 ui->spasmLow2_RadioButton->setChecked(true); else if(st_trainParam.spasmLevel == 2) ui->spasmMidd2_RadioButton->setChecked(true); else if(st_trainParam.spasmLevel == 3) ui->spasmHigh2_RadioButton->setChecked(true); if(st_trainParam.gameID == 1) ui->game1_radioButton->setChecked(true); else if(st_trainParam.gameID == 2) ui->game2_radioButton->setChecked(true); else if(st_trainParam.gameID == 3) ui->game3_radioButton->setChecked(true); } else { //在只有5中训练模式处方 if(st_trainParam.trainLimp == 1) ui->upLimp_RadioButton->setChecked(true); else if(st_trainParam.trainLimp == 2) ui->verticalUpLimp_RadioButton->setChecked(true); else if(st_trainParam.trainLimp == 3) ui->downLimp_RadioButton->setChecked(true); if(st_trainParam.trainMode == 1) ui->activePassive1_RadioButton->setChecked(true); else if(st_trainParam.trainMode == 2) ui->passive1_RadioButton->setChecked(true); else if(st_trainParam.trainMode == 3) ui->assistant1_RadioButton->setChecked(true); else if(st_trainParam.trainMode == 4) ui->constant1_RadioButton->setChecked(true); else if(st_trainParam.trainMode == 5) ui->activePassive1_RadioButton->setChecked(true); ui->trainTime1_ComboBox->setCurrentText(QString::number(st_trainParam.trainTime)); ui->resistance1_ComboBox->setCurrentText(QString::number(st_trainParam.trainResistance)); ui->speed1_ComboBox->setCurrentText(QString::number(st_trainParam.trainSpeed)); if(st_trainParam.trainDirection == 0) ui->CW1_RadioButton->setChecked(true); else if(st_trainParam.trainDirection == 1) ui->ACW1_RadioButton->setChecked(true); if(st_trainParam.spasmProtect == 0) ui->spasmClose1_RadioButton->setChecked(true); else if(st_trainParam.spasmProtect == 1) ui->spasmACW1_RadioButton->setChecked(true); if(st_trainParam.spasmLevel == 1) ui->spasmLow1_RadioButton->setChecked(true); else if(st_trainParam.spasmLevel == 2) ui->spasmMidd1_RadioButton->setChecked(true); else if(st_trainParam.spasmLevel == 3) ui->spasmHigh1_RadioButton->setChecked(true); if(st_trainParam.gameID == 1) ui->game1_radioButton->setChecked(true); else if(st_trainParam.gameID == 2) ui->game2_RadioButton->setChecked(true); else if(st_trainParam.gameID == 3) ui->game3_RadioButton->setChecked(true); else if(st_trainParam.gameID == 4) ui->game4_RadioButton->setChecked(true); } */ } /*垂直上肢点击:显示和影藏游戏,不需要 void ArmOrLeg::on_verticalUpLimp_RadioButton_toggled(bool checked) { //记录第一个StackWidget三个互斥的游戏中,选了哪一个,玩游戏4前都要unChecked if(checked) { ui->game4Widget->setVisible(true); ui->game4Widget->setStyleSheet("#game4Widget{background:white;border:none;}"); ui->game4_RadioButton->setChecked(true); //方便游戏单独启动,把其余的按钮都不勾选 } else { ui->game4Widget->setVisible(false); ui->game4_RadioButton->setChecked(false); } } */ /*上下肢按钮点击时:不需要 void ArmOrLeg::on_downLimp_RadioButton_toggled(bool checked) { if(checked) { //ui->gameStackedWidget->setCurrentIndex(0); } } */ void ArmOrLeg::on_moreConfigure_Btn_clicked() { isMoreConfgClick = true; MainWindowPageControl::getInstance()->setCurrentPage(TrainingParamSetting_E); //跳转到参数设置页面 } //水平上肢改变状态,buttongroup void ArmOrLeg::on_upLimp_Button_toggled(bool checked) { if(checked) { ui->upLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/horizontalUp_checked.png);"); } else //取消勾选 { ui->upLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/horizontalUp_unchecked.png);"); } } //垂直上肢改变状态 void ArmOrLeg::on_verticalUpLimp_Button_toggled(bool checked) { if(checked) { ui->verticalUpLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/veritcalLimb_Checked.png);"); //需要改变游戏,切换到第三个游戏 ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game4.png);"); m_gameIDChecked = 3; //设置游戏不可调整 ui->backward_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/left_forbid.png);"); ui->forward_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/right_forbid.png);"); } else //取消勾选 { ui->verticalUpLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/veritcalLimb_unChecked.png);"); ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game1.png);"); m_gameIDChecked = 0; //设置游戏不可调整 ui->backward_Btn->setStyleSheet("border-image:url(:/DependFile/Source/gamePage/leftChange.png);"); ui->forward_Btn->setStyleSheet("border-image:url(:/DependFile/Source/gamePage/rightChange.png);"); } } //下肢改变状态 void ArmOrLeg::on_downLimp_Button_toggled(bool checked) { qDebug() <<"下肢切换"<downLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/limbModel_Checked.png);"); } else //取消勾选 { ui->downLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/limbModel_unChecked.png);"); } } //上下肢改变状态:需要设置主动训练、助力训练、等速训练不能显示 void ArmOrLeg::on_upDownLimp_Button_toggled(bool checked) { // if(checked) { ui->upDownLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/upDown_checked.png);"); //选择到主被动模式,避免选中之前不可选的,并管相比另外另3种模式 // ui->activePassive1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/activePassive_checked.png);"); ui->activePassive1_Button->setChecked(true); ui->active1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/activeTrain_forbidchecked.png);"); ui->assistant1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/assistedTrain_forbidCheck.png);"); ui->speedTrain_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/speedModel_forbidcheck.png);"); //设置三种模式不可选 ui->active1_Button->setCheckable(false); ui->assistant1_Button->setCheckable(false); ui->speedTrain_Button->setCheckable(false); } else //取消勾选 { ui->upDownLimp_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/upDown_unchecked.png);"); //恢复可选3中模式 ui->active1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/activeTrain_unchecked.png);"); ui->assistant1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/assistedTrain_unChecked.png);"); ui->speedTrain_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/speedModel_unchecked.png);"); //游戏恢复可调 ui->active1_Button->setCheckable(true); ui->assistant1_Button->setCheckable(true); ui->speedTrain_Button->setCheckable(true); } } //主被动模式:改变状态 void ArmOrLeg::on_activePassive1_Button_toggled(bool checked) { if(checked ) { ui->activePassive1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/activePassive_checked.png);"); } else //取消勾选 { ui->activePassive1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/activePassive_unchecked.png);"); } } //被动模式:改变状态 void ArmOrLeg::on_passive1_Button_toggled(bool checked) { if(checked ) { ui->passive1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/passiveModel_CHecked.png);"); } else //取消勾选 { ui->passive1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/passiveModel_unCHeck.png);"); } } //主动模式:改变状态 void ArmOrLeg::on_active1_Button_toggled(bool checked) { if(checked ) { ui->active1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/activeTrain_checked.png);"); // if(ui->verticalUpLimp_Button->isChecked()) // { // //设置游戏不可调整 // ui->backward_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/left_forbid.png);"); // ui->forward_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/right_forbid.png);"); // } } else //取消勾选 { ui->active1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/activeTrain_unchecked.png);"); // if(ui->verticalUpLimp_Button->isChecked()) // { // //设置游戏不可调整 // //设置游戏不可调整 // ui->backward_Btn->setStyleSheet("border-image:url(:/DependFile/Source/gamePage/leftChange.png);"); // ui->forward_Btn->setStyleSheet("border-image:url(:/DependFile/Source/gamePage/rightChange.png);"); // } } } //助力模式:改变状态 void ArmOrLeg::on_assistant1_Button_toggled(bool checked) { if(checked ) { ui->assistant1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/assistedTrain_Checked.png);"); } else //取消勾选 { ui->assistant1_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/assistedTrain_unChecked.png);"); } } //等速模式:改变状态 void ArmOrLeg::on_speedTrain_Button_toggled(bool checked) { if(checked ) { ui->speedTrain_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/speedModel_checked.png);"); } else //取消勾选 { ui->speedTrain_Button->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/speedModel_unchecked.png);"); } } //向右切换游戏 void ArmOrLeg::on_forward_Btn_clicked() { if(m_gameIDChecked != 3) //不是打鱼游戏就能切换 { if(m_gameIDChecked == 0) { m_gameIDChecked = 1; ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game2.png);"); } else if(m_gameIDChecked == 1) { m_gameIDChecked = 2; ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game3.png);"); } else if(m_gameIDChecked == 2) { m_gameIDChecked = 0; ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game1.png);"); } } qDebug() <<"游戏ID:"<< m_gameIDChecked + 1; } //向左切换游戏 void ArmOrLeg::on_backward_Btn_clicked() { if(m_gameIDChecked != 3) //不是打鱼游戏就能切换 { if(m_gameIDChecked == 0) { m_gameIDChecked = 2; ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game3.png);"); } else if(m_gameIDChecked == 1) { m_gameIDChecked = 0; ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game1.png);"); } else if(m_gameIDChecked == 2) { m_gameIDChecked = 1; ui->gameDisplay_Btn->setStyleSheet("border-image:url(:/DependFile/Source/trainDisplayPage/game2.png);"); } } qDebug() <<"游戏ID:"<< m_gameIDChecked + 1; } //接收参数界面来的参数 void ArmOrLeg::slotRecvTrainParamChanged(ST_BicycleParam st_bicycleParam) { qDebug() <<"时间、阻力、速度、转向、等级、是否保护"<< st_bicycleParam.trainTime << st_bicycleParam.resistance << st_bicycleParam.speed << st_bicycleParam.direction << st_bicycleParam.spasmLevel << st_bicycleParam.spasmSwitch; m_st_bicycleParam = st_bicycleParam; m_isImportParamWidget = 1; //保护这次数据传递不被ChangeEvent isClickedSave = true; //点击了保存,之后在参数界面不断返回页不再event清空数据 } //发送一键上机指令 void ArmOrLeg::on_YiJianShangJi_Btn_clicked() { m_machineStartDialog->show(); m_machineStartDialog->exec(); }