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 = 0TLV_head:
TLV_head type = 0
TLV_head length = 128VitalSignsDemo_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.00TLV_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 = 0TLV_head:
TLV_head type = 0
TLV_head length = 128VitalSignsDemo_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.00TLV_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 = 0TLV_head:
TLV_head type = 0
TLV_head length = 128VitalSignsDemo_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.00TLV_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 = 0TLV_head:
TLV_head type = 0
TLV_head length = 128VitalSignsDemo_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.00TLV_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 = 0TLV_head:
TLV_head type = 0
TLV_head length = 128VitalSignsDemo_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.00TLV_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;
}
相关文章:
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…...
vue3 父子组件传值
一,子传父 父组件 <script setup> import HelloWorld from ./components/HelloWorld.vue import { ref } from vue//直接赋值页面不会自动渲染,使用ref存储响应式数据 import { defineExpose } from "vue";父传子 let val ref(); con…...

【看懂MPLS LSP表项】
IP网络 R1根据路由表项去查FIB表 目的网络、出口、下一跳 MPLS网络 R1根据LFIB表现去查表, 路由,出口、(标签) 要实现MPLS网络全局可达性,R1应具有到每一个LSR、LSE的路由。 1、R1去FEC(转发等价类) /去往2.2.2.2的路由《路由方…...
代码随想录训练营 单调栈
代码随想录训练营 单调栈 84. 柱状图中最大的矩形🌸 最后一天~ 84. 柱状图中最大的矩形🌸 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最…...
Android MQTT
MQTT Android MQTT连接,重新编译Service-1.1.1兼容Android高版本服务 Paho Android Service-1.1.1 Paho Client Mqtt3-1.1.0 资源 名字资源AAR下载GitHub查看Gitee查看 Maven 1.build.grade allprojects {repositories {...maven { url https://jitpack.io }} }2./app/bu…...
Codeforces Round 823 (Div. 2)C
更好的阅读体验 C. Minimum Notation 思路:我们可以进行的操作时将一个位置的数删除然后在任意位置处添加一个比当前数大1并且小于9的数,所以我们的操作只会让一个数变大,我们统计一个最大值的后缀,贪心的考虑如果当前数的后面有…...

npm发布vue3自定义组件库--方法一
npm发布vue3自定义组件库 创建项目 vue create test-ui自定义组件 创建自定义组件,组件名称根据你的需求来,最好一个组件一个文件夹,下图是我的示例。 src/components 组件和你写页面一样,所谓组件就是方便实用,不…...

Centos7原生hadoop环境,搭建Impala集群和负载均衡配置
Centos7原生hadoop环境,搭建Impala集群和负载均衡配置 impala介绍 Impala集群包含一个Catalog Server (Catalogd)、一个Statestore Server (Statestored) 和若干个Impala Daemon (Impalad)。Catalogd主要负责元数据的获取和DDL的执行,Statestored主要负…...
如何在macOS上安装Go并搭建本地编程环境
引言 Go是一种诞生于挫折中的编程语言。在谷歌,开发人员厌倦了在为新项目选择语言时必须做出权衡。有些语言执行效率很高,但需要很长时间编译,而另一些语言易于编写,但在生产环境中运行效率很低。因此,谷歌发明了Go语…...

postgresql-存储过程
postgresql-存储过程 简述PL/pgSQL 代码块结构示例嵌套子块 声明与赋值控制结构IF 语句CASE 语句简单case语句搜索 CASE 语句 循环语句continuewhilefor语句遍历查询结果 foreach 游标游标传参 错误处理报告错误和信息检查断言 捕获异常自定义函数重载VARIADIC 存储过程示例事务…...
改造user ,使得userId相同视为一个对象,user是Key,User的username做value
如果您想要将具有相同userId的用户视为一个对象,其中User对象是键,而User对象的username是值,您可以使用Java的Map<User, String>数据结构来实现。以下是示例代码: java import java.util.*;class User {private int userI…...

力扣刷题-数组-滑动窗口法相关题目总结
209. 长度最小的子数组(最小滑窗) 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入&…...

Qt创建线程(线程池)
1.线程池可以创建线程统一的管理线程(统一创建、释放线程) 2.使用线程池方法实现点击开始按钮生成10000个随机数,然后分别使用冒泡排序和快速排序排序这10000个随机数,最后在窗口显示排序后的数字: mainwindow.h文件…...
【Java】泛型 之 使用泛型
使用ArrayList时,如果不定义泛型类型时,泛型类型实际上就是 Object: // 编译器警告: List list new ArrayList(); list.add("Hello"); list.add("World"); String first (String) list.get(0); String second (Strin…...
消费者NPS调查,帮您了解客户满意度!
随着市场竞争的日益激烈,了解消费者需求和对企业品牌的认知程度,对于企业的持续发展至关重要。您的客户对您的产品或服务有多满意?您是否想提升客户忠诚度,从而增加业务的持续增长?群狼调研(长沙产品包装测试)为您提供全新的消费者NPS调查服…...

Webpack监视文件修改,自动重新打包文件
方法一:使用watch监视文件变化 在终端中输入以下指令: npx webpack --watch 我们使用这种方法监听文件变化时只会监听我们计算机本地的文件变化,在开发场景中我们的项目是要部署到服务器中的,因此这种方式并不推荐。 方法二&…...

list容器排序案例
案例描述:将Perspn自定义数据类型进行排序,Person中属性有姓名、年龄、身高 排序规则:按照年龄进行升序,如果年龄相同按照身高进行降序 代码示例 #include <iostream> #include <string.h> #include <iterator> #include <vector…...

PHP使用Analysis中英文分词
1、下载Analysis,创建test.php测试 2、引入Analysis实现中文分词 <?php include "./Analysis/Analysis.php";$annew \WordAnalysis\Analysis(); $content"机器学习是一门重要的技术,可以用于数据分析和模式识别。"; //10分词数…...

视频汇聚/视频云存储/视频监控管理平台EasyCVR录像存储功能如何优化?具体步骤是什么?
视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。视频监控系统EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、…...

Web服务(Web Service)
简介 Web服务(Web Service)是一种Web应用开发技术,用XML描述、发布、发现Web服务。它可以跨平台、进行分布式部署。 Web服务包含了一套标准,例如SOAP、WSDL、UDDI,定义了应用程序如何在Web上实现互操作。 Web服务的服…...

UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...

python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的
修改bug思路: 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑:async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
当下AI智能硬件方案浅谈
背景: 现在大模型出来以后,打破了常规的机械式的对话,人机对话变得更聪明一点。 对话用到的技术主要是实时音视频,简称为RTC。下游硬件厂商一般都不会去自己开发音视频技术,开发自己的大模型。商用方案多见为字节、百…...

java 局域网 rtsp 取流 WebSocket 推送到前端显示 低延迟
众所周知 摄像头取流推流显示前端延迟大 传统方法是服务器取摄像头的rtsp流 然后客户端连服务器 中转多了,延迟一定不小。 假设相机没有专网 公网 1相机自带推流 直接推送到云服务器 然后客户端拉去 2相机只有rtsp ,边缘服务器拉流推送到云服务器 …...

OpenHarmony标准系统-HDF框架之I2C驱动开发
文章目录 引言I2C基础知识概念和特性协议,四种信号组合 I2C调试手段硬件软件 HDF框架下的I2C设备驱动案例描述驱动Dispatch驱动读写 总结 引言 I2C基础知识 概念和特性 集成电路总线,由串网12C(1C、12C、Inter-Integrated Circuit BUS)行数据线SDA和串…...

Ubuntu 安装 Mysql 数据库
首先更新apt-get工具,执行命令如下: apt-get upgrade安装Mysql,执行如下命令: apt-get install mysql-server 开启Mysql 服务,执行命令如下: service mysql start并确认是否成功开启mysql,执行命令如下&am…...