102 lines
2.2 KiB
C
Raw Normal View History

2024-11-25 17:15:44 +08:00
#ifndef FESSETTING_H
#define FESSETTING_H
#include "recipexmlcontrol.h"
#include <QWidget>
#include "dataformate.h"
#include <QMetaType>
class QTimer;
class FesTotalParamDialog;
class ChannelDialog;
class ChannelOnlyDialog;
namespace Ui {
class FesSetting;
}
class FesSetting : public QWidget
{
Q_OBJECT
public:
explicit FesSetting(QWidget *parent = nullptr);
~FesSetting();
void switchPage(E_FES_PAGE);
void initWidget();
//根据刺激盒的反馈来设置通道状态
void setChannelState();
void sendAllChannelParam(); //检查8个通道并发送全局参数
protected:
virtual void changeEvent(QEvent* event);
virtual void showEvent(QShowEvent *event);
public slots:
void slotDeviceStateChanged(QList<uint8_t>);
private slots:
void slotTrainTimeBtnClicked();
void slotFrequentBtnClicked();
void slotUpTimeBtnClicked();
void slotDownTimeBtnClicked();
void slotOpenTimeBtnClicked();
void slotCloseTimeBtnClicked();
void slotPlusBtnClicked();
void slotChannelWidgetClicked(int id);
void on_FESA_Btn_clicked();
void on_FESB_Btn_clicked();
void on_OK_Btn_clicked();
void slotTrainTimer();
void slotGetBattery();
void slotBatteryChanged(int deviceNo,int batteryValue);
signals:
//开启游戏界面
void signalStartGame();
private:
//控制单独电刺激
void switchFES(bool on);
//控制踏车电刺激
void switchBicycleFES(bool on);
private:
Ui::FesSetting *ui;
FesTotalParamDialog *m_FesTotalParamDialog;
QList<QWidget*> channelList; //MuscleButton
ChannelDialog *m_ChannelDialog;
ChannelOnlyDialog *m_ChannelOnlyDialog;
RecipeXmlControl *m_recipeXmlControl;
QList<bool> FESABoxList; //连接通道
E_FES_PAGE E_fesType;
bool isRunning;
QTimer *m_fesTrainTimer;
QTimer *batteryTimer;
int m_trainTime;
bool isCheckedMuscle[9]; //判断8个通道是否选择了肌肉图标用于隐藏和显示
ST_MuscleParam st_channelChangedMuscleParams[9]; //每个通道的肌肉修改值,用于初始化
bool isChannelConnected[9]; //判断每个通道是否开启
};
#endif // FESSETTING_H