This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AWR1642BOOST:通过 MATLAB 读取.dat 文件

Guru**** 2604225 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/664551/awr1642boost-read-dat-file-by-matlab

器件型号:AWR1642BOOST

您好!

我正在尝试使用 Matlob\Python 来读取雷达板返回的.dat 文件。 我参考 TI 封装中的以下文档:

文件://C:/ti/mmwave_sdk_01_01_00_02/packages/ti/demo/xwr16xx/mmw/docs/doxygen/html/index.html

起初一切都还可以。 然后、当我将固件版本从1.0更改为1.1 (这应该是可以的、因为文档是1.1版本)时、无法正确提取数据。  

问题是无法正确读取 tlv_type。  

MATLAB 代码如下所示:

while ~fof (fin)
nbytes = 0;
outputpkt(counter).magicWord = fread (fin,4,'uint16');
如果 numel (outputpkt(counter).magicWord)=0
中断;
结束
如果 outputpkt(counter).magicWord(1)~=HEX2DEC ('102')...
|| outputpkt(counter).magicWord (2)~=HEX2DEC ('304')...
|| outputpkt(counter).magicWord (3)~=HEX2DEC ('506')...
|| outputpkt (counter).magicWord (4)~=HEX2DEC ('708')
中断;
结束
outputpkt(counter).version = fread (fin,1,'uint32');
outputpkt(counter).totalPacketLen = fread (fin、1、'uint32');
outputpkt(counter).platform = fread (fin,1,'uint32');
outputpkt(counter).frameNumber = fread (fin、1、'uint32');
outputpkt(计数器).timeCpuCycles = fread (fin、1、'uint32');
outputpkt(counter).numDetectedObj = fread (fin、1、'uint32');
outputpkt(counter).numTLV = fread (fin、1、'uint32');
outputpkt (counter).tlv =结构;

nbytes = nbytes + 36;

对于 tlvcounter = 1:outputpkt(counter).numTLV
  outputpkt(counter).tlv (tlvcounter).tlv_type = fread (fin、1、'uint32');
  outputpkt(counter).tlv (tlvcounter).tlv_length = fread (fin,1,'uint32');....

以前、这部分代码运行良好。 现在无法正确读取 tlv_type。

请问问题是什么?

盖雷

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    输出格式在1.0和1.1之间是相同的

    e2e.ti.com/.../2380175


    我建议您在 MATLAB 中设置断点以调试此代码。

    1.0和1.1之间可能存在其他差异、这可能会解释这种行为


    谢谢你
    Cesar
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Gelei、

    SDK 的版本1.0.0.5和1.0.2之间的 MmwDemo_output_message_header_t 结构存在细微差异。 标头结构现在有一个额外的"uint32_t subFrameNumberNumber"字段、因此现在为40字节而不是36字节。

    请参阅:
    文件://C:/ti/mmwave_sdk_01_01_00_02/packages/ti/demo/xwr16xx/mmw/docs/doxygen/html/struct_mmw_demo__output__message__header__t.html

    文件://C:/ti/mmwave_sdk_01_00_00_05/packages/ti/demo/xwr16xx/mmw/docs/doxygen/html/struct_mmw_demo__output__message__header__t.html

    如果您可以相应地调整脚本、则应该能够正确解析数据。

    此致、
    Anand
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Anand、您好!

    是的、你是对的! 我添加了子项编号的额外字节。 现在、代码起作用。  

    非常感谢!

    盖雷