传输二进制信息的各种文件格式(Motorola S-Record、Intel Hex和二进制文件)的损坏。

bincop的Python项目详细描述


buildstatuscoverage

关于

传送二进制信息的各种文件格式的混乱 (Motorola S-Record、Intel Hex、TI-TXT和二进制文件)。

项目主页:https://github.com/eerimoq/bincopy

文档:http://bincopy.readthedocs.org/en/latest

安装

pipinstallbincopy

示例用法

脚本

从intel hex转换为intel hex、srec、binary的基本示例, 数组和十六进制转储格式:

>>>importbincopy>>>f=bincopy.BinFile("tests/files/in.hex")>>>print(f.as_ihex()):20010000214601360121470136007EFE09D219012146017E17C20001FF5F16002148011979:20012000194E79234623965778239EDA3F01B2CA3F0156702B5E712B722B7321460134219F:00000001FF>>>print(f.as_srec())S32500000100214601360121470136007EFE09D219012146017E17C20001FF5F16002148011973S32500000120194E79234623965778239EDA3F01B2CA3F0156702B5E712B722B73214601342199S5030002FA>>>print(f.as_ti_txt())@0100214601360121470136007EFE09D219012146017E17C20001FF5F160021480119194E79234623965778239EDA3F01B2CA3F0156702B5E712B722B732146013421q>>>f.as_binary()bytearray(b'!F\x016\x01!G\x016\x00~\xfe\t\xd2\x19\x01!F\x01~\x17\xc2\x00\x01
\xff_\x16\x00!H\x01\x19\x19Ny#F#\x96Wx#\x9e\xda?\x01\xb2\xca?\x01Vp+^q+r+s!F\x014!')>>>list(f.segments)[Segment(address=256,data=bytearray(b'!F\x016\x01!G\x016\x00~\xfe\t\xd2\x19\x01!F\x01~\x17\xc2\x00\x01\xff_\x16\x00!H\x01\x19\x19Ny#F#\x96Wx#\x9e\xda?\x01
\xb2\xca?\x01Vp+^q+r+s!F\x014!'))]>>>f.minimum_address256>>>f.maximum_address320>>>len(f)64>>>f[f.minimum_address]33>>>f[f.minimum_address:f.minimum_address+1]bytearray(b'!')

有关其他示例,请参见test suite

命令行工具

打印有关给定二进制格式文件的常规信息。

$ bincopy info tests/files/in.hex
Data ranges:

    0x00000100 - 0x00000140 (64 bytes)

将文件从一种格式转换为另一种格式。

$ bincopy convert -i ihex -o srec tests/files/in.hex -
S32500000100214601360121470136007EFE09D219012146017E17C20001FF5F16002148011973
S32500000120194E79234623965778239EDA3F01B2CA3F0156702B5E712B722B73214601342199
S5030002FA
$ bincopy convert -i binary -o hexdump tests/files/in.hex -
00000000  3a 32 30 30 31 30 30 30  30 32 31 34 36 30 31 33  |:200100002146013|
00000010  36 30 31 32 31 34 37 30  31 33 36 30 30 37 45 46  |60121470136007EF|
00000020  45 30 39 44 32 31 39 30  31 32 31 34 36 30 31 37  |E09D219012146017|
00000030  45 31 37 43 32 30 30 30  31 46 46 35 46 31 36 30  |E17C20001FF5F160|
00000040  30 32 31 34 38 30 31 31  39 37 39 0a 3a 32 30 30  |02148011979.:200|
00000050  31 32 30 30 30 31 39 34  45 37 39 32 33 34 36 32  |12000194E7923462|
00000060  33 39 36 35 37 37 38 32  33 39 45 44 41 33 46 30  |3965778239EDA3F0|
00000070  31 42 32 43 41 33 46 30  31 35 36 37 30 32 42 35  |1B2CA3F0156702B5|
00000080  45 37 31 32 42 37 32 32  42 37 33 32 31 34 36 30  |E712B722B7321460|
00000090  31 33 34 32 31 39 46 0a  3a 30 30 30 30 30 30 30  |134219F.:0000000|
000000a0  31 46 46 0a                                       |1FF.            |

贡献

  1. 分叉存储库。

  2. 安装必备组件。

    pip install -r requirements.txt
    
  3. 实现新功能或错误修复。

  4. 实施测试用例以确保将来的更改不会中断 遗产。

  5. 运行测试。

    make test
    
  6. 创建拉取请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java文件分块,获取长度字节   java嵌入式Tomcat不执行jsf页面   java我的数据库中有2个实体,但hibernate返回其中6个。   java如何基于逗号拆分字符串   java取消已经运行的CompletableFutures的预期模式是什么   java如何在informix中从另一个数据库复制表ddl和数据   为什么图片是黑色的?   java根据字符串数组中的单词筛选列表   Java8的集合。平行流有效吗?   Kotlin中的java静态内部类   java如何在GUI中生成一列字符串   javafx如何正确使用高对比度主题?   带空格的javascript Httpurlconnection参数   java如何设置GridBagLayout的约束   java如何在一个线程可能尚未初始化时关闭另一个线程   java将简单时间格式转换为特殊时间格式(hhmmt)   安卓/java阵列重复过滤器的问题   java在队列的链接实现下,入队和出队是如何工作的   java更新sql外键约束