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.
 
 
 

159 lines
4.5 KiB

#include <QDebug>
#include <QVector>
#include "include/Wrapper/PlxWrapper.h"
PlxWrapper::PlxWrapper()
{
}
/*************************************************************************************************/
bool PlxWrapper::deviceInit(quint32 devicekey)
{
return PlxPci_9054_SelDevice(devicekey);
}
/*************************************************************************************************/
bool PlxWrapper::deviceOpen()
{
return PlxPci_9054_Open();
}
/*************************************************************************************************/
bool PlxWrapper::deviceClose()
{
return PlxPci_9054_Close();
}
/*************************************************************************************************/
bool PlxWrapper::deviceReset()
{
return PlxPci_9054_Reset();
}
/*************************************************************************************************/
bool PlxWrapper::deviceLoadE2pToFPGA()
{
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]);
}
}
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);
}