diff --git a/Plx/include/LowLevel/HonaLowLevelAPI.h b/Plx/include/LowLevel/HonaLowLevelAPI.h index 704134d..a983c3e 100644 --- a/Plx/include/LowLevel/HonaLowLevelAPI.h +++ b/Plx/include/LowLevel/HonaLowLevelAPI.h @@ -5,7 +5,6 @@ #include "include/LowLevel/Setting/Setting.h" #include "include/LowLevel/HonaPacket.h" - #include "LowLevel/Setting/Setting.h" #include "HonaPacket.h" #include "QWaitCondition" @@ -14,58 +13,53 @@ class HonaLowLevelAPI : public QObject { - Q_OBJECT + 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]; - - + 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(); + explicit HonaLowLevelAPI(QObject* parent = nullptr); + bool isHsruStarted(); + bool isHiruStarted(); + void deviceReset(); - void setConfig(HonaSetting* honaSetting); - HonaSetting getConfig(); - QString getSwVersion(); - QString getDeviceId(); - void hsruStart(); + void setConfig(HonaSetting* honaSetting); + HonaSetting getConfig(); + QString getSwVersion(); + QString getDeviceId(); + void hsruStart(); - void hiruStart(); - void init(); + void hiruStart(); + void init(); - bool getHsruIsStarted() const; - void setHsruIsStarted(bool hsruIsStarted); + bool getHsruIsStarted() const; + void setHsruIsStarted(bool hsruIsStarted); - bool getHiruIsStarted() const; - void setHiruIsStarted(bool hiruIsStarted); + bool getHiruIsStarted() const; + void setHiruIsStarted(bool hiruIsStarted); private: - void writeSettingToRegisters(honaSettings& settings); - void setConfig(); - void hsruMainThread(); - void hsruReadThread(); - void hsruUpdateThread(); - int hiruGetDOA(); - - + void writeSettingToRegisters(HonaSetting& settings); + void setConfig(); + void hsruMainThread(); + void hsruReadThread(); + void hsruUpdateThread(); + int hiruGetDOA(); signals: - void signalToTop(QList honaPacketList, int i, int j); - //uncrustify off + void signalToTop(QList honaPacketList, int i, int j); + //uncrustify off public slots: - //uncrustify on + //uncrustify on }; #endif //HONALOWLEVELAPI_H diff --git a/Plx/include/LowLevel/Setting/Setting.h b/Plx/include/LowLevel/Setting/Setting.h index c31a863..186fef9 100644 --- a/Plx/include/LowLevel/Setting/Setting.h +++ b/Plx/include/LowLevel/Setting/Setting.h @@ -8,35 +8,36 @@ #include #include "include/LowLevel/Utils/Utils.h" /***********************************************************************************************/ - struct hiruSettings_t +struct hiruSettings_t { - recorderStart recordStard; - recorderMode recordMode; - quint32 recordChannel; - quint32 threshold = 0; - quint32 timeout = 1000; - quint32 count = 5; - + recorderStart recordStard; + recorderMode recordMode; + quint32 recordChannel; + quint32 threshold = 0; + quint32 timeout = 1000; + quint32 count = 5; }; + /***********************************************************************************************/ - struct hsruSettings_t +struct hsruSettings_t { - bool isReal = true; - quint32 honaInt123CTHR = 128; - quint32 honaRes123CTHR = 128; - quint32 honaIntSTHR = 20; - quint32 honaResSTHR = 20; - quint32 honaSPTHR = 20; //mode4 - quint32 intM4_THR = 20; //mode4 - quint32 resM4_THR = 20; //mode4 + bool isReal = true; + quint32 honaInt123CTHR = 128; + quint32 honaRes123CTHR = 128; + quint32 honaIntSTHR = 20; + quint32 honaResSTHR = 20; + quint32 honaSPTHR = 20; //mode4 + quint32 intM4_THR = 20; //mode4 + quint32 resM4_THR = 20; //mode4 }; + /***********************************************************************************************/ - struct honaSettings +struct HonaSetting { - hiruSettings_t hiruSettings; - hsruSettings_t hsruSettings; - + hiruSettings_t hiruSettings; + hsruSettings_t hsruSettings; }; + /***********************************************************************************************/ #endif //SETTING_H diff --git a/Plx/src/LowLevel/HonaLowLevelAPI.cpp b/Plx/src/LowLevel/HonaLowLevelAPI.cpp index eaccac1..da1ddab 100644 --- a/Plx/src/LowLevel/HonaLowLevelAPI.cpp +++ b/Plx/src/LowLevel/HonaLowLevelAPI.cpp @@ -1,5 +1,3 @@ -<<<<<<< HEAD - #include #include "include/LowLevel/HonaLowLevelAPI.h" #include "include/Wrapper/PlxWrapper.h" @@ -11,25 +9,25 @@ PlxWrapper plx; bool HonaLowLevelAPI::getHsruIsStarted() const { - return _hsruIsStarted; + return _hsruIsStarted; } /*************************************************************************************************/ void HonaLowLevelAPI::setHsruIsStarted(bool hsruIsStarted) { - _hsruIsStarted = hsruIsStarted; + _hsruIsStarted = hsruIsStarted; } /*************************************************************************************************/ bool HonaLowLevelAPI::getHiruIsStarted() const { - return _hiruIsStarted; + return _hiruIsStarted; } /*************************************************************************************************/ void HonaLowLevelAPI::setHiruIsStarted(bool hiruIsStarted) { - _hiruIsStarted = hiruIsStarted; + _hiruIsStarted = hiruIsStarted; } /*************************************************************************************************/ @@ -40,55 +38,54 @@ HonaLowLevelAPI::HonaLowLevelAPI(QObject* parent) : QObject(parent) /*************************************************************************************************/ bool HonaLowLevelAPI::isHsruStarted() { - return getHsruIsStarted(); + return getHsruIsStarted(); } /*************************************************************************************************/ bool HonaLowLevelAPI::isHiruStarted() { - return getHiruIsStarted(); + return getHiruIsStarted(); } /*************************************************************************************************/ void HonaLowLevelAPI::deviceReset() { - ApiResult status; - if(ApiResult::success) - { - - } - /* - QTime t; - t.elapsed() + //ApiResult status; + //if(ApiResult::success) + //{ + //} + /* + QTime t; + t.elapsed() - PLX_STATUS status = base.DeviceReset(); - qDebug() << "Board Reseted, status: " + status.ToString()); + PLX_STATUS status = base.DeviceReset(); + qDebug() << "Board Reseted, status: " + status.ToString()); - if (status == PLX_STATUS.ApiSuccess) - { - toaStartBoard = (ulong) (DateTime.Now.Ticks); - return ApiResult.Success; - } - else - return ApiResult.Error; */ + if (status == PLX_STATUS.ApiSuccess) + { + toaStartBoard = (ulong) (DateTime.Now.Ticks); + return ApiResult.Success; + } + else + return ApiResult.Error; */ } /*************************************************************************************************/ void HonaLowLevelAPI::setConfig(HonaSetting* honaSetting) { - //Initial State Checking - /* - HonaRegisterBuffer = new uint[8]; // Mode4 :: changed from 5 to 8 by H.H - DeviceReadRegisters(0x10000000, ref HonaRegisterBuffer); + //Initial State Checking + /* + HonaRegisterBuffer = new uint[8]; // Mode4 :: changed from 5 to 8 by H.H + DeviceReadRegisters(0x10000000, ref HonaRegisterBuffer); - _honaSetting = Settings; - HonaFillRegisters(Settings); - DeviceWriteRegisters(0x10000000, HonaRegisterBuffer); + _honaSetting = Settings; + HonaFillRegisters(Settings); + DeviceWriteRegisters(0x10000000, HonaRegisterBuffer); - HonaRegisterBuffer = new uint[8]; // Mode4 :: changed from 5 to 8 by H.H - DeviceReadRegisters(0x10000000, ref HonaRegisterBuffer); + HonaRegisterBuffer = new uint[8]; // Mode4 :: changed from 5 to 8 by H.H + DeviceReadRegisters(0x10000000, ref HonaRegisterBuffer); - return ApiResult.Success; */ + return ApiResult.Success; */ } /*************************************************************************************************/ @@ -105,24 +102,20 @@ QString HonaLowLevelAPI::getSwVersion() /*************************************************************************************************/ QString HonaLowLevelAPI::getDeviceId() { - } /*************************************************************************************************/ void HonaLowLevelAPI::hsruStart() { - } /*************************************************************************************************/ void HonaLowLevelAPI::hiruStart() { + if(isHiruStarted()) + //exceptiom - if (isHiruStarted()) - //exceptiom - - QtConcurrent::run(this,&HonaLowLevelAPI::hsruMainThread); - + QtConcurrent::run(this, &HonaLowLevelAPI::hsruMainThread); } /*************************************************************************************************/ @@ -131,36 +124,35 @@ void HonaLowLevelAPI::init() } /*************************************************************************************************/ -void HonaLowLevelAPI::writeSettingToRegisters(honaSettings& settings) +void HonaLowLevelAPI::writeSettingToRegisters(HonaSetting& settings) { - honaRegisterBuffer[0] = 0x00000000; - /************************************************************************/ - if(settings.hiruSettings.recordStard == recorderStart::selfTestCounter) - honaRegisterBuffer[0] = 0x80000000; - else - honaRegisterBuffer[0] = 0x7FFFFFFF; - /************************************************************************/ - if(settings.hiruSettings.recordChannel == drxDeviceIfChannel::ifChannel12) - honaRegisterBuffer[0] = 0x20000000; - else - honaRegisterBuffer[0] = 0xDFFFFFFF; - /************************************************************************/ - if(settings.hiruSettings.recordMode == recorderMode::dualChannel) - honaRegisterBuffer[0] = 0x10000000; - else - honaRegisterBuffer[0] = 0xEFFFFFFF; - /************************************************************************/ - - honaRegisterBuffer[0] += (settings.hiruSettings.threshold & 0x00000FFF); + honaRegisterBuffer[0] = 0x00000000; + /************************************************************************/ + if(settings.hiruSettings.recordStard == recorderStart::selfTestCounter) + honaRegisterBuffer[0] = 0x80000000; + else + honaRegisterBuffer[0] = 0x7FFFFFFF; + /************************************************************************/ + if(settings.hiruSettings.recordChannel == drxDeviceIfChannel::ifChannel12) + honaRegisterBuffer[0] = 0x20000000; + else + honaRegisterBuffer[0] = 0xDFFFFFFF; + /************************************************************************/ + if(settings.hiruSettings.recordMode == recorderMode::dualChannel) + honaRegisterBuffer[0] = 0x10000000; + else + honaRegisterBuffer[0] = 0xEFFFFFFF; + /************************************************************************/ - honaRegisterBuffer[1] = settings.hsruSettings.honaInt123CTHR; - honaRegisterBuffer[2] = settings.hsruSettings.honaRes123CTHR; - honaRegisterBuffer[3] = settings.hsruSettings.honaIntSTHR; - honaRegisterBuffer[4] = settings.hsruSettings.honaResSTHR; - honaRegisterBuffer[5] = settings.hsruSettings.honaSPTHR; - honaRegisterBuffer[6] = settings.hsruSettings.intM4_THR; - honaRegisterBuffer[7] = settings.hsruSettings.resM4_THR; + honaRegisterBuffer[0] += (settings.hiruSettings.threshold & 0x00000FFF); + honaRegisterBuffer[1] = settings.hsruSettings.honaInt123CTHR; + honaRegisterBuffer[2] = settings.hsruSettings.honaRes123CTHR; + honaRegisterBuffer[3] = settings.hsruSettings.honaIntSTHR; + honaRegisterBuffer[4] = settings.hsruSettings.honaResSTHR; + honaRegisterBuffer[5] = settings.hsruSettings.honaSPTHR; + honaRegisterBuffer[6] = settings.hsruSettings.intM4_THR; + honaRegisterBuffer[7] = settings.hsruSettings.resM4_THR; } /*************************************************************************************************/ @@ -171,47 +163,45 @@ void HonaLowLevelAPI::setConfig() /*************************************************************************************************/ void HonaLowLevelAPI::hsruMainThread() { - QtConcurrent::run(this, &HonaLowLevelAPI::hsruReadThread); - QtConcurrent::run(this, &HonaLowLevelAPI::hsruUpdateThread); + QtConcurrent::run(this, &HonaLowLevelAPI::hsruReadThread); + QtConcurrent::run(this, &HonaLowLevelAPI::hsruUpdateThread); - _mutex.lock(); - HsruStopEvent.wait(&_mutex); - _mutex.unlock(); + _mutex.lock(); + _hsruStopEvent.wait(&_mutex); + _mutex.unlock(); - _isReaderThreadFree = true; - _isUpdateThreadFree = true; + _isReaderThreadFree = true; + _isUpdateThreadFree = true; } /*************************************************************************************************/ void HonaLowLevelAPI::hsruReadThread() { - while (true) - { - if (_isReaderThreadFree) - break; - //dosth - _mutex.lock(); - HsruReadDone.wakeAll(); - HsruUpdateAck.wait(&_mutex); - _mutex.unlock(); - } + while(true) + { + if(_isReaderThreadFree) + break; + //dosth + _mutex.lock(); + _hsruReadDone.wakeAll(); + _hsruUpdateAck.wait(&_mutex); + _mutex.unlock(); + } } /*************************************************************************************************/ void HonaLowLevelAPI::hsruUpdateThread() { - while (true) - { - _mutex.lock(); - HsruReadDone.wait(&_mutex); - _mutex.unlock(); - if (_isUpdateThreadFree) - break; - //dosth - HsruUpdateAck.wakeAll(); - - } - + while(true) + { + _mutex.lock(); + _hsruReadDone.wait(&_mutex); + _mutex.unlock(); + if(_isUpdateThreadFree) + break; + //dosth + _hsruUpdateAck.wakeAll(); + } } /*************************************************************************************************/