定时器添加

This commit is contained in:
zxj 2024-11-27 14:23:05 +08:00
parent ca411bb07b
commit 9b6889d259
2 changed files with 32 additions and 4 deletions

View File

@ -11,7 +11,9 @@ eyeTrainWidget::eyeTrainWidget(QWidget *parent) :
heartTimer = new QTimer(); heartTimer = new QTimer();
heartTimer->setInterval(1000); heartTimer->setInterval(1000);
heartTimer->start(); heartTimer->start();
trainTimer = new QTimer();
connect(heartTimer, SIGNAL(timeout()), this, SLOT(slotHeartTimer())); connect(heartTimer, SIGNAL(timeout()), this, SLOT(slotHeartTimer()));
connect(trainTimer, SIGNAL(timeout()), this, SLOT(slotTrainTimer()));
m_st_bicycleParam.trainMode = 0; //被动 m_st_bicycleParam.trainMode = 0; //被动
m_st_bicycleParam.spasmSwitch = 1; //开启 m_st_bicycleParam.spasmSwitch = 1; //开启
@ -47,7 +49,17 @@ eyeTrainWidget::eyeTrainWidget(QWidget *parent) :
eyeTrainWidget::~eyeTrainWidget() eyeTrainWidget::~eyeTrainWidget()
{ {
if(heartTimer)
{
heartTimer->stop(); heartTimer->stop();
delete heartTimer;
}
if(trainTimer)
{
trainTimer->stop();
delete trainTimer;
}
delete ui; delete ui;
QVariant retVal; QVariant retVal;
QMetaObject::invokeMethod(ui->quickWidget->rootObject(), 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(); // heartTimer->start();
trainTimer->setInterval(Time*1000);
trainTimer->start();
//状态控制 0-停止 1启动 2-暂停 3-继续 //状态控制 0-停止 1启动 2-暂停 3-继续
m_st_bicycleParam.controlState = 1; m_st_bicycleParam.controlState = 1;
m_st_bicycleParam.bodyPart = Part; //训练部位 0-上肢 1-下肢 2-四肢 3-垂直上肢 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); CCommunicateAPI::getInstance()->sendBicycleParam(m_st_bicycleParam);
} }
void eyeTrainWidget::stopTrain() void eyeTrainWidget::stopTrain()
{ {
heartTimer->stop(); heartTimer->stop();
trainTimer->stop();
m_st_bicycleParam.controlState = 0; m_st_bicycleParam.controlState = 0;
CCommunicateAPI::getInstance()->sendBicycleParam(m_st_bicycleParam); CCommunicateAPI::getInstance()->sendBicycleParam(m_st_bicycleParam);
} }
void eyeTrainWidget::pauseTrain() void eyeTrainWidget::pauseTrain()
{ {
trainTimer->stop();
m_st_bicycleParam.controlState = 2; m_st_bicycleParam.controlState = 2;
CCommunicateAPI::getInstance()->sendBicycleParam(m_st_bicycleParam); CCommunicateAPI::getInstance()->sendBicycleParam(m_st_bicycleParam);
} }
void eyeTrainWidget::continueTrain() void eyeTrainWidget::continueTrain()
{ {
trainTimer->start();
m_st_bicycleParam.controlState = 3; m_st_bicycleParam.controlState = 3;
CCommunicateAPI::getInstance()->sendBicycleParam(m_st_bicycleParam); 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() /*void eyeTrainWidget::on_startButton_clicked()
{ {
startTrain(0, 10); startTrain(0, 10);

View File

@ -20,7 +20,7 @@ public:
explicit eyeTrainWidget(QWidget *parent = nullptr); explicit eyeTrainWidget(QWidget *parent = nullptr);
~eyeTrainWidget(); ~eyeTrainWidget();
ST_BicycleParam m_st_bicycleParam; //启动参数 ST_BicycleParam m_st_bicycleParam; //启动参数
void startTrain(int8_t Part, uint8_t Time); void startTrain(int8_t Part, int Time);
void stopTrain(); void stopTrain();
void pauseTrain(); void pauseTrain();
void continueTrain(); void continueTrain();
@ -31,10 +31,12 @@ private slots:
private: private:
Ui::eyeTrainWidget *ui; Ui::eyeTrainWidget *ui;
QTimer *heartTimer; QTimer *heartTimer;
QTimer *trainTimer;
int heartCount; //心跳次数,用于检测通信 int heartCount; //心跳次数,用于检测通信
private slots: private slots:
void slotHeartTimer(); void slotHeartTimer();
void slotTrainTimer();
//void on_startButton_clicked(); //void on_startButton_clicked();
//void on_closeButton_clicked(); //void on_closeButton_clicked();
}; };