#include "../../include/LowLevel/HonaLowLevelAPI.h" #include #include "qdebug.h" #include "QTime" #include "QtConcurrent/QtConcurrent" bool HonaLowLevelAPI::getHsruIsStarted() const { return _hsruIsStarted; } /*************************************************************************************************/ void HonaLowLevelAPI::setHsruIsStarted(bool hsruIsStarted) { _hsruIsStarted = hsruIsStarted; } /*************************************************************************************************/ bool HonaLowLevelAPI::getHiruIsStarted() const { return _hiruIsStarted; } /*************************************************************************************************/ void HonaLowLevelAPI::setHiruIsStarted(bool hiruIsStarted) { _hiruIsStarted = hiruIsStarted; } /*************************************************************************************************/ HonaLowLevelAPI::HonaLowLevelAPI(QObject* parent) : QObject(parent) { } /*************************************************************************************************/ bool HonaLowLevelAPI::isHsruStarted() { return getHsruIsStarted(); } /*************************************************************************************************/ bool HonaLowLevelAPI::isHiruStarted() { return getHiruIsStarted(); } /*************************************************************************************************/ void HonaLowLevelAPI::deviceReset() { ApiResult status; if(ApiResult::success) { } /* QTime t; t.elapsed() 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; */ } /*************************************************************************************************/ 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); _honaSetting = Settings; HonaFillRegisters(Settings); DeviceWriteRegisters(0x10000000, HonaRegisterBuffer); HonaRegisterBuffer = new uint[8]; // Mode4 :: changed from 5 to 8 by H.H DeviceReadRegisters(0x10000000, ref HonaRegisterBuffer); return ApiResult.Success; */ } /*************************************************************************************************/ HonaSetting HonaLowLevelAPI::getConfig() { } /*************************************************************************************************/ QString HonaLowLevelAPI::getSwVersion() { } /*************************************************************************************************/ QString HonaLowLevelAPI::getDeviceId() { } /*************************************************************************************************/ void HonaLowLevelAPI::hsruStart() { } /*************************************************************************************************/ void HonaLowLevelAPI::hiruStart() { if (isHiruStarted()) //exceptiom QtConcurrent::run(this,&HonaLowLevelAPI::hsruMainThread); } /*************************************************************************************************/ void HonaLowLevelAPI::init() { } /*************************************************************************************************/ void HonaLowLevelAPI::writeSettingToRegisters(HonaSetting& honaSetting) { } /*************************************************************************************************/ void HonaLowLevelAPI::setConfig() { } /*************************************************************************************************/ void HonaLowLevelAPI::hsruMainThread() { QtConcurrent::run(this, &HonaLowLevelAPI::hsruReadThread); QtConcurrent::run(this, &HonaLowLevelAPI::hsruUpdateThread); _mutex.lock(); HsruStopEvent.wait(&_mutex); _mutex.unlock(); _isReaderThreadFree = true; _isUpdateThreadFree = true; } /*************************************************************************************************/ void HonaLowLevelAPI::hsruReadThread() { 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(); } } /*************************************************************************************************/ int HonaLowLevelAPI::hiruGetDOA() { } /*************************************************************************************************/