Part Number: TDA2EXEVM
Hi,
We are using PkDetect Alg plugn to process 16 RX channels output from 4 EVEs running 2D FFT. We create a usecase where we output of 4 FFTs running on 4 EVEs are merged and sync together to form input of PkDetect Alg running on EVE1. The output of PkDetect Alg doesn't look correct however. We are looking for some pointers on how to setup the PkDetect input parameters to let EVE1 knows of the 16RX channels we need it to process. Code snippet below are what we are not sure about.
Thanks You,
--Khai
inBufAddr[4] contains 4 pointers to 4 FFT output buffers
pObj->pProcessInArgs->inAlgArgs.inBufs.bufDesc[PEAK_DETECTION_TI_BUFDESC_IN_ANTENNA_DATA_BUF]->bufPlanes[0].buf = inBufAddr; // Khai: NOT sure if this is correct
pObj->pProcessInArgs->inAlgArgs.outBufs.bufDesc[PEAK_DETECTION_TI_BUFDESC_OUT_BUFFER]->bufPlanes[0].buf = (UInt8 *)&pkDetDesc->objBuf;
pObj->pProcessInArgs->inAlgArgs.outBufs.bufDesc[PEAK_DETECTION_TI_BUFDESC_OUT_ENERGY_BUFFER]->bufPlanes[0].buf = (UInt8 *)&pkDetDesc->energyBuf;
if (algLinkParams->enableAntennaDataOut == 1)
{
pObj->pProcessInArgs->inAlgArgs.outBufs.bufDesc[PEAK_DETECTION_TI_BUFDESC_OUT_ANTENNA_DATA]->bufPlanes[0].buf = (UInt8 *)&pkDetDesc->antData;
}
pObj->pProcessInArgs->inAlgArgs.inArgs.bufDescription.numChunks = fftMetadata->bufDesc.numChunks;
pObj->pProcessInArgs->inAlgArgs.inArgs.bufDescription.numAntennas = fftMetadata->bufDesc.numAntennas; // Khai: numAntennas=4. Should this be multiply by 4
pObj->pProcessInArgs->inAlgArgs.inArgs.bufDescription.numVertPoints = fftMetadata->bufDesc.numVertPoints;
// Khai: What about the rest of below setting?
for (i = 0U; i < fftMetadata->bufDesc.numChunks; i++)
{
pObj->pProcessInArgs->inAlgArgs.inArgs.bufDescription.numHorzPoints[i] = fftMetadata->bufDesc.numHorzPoints[i];
pObj->pProcessInArgs->inAlgArgs.inArgs.bufDescription.offsetBwAntennas[i] = fftMetadata->bufDesc.offsetBwAntennas[i];
pObj->pProcessInArgs->inAlgArgs.inArgs.bufDescription.pitch[i] = fftMetadata->bufDesc.pitch[i];
}
pObj->pProcessInArgs->inAlgArgs.inArgs.enableTxDecoding = algLinkCtrlParams->enableTxDecoding;
pObj->pProcessInArgs->inAlgArgs.inArgs.numTx = algLinkCtrlParams->numTx[currProfile];
pObj->pProcessInArgs->inAlgArgs.inArgs.numRx = algLinkCtrlParams->numRx[currProfile];
pObj->pProcessInArgs->inAlgArgs.inArgs.offsetBwTx = fftMetadata->bufDesc.offsetBwAntennas[0] * algLinkCtrlParams->numRx[currProfile];
pObj->pProcessInArgs->inAlgArgs.inArgs.offsetBwRx = fftMetadata->bufDesc.offsetBwAntennas[0];
pObj->pProcessInArgs->inAlgArgs.inArgs.txDecodingCoefficients = (Int16*)algLinkCtrlParams->txDecodingCoefficients;
pObj->pProcessInArgs->inAlgArgs.inArgs.rangeDim = algLinkCtrlParams->rangeDim[currProfile];
pObj->pProcessInArgs->inAlgArgs.inArgs.dopplerDim = algLinkCtrlParams->dopplerDim[currProfile];
memcpy((void *)&pObj->pProcessInArgs->inAlgArgs.inArgs.algoParams.cfarCaDb,
(const void *)&algLinkCtrlParams->cfarCaDb, sizeof(PEAK_DETECTION_TI_CfarCaDbParams));