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