📄 dk_client.c
字号:
return (COMMS_ERR_ALLOC_FAIL);
}
bss->Length = 6;
bss->pData = (A_UCHAR *)A_MALLOC(bss->Length);
if (bss->pData == NULL)
{
A_FREE(mac->pData);
A_FREE(mac);
A_FREE(bss);
uiPrintf("Error, unable to allocate memory for bss array \n");
return (COMMS_ERR_ALLOC_FAIL);
}
memcpy(bss->pData,pCmd->CMD_U.RESET_DEVICE_CMD.bss,bss->Length);
/* read the eeprom */
m_resetDevice(pCmd->CMD_U.RESET_DEVICE_CMD.devNum,
mac,
bss,
pCmd->CMD_U.RESET_DEVICE_CMD.freq,
pCmd->CMD_U.RESET_DEVICE_CMD.turbo);
A_FREE(mac->pData);
A_FREE(mac);
A_FREE(bss->pData);
A_FREE(bss);
return 0;
}
/**************************************************************************
*/
A_UINT32 processCheckRegsCmd
(
struct dkThreadInfo *dkThread
)
{
PIPE_CMD *pCmd;
A_UINT32 cmdLen;
CMD_REPLY *ReplyCmd_p;
A_UCHAR *replyBuf;
pCmd = dkThread->PipeBuffer_p;
cmdLen = pCmd->cmdLen;
ReplyCmd_p = dkThread->ReplyCmd_p;
replyBuf = (A_UCHAR *)(ReplyCmd_p->cmdBytes);
/* check that the size is appropriate before we access */
if( cmdLen != sizeof(pCmd->CMD_U.DEV_NUM_CMD)+sizeof(pCmd->cmdID) )
{
uiPrintf("Error, command Len is not equal to size of DEV_NUM_CMD\n");
return(COMMS_ERR_BAD_LENGTH);
}
#ifdef ENDIAN_SWAP
pCmd->CMD_U.DEV_NUM_CMD.devNum = ltob_l(pCmd->CMD_U.DEV_NUM_CMD.devNum);
#endif
/* read the eeprom */
*((A_UINT32 *)replyBuf) = m_checkRegs(pCmd->CMD_U.DEV_NUM_CMD.devNum);
#ifdef ENDIAN_SWAP
*((A_UINT32 *)replyBuf) = btol_l(*((A_UINT32 *)replyBuf));
#endif
return 0;
}
/**************************************************************************
*/
A_UINT32 processChangeChannelCmd
(
struct dkThreadInfo *dkThread
)
{
PIPE_CMD *pCmd;
A_UINT32 cmdLen;
CMD_REPLY *ReplyCmd_p;
A_UCHAR *replyBuf;
pCmd = dkThread->PipeBuffer_p;
cmdLen = pCmd->cmdLen;
ReplyCmd_p = dkThread->ReplyCmd_p;
replyBuf = (A_UCHAR *)(ReplyCmd_p->cmdBytes);
/* check that the size is appropriate before we access */
if( cmdLen != sizeof(pCmd->CMD_U.SET_ONE_CMD)+sizeof(pCmd->cmdID) )
{
uiPrintf("Error, command Len is not equal to size of SET_ONE_CMD\n");
return(COMMS_ERR_BAD_LENGTH);
}
#ifdef ENDIAN_SWAP
pCmd->CMD_U.SET_ONE_CMD.devNum = ltob_l(pCmd->CMD_U.SET_ONE_CMD.devNum);
pCmd->CMD_U.SET_ONE_CMD.param = ltob_l(pCmd->CMD_U.SET_ONE_CMD.param);
#endif
m_changeChannel(pCmd->CMD_U.SET_ONE_CMD.devNum,pCmd->CMD_U.SET_ONE_CMD.param);
return 0;
}
/**************************************************************************
*/
A_UINT32 processCheckPromCmd
(
struct dkThreadInfo *dkThread
)
{
PIPE_CMD *pCmd;
A_UINT32 cmdLen;
CMD_REPLY *ReplyCmd_p;
A_UCHAR *replyBuf;
pCmd = dkThread->PipeBuffer_p;
cmdLen = pCmd->cmdLen;
ReplyCmd_p = dkThread->ReplyCmd_p;
replyBuf = (A_UCHAR *)(ReplyCmd_p->cmdBytes);
/* check that the size is appropriate before we access */
if( cmdLen != sizeof(pCmd->CMD_U.SET_ONE_CMD)+sizeof(pCmd->cmdID) )
{
uiPrintf("Error, command Len is not equal to size of DEV_NUM_CMD\n");
return(COMMS_ERR_BAD_LENGTH);
}
#ifdef ENDIAN_SWAP
pCmd->CMD_U.SET_ONE_CMD.devNum = ltob_l(pCmd->CMD_U.SET_ONE_CMD.devNum);
pCmd->CMD_U.SET_ONE_CMD.param = ltob_l(pCmd->CMD_U.SET_ONE_CMD.param);
#endif
*((A_UINT32 *)replyBuf) = m_checkProm(pCmd->CMD_U.DEV_NUM_CMD.devNum,pCmd->CMD_U.SET_ONE_CMD.param);
#ifdef ENDIAN_SWAP
*((A_UINT32 *)replyBuf) = btol_l(*((A_UINT32 *)replyBuf));
#endif
return 0;
}
/**************************************************************************
*/
A_UINT32 processRereadPromCmd
(
struct dkThreadInfo *dkThread
)
{
PIPE_CMD *pCmd;
A_UINT32 cmdLen;
CMD_REPLY *ReplyCmd_p;
A_UCHAR *replyBuf;
pCmd = dkThread->PipeBuffer_p;
cmdLen = pCmd->cmdLen;
ReplyCmd_p = dkThread->ReplyCmd_p;
replyBuf = (A_UCHAR *)(ReplyCmd_p->cmdBytes);
/* check that the size is appropriate before we access */
if( cmdLen != sizeof(pCmd->CMD_U.DEV_NUM_CMD)+sizeof(pCmd->cmdID) )
{
uiPrintf("Error, command Len is not equal to size of DEV_NUM_CMD\n");
return(COMMS_ERR_BAD_LENGTH);
}
#ifdef ENDIAN_SWAP
pCmd->CMD_U.DEV_NUM_CMD.devNum = ltob_l(pCmd->CMD_U.DEV_NUM_CMD.devNum);
#endif
m_rereadProm(pCmd->CMD_U.DEV_NUM_CMD.devNum);
return 0;
}
/**************************************************************************
*/
A_UINT32 processTxDataSetupCmd
(
struct dkThreadInfo *dkThread
)
{
PIPE_CMD *pCmd;
A_UINT32 cmdLen;
CMD_REPLY *ReplyCmd_p;
A_UCHAR *replyBuf;
PDATABUFFER dest;
PDATABUFFER dataPattern;
pCmd = dkThread->PipeBuffer_p;
cmdLen = pCmd->cmdLen;
ReplyCmd_p = dkThread->ReplyCmd_p;
replyBuf = (A_UCHAR *)(ReplyCmd_p->cmdBytes);
#ifdef ENDIAN_SWAP
pCmd->CMD_U.TX_DATA_SETUP_CMD.dataPatternLength = ltob_l(pCmd->CMD_U.TX_DATA_SETUP_CMD.dataPatternLength);
#endif
/* check that the size is appropriate before we access */
if( cmdLen != (sizeof(pCmd->CMD_U.TX_DATA_SETUP_CMD)+
sizeof(pCmd->cmdID)-
MAX_BLOCK_BYTES+
pCmd->CMD_U.TX_DATA_SETUP_CMD.dataPatternLength))
{
uiPrintf("Error, command Len is not equal to size of TX_DATA_SETUP_CMD\n");
return(COMMS_ERR_BAD_LENGTH);
}
#ifdef ENDIAN_SWAP
pCmd->CMD_U.TX_DATA_SETUP_CMD.devNum = ltob_l(pCmd->CMD_U.TX_DATA_SETUP_CMD.devNum);
pCmd->CMD_U.TX_DATA_SETUP_CMD.rateMask = ltob_l(pCmd->CMD_U.TX_DATA_SETUP_CMD.rateMask);
pCmd->CMD_U.TX_DATA_SETUP_CMD.numDescPerRate = ltob_l(pCmd->CMD_U.TX_DATA_SETUP_CMD.numDescPerRate);
pCmd->CMD_U.TX_DATA_SETUP_CMD.dataBodyLength = ltob_l(pCmd->CMD_U.TX_DATA_SETUP_CMD.dataBodyLength);
pCmd->CMD_U.TX_DATA_SETUP_CMD.retries = ltob_l(pCmd->CMD_U.TX_DATA_SETUP_CMD.retries);
pCmd->CMD_U.TX_DATA_SETUP_CMD.antenna = ltob_l(pCmd->CMD_U.TX_DATA_SETUP_CMD.antenna);
pCmd->CMD_U.TX_DATA_SETUP_CMD.broadcast = ltob_l(pCmd->CMD_U.TX_DATA_SETUP_CMD.broadcast);
#endif
dest = (PDATABUFFER)A_MALLOC(sizeof(PDATABUFFER));
if (dest == NULL)
{
uiPrintf("Error, unable to allocate memory for dest PDATABUFFER struct \n");
return (COMMS_ERR_ALLOC_FAIL);
}
dest->Length = 6;
dest->pData = (A_UCHAR *)A_MALLOC(dest->Length);
if (dest->pData == NULL)
{
A_FREE(dest);
uiPrintf("Error, unable to allocate memory for dest array \n");
return (COMMS_ERR_ALLOC_FAIL);
}
memcpy(dest->pData,pCmd->CMD_U.TX_DATA_SETUP_CMD.dest,dest->Length);
dataPattern = (PDATABUFFER)A_MALLOC(sizeof(PDATABUFFER));
if (dataPattern == NULL)
{
A_FREE(dest->pData);
A_FREE(dest);
uiPrintf("Error, unable to allocate memory for dataPattern PDATABUFFER struct \n");
return (COMMS_ERR_ALLOC_FAIL);
}
dataPattern->Length = (A_UINT16)pCmd->CMD_U.TX_DATA_SETUP_CMD.dataPatternLength;
dataPattern->pData = (A_UCHAR *)A_MALLOC(dataPattern->Length);
if (dataPattern->pData == NULL)
{
A_FREE(dest->pData);
A_FREE(dest);
A_FREE(dataPattern);
uiPrintf("Error, unable to allocate memory for dataPattern array \n");
return (COMMS_ERR_ALLOC_FAIL);
}
memcpy(dataPattern->pData,pCmd->CMD_U.TX_DATA_SETUP_CMD.dataPattern,dataPattern->Length);
m_txDataSetup(pCmd->CMD_U.TX_DATA_SETUP_CMD.devNum,
pCmd->CMD_U.TX_DATA_SETUP_CMD.rateMask,
dest,
pCmd->CMD_U.TX_DATA_SETUP_CMD.numDescPerRate,
pCmd->CMD_U.TX_DATA_SETUP_CMD.dataBodyLength,
dataPattern,
pCmd->CMD_U.TX_DATA_SETUP_CMD.retries,
pCmd->CMD_U.TX_DATA_SETUP_CMD.antenna,
pCmd->CMD_U.TX_DATA_SETUP_CMD.broadcast);
A_FREE(dest->pData);
A_FREE(dest);
A_FREE(dataPattern->pData);
A_FREE(dataPattern);
return 0;
}
/**************************************************************************
*/
A_UINT32 processTxDataBeginCmd
(
struct dkThreadInfo *dkThread
)
{
PIPE_CMD *pCmd;
A_UINT32 cmdLen;
CMD_REPLY *ReplyCmd_p;
A_UCHAR *replyBuf;
pCmd = dkThread->PipeBuffer_p;
cmdLen = pCmd->cmdLen;
ReplyCmd_p = dkThread->ReplyCmd_p;
replyBuf = (A_UCHAR *)(ReplyCmd_p->cmdBytes);
/* check that the size is appropriate before we access */
if( cmdLen != sizeof(pCmd->CMD_U.TX_DATA_BEGIN_CMD)+sizeof(pCmd->cmdID) )
{
uiPrintf("Error, command Len is not equal to size of TX_DATA_BEGIN_CMD\n");
return(COMMS_ERR_BAD_LENGTH);
}
#ifdef ENDIAN_SWAP
pCmd->CMD_U.TX_DATA_BEGIN_CMD.devNum = ltob_l(pCmd->CMD_U.TX_DATA_BEGIN_CMD.devNum);
pCmd->CMD_U.TX_DATA_BEGIN_CMD.timeout = ltob_l(pCmd->CMD_U.TX_DATA_BEGIN_CMD.timeout);
pCmd->CMD_U.TX_DATA_BEGIN_CMD.remoteStats= ltob_l(pCmd->CMD_U.TX_DATA_BEGIN_CMD.remoteStats);
#endif
m_txDataBegin(pCmd->CMD_U.TX_DATA_BEGIN_CMD.devNum,
pCmd->CMD_U.TX_DATA_BEGIN_CMD.timeout,
pCmd->CMD_U.TX_DATA_BEGIN_CMD.remoteStats);
return 0;
}
/**************************************************************************
*/
A_UINT32 processTxDataCompleteCmd
(
struct dkThreadInfo *dkThread
)
{
PIPE_CMD *pCmd;
A_UINT32 cmdLen;
CMD_REPLY *ReplyCmd_p;
A_UCHAR *replyBuf;
pCmd = dkThread->PipeBuffer_p;
cmdLen = pCmd->cmdLen;
ReplyCmd_p = dkThread->ReplyCmd_p;
replyBuf = (A_UCHAR *)(ReplyCmd_p->cmdBytes);
/* check that the size is appropriate before we access */
if( cmdLen != sizeof(pCmd->CMD_U.TX_DATA_BEGIN_CMD)+sizeof(pCmd->cmdID) )
{
uiPrintf("Error, command Len is not equal to size of TX_DATA_COM LETE_CMD\n");
return(COMMS_ERR_BAD_LENGTH);
}
#ifdef ENDIAN_SWAP
pCmd->CMD_U.TX_DATA_BEGIN_CMD.devNum = ltob_l(pCmd->CMD_U.TX_DATA_BEGIN_CMD.devNum);
pCmd->CMD_U.TX_DATA_BEGIN_CMD.timeout = ltob_l(pCmd->CMD_U.TX_DATA_BEGIN_CMD.timeout);
pCmd->CMD_U.TX_DATA_BEGIN_CMD.remoteStats= ltob_l(pCmd->CMD_U.TX_DATA_BEGIN_CMD.remoteStats);
#endif
//Calling direct without going through devlibif
txDataComplete(pCmd->CMD_U.TX_DATA_BEGIN_CMD.devNum,
pCmd->CMD_U.TX_DATA_BEGIN_CMD.timeout,
pCmd->CMD_U.TX_DATA_BEGIN_CMD.remoteStats);
return 0;
}
/**************************************************************************
*/
A_UINT32 processRxDataSetupCmd
(
struct dkThreadInfo *dkThread
)
{
PIPE_CMD *pCmd;
A_UINT32 cmdLen;
CMD_REPLY *ReplyCmd_p;
A_UCHAR *replyBuf;
pCmd = dkThread->PipeBuffer_p;
cmdLen = pCmd->cmdLen;
ReplyCmd_p = dkThread->ReplyCmd_p;
replyBuf = (A_UCHAR *)(ReplyCmd_p->cmdBytes);
/* check that the size is appropriate before we access */
if( cmdLen != sizeof(pCmd->CMD_U.RX_DATA_SETUP_CMD)+sizeof(pCmd->cmdID) )
{
uiPrintf("Error, command Len is not equal to size of RX_DATA_SETUP_CMD\n");
return(COMMS_ERR_BAD_LENGTH);
}
#ifdef ENDIAN_SWAP
pCmd->CMD_U.RX_DATA_SETUP_CMD.devNum = ltob_l(pCmd->CMD_U.RX_DATA_SETUP_CMD.devNum);
pCmd->CMD_U.RX_DATA_SETUP_CMD.numDesc = ltob_l(pCmd->CMD_U.RX_DATA_SETUP_CMD.numDesc);
pCmd->CMD_U.RX_DATA_SETUP_CMD.dataBodyLength = ltob_l(pCmd->CMD_U.RX_DATA_SETUP_CMD.dataBodyLength);
pCmd->CMD_U.RX_DATA_SETUP_CMD.enablePPM = ltob_l(pCmd->CMD_U.RX_DATA_SETUP_CMD.enablePPM);
#endif
m_rxDataSetup(pCmd->CMD_U.RX_DATA_SETUP_CMD.devNum,
pCmd->CMD_U.RX_DATA_SETUP_CMD.numDesc,
pCmd->CMD_U.RX_DATA_SETUP_CMD.dataBodyLength,
pCmd->CMD_U.RX_DATA_SETUP_CMD.enablePPM);
return 0;
}
/**************************************************************************
*/
A_UINT32 processRxDataBeginCmd
(
struct dkThreadInfo *dkThread
)
{
PIPE_CMD *pCmd;
A_UINT32 cmdLen;
CMD_REPLY *ReplyCmd_p;
A_UCHAR *replyBuf;
PDATABUFFER dataPattern;
pCmd = dkThread->PipeBuffer_p;
cmdLen = pCmd->cmdLen;
ReplyCmd_p = dkThread->ReplyCmd_p;
replyBuf = (A_UCHAR *)(ReplyCmd_p->cmdBytes);
#ifdef ENDIAN_SWAP
pCmd->CMD_U.RX_DATA_BEGIN_CMD.dataPatternLength = ltob_l(pCmd->CMD_U.RX_DATA_BEGIN_CMD.dataPatternLength);
#endif
/* check that the size is appropriate before we access */
if( cmdLen != (sizeof(pCmd->CMD_U.RX_DATA_BEGIN_CMD)+
sizeof(pCmd->cmdID)-
MAX_BLOCK_BYTES +
pCmd->CMD_U.RX_DATA_BEGIN_CMD.dataPatternLength))
{
uiPrintf("Error, command Len is not equal to size of RX_DATA_BEGIN_CMD\n");
return(COMMS_ERR_BAD_LENGTH);
}
#ifdef ENDIAN_SWAP
pCmd->CMD_U.RX_DATA_BEGIN_CMD.devNum = ltob_l(pCmd->CMD_U.RX_DATA_BEGIN_CMD.devNum);
pCmd->CMD_U.RX_DATA_BEGIN_CMD.waitTime = ltob_l(pCmd->CMD_U.RX_DATA_BEGIN_CMD.waitTime);
pCmd->CMD_U.RX_DATA_BEGIN_CMD.timeout = ltob_l(pCmd->CMD_U.RX_DATA_BEGIN_CMD.timeout);
pCmd->CMD_U.RX_DATA_BEGIN_CMD.remoteStats = ltob_l(pCmd->CMD_U.RX_DATA_BEGIN_CMD.remoteStats);
pCmd->CMD_U.RX_DATA_BEGIN_CMD.enableCompare = ltob_l(pCmd->CMD_U.RX_DATA_BEG
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -