stm32 esp8266 ota升级-qt bin文件处理工具

stm32 esp8266 ota系列文章:
stm32 esp8266 ota-快速搭建web服务器之docker安装openresty
stm32 esp8266 ota升级-tcp模拟http
stm32 esp8266 ota升级-hex合并-烧录-bin生成
stm32 esp8266 ota升级-qt bin文件处理工具
stm32 esp8266 ota升级-自建mqtt和文件服务器动态AB面方式
stm32 esp8266 ota升级-自建mqtt和文件服务器全量升级

stm32 esp8266 ota升级-qt bin文件处理工具

本文主要介绍qt实现对bin文件每隔固定字节插入crc校验,进而用于后期ota升级。无有具体OTA代码讲解!!!

qt安装

请参考https://blog.csdn.net/weixin_46386047/article/details/125268144 博文,感谢博主分享;

qt使用

请参考https://xcc-2022.blog.csdn.net/article/details/127611678?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-127611678-blog-120595809.pc_relevant_recovery_v2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-127611678-blog-120595809.pc_relevant_recovery_v2&utm_relevant_index=6博文,感谢博主分享;

说明:边学边做,根据所学知识能够独立完成所需功能即可。

软件功能

界面

image-20221227140222088

功能

校验字节数:每隔多少字节,进行crc校验,并将crc校验值插入其后。

校验算法:使用crc进行校验,支持CRC_8_MAXIM,CRC_16_MODBUS和CRC_32三种,默认CRC_16_MODBUS。

原文件:待处理的bin文件。

目标文件:crc校验插值处理后保存的文件。

生成 -> 点击进行crc校验处理,并生成校验文件。

主要实现

获取字节数,算法,文件路径

  // 获取处理的每包字节数
  qint32 package_size = ui->crcByteEdit->text().toInt();
  // 获取文件路径
  QString readfilePath = ui->srcEdit->text();
  // 文件保存路径
  QString writefilePath = ui->destEdit->text();
  // crc校验算法
  QString comboBox_crc = ui->comboBox_crc->currentText();
  qint8 comBoxIndex = ui->comboBox_crc->currentIndex();

读取bin文件,获取文件信息,然后计算需要处理的包数及最后一包实际字节个数。

image-20221227141139820

首先,对每包数据进行crc校验(除最后一包),然后写入到文件
image-20221227141603945

处理最后一包数据,然后写入到文件

image-20221227141810807

最后生成处理后的bin文件,通过对比可以看到,每隔512字节增加了2字节的crc16校验数据。

image-20221226182025665

总结

qt对bin文件处理,简单来说:读取bin文件–>分包计算crc–>追加保存到文件。文章来源地址https://uudwc.com/A/gk60z

原文地址:https://blog.csdn.net/a554521655/article/details/128455446

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

上一篇 2023年06月19日 19:27
Unity Animation -- 导入动画
下一篇 2023年06月19日 19:27