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