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

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);
}