# SerialGenius **Repository Path**: linjk/SerialGenius ## Basic Information - **Project Name**: SerialGenius - **Description**: 基于Python开发的运行于Windows的串口工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 24 - **Created**: 2015-09-01 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 说明 其中SerialGenius为在64位windows上直接打包好的可执行文件,你可以先下载使用。 其他的一些说明参照:[http://www.eamonning.com/project/view/7](http://www.eamonning.com/project/view/7) # 综述 SerialGenius是为嵌入式开发人员编写用于串口调试的工具,包含了不同的面板模块,可选择使用指定模块,最多可统一界面显示4个不同模块,通过不同的模块的功能组合,为程序开发人员提供在线调试信息。 各模块的不同组合,为您提供了更加方便快捷的调试界面,软件整体界面如下: ![](http://doc.tecmz.com/data/image/201508/30/66555_yjrX_3350.png) # 模块 ## 接收模块 ![](http://doc.tecmz.com/data/image/201508/30/66579_RisL_7578.png) **模块名称:** 接收 **模块介绍** 用于显示接收到的数据 **帮助** 1数据显示分为ASCII模式和十六进制显示模式 2保存数据用于将当前接收区域的数据保存至软件根目录中,文件名为:`Receive_[年月日]_[时]_[分]_[秒].txt` ## 发送模块 ![](http://doc.tecmz.com/data/image/201508/30/66972_Sjzn_5352.png) **模块名称** 发送模块 **模块介绍** 主要用于发送数据 **使用帮助** 1. 发送数据有两个缓冲区:ASCII字符发送缓冲区和十六进制格式发送缓冲区,使用复选框“十六进制格式”可以切换发送缓冲区; 2. “发送新行”复选框用于在使用ASCII缓冲区发送模式下,是否在发送的文件最后添加`\n`字符; 1. “选择文件”按钮用于选择需要发送的二进制文件,该文件会自动加载至十六进制格式发送缓冲区; 1. “定时发送”复选框用于是否启用定时发送数据,其后的文本框用于填写定时发送时间间隔,单位MS; ## 超级终端模块 ![](http://doc.tecmz.com/data/image/201508/30/67266_wyWC_4900.png) **模块名称** 超级终端 **模块介绍** 用于模拟超级终端 **使用帮助** 1. “保存数据”用于将当前接收区域的数据保存至软件根目录中,文件名为:`Receive_[年月日]_[时]_[分]_[秒].txt` 1. “同时发送换行符”复选框的作用是,在超级终端的末行输入字符串并点击回车时是否同时发送换行符; 1. 编码方式是选择超级终端接收到的字符的显示编码,目前支持“ASCII编码”、“UTF8编码”和“GBK编码”; ## 变量助手模块 ![](http://doc.tecmz.com/data/image/201508/30/67093_Huzk_6444.png) **模块名称** 变量助手 **模块介绍** 用于方便调试变量 **使用帮助** 1. “十六进制显示”复选框改变用于变量的显示格式; 1. 具体变量发送的协议请参阅“高级发送协议”章节; ## 变量跟踪模块 ![](http://doc.tecmz.com/data/image/201508/30/67435_dmQX_9867.png) **模块名称** 变量跟踪 **模块介绍** 用于方便跟踪一个变量的变化趋势 **使用帮助** 1. “清空”按钮用于清空图像; 2. “数据”按钮用于选择数据源; 3. ![](http://doc.tecmz.com/data/image/201508/30/68127_rAkJ_7750.png)用于返回Home; 4. ![](http://doc.tecmz.com/data/image/201508/30/68152_DyXW_9595.png)用于切换历史视图; 5. ![](http://doc.tecmz.com/data/image/201508/30/68162_MSkX_2701.png)用于平移图像,在该状态下,使用鼠标左键可以平移图像,使用鼠标右键拖拽可以缩放图像; 6. ![](http://doc.tecmz.com/data/image/201508/30/68172_zCNX_1117.png)用于缩放指定区域; 7. ![](http://doc.tecmz.com/data/image/201508/30/68181_GNnF_5243.png)用于设定显示边框; 8. ![](http://doc.tecmz.com/data/image/201508/30/68189_gtAx_4725.png)用于保存图像到文件; 具体变量跟踪发送的协议请参阅“高级发送协议”章节; ## 二维图像模块 ![](http://doc.tecmz.com/data/image/201508/30/67233_cHge_6289.png) **模块名称** 二维图像 **模块介绍** 用于方便显示一个二维图像 **使用帮助** 1. “清空”按钮用于清空图像; 2. “保存按钮” 用于将图片保存至JPG文件,文件名: `Video_static_[年月日]_[时]_[分]_[秒].jpg` 4. 图像帧数用于显示所有传回历史图像帧数; 5. 勾选“同时保存到JPG”,在一帧图像传送完毕后会自动保存到文件,文件名:`Video_[帧数]_[年月日]_[时]_[分]_[秒].jpg` 6. 具体变量跟踪发送的协议请参阅“高级发送协议”章节; # 高级发送协议 ## 协议说明 对于变量助手、变量跟踪、二维图像三个模块,使用了高级发送协议。 **命令开始符** 简称 FS_CHAR (Frame Start) **转义符** 简称 SL_CHAR (Char Slash) 一个数据包数据部分最大大小为258字节;由于转义符的存在,一个数据包最大能发送127字节的数据; FS_CHAR 标志一个数据包的开始 如果数据包含FS_CHAR,在其前添加转义符SL_CHAR 如果数据包含SL_CHAR,在其前添加转义符SL_CHAR ## 数据帧格式 | 偏移量 | 值说明 | | ------------ | ------------ | | [0] | 数据帧开始标志 FS_CHAR | | [1] | 数据帧类型 | | [2] | 数据部分长度,单位字节,包括转义符 | | [3] | 数据帧类型与数据部分长度的异或值,主要用于校验 | | [4:N] | 数据部分,N<=130,此部分数据最大长度为127| ### 变量助手数据包 > 说明:发送1个8 位无符号数到变量助手 > 帧类型:0x01 > 数据部分:[编号]:[数据]   > 说明:发送1个8 位有符号数到变量助手 > 帧类型:0x02 > 数据部分:[编号]:[数据]   > 说明:发送1个16位无符号数到变量助手 > 帧类型:0x03 > 数据部分:[编号]:[数据H]:[数据L]   > 说明:发送1个16位有符号数到变量助手 > 帧类型:0x04 > 数据部分:[编号]:[数据H]:[数据L]   > 说明:发送1个32位无符号数到变量助手 > 帧类型:0x05 > 数据部分:[编号]:[数据HH]:[数据HL]:[数据LH]:[数据LL]   > 说明:发送1个32位有符号数到变量助手 > 帧类型:0x06 > 数据部分:[编号]:[数据HH]:[数据HL]:[数据LH]:[数据LL]   ### 变量跟踪数据包 > 说明:发送1个8 位无符号数到变量跟踪 > 帧类型:0x07 > 数据部分:[编号]:[数据]   > 说明:发送1个8 位有符号数到变量跟踪 > 帧类型:0x08 > 数据部分:[编号]:[数据]   > 说明:发送1个16位无符号数到变量跟踪 > 帧类型:0x09 > 数据部分:[编号]:[数据H]:[数据L]   > 说明:发送1个16位有符号数到变量跟踪 > 帧类型:0x0A > 数据部分:[编号]:[数据H]:[数据L]   > 说明:发送1个32位无符号数到变量跟踪 > 帧类型:0x0B > 数据部分:[编号]:[数据HH]:[数据HL]:[数据LH]:[数据LL]   > 说明:发送1个32位有符号数到变量跟踪 > 帧类型:0x0C > 数据部分:[编号]:[数据HH]:[数据HL]:[数据LH]:[数据LL]   ### 二维图像数据包 > 说明:发送二维图像 > 帧类型:0x0D > 数据部分:[宽度H]:[宽度L]:[高度H]:[高度L]:[模式 ( 1=RGB色 2=灰度 ) ] > 说明:灰度模式下依次发送灰度图像,RGB模式下每个像素依次发送RGB ## 数据帧举例 说明:编号表示变量在上位机显示的标号,范围为0x00-0xFF,下同 显示8位无符号数(假设为0x12)到0x01编号 `0F 01 02 03 01 12` 显示8位有符号数(假设为0x12)到0x01编号 `0F 02 02 00 01 12` 显示16位无符号数(0x0F1F)到0x01编号 `0F 03 05 06 01 0F 0F 0F 1F` 显示16位有符号数(0x0F1F)到0x01编号 `0F 04 05 01 01 0F 0F 0F 1F` 显示32位无符号数(0x12340F1F)到0x01编号 `0F 05 07 02 01 12 34 0F 0F 0F 1F` 显示32位有符号数(0x12340F1F)到0x01编号 `0F 06 07 01 01 12 34 0F 0F 0F 1F` 发送图像灰度数据 (5x5) `0F 0D 05 08 00 05 00 05 02` `01 02 ....` 发送图像RGB数据 (5x5) `0F 0D 05 08 00 05 00 05 02` `01 01 01 02 02 02 ....`