You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

78 lines
2.1 KiB

#ifndef CSMCORE_H
#define CSMCORE_H
#include <QObject>
#include <QtXml>
#include <QMouseEvent>
#include "model/csm/utils/XmlConsoleConfigReader.h"
#include "model/csm/utils/XmlGraphStateReader.h"
#include "model/csm/core/consoleComponent/ConsoleButton.h"
//#include "model/csm/dto/CommandTuple.h"
#include "config/Configuration.h"
#include "model/csm/core/Hid.h"
/*****************************************************************************/
/**
* @brief this is the core of console management system. this class mange aonsole and trackball as
* a part of user interface.
* @author Mohammad Mohsen Talaie
* @details
* @date 12 jan 20214
*/
/*****************************************************************************/
class ConsoleCore : public QObject
{
Q_OBJECT
private:
QString _configPath;
QList<ConsoleButton*> _btnList;
QString _probType;
EConsole::eConsoleState _currentState;
XmlConsoleConfigReader* _consoleConfigReader;
XmlGraphStateReader* _graphStateReader;
Graph _consoleStateGraph;
Hid* _hidHandler;
Graph getConsoleStateGraph() const;
void readConfigFile();
void setConsoleStateGraph(const Graph& csmStateGraph);
void connectToConsoleButton(const ConsoleButton* consoleButton);
void checkMicro();
void blink();
public:
ConsoleCore();
void setCurrentConsoleState(const EConsole::eConsoleState& csmState, const QString& probType);
void init();
void newInterrupt(const EConsole::eCsmInterruptType& interrupt, const QString& value);
void setProbType(const QString& prbType);
QString getProbType() const;
EConsole::eConsoleState getCurrentState() const;
void selfTest();
signals:
void sendChangeStateToButton(const EConsole::eConsoleState& csmState, const QString& probType);
void sendCommandToCsmModule(const CommandControl_t& commands);
void sendInterruptToTrackball(const EConsole::eCsmInterruptType& interrupt,
const QString& value);
//uncrustify off
public slots:
//uncrustify on
void recieveButtonCommand(const QList<CommandControl_t>& commands,
const quint8& fCode);
void recieveButtonLongPressCommand(const QList<CommandControl_t>& commands,
const quint8& fCode);
};
#endif //CSMCORE_H