6 changed files with 431 additions and 83 deletions
@ -1,6 +1,179 @@ |
|||||
#include "../../include/LowLevel/HonaLowLevelAPI.h" |
#include "qdebug.h" |
||||
|
#include "QTime" |
||||
|
|
||||
HonaLowLevelAPI::HonaLowLevelAPI(QObject *parent) : QObject(parent) |
#include "include/LowLevel/HonaLowLevelAPI.h" |
||||
|
#include "include/Wrapper/PlxWrapper.h" |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
PlxWrapper plx; |
||||
|
|
||||
|
|
||||
|
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() |
||||
|
{ |
||||
|
// deviceReset();
|
||||
|
|
||||
|
|
||||
|
// bool status = deviceReset();
|
||||
|
// qDebug() << "Board Reseted, status: " + status);
|
||||
|
|
||||
|
// if (status == PLX_STATUS.ApiSuccess)
|
||||
|
// {
|
||||
|
// toaStartBoard = (ulong) (DateTime.Now.Ticks);
|
||||
|
// return ApiResult.Success;
|
||||
|
// }
|
||||
|
// else
|
||||
|
// return ApiResult.Error;
|
||||
|
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
void HonaLowLevelAPI::setConfig(honaSettings* settings) |
||||
|
{ |
||||
|
//Initial State Checking
|
||||
|
/*
|
||||
|
HonaRegisterBuffer = new uint[8]; // Mode4 :: changed from 5 to 8 by H.H
|
||||
|
DeviceReadRegisters(0x10000000, ref HonaRegisterBuffer); |
||||
|
|
||||
|
_honaSettings = 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; */ |
||||
|
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
honaSettings HonaLowLevelAPI::getConfig() |
||||
|
{ |
||||
} |
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
|
||||
|
QString HonaLowLevelAPI::getSwVersion() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
QString HonaLowLevelAPI::getDeviceId() |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
void HonaLowLevelAPI::hsruStarte() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
void HonaLowLevelAPI::hiruStart() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
void HonaLowLevelAPI::init() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
void HonaLowLevelAPI::writeSettingToRegisters(honaSettings& 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[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() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
void HonaLowLevelAPI::hiruReadThread() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
void HonaLowLevelAPI::hsruUpdateThread() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
int HonaLowLevelAPI::hiruGetDOA() |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
/*************************************************************************************************/ |
||||
|
@ -0,0 +1,140 @@ |
|||||
|
#include <QDebug> |
||||
|
#include <QVector> |
||||
|
#include "include/Wrapper/PlxWrapper.h" |
||||
|
|
||||
|
PlxWrapper::PlxWrapper() |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceInit(quint32 devicekey) |
||||
|
{ |
||||
|
return PlxPci_9054_SelDevice(devicekey); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceOpen(void) |
||||
|
{ |
||||
|
return PlxPci_9054_Open(); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
|
||||
|
bool PlxWrapper::deviceClose(void) |
||||
|
{ |
||||
|
return PlxPci_9054_Close(); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceReset(void) |
||||
|
{ |
||||
|
return PlxPci_9054_Reset(); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceLoadE2pToFPGA(void) |
||||
|
{ |
||||
|
return PlxPci_9054_LoadE2pToFPGA(); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceReadEeprom(quint16 offset,quint32 length, QVector<quint32> &data) |
||||
|
{ |
||||
|
bool ret = true; |
||||
|
data.clear(); |
||||
|
|
||||
|
for(auto i = 0U; i < (length-1)*4; i+=4) |
||||
|
{ |
||||
|
quint32 temp; |
||||
|
ret &= PlxPci_9054_ReadEep(offset+i, &temp); |
||||
|
data.append(temp); |
||||
|
} |
||||
|
return ret; |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceWriteEeprom(quint16 offset,quint32 data) |
||||
|
{ |
||||
|
return PlxPci_9054_WriteEep(offset,data); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceReadRegister(quint32 address,QVector<quint32> &data,quint32 length) |
||||
|
{ |
||||
|
bool ret = true; |
||||
|
data.clear(); |
||||
|
|
||||
|
quint32 temp[length]; |
||||
|
ret &= PlxPci_9054_ReadBar(address,&temp,length * 4); |
||||
|
if(ret == true) |
||||
|
{ |
||||
|
for(auto i = 0U; i <length; i++) |
||||
|
{ |
||||
|
data.append(temp[i]); |
||||
|
qDebug()<<hex<<temp[i]; |
||||
|
} |
||||
|
} |
||||
|
return ret; |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceReadRegister(quint32 address,quint32 &data) |
||||
|
{ |
||||
|
return PlxPci_9054_ReadBar(address,&data,4); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceWriteRegister(quint32 address,QVector<quint32> &data) |
||||
|
{ |
||||
|
bool ret = true; |
||||
|
auto length = data.length(); |
||||
|
quint32 temp[length]; |
||||
|
|
||||
|
for(auto i = 0U; i <length; i++) |
||||
|
temp[i] = data.at(i); |
||||
|
|
||||
|
ret &= PlxPci_9054_WriteBar(address,&temp,length * 4); |
||||
|
|
||||
|
return ret; |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceWriteRegister(quint32 address,quint32 data) |
||||
|
{ |
||||
|
return PlxPci_9054_WriteBar(address,&data,4); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceReadMemory(quint32 localAddress ,QVector<quint32> &data,quint32 length) |
||||
|
{ |
||||
|
bool ret = true; |
||||
|
data.clear(); |
||||
|
|
||||
|
quint32 temp[length]; |
||||
|
ret &= PlxPci_9054_DMATransfer(localAddress,&temp,(quint32)(length*4)); |
||||
|
|
||||
|
for(auto i = 0U; i <length; i++) |
||||
|
data.append(temp[i]); |
||||
|
|
||||
|
return ret; |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceOpenPCIChannel(void) |
||||
|
{ |
||||
|
return PlxPci_9054_DMAChannelOpen(); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceClosePCIChannel(void) |
||||
|
{ |
||||
|
return PlxPci_9054_DMAChannelClose(); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
|
||||
|
bool PlxWrapper::deviceEnableInterrupt(void) |
||||
|
{ |
||||
|
return PlxPci_9054_EnableInterrupt(); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceDisableInterrupt(void) |
||||
|
{ |
||||
|
return PlxPci_9054_DisableInterrupt(); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceWaitForInterrupt(quint32 timeout) |
||||
|
{ |
||||
|
return PlxPci_9054_WaitForInterrupt(timeout); |
||||
|
} |
||||
|
/*************************************************************************************************/ |
||||
|
bool PlxWrapper::deviceGetChipType(quint8 revision,quint16 chipType) |
||||
|
{ |
||||
|
return PlxPci_9054_ChipTypeGet(revision,chipType); |
||||
|
} |
Loading…
Reference in new issue