python读取bin文件,转成16进制通信协议
1. 项目说明
在进行远程升级单片机程序或者什么别的内容的时候,我们往往需要下载远程的bin文件,并将其内容读出,以切片的方式进行程序的更新。本项目即是使用python编写的一个读取bin文件内容,并将其进行切片组成相应的协议包。
2. 核心代码
- 读取bin文件
import osdef print_hex(bytes):l = [hex(int(i)).replace('0x', '').zfill(2) for i in bytes]return " ".join(l)with open("./01.bin", "rb") as file:l1 = []for line in file:l1.extend(print_hex(line).split(' '))frame = len(l1) // 128for i in range(frame):print(l1[i*128:128+i*128])print(l1[frame*128: len(l1)])
- 封包成自定义的通信协议
'''
生成通信协议
'''
def create():content = (t_origin.get("0.0", "end")).split("\n")content.pop() # 列表最后一个元素是空删除它res = content[0].split(" ") # 不加任何参数crc = 0for re in res:crc += int(re, 16)crc = str(hex(crc//(len(res)+3))).replace('0x', '')test = ['ff', 'ff', '13', '02', str(hex(len(res)+2)).replace('0x', '')]tmp = [crc, 'ee', 'ee']test.extend(res)test.extend(tmp)t_dest.delete('1.0', 'end')t_dest.insert('0.0', test)
3. 最终版程序
为了方便演示效果,用python写了个桌面版程序,源码已经上传到github上:https://github.com/ceoifung/Bin2Protocol
python读取bin文件,转成16进制通信协议相关推荐
- MFC读取bin文件并以16进制显示出来
**MFC读取bin文件并以16进制显示出来** 最近由于项目需要.需要对目标板的bin文件进行修改后使用.所以就想自己写一个上位机小工具来进行操作,结果在做的过程中遇到了一些意想之外问题(本人MFC ...
- python定义16进制数组_python 文件转成16进制数组的实例
如下所示: #! /usr/bin/python2 # coding=utf-8 import numpy import binascii if __name__=='__main__': #my_m ...
- Linux中如何将文件dump成16进制值
http://www.cnblogs.com/bcxx_qin/archive/2009/05/06/1450596.html 在linux中有多种方式可以将文件dump成16进制显示,也可以将16进 ...
- php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...
- php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!
php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...
- php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!编辑
php如何将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串!经过查找居然如此简单,一个函数就搞定了. 数据库脚本: -- -------------------- ...
- python 读取bin文件
python读取bin文件并下发串口 # coding:utf-8import time, serialfrom struct import *import binascii file = open( ...
- 用Matlab把 .txt文件中的16进制数据转换成2进制数据
问题描述 使用Matlab将.txt文本文件里面存放的16进制数据转换成2进制数据,放入一个新的.txt文件中.直接附代码解释,第一次发文章,仅为了练习使用和记录. clear; clc; fid = ...
- python把浮点数转换成16进制_delphi 浮点数float转换成十六进制字符串的方法(FloatToHex)...
重新书写了float型转为十六进制的delphi程序 Function FloatToHex(Value: single): string; var l, i: integer; HexText,te ...
最新文章
- linux shell中文显示
- 远程过程调用(Remote Procedure Call,RPC)
- php 操作 mysql 数据库常用方法集合
- oracle orapath,SQLNET.ORA中的NAMES.DIRECTORY_PATH设置
- nuxt asyncData extendRoutes nuxtServerInit
- axios请求中跨域及post请求问题解决方案
- Vuex的API文档
- Java微信如何自动添加好友,微信自动加好友 模拟位置
- Python爬虫——爬去必应壁纸(简化版)
- matlab中基于传递函数或者状态方程的幅频特性分析
- 【deepin】安装与设置win10独立双系统 - 战神Z7-SL7S3安装deepin15.11,并双屏显示
- 机器人学——1.2-三维空间位姿描述
- 这些实用的手机小技巧分享给你
- 研究生毕业论文如何选题
- STM32CubeMX(stm32F030C8T6) 之RTC闹钟唤醒停机模式-STM32开发实战 (2)
- 搜索引擎排名都选乐云seo_百度官网排名-搜索引擎算法优化
- Piezo Mac 优秀的录音软件
- Sql server mssqlserver 服务无法启动
- Mac入门--通过homebrew下载过慢问题
- java里怎么判断时间重合_java 时间段重合时间差