User`s guide
Aironet Wireless Communications, Inc. 7-30 Confidential and Proprietary
static u16
data2rid(u16 *pDat, u16 lenDat, int *pStat)
{
u16 rid;
int status;
if (pDat && lenDat) {
rid = PC4500_allocbuf(lenDat);
if (rid == 0) {
*pStat = 1;
return 0;
}
status = bap0_write(rid, 0, pDat, lenDat);
if (status != 0) *pStat = status;
return rid;
}
return 0;
}
// transmitter testing command
int PC4500_txtest(u16 *pCmd, u16 lenCmd,
u16 *pFreq, u16 lenFreq,
u16 *pPatt, u16 lenPatt)
{
tds4500command cmd;
tds4500response rsp;
int status = 0;
u16 ridCmd, ridFreq, ridPatt;
ridCmd = 0;
ridFreq = 0;
ridPatt = 0;
ridCmd = data2rid(pCmd, lenCmd, &status);
ridFreq = data2rid(pFreq, lenFreq, &status);
ridPatt = data2rid(pPatt, lenPatt, &status);
if (status != 0) goto ERROR_EXIT;
cmd.command = CMD_TXTEST;
cmd.param[0] = ridCmd;
cmd.param[1] = ridFreq;
cmd.param[2] = ridPatt;
status = PC4500_command(&cmd, &rsp);
return status;
ERROR_EXIT:
/* free the allocated buffers */
return status;
}
// for single channel receive mode testing
int PC4500_rxtest(void){
tds4500command cmd;
tds4500response rsp;
memset(&cmd, 0, sizeof(cmd));
cmd.command = CMD_TXTEST + 0x100;
return PC4500_command(&cmd, &rsp);
}