62 lines
1.4 KiB
C++
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
|