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.

213 lines
6.2 KiB

#include <include/LowLevel/Utils/Utils.h>
3 years ago
#include "include/LowLevel/HonaLowLevelAPI.h"
#include "include/Wrapper/PlxWrapper.h"
3 years ago
3 years ago
#include "qdebug.h"
#include "QTime"
#include "QtConcurrent/QtConcurrent"
3 years ago
PlxWrapper plx;
3 years ago
bool HonaLowLevelAPI::getHsruIsStarted() const
{
3 years ago
return _hsruIsStarted;
3 years ago
}
/*************************************************************************************************/
void HonaLowLevelAPI::setHsruIsStarted(bool hsruIsStarted)
{
3 years ago
_hsruIsStarted = hsruIsStarted;
3 years ago
}
/*************************************************************************************************/
bool HonaLowLevelAPI::getHiruIsStarted() const
{
3 years ago
return _hiruIsStarted;
3 years ago
}
/*************************************************************************************************/
void HonaLowLevelAPI::setHiruIsStarted(bool hiruIsStarted)
{
3 years ago
_hiruIsStarted = hiruIsStarted;
3 years ago
}
/*************************************************************************************************/
HonaLowLevelAPI::HonaLowLevelAPI(QObject* parent) : QObject(parent)
3 years ago
{
}
3 years ago
3 years ago
/*************************************************************************************************/
bool HonaLowLevelAPI::isHsruStarted()
{
3 years ago
return getHsruIsStarted();
3 years ago
}
/*************************************************************************************************/
bool HonaLowLevelAPI::isHiruStarted()
{
3 years ago
return getHiruIsStarted();
}
/*************************************************************************************************/
void HonaLowLevelAPI::deviceReset()
{
3 years ago
//ApiResult status;
//if(ApiResult::success)
//{
//}
/*
QTime t;
t.elapsed()
3 years ago
3 years ago
PLX_STATUS status = base.DeviceReset();
qDebug() << "Board Reseted, status: " + status.ToString());
3 years ago
if (status == PLX_STATUS.ApiSuccess)
{
toaStartBoard = (ulong) (DateTime.Now.Ticks);
return ApiResult.Success;
}
else
return ApiResult.Error; */
}
/*************************************************************************************************/
3 years ago
void HonaLowLevelAPI::setConfig(HonaSettings* honaSetting)
{
3 years ago
//Initial State Checking
/*
HonaRegisterBuffer = new uint[8]; // Mode4 :: changed from 5 to 8 by H.H
DeviceReadRegisters(0x10000000, ref HonaRegisterBuffer);
3 years ago
3 years ago
_honaSetting = Settings;
HonaFillRegisters(Settings);
DeviceWriteRegisters(0x10000000, HonaRegisterBuffer);
3 years ago
3 years ago
HonaRegisterBuffer = new uint[8]; // Mode4 :: changed from 5 to 8 by H.H
DeviceReadRegisters(0x10000000, ref HonaRegisterBuffer);
3 years ago
3 years ago
return ApiResult.Success; */
}
/*************************************************************************************************/
3 years ago
HonaSettings HonaLowLevelAPI::getConfig()
{
}
/*************************************************************************************************/
QString HonaLowLevelAPI::getSwVersion()
{
}
/*************************************************************************************************/
QString HonaLowLevelAPI::getDeviceId()
{
}
/*************************************************************************************************/
void HonaLowLevelAPI::hsruStart()
{
}
/*************************************************************************************************/
void HonaLowLevelAPI::hiruStart()
{
3 years ago
if(isHiruStarted())
//exceptiom
3 years ago
3 years ago
QtConcurrent::run(this, &HonaLowLevelAPI::hsruMainThread);
}
/*************************************************************************************************/
void HonaLowLevelAPI::init()
{
}
/*************************************************************************************************/
3 years ago
void HonaLowLevelAPI::writeSettingToRegisters(HonaSettings& settings)
{
3 years ago
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;
/************************************************************************/
3 years ago
3 years ago
honaRegisterBuffer[0] += (settings.hiruSettings.threshold & 0x00000FFF);
3 years ago
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;
}
/*************************************************************************************************/
void HonaLowLevelAPI::setConfig()
{
}
/*************************************************************************************************/
void HonaLowLevelAPI::hsruMainThread()
{
3 years ago
QtConcurrent::run(this, &HonaLowLevelAPI::hsruReadThread);
QtConcurrent::run(this, &HonaLowLevelAPI::hsruUpdateThread);
3 years ago
_mutex.lock();
_hsruStopEvent.wait(&_mutex);
_mutex.unlock();
3 years ago
_isReaderThreadFree = true;
_isUpdateThreadFree = true;
}
/*************************************************************************************************/
void HonaLowLevelAPI::hsruReadThread()
{
3 years ago
while(true)
{
if(_isReaderThreadFree)
break;
//dosth
_mutex.lock();
_hsruReadDone.wakeAll();
_hsruUpdateAck.wait(&_mutex);
_mutex.unlock();
}
}
/*************************************************************************************************/
void HonaLowLevelAPI::hsruUpdateThread()
{
3 years ago
while(true)
{
_mutex.lock();
_hsruReadDone.wait(&_mutex);
_mutex.unlock();
if(_isUpdateThreadFree)
break;
//dosth
_hsruUpdateAck.wakeAll();
}
}
/*************************************************************************************************/
int HonaLowLevelAPI::hiruGetDOA()
{
}
/*************************************************************************************************/