Other Parts Discussed in Thread: IWR6843, IWR1642BOOST,
Hi Team,
Currently high accuracy demo gives 3 distances corresponding to 3 peaks in FFT. I would like to get the signal strengths corresponding to these peaks on UART for diagnostic purposes. To implement this, I can see magArray[3] defined in function RADARDEMO_highAccuRangeProc_rangeEst() in the file RADARDEMO_highAccuRangeProc_priv.c
I am trying to push these three values just like 3 estimated ranges being pushed over UART. My modification are as under. I have placed comments to explain the modification and locations where I have modified. After processing, I will compare it with High Accu Demo GUI. I have below questions:
How do I process the magArray after receiving on UART, how does magArray is storing the values of magnitudes?
// Modified the function as below void RADARDEMO_highAccuRangeProc_rangeEst( IN RADARDEMO_highAccuRangeProc_handle *highAccuRangeHandle, OUT float * estRange, OUT float * estRange1, OUT float * estRange2, OUT float * deltaPhaseEst, OUT float * estLinearSNR, OUT float * estmag, OUT float * estmag1, OUT float * estmag2) // value of pointers assigned in the same function, after the three peak finder *estmag = magArray[0]; *estmag1 = magArray[1]; *estmag2 = magArray[2]; // and changed corresponsing structures like below typedef struct { uint32_t fft1DSize; /**< 1D FFT size*/ float rangeEst; float rangeEst1; float rangeEst2; float deltaPhaseEst; float linearSNRest; float fft1Dinput[2 * MAX_FFT1D_SIZE]; float magEst; float magEst1; float magEst2; } radarProcessOutput_NetworkLink_t; // basically removed any errors due to undefined or mismacthes in both dss and mss projects // finally below code in MmwDemo_transmitProcessedOutput() /*send signal strengths*/ { MmwDemo_detectedObj dummySignalStrOut; int32_t tempmag, tempmag1, tempmag2; tempmag = (int32_t)(outputData->magEst); tempmag1 = (int32_t)(outputData->magEst1); tempmag2 = (int32_t)(outputData->magEst2); memset((void *)&dummySignalStrOut, 0, sizeof(MmwDemo_detectedObj)); // signal strength magnitudes; dummySignalStrOut.rangeIdx = (uint16_t) tempmag & 0xFFFF; dummySignalStrOut.x = tempmag >> 16; dummySignalStrOut.peakVal = (uint16_t) tempmag1 & 0xFFFF; dummySignalStrOut.y = tempmag1 >> 16; dummySignalStrOut.dopplerIdx = (uint16_t) tempmag2 & 0xFFFF; dummySignalStrOut.z = tempmag2 >> 16;