1860 lines
66 KiB
C++
Raw Normal View History

2024-11-25 17:15:44 +08:00
#include "armorleg.h"
#include "ui_armorleg.h"
#include "advanceddialog.h"
#include "mainwindowpagecontrol.h"
#include <QListView>
#include "icemodule.h"
#include "paramtipsdialog.h"
#include "gamecontrol.h"
#include <QDebug>
#include "languagemanager.h"
#include <QTimer>
#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<ST_GameMsg> gameMsgList = GameControl::getInstance()->getGameMsgs();
for(int i = 0;i <gameMsgList.size();i++ )
{
// qDebug()<<gameMsgList.at(i).gameID<<gameMsgList.at(i).gamePath<<gameMsgList.at(i).iconPath;
}
// ui->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() << "次数:"<<m_isClickedGameStart;
//qDebug()<<"m_isClickedGameStart="<<m_isClickedGameStart;
if(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);
IceModule::getInstance()->setMaxFESAParam(); //设置8个最大电流
//test:
qDebug() <<"游戏方向:"<< st_bicycleParam.direction;
qDebug()<<"训练时间:"<<st_bicycleParam.trainTime;
qDebug()<<"训练阻力:"<<st_bicycleParam.resistance;
qDebug()<<"未抓取前:"<<this->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:"<<isMoreConfgClick;
if(isMoreConfgClick == 1) return ;//如果是从单车参数返回的,不重新排列
//1.显示上下肢、垂直上肢,移动下肢
//ui->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"<<st_trainParam.trainDirection;
st_trainParam.spasmLevel = m_st_bicycleParam.spasmLevel;
st_trainParam.spasmProtect = m_st_bicycleParam.spasmSwitch;
st_trainParam.gameID = m_gameIDChecked + 1;//ID从0开始第几个游戏
GameControl::getInstance()->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 "<<m_isImportParamWidget<<isClickedSave;
if(m_isImportParamWidget != 1 && isClickedSave != 1) //是否从导入参数,同时在参数界面没有点击保存数据
{
isClickedSave = 0; //重新初始化点击了额保存
//设置训练参数界面
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_userID = CurrentUserData::getInstace()->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() <<"训练类型:"<<m_trainType;
//setTrainType(m_trainType); //选择单塌车、FES塌车
/*
*/
/*ui->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()<<ui->upLimp_Button->isChecked() <<ui->verticalUpLimp_Button->isChecked() << ui->downLimp_Button->isChecked() << ui->upDownLimp_Button->isChecked();
qDebug()<<ui->activePassive1_Button->isChecked() <<ui->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="<<m_isClickedGameStart;
if(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()<<"训练时间:"<<st_bicycleParam.trainTime;
qDebug()<<"训练阻力:"<<st_bicycleParam.resistance;
qDebug()<<"未抓取前:"<<this->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 <<st_trainParam.trainResistance;
//导入处方显示
//训练部位
if(st_trainParam.trainLimp == 0)
ui->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() <<"下肢切换"<<checked;
if(checked )
{
ui->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();
}