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.
141 lines
4.5 KiB
141 lines
4.5 KiB
|
4 years ago
|
#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);
|
||
|
|
}
|