Tool/software:
Hello Ti Forum,
I would like to transmit a range doppler map in addition to the point cloud in the Overhead 3D People Tracking demo.
When I have a look at the out of the box demo, I see that the range doppler map is extracted in the transmit process as follows:
void MmwDemo_transmitProcessedOutput(UART_Handle uartHandle, DPC_ObjectDetection_ExecuteResult *result, MmwDemo_output_message_stats *timingInfo) { MmwDemo_output_message_header header; MmwDemo_GuiMonSel *pGuiMonSel; MmwDemo_SubFrameCfg *subFrameCfg; uint32_t tlvIdx = 0; uint32_t i; uint32_t numPaddingBytes; uint32_t packetLen; uint8_t padding[MMWDEMO_OUTPUT_MSG_SEGMENT_LEN]; uint16_t *detMatrix = (uint16_t *)result->detMatrix.data; ... UART_writePolling (uartHandle, (uint8_t*)&tl[tlvIdx], sizeof(MmwDemo_output_message_tl)); UART_writePolling (uartHandle, (uint8_t *) result->azimuthStaticHeatMap, result->azimuthStaticHeatMapSize * sizeof(cmplx16ImRe_t)); tlvIdx++; }
The detMatrix is then transferred to the PC via a TLV.
I have implemented this in my code
tl.type = MMWDEMO_OUTPUT_MSG_RANGE_DOPPLER_HEAT_MAP; tl.length = sizeof(MmwDemo_output_message_tl) + gMmwMssMCB.heatMapOutFromDSP.dataSize; memcpy(txBufPtr, (uint8_t*) &tl, sizeof(MmwDemo_output_message_tl)); txBufPtr += sizeof(MmwDemo_output_message_tl); uint16_t *detMatrix = (uint16_t *)gMmwMssMCB.heatMapOutFromDSP.data; memcpy(txBufPtr, (uint8_t*) &detMatrix, gMmwMssMCB.heatMapOutFromDSP.dataSize); txBufPtr += gMmwMssMCB.heatMapOutFromDSP.dataSize;
But unfortunately, when I look at the transmitted data, it seems that there is no range doppler map stored. Instead some profile information etc. is stored.
(The gMmwMssMCB.heatMapOutFromDSP.dataSize shows a size of 16,384)
(Only a small part of the data, unfortunately I cannot upload the whole file)
I found this post here with more or less the same problem: https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1263500/awr6843aopevm-transmitting-float-data-type-heatmaps-via-uart-in-3d-people-counting-demo
But as far as I can reconstruct the steps, I understand that the address has to be converted to read the data out of the DSS.
uint32_t * heatMapAdd = (uint32_t *)0x20093AF0 - (uint32_t *)0x20000000 + (uint32_t *)0x51000000; heatData = *heatMapAdd;
I have inserted this code in the handleObjectDetResult function in mss_main.c
Can anyone point me in the right direction as to what the next correct step would be?
Is it possible to extract a range doppler map in the 3D people tracking demo?
Many thanks :)
Best Regards,
Tobias