diff --git a/ZBD_IIIDL_S_Project/Src/TrainManager/eyetrainwidget.cpp b/ZBD_IIIDL_S_Project/Src/TrainManager/eyetrainwidget.cpp index 7611813..260fe03 100644 --- a/ZBD_IIIDL_S_Project/Src/TrainManager/eyetrainwidget.cpp +++ b/ZBD_IIIDL_S_Project/Src/TrainManager/eyetrainwidget.cpp @@ -11,7 +11,9 @@ eyeTrainWidget::eyeTrainWidget(QWidget *parent) : heartTimer = new QTimer(); heartTimer->setInterval(1000); heartTimer->start(); + trainTimer = new QTimer(); connect(heartTimer, SIGNAL(timeout()), this, SLOT(slotHeartTimer())); + connect(trainTimer, SIGNAL(timeout()), this, SLOT(slotTrainTimer())); m_st_bicycleParam.trainMode = 0; //被动 m_st_bicycleParam.spasmSwitch = 1; //开启 @@ -47,7 +49,17 @@ eyeTrainWidget::eyeTrainWidget(QWidget *parent) : eyeTrainWidget::~eyeTrainWidget() { - heartTimer->stop(); + + if(heartTimer) + { + heartTimer->stop(); + delete heartTimer; + } + if(trainTimer) + { + trainTimer->stop(); + delete trainTimer; + } delete ui; QVariant retVal; QMetaObject::invokeMethod(ui->quickWidget->rootObject(), @@ -62,30 +74,37 @@ eyeTrainWidget::~eyeTrainWidget() } } -void eyeTrainWidget::startTrain(int8_t Part, uint8_t Time) +void eyeTrainWidget::startTrain(int8_t Part, int Time) { // heartTimer->start(); + trainTimer->setInterval(Time*1000); + trainTimer->start(); //状态控制 0-停止 1启动 2-暂停 3-继续 m_st_bicycleParam.controlState = 1; m_st_bicycleParam.bodyPart = Part; //训练部位 0-上肢 1-下肢 2-四肢 3-垂直上肢 - m_st_bicycleParam.trainTime = Time; + m_st_bicycleParam.trainTime = 120; CCommunicateAPI::getInstance()->sendBicycleParam(m_st_bicycleParam); } void eyeTrainWidget::stopTrain() { + heartTimer->stop(); + trainTimer->stop(); + m_st_bicycleParam.controlState = 0; CCommunicateAPI::getInstance()->sendBicycleParam(m_st_bicycleParam); } void eyeTrainWidget::pauseTrain() { + trainTimer->stop(); m_st_bicycleParam.controlState = 2; CCommunicateAPI::getInstance()->sendBicycleParam(m_st_bicycleParam); } void eyeTrainWidget::continueTrain() { + trainTimer->start(); m_st_bicycleParam.controlState = 3; CCommunicateAPI::getInstance()->sendBicycleParam(m_st_bicycleParam); } @@ -120,6 +139,13 @@ void eyeTrainWidget::slotHeartTimer() } } +void eyeTrainWidget::slotTrainTimer() +{ + + trainTimer->stop(); + m_st_bicycleParam.controlState = 0; + CCommunicateAPI::getInstance()->sendBicycleParam(m_st_bicycleParam); +} /*void eyeTrainWidget::on_startButton_clicked() { startTrain(0, 10); diff --git a/ZBD_IIIDL_S_Project/Src/TrainManager/eyetrainwidget.h b/ZBD_IIIDL_S_Project/Src/TrainManager/eyetrainwidget.h index b67b3e3..ccff3da 100644 --- a/ZBD_IIIDL_S_Project/Src/TrainManager/eyetrainwidget.h +++ b/ZBD_IIIDL_S_Project/Src/TrainManager/eyetrainwidget.h @@ -20,7 +20,7 @@ public: explicit eyeTrainWidget(QWidget *parent = nullptr); ~eyeTrainWidget(); ST_BicycleParam m_st_bicycleParam; //启动参数 - void startTrain(int8_t Part, uint8_t Time); + void startTrain(int8_t Part, int Time); void stopTrain(); void pauseTrain(); void continueTrain(); @@ -31,10 +31,12 @@ private slots: private: Ui::eyeTrainWidget *ui; QTimer *heartTimer; + QTimer *trainTimer; int heartCount; //心跳次数,用于检测通信 private slots: void slotHeartTimer(); + void slotTrainTimer(); //void on_startButton_clicked(); //void on_closeButton_clicked(); };