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.

66 lines
1.4 KiB

3 years ago
#ifndef HONALOWLEVELAPI_H
#define HONALOWLEVELAPI_H
#include <QObject>
3 years ago
#include "include/LowLevel/Setting/Setting.h"
#include "include/LowLevel/HonaPacket.h"
3 years ago
#include "LowLevel/Setting/Setting.h"
#include "HonaPacket.h"
#include "QWaitCondition"
#include "QMutex"
#include "include/LowLevel/Exception/HonaAlreadyStartedException.h"
3 years ago
3 years ago
class HonaLowLevelAPI : public QObject
{
3 years ago
Q_OBJECT
3 years ago
private:
3 years ago
bool _hsruIsStarted;
bool _hiruIsStarted;
HonaSetting _honaSetting;
QWaitCondition _hsruReadDone, _hsruUpdateAck, _hsruStopEvent;
QMutex _mutex;
int _threadSforValue = 0;
bool _isReaderThreadFree = false;
bool _isUpdateThreadFree = false;
quint32 honaRegisterBuffer[8];
3 years ago
3 years ago
public:
3 years ago
explicit HonaLowLevelAPI(QObject* parent = nullptr);
bool isHsruStarted();
bool isHiruStarted();
void deviceReset();
3 years ago
3 years ago
void setConfig(HonaSetting* honaSetting);
HonaSetting getConfig();
QString getSwVersion();
QString getDeviceId();
void hsruStart();
3 years ago
3 years ago
void hiruStart();
void init();
3 years ago
bool getHsruIsStarted() const;
void setHsruIsStarted(bool hsruIsStarted);
3 years ago
bool getHiruIsStarted() const;
void setHiruIsStarted(bool hiruIsStarted);
3 years ago
private:
3 years ago
void writeSettingToRegisters(HonaSetting& settings);
void setConfig();
void hsruMainThread();
void hsruReadThread();
void hsruUpdateThread();
int hiruGetDOA();
3 years ago
signals:
3 years ago
void signalToTop(QList<HonaPacket*> honaPacketList, int i, int j);
//uncrustify off
public slots:
3 years ago
//uncrustify on
3 years ago
};
#endif //HONALOWLEVELAPI_H