当前位置: 首页 > news >正文

C++ 读bin文件,部分代码。赚经验。

编号:1
Head:
magicWord[0] = 0x0102   magicWord[1] = 0x0304   magicWord[2] = 0x0506   magicWord[3] = 0x0708
version = 0x02010004
totalPacketLen = 288
platform = 0x000a1443
frameNumber = 12
timeCpuCycles = 172969774
numDetectedObj = 99
numTLVs = 2
subFrameNumber = 0

TLV_head:
TLV_head type = 0
TLV_head length = 128

VitalSignsDemo_OutputStats:
rangeBinIndexMax = 0
rangeBinIndexPhase = 8
maxVal = 277225536.00
processingCyclesOut = 6916614
rangeBinStartIndex = 8
rangeBinEndIndex = 29
unwrapPhasePeak_mm = 0.49
outputFilterBreathOut = 0.08
outputFilterHeartOut = -0.08
heartRateEst_FFT = 46.88
heartRateEst_FFT_4Hz = 94.92
heartRateEst_xCorr = 133.33
heartRateEst_peakCount_filtered = 0.00
breathingRateEst_FFT = 8.20
breathingRateEst_xCorr = 36.36
breathingRateEst_peakCount = 0.00
confidenceMetricBreathOut = 3.52
confidenceMetricBreathOut_xCorr = 0.00
confidenceMetricHeartOut = 0.00
confidenceMetricHeartOut_4Hz = 0.00
confidenceMetricHeartOut_xCorr = 0.00
sumEnergyBreathWfm = 27.66
sumEnergyHeartWfm = 4.59
motionDetectedFlag = 0.00
breathingRateEst_harmonicEnergy = 0.00
heartRateEst_harmonicEnergy = 0.00
reserved7 = 0.00
reserved8 = 0.00
reserved9 = 0.00
reserved10 = 0.00
reserved11 = 0.00
reserved12 = 0.00
reserved13 = 0.00
reserved14 = 0.00

TLV_head:
TLV_head type = 1
TLV_head length = 88

编号:2
Head:
magicWord[0] = 0x0102   magicWord[1] = 0x0304   magicWord[2] = 0x0506   magicWord[3] = 0x0708
version = 0x02010004
totalPacketLen = 288
platform = 0x000a1443
frameNumber = 60
timeCpuCycles = 652964598
numDetectedObj = 99
numTLVs = 2
subFrameNumber = 0

TLV_head:
TLV_head type = 0
TLV_head length = 128

VitalSignsDemo_OutputStats:
rangeBinIndexMax = 0
rangeBinIndexPhase = 8
maxVal = 35906888.00
processingCyclesOut = 6915730
rangeBinStartIndex = 8
rangeBinEndIndex = 29
unwrapPhasePeak_mm = 5.92
outputFilterBreathOut = 0.12
outputFilterHeartOut = 0.73
heartRateEst_FFT = 71.48
heartRateEst_FFT_4Hz = 124.22
heartRateEst_xCorr = 66.67
heartRateEst_peakCount_filtered = 4.69
breathingRateEst_FFT = 30.47
breathingRateEst_xCorr = 30.77
breathingRateEst_peakCount = 9.38
confidenceMetricBreathOut = 2.05
confidenceMetricBreathOut_xCorr = 0.85
confidenceMetricHeartOut = 0.30
confidenceMetricHeartOut_4Hz = 0.30
confidenceMetricHeartOut_xCorr = 0.76
sumEnergyBreathWfm = 6103.43
sumEnergyHeartWfm = 2001.75
motionDetectedFlag = 1.00
breathingRateEst_harmonicEnergy = 0.00
heartRateEst_harmonicEnergy = 0.00
reserved7 = 0.00
reserved8 = 0.00
reserved9 = 0.00
reserved10 = 0.00
reserved11 = 0.00
reserved12 = 0.00
reserved13 = 0.00
reserved14 = 0.00

TLV_head:
TLV_head type = 1
TLV_head length = 88

编号:3
Head:
magicWord[0] = 0x0102   magicWord[1] = 0x0304   magicWord[2] = 0x0506   magicWord[3] = 0x0708
version = 0x02010004
totalPacketLen = 288
platform = 0x000a1443
frameNumber = 62
timeCpuCycles = 672967133
numDetectedObj = 99
numTLVs = 2
subFrameNumber = 0

TLV_head:
TLV_head type = 0
TLV_head length = 128

VitalSignsDemo_OutputStats:
rangeBinIndexMax = 0
rangeBinIndexPhase = 8
maxVal = 42392180.00
processingCyclesOut = 6919524
rangeBinStartIndex = 8
rangeBinEndIndex = 29
unwrapPhasePeak_mm = 4.92
outputFilterBreathOut = -0.00
outputFilterHeartOut = 1.32
heartRateEst_FFT = 71.48
heartRateEst_FFT_4Hz = 124.22
heartRateEst_xCorr = 66.67
heartRateEst_peakCount_filtered = 4.69
breathingRateEst_FFT = 30.47
breathingRateEst_xCorr = 30.00
breathingRateEst_peakCount = 9.38
confidenceMetricBreathOut = 2.93
confidenceMetricBreathOut_xCorr = 0.85
confidenceMetricHeartOut = 0.30
confidenceMetricHeartOut_4Hz = 0.30
confidenceMetricHeartOut_xCorr = 0.76
sumEnergyBreathWfm = 4945.99
sumEnergyHeartWfm = 3252.34
motionDetectedFlag = 1.00
breathingRateEst_harmonicEnergy = 0.00
heartRateEst_harmonicEnergy = 0.00
reserved7 = 0.00
reserved8 = 0.00
reserved9 = 0.00
reserved10 = 0.00
reserved11 = 0.00
reserved12 = 0.00
reserved13 = 0.00
reserved14 = 0.00

TLV_head:
TLV_head type = 1
TLV_head length = 88

编号:4
Head:
magicWord[0] = 0x0102   magicWord[1] = 0x0304   magicWord[2] = 0x0506   magicWord[3] = 0x0708
version = 0x02010004
totalPacketLen = 288
platform = 0x000a1443
frameNumber = 64
timeCpuCycles = 692964050
numDetectedObj = 99
numTLVs = 2
subFrameNumber = 0

TLV_head:
TLV_head type = 0
TLV_head length = 128

VitalSignsDemo_OutputStats:
rangeBinIndexMax = 0
rangeBinIndexPhase = 8
maxVal = 38704580.00
processingCyclesOut = 6913536
rangeBinStartIndex = 8
rangeBinEndIndex = 29
unwrapPhasePeak_mm = 4.50
outputFilterBreathOut = -0.17
outputFilterHeartOut = 0.55
heartRateEst_FFT = 71.48
heartRateEst_FFT_4Hz = 124.22
heartRateEst_xCorr = 66.67
heartRateEst_peakCount_filtered = 4.69
breathingRateEst_FFT = 29.30
breathingRateEst_xCorr = 30.77
breathingRateEst_peakCount = 9.38
confidenceMetricBreathOut = 2.98
confidenceMetricBreathOut_xCorr = 0.87
confidenceMetricHeartOut = 0.30
confidenceMetricHeartOut_4Hz = 0.30
confidenceMetricHeartOut_xCorr = 0.76
sumEnergyBreathWfm = 4038.94
sumEnergyHeartWfm = 3728.13
motionDetectedFlag = 1.00
breathingRateEst_harmonicEnergy = 0.00
heartRateEst_harmonicEnergy = 0.00
reserved7 = 0.00
reserved8 = 0.00
reserved9 = 0.00
reserved10 = 0.00
reserved11 = 0.00
reserved12 = 0.00
reserved13 = 0.00
reserved14 = 0.00

TLV_head:
TLV_head type = 1
TLV_head length = 88

编号:5
Head:
magicWord[0] = 0x0102   magicWord[1] = 0x0304   magicWord[2] = 0x0506   magicWord[3] = 0x0708
version = 0x02010004
totalPacketLen = 288
platform = 0x000a1443
frameNumber = 66
timeCpuCycles = 712964963
numDetectedObj = 99
numTLVs = 2
subFrameNumber = 0

TLV_head:
TLV_head type = 0
TLV_head length = 128

VitalSignsDemo_OutputStats:
rangeBinIndexMax = 0
rangeBinIndexPhase = 8
maxVal = 230556496.00
processingCyclesOut = 6914486
rangeBinStartIndex = 8
rangeBinEndIndex = 29
unwrapPhasePeak_mm = 4.34
outputFilterBreathOut = -0.38
outputFilterHeartOut = -1.58
heartRateEst_FFT = 71.48
heartRateEst_FFT_4Hz = 124.22
heartRateEst_xCorr = 66.67
heartRateEst_peakCount_filtered = 4.69
breathingRateEst_FFT = 28.12
breathingRateEst_xCorr = 30.00
breathingRateEst_peakCount = 9.38
confidenceMetricBreathOut = 2.57
confidenceMetricBreathOut_xCorr = 0.91
confidenceMetricHeartOut = 0.30
confidenceMetricHeartOut_4Hz = 0.30
confidenceMetricHeartOut_xCorr = 0.76
sumEnergyBreathWfm = 3479.94
sumEnergyHeartWfm = 4708.27
motionDetectedFlag = 1.00
breathingRateEst_harmonicEnergy = 0.00
heartRateEst_harmonicEnergy = 0.00
reserved7 = 0.00
reserved8 = 0.00
reserved9 = 0.00
reserved10 = 0.00
reserved11 = 0.00
reserved12 = 0.00
reserved13 = 0.00
reserved14 = 0.00

TLV_head:
TLV_head type = 1
TLV_head length = 88

共取到了 5个数据

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#define FILENAME "DataOutput_XWR14xx.bin"typedef struct Header {uint16_t    magicWord[4];  uint32_t    version;            uint32_t    totalPacketLen;      uint32_t    platform;            uint32_t    frameNumber;         uint32_t    timeCpuCycles;       uint32_t    numDetectedObj;      uint32_t    numTLVs;uint32_t    subFrameNumber;
}Header_t;Header_t head;typedef struct MmwDemo_output_message_tl_t
{//tlv是通讯协议,在bin里这个type一个是0一个是1,//用来识别他之后的数据是output还是rangeprofile,uint32_t    type;  //0   //1    //length告知有多少字节数据uint32_t    length;} MmwDemo_output_message_tl;MmwDemo_output_message_tl   TLV_head, TLV_head1;typedef struct VitalSignsDemo_OutputStats_t
{uint16_t rangeBinIndexMax;          // 1uint16_t rangeBinIndexPhase;        // 1float maxVal;                       // 2uint32_t processingCyclesOut;       // 3uint16_t rangeBinStartIndex;        // 4uint16_t rangeBinEndIndex;          // 4float unwrapPhasePeak_mm;           // 5float outputFilterBreathOut;        // 6float outputFilterHeartOut;         // 7float heartRateEst_FFT;             // 8心率FFTfloat heartRateEst_FFT_4Hz;         // 9float heartRateEst_xCorr;           // 10float heartRateEst_peakCount_filtered;  // 11峰值间隔float breathingRateEst_FFT;             // 12呼吸FFTfloat breathingRateEst_xCorr;           // 13float breathingRateEst_peakCount;       // 14float confidenceMetricBreathOut;        // 15呼吸置信度float confidenceMetricBreathOut_xCorr;  // 16float confidenceMetricHeartOut;         // 17心率置信度float confidenceMetricHeartOut_4Hz;     // 18float confidenceMetricHeartOut_xCorr;   // 19float sumEnergyBreathWfm;               // 20float sumEnergyHeartWfm;                // 21float motionDetectedFlag;               // 22float breathingRateEst_harmonicEnergy;  // 23float heartRateEst_harmonicEnergy;      // 24float reserved7;  //25float reserved8;  //26float reserved9;  //27float reserved10; //28float reserved11; //29float reserved12; //30float reserved13; //31float reserved14; //32
} VitalSignsDemo_OutputStats;VitalSignsDemo_OutputStats outputStats;void printOutputStats() {printf("\nVitalSignsDemo_OutputStats:\n");printf("rangeBinIndexMax = %hd\n", outputStats.rangeBinIndexMax);   //1printf("rangeBinIndexPhase = %hd\n", outputStats.rangeBinIndexPhase);  //1printf("maxVal = %.2f\n", outputStats.maxVal);  //2printf("processingCyclesOut = %d\n", outputStats.processingCyclesOut);  //3printf("rangeBinStartIndex = %hd\n", outputStats.rangeBinStartIndex);  //4printf("rangeBinEndIndex = %hd\n", outputStats.rangeBinEndIndex);  //4printf("unwrapPhasePeak_mm = %.2f\n", outputStats.unwrapPhasePeak_mm);  //5printf("outputFilterBreathOut = %.2f\n", outputStats.outputFilterBreathOut);  //6printf("outputFilterHeartOut = %.2f\n", outputStats.outputFilterHeartOut);  //7printf("heartRateEst_FFT = %.2f\n", outputStats.heartRateEst_FFT);  //8printf("heartRateEst_FFT_4Hz = %.2f\n", outputStats.heartRateEst_FFT_4Hz);  //9printf("heartRateEst_xCorr = %.2f\n", outputStats.heartRateEst_xCorr);  //10printf("heartRateEst_peakCount_filtered = %.2f\n", outputStats.heartRateEst_peakCount_filtered);  //11printf("breathingRateEst_FFT = %.2f\n", outputStats.breathingRateEst_FFT);  //12printf("breathingRateEst_xCorr = %.2f\n", outputStats.breathingRateEst_xCorr);  //13printf("breathingRateEst_peakCount = %.2f\n", outputStats.breathingRateEst_peakCount);  //14printf("confidenceMetricBreathOut = %.2f\n", outputStats.confidenceMetricBreathOut);  //15printf("confidenceMetricBreathOut_xCorr = %.2f\n", outputStats.confidenceMetricBreathOut_xCorr);  //16printf("confidenceMetricHeartOut = %.2f\n", outputStats.confidenceMetricHeartOut);  //17printf("confidenceMetricHeartOut_4Hz = %.2f\n", outputStats.confidenceMetricHeartOut_4Hz);  //18printf("confidenceMetricHeartOut_xCorr = %.2f\n", outputStats.confidenceMetricHeartOut_xCorr);  //19printf("sumEnergyBreathWfm = %.2f\n", outputStats.sumEnergyBreathWfm);  //20printf("sumEnergyHeartWfm = %.2f\n", outputStats.sumEnergyHeartWfm);  //21printf("motionDetectedFlag = %.2f\n", outputStats.motionDetectedFlag);  //22printf("breathingRateEst_harmonicEnergy = %.2f\n", outputStats.breathingRateEst_harmonicEnergy);  //23printf("heartRateEst_harmonicEnergy = %.2f\n", outputStats.heartRateEst_harmonicEnergy);  //24printf("reserved7 = %.2f\n", outputStats.reserved7);  //25printf("reserved8 = %.2f\n", outputStats.reserved8);  //26printf("reserved9 = %.2f\n", outputStats.reserved9);  //27printf("reserved10 = %.2f\n", outputStats.reserved10);  //28printf("reserved11 = %.2f\n", outputStats.reserved11);  //29printf("reserved12 = %.2f\n", outputStats.reserved12);  //30printf("reserved13 = %.2f\n", outputStats.reserved13);  //31printf("reserved14 = %.2f\n", outputStats.reserved14);  //32}void printTLV_head(MmwDemo_output_message_tl *TLV_head) {printf("\nTLV_head:\n");printf("TLV_head type = %d\n", TLV_head->type);printf("TLV_head length = %d\n", TLV_head->length);
}
void printHead() {printf("Head:\n");printf("magicWord[0] = %#06x\t",head.magicWord[0]);printf("magicWord[1] = %#06x\t", head.magicWord[1]);printf("magicWord[2] = %#06x\t", head.magicWord[2]);printf("magicWord[3] = %#06x\n", head.magicWord[3]);printf("version = %#010x\n",head.version);printf("totalPacketLen = %d\n", head.totalPacketLen);printf("platform = %#010x\n", head.platform);printf("frameNumber = %d\n", head.frameNumber);printf("timeCpuCycles = %d\n", head.timeCpuCycles);printf("numDetectedObj = %d\n", head.numDetectedObj);printf("numTLVs = %d\n", head.numTLVs);printf("subFrameNumber = %d\n", head.subFrameNumber);
}
void readFile() {FILE* file;file = fopen(FILENAME, "r");int j = 1;if (file == NULL) {perror("无法打开文件"); // 错误处理exit(1);}while (1) {// 读取文件内容size_t bytesRead;int SIZE = sizeof(Header_t);while (1) {bytesRead = fread(&head, 1, sizeof(Header_t), file);if (head.magicWord[0] == 0x0102 && head.magicWord[1] == 0x0304 && head.magicWord[2] == 0x0506 && head.magicWord[3] == 0x0708)break;else{fseek(file, 4-SIZE, SEEK_CUR);}}printf("编号:%d\n",j++);if (bytesRead > 0) {// 打印读取的数据printHead();}else { break; }bytesRead = fread(&TLV_head, 1, sizeof(MmwDemo_output_message_tl), file);if (bytesRead > 0) {// 打印读取的数据printTLV_head(&TLV_head);}else { break; }bytesRead = fread(&outputStats, 1, sizeof(VitalSignsDemo_OutputStats), file);if (bytesRead > 0) {// 打印读取的数据printOutputStats();}else { break; }bytesRead = fread(&TLV_head1, 1, sizeof(MmwDemo_output_message_tl), file);if (bytesRead > 0) {// 打印读取的数据printTLV_head(&TLV_head1);}else { break; }uint32_t t;int* tmp = (int*)malloc(TLV_head1.length*4);bytesRead = fread(&tmp, TLV_head1.length, 4, file);if (bytesRead == 0) {printf("\n共取到了 %d个数据", j-1);fclose(file);exit(1);}/*for (int i = 0; i < TLV_head1.length; i++) {bytesRead = fread(&t, 1, 4, file);    if (!bytesRead) { printf("\n i = %d ,j = %d时失败",i,j);fclose(file);exit(1); }printf("%04x ", t);        } */puts("");}fclose(file); // 关闭文件
}
int main1()
{readFile();return 0;
}

http://www.lryc.cn/news/173586.html

相关文章:

  • vue3 父子组件传值
  • 【看懂MPLS LSP表项】
  • 代码随想录训练营 单调栈
  • Android MQTT
  • Codeforces Round 823 (Div. 2)C
  • npm发布vue3自定义组件库--方法一
  • Centos7原生hadoop环境,搭建Impala集群和负载均衡配置
  • 如何在macOS上安装Go并搭建本地编程环境
  • postgresql-存储过程
  • 改造user ,使得userId相同视为一个对象,user是Key,User的username做value
  • 力扣刷题-数组-滑动窗口法相关题目总结
  • Qt创建线程(线程池)
  • 【Java】泛型 之 使用泛型
  • 消费者NPS调查,帮您了解客户满意度!
  • Webpack监视文件修改,自动重新打包文件
  • list容器排序案例
  • PHP使用Analysis中英文分词
  • 视频汇聚/视频云存储/视频监控管理平台EasyCVR录像存储功能如何优化?具体步骤是什么?
  • Web服务(Web Service)
  • Java第4章 类的继承
  • Linux网络和安全:配置、远程访问与防御指南
  • 如何搭建Linux环境
  • 【解决方案】edge浏览器批量添加到集锦功能消失的解决方案
  • JS操作字符串方法学习系列(1)-每天学习10个方法
  • iterator和generator
  • ipv6笔记及总结
  • 64位Ubuntu20.04.5 LTS系统安装32位运行库
  • 关于vue.config.js
  • Jupyter NoteBook 中使用 cv2.imshow 显示图片
  • gpt扣款失败,openai扣款失败无法使用-如何解决gpt扣款失败的问题?