2024-11-25 17:15:44 +08:00

1860 lines
66 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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();
}