Hi All,
I am having problems with the following bit of code.
Code:
void setTxParams(int h, int s, int p)
{
ETHTransmit Tx;
//Transmit Parameters
Tx.ucTransmitMode = SINGLE_BURST_MODE;
Tx.ulBurstCount = 10000;
Tx.ucDuplexMode = HALFDUPLEX_MODE;
Tx.ucSpeed = SPEED_100MHZ;
Tx.ulInterFrameGap = 960;
Tx.uiInterFrameGapScale = NANO_SCALE;
//VFD1 Parameters
Tx.ucVFD1Mode = HVFD_INCR;
Tx.iVFD1Range = 6;
Tx.uiVFD1Offset = 48;
unsigned char vfdPattern[6];
vfdPattern[1] = 0x11;
vfdPattern[2] = 0x22;
vfdPattern[3] = 0x33;
vfdPattern[4] = 0x44;
vfdPattern[5] = 0x55;
vfdPattern[6] = 0x66;
memcpy(Tx.ucVFD1Pattern, vfdPattern, 6);
//Tx.ucVFD1Pattern = vfdPattern;
Tx.uiVFD1CycleCount = 5;
//VFD3 Parameters
Tx.ucVFD3Mode = HVFD_ENABLED;
Tx.uiVFD3Range = 2;
Tx.uiVFD3Offset = 96;
unsigned char vfdBuffer[6];
vfdBuffer[1] = 0x08;
vfdBuffer[2] = 0x00;
vfdBuffer[3] = 0x08;
vfdBuffer[4] = 0x06;
vfdBuffer[5] = 0x81;
vfdBuffer[6] = 0x37;
memcpy(Tx.ucVFD3Buffer, vfdBuffer, 6);
//Tx.ucVFD3Buffer = vfdBuffer;
Tx.uiVFD3DataCount = 6;
CHECKERROR(HTSetStructure(ETH_TRANSMIT, 0, 0, 0,
(void*) Tx, sizeof(Tx), h, s, p));
}
The error I keep getting is the following:
error C2440: 'type cast' : cannot convert from 'ETHTransmit' to 'void *
'
which is associated with the following line
Code:
CHECKERROR(HTSetStructure(ETH_TRANSMIT, 0, 0, 0,
(void*) Tx, sizeof(Tx), h, s, p));
According to the documentation I am consulting when doing this, the function HTSetStructure must be in the following form.
Code:
int HTSetStructure(int iType1, int iType2, int iType3, int iType4,
void* pData, int iLen, int iHub, int iSlot, int iPort);
Does anybody have any ideas what I am doing wrong and how to fix it?
Regards
Brownie
//Microsoft Visual C++ Express 2008 on Windows XP