# BinMsgDebug **Repository Path**: japyvi/bin-msg-debug ## Basic Information - **Project Name**: BinMsgDebug - **Description**: .NET 8 C#写的二进制通信调试小助手,串口调试,二进制通信,物联网,IOT,嵌入式 - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2024-12-21 - **Last Updated**: 2025-01-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 简要说明 通过简单的二进制消息描述文件,描述消息内各数据的字段名称,字段长度,字段类型,即可通过本工具解析展示二进制消息, 增加消息的可读性,方便物联网通信开发调试。支持通过文件导入,手动输入,以及从串口读入消息。 主要功能: - 从文件导入消息,可设置正则表达式提取文件中的消息 - 导出保存解析日志 - 加载和编辑协议 - 从串口读入消息 - 自动循环发送消息到串口 ## 快速开始 1. 点文件菜单加载解析协议 2. 从文本输入框添加需要解析的消息到消息列表,或者从日志文件加载消息,或者打开串口,从串口接收消息 3. 调试模式:从设置菜单勾选"调试模式",界面显示消息列表。从消息输入框或者串口接收的消息,将添加到消息列表中,在消息列表选中一条消息,可查看选中信息的详细字段。 4. 自动发送列表:添加命令到发送列表,命令格式“XX XX XX ... :命名名称”,如果未填写命令名称,则默认名称”未命名“。自动发送列表右键菜单,支持从文件加载命令列表以及保存命令列表到文件。 ## 协议解析文件格式 解析协议文件以.bpc后缀保存。 协议第一行指定消息的字节序,关键字BigEndian 指定采用大端字节序,LittleEndian或者为空指定为小端字节序。 消息以关键字message起始,定义格式如下: ``` message 消息名 { pattern:index1=value1,index2=value2 字段名1,字段长度,字段类型 字段名2,字段长度,字段类型 字段名3,字段长度,字段类型 ... } ``` - pattern为关键字,指定该消息的pattern判定条件,可以用逗号分隔指定多个条件,所有这些条件是逻辑与的关系。 pattern判定条件行可以为空。消息的基础判定条件是消息的长度(消息所有字段字节长度之和)。index为数字(0,1,2...), 指消息字段的索引,value为数字或者字符串。支持的关系操作符,=,>,<,>=, <= - 字段名指定该字段的名字,名字可以重复。 - 字段长度指定该字段的字节长度。 - 字段类型指定该字段的类型。 支持的字段类型如下: - int,有符号整数 - uint,无符号整数 - ascii,字符串 - hex,16进制 - bit{位宽:位域名称,位宽:位域名称,...},位域类型(待支持) 消息解析文件示范: ``` BigEndian message 电池消息 { 起始符,1,uint 命令,1,uint 状态,1,uint 长度,1,uint 总电压,2,uint 电流,2,int 剩余容量,2,uint 标称容量,2,uint 循环次数,2,uint 生产日期,2,uint 均衡低字,2,hex 均衡高字,2,hex 保护状态,2,hex 版本号,1,hex SOC,1,uint MOS指示状态,1,hex 电池串数,1,uint NTC个数,1,uint 温度1,2,uint 温度2,2,uint 校验码,2,uint 结束符,1,uint } message 电压信息 { 起始符,1,uint 命令,1,uint 状态,1,uint 长度,1,uint 电芯1电压,2,uint 电芯2电压,2,uint 电芯3电压,2,uint 电芯4电压,2,uint 电芯5电压,2,uint 电芯6电压,2,uint 电芯7电压,2,uint 电芯8电压,2,uint 校验码,2,uint 结束符,1,uint } ``` ## 命令列表文件格式 ``` DD A5 03 00 FF FD 77 :读电池信息:True DD A5 04 00 FF FC 77 :读电池电压:True ```