2024-11-28 13:38:22 +08:00

62 lines
1.4 KiB
C++

#ifndef BCIMANAGER_H
#define BCIMANAGER_H
#include <QObject>
#include <QProcess>
#include "QmlTcpSocket/TcpSocket.h"
#include "ccommunicateapi.h"
#include <QTimer>
class BCIManager : public QObject
{
Q_OBJECT
public:
explicit BCIManager(QObject *parent = nullptr);
static BCIManager &getInstance()
{
static BCIManager instance;
return instance;
}
static void registerQMLType()
{
qmlRegisterType<QMLTcpSockets::TcpSocket>("TcpSocket", 2, 0, "TcpSocket");
qmlRegisterType<BCIManager>("BCIManager", 2, 0, "BCIManager");
}
//启动Linker工具
bool startLinkerPrograme();
Q_INVOKABLE void initTrain();
Q_INVOKABLE void startTrain(int Part, int Time);
Q_INVOKABLE void stopTrain();
Q_INVOKABLE void pauseTrain();
Q_INVOKABLE void continueTrain();
private slots:
//Linker程序的标准输出
void slotLinkerProgrameReadyReadStandardOutput();
//Linker程序的错误输出
void slotLinkerProgrameReadyReadStandardError();
//下位机心跳包
void slotHeartTimer();
//下位机心训练计时停止
void slotTrainTimer();
signals:
void signalQmlStopLinkerPrograme();
private:
QProcess *m_pCmd = nullptr;
QTimer *heartTimer = nullptr;
QTimer *trainTimer = nullptr;
int heartCount = 0; //心跳次数,用于检测通信
ST_BicycleParam m_st_bicycleParam; //启动参数
};
#endif // BCIMANAGER_H