Other Parts Discussed in Thread: IWR1443, AWR1642
Tool/software: Code Composer Studio
Hello Community,
I'm working on High Accuracy (Level Sensing) demo project on AWR1642BOOST. I'm confused at a point. In the documentation of Out of Box demo project (which is at /<mmwave_sdk_install_dir>/packages/ti/demo/xwr16xx/mmw/docs/doxygen/html/index.html), It says the Range Profile TLV consists of uint16_t:
Range profile
Type: (MMWDEMO_OUTPUT_MSG_RANGE_PROFILE)
Length: (Range FFT size) x (size of uint16_t)
Value: Array of profile points at 0th Doppler (stationary objects). In XWR16xx the points represent the sum of log2 magnitudes of received antennas, expressed in Q8 format. In XWR14xx the points represent the average of log2 magnitudes of received antennas, expressed in Q9 format.
I have worked on IWR1443's High Accuracy demo project before. The Range Profile TLV of the IWR1443's demo project fits the description above and It sends exact the same thing (main.c, line 978):
UART_writePolling (uartHandle, (uint8_t*)(MMW_HWA_1D_OUT_PING), obj->numRangeBins * sizeof(uint16_t));
But after I started to work on AWR1642, I noticed that the contents of Range Profile TLV is different than the documentation. In the AWR1642's High Accuracy demo project, the MSS code (mss_main.c, line 294) sends two float values per FFT output:
UART_writePolling (uartHandle, (uint8_t*)outputData->fft1Dinput, 2 * fft1D_length * sizeof(float));
My question is, what is the meaning of those float values that AWR1642 sends? How can I parse them to get the actual range profile like I did in IWR1443?
Thank you.