怎么做串口调试软件?

2023-05-16

嗯 ~~~ 说一下我自己写的串口助手吧, 名字叫 Bittly, 样子呢长下面这个样子

img

Bittly 指令调试界面

1. 需求确认

一开始使用的是类似于XCOM或者SSCOM之类的串口调试助手,他们的优点是体积小,拿过来就用,可以说平常使用已经够用了。 但是,一旦遇到比较复杂的参数的时候,问题就出来了,需要手动处理进制转换,大小端之类的问题,如果请求参数格式包含多种数据类型,那基本上就离不开计算器了,大概搜索了一下能找到的几款串口调试助手,都有着不同的限制,要么就是操作界面用着很别扭 ~~~

所以我的初始需求就是:

  • 不需要手动进行进制间转换,不论是字节还是整型,又或者是长整型,都要自动处理。
  • 当请求参数比较复杂,包含多种类型的时候,也能够自动进行处理,而不用使用者处理转换。
  • 能够结构化的构建请求参数,文档上说传什么,我就写什么不要拼接或者转换。
  • 能够保存指令数据,支持文件夹分类,没有任何数量上的限制。
  • 数据响应也需要能够自动解析到结构化数据。
  • 数据响应支持波形图模式查看。

2. 实现方式选择

选择一:语言:C++ 框架:QT

虽然是C++,但是使用QT开发,难度上不高,而且组件丰富,库丰富,实现我需要的需求没问题。而且移植性也没得说,基本上能做到到处编译执行。至于缺点嘛, 毕竟是C++,开发速度上就有点慢了。 假设后期我需要增加扩展功能,也比较麻烦 ~~~

选择二:语言:C# 框架: .net

难度不高,开发速度也比较快,也是比较常用的现在开发上位机的方式。 但是一个致命问题就是移植性不高。我不止要在windows上用,linux, mac(虽然买不起,但也要有要在mac上运行的目标 ~~~) 都要能用,因为这个不是一个专用的软件,而是一个工具软件。

选择三:语言:javascript 框架 :electron

难度很不高,速度飞快, 界面好看,库丰富,后续扩展也比较方便快捷,也可以到处打包,缺点就是运行效率有点低,占用空间大,打出来的安装包也大 ~~~

最终选择:javascript + electron

选择理由:我需要解决我的问题为主要目标,串口调试这种工具类的软件,在效率上来说,js 还是足够的。 那么剩下的就是占用空间和安装包大小的问题,但是这两个对于我来说并不是主要问题,我需要功能好用才是主要,毕竟又小又快又漂亮,这有点耗时间 ~~~

3. 工具开发

当需求确认,实现方式确认之后,基本上就到了实际干活的步骤了。

  • 创建项目仓库,用来进行版本管理
  • 初始化项目开发环境,例如初始化项目,安装依赖包,配置编辑器等
  • 写代码,写代码,写代码 …

4. 工具测试

  • 确定初始需求是否已经全部实现
  • 执行自动化测试脚本来保证不会出现已知的错误信息,以及保证后续更改不会造成影响
  • 使用真实设备进行测试确保无问题

5. 正常使用并修改

一般来说,刚刚写完的在正常使用上都会那么丢丢不顺手的地方,根据实际使用情况进行优化修改。

6. 项目发布

比如分发给同事或者其他需要的人,毕竟没有用户的软件和垃圾一样 ~~~

发布之后基本上就是反馈 -> 优化 -> 发布 这个循环了

最后

为了不让 Bittly 成为垃圾, 所以再次推荐一下, 除了做串口调试之外, Bittly 还支持 网络,蓝牙,WebSocket, HTTP, MQTT,Modbus 等多种通讯方式和通讯协议。

另外还有控制面板能够方便的制作一个上位机控制面板,用来测试和功能演示十分不错,

img

Bittly 控制面板运行状态组件展示

以及集成化测试,文档输出,环境变量管理等功能 ~~~~

小工具集成了各种服务端小工具,例如串口服务端用于模拟一个串口设备, 支持自动回复,手动回复,随机回复,脚本回复匹配回复等等

img

TCP 服务端小工具

下载 - Bittly 不止是一个串口调试助手 (~ ̄▽ ̄)~bittly.sigechen.com/download?from=001391635651&title=%E6%80%8E%E4%B9%88%E5%81%9A%E4%B8%B2%E5%8F%A3%E8%B0%83%E8%AF%95%E8%BD%AF%E4%BB%B6img

目前已在 Github 上开源,欢迎来 star 还有提问题哈 (~ ̄▽ ̄)~

Github - 四格/Bittlygithub.com/sige5193/bittly

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

怎么做串口调试软件? 的相关文章

  • 功能安全软件架构

    已剪辑自 https mp weixin qq com s pCenGTqg2Xi t7b8ebNHMA 1 E GAS 安全架构思想 汽车功能安全旨在把电子电气系统失效而导致的人身危害风险控制在合理范围内 下图是常见的电子电气系统硬件构成
  • 代码是如何控制硬件的?

    简单来说 xff0c 就是软件指令通过操作寄存器 xff0c 控制与 或 非门搭建的芯片电路 xff0c 产生 保存高低电平信号 xff0c 实现相应的逻辑 xff0c 最终通过IO 串口等输出 要想更清楚的了解软件控制硬件的原理 xff0
  • Windows下的TCP/UDP网络调试工具-NetAssist以及Linux下的nc网络调试工具

    已剪辑自 https blog csdn net ccf19881030 article details 109370384 一 Windows下的网络调试工具 NetAssist 1 TCP服务端和客户端测试2 UDP服务端和客户端测试
  • 软件产品化

    1 产品化定义 xff1a 软件产品化是指客户无需为软件添加或调整代码和语句即能完成软件的安装配置 应用初始化 系统管理 用户使用的全过程 xff0c 并且软件至少能满足80 以上的用户某一组应用需求 微软Office或杀毒软件就是产品化软
  • 使用Dev C++进行Windows socket网络编程,需链接lws2_32库

    背景 在我们使用Dev C 43 43 进行C语言编程时 xff0c 如果我们引入的库是C语言标准库 xff0c 那我们是不要在编译器选项中进行额外的设置的 xff0c 但是如果我们使用的是一些不是C语言标准库 xff0c 那我们可能就需要
  • Windows下C语言程序和网络调试助手通信

    网络调试助手之间进行UDP通信 前面一篇文章介绍了Windows下的网络调试助手 xff0c 文章链接如下 xff1a Windows下的TCP UDP网络调试工具 NetAssist以及Linux下的nc网络调试工具 下面我们简单介绍一下
  • 为什么char a[]的a不能用a=“hello”来赋值?

    问题 char b里面的b是一个指向char的指针 xff0c 而b可以用b 61 hello 来复制 同样 xff0c a代表char数组的第一个元素的指针 xff0c 类型应该也是char xff0c 为什么b可以直接用赋值符号而a不可
  • Windows下使用C语言创建定时器并周期和网络调试助手通信

    在Windows C下采用timeSetEvent函数来设置定时器 关于timeSetEvent的函数原型及注释如下所示 xff1a MMRESULT span class token function timeSetEvent span
  • GCC编译程序如何减少堆栈空间的大小?

    1 静态堆空间的大小是编译期可以根据你的全局变量 静态变量尺寸算出来的 因此减少后者的长度可以减少你使用堆空间 2 MCU裸片程序 xff0c 很多环境是不方便 xff0c 不支持 xff0c 不鼓励使用malloc函数的 xff0c 裸环
  • 腾讯毕业十多年了

    已剪辑自 https mp weixin qq com s rb5aeIDQ5 qtifeoeIrqZw 昨天一个腾讯前同事加了我的微信找我聊天 xff0c 说是在网上看见我写的文章想起我了 这个同事印象中很沉默寡言的 xff0c 在腾讯除
  • ARM9和STM32什么关系?

    已剪辑自 https mp weixin qq com s QHARY D2SwFoQbFsJoCNlg 有小伙伴问 xff1a ARM9和STM32什么关系 xff1f 如果时间倒退10年 xff0c ARM9 s3c2410还算是比较流
  • 汽车ECU通信相关验证项有哪些?

    已剪辑自 https mp weixin qq com s fIAXkS37r6jvnuA7yIQDA 汽车电子的高速发展决定了基础软件所面临的要求将会更加严格 xff0c 其要求会覆盖软件的安全性 稳定性 可扩展性等方方面面 为了提高软件
  • 不可忽视的 C 语言陷阱!

    已剪辑自 https mp weixin qq com s bdGuOjz1Cg3YXHwlVh5ZlA 语言是编程的基石 xff0c C语言诡异且有种种陷阱和缺陷 xff0c 需要程序员多年历练才能达到较为完善的地步 虽然有众多书籍 杂志
  • 程序员能纯靠技术渡过中年危机吗?

    首先说答案 xff0c 能 xff01 程序员可以靠技术渡过中年危机 xff0c 但是要转变线性思维 先说说个人情况 xff0c 80后 xff0c 从事电机控制软件开发十余年 xff0c 属于制造业 xff0c 算嵌入式的一个小分支 xf
  • STM32学习(一)

    单片机基础 CISC和RISC举例 冯 诺依曼结构VS哈佛结构 冯 诺依曼结构数据和程序存储在同一存储器中 xff0c 访问数据时不能访问程序 xff0c 访问程序时不能访问数据 xff0c 属于分时复用 xff0c 同一时间只能读取其中一
  • C语言既然可以自动为变量分配内存,为什么还要用动态分配内存呢?

    已剪辑自 https mp weixin qq com s NRyM5KAm jrBImmkA2WYSA 不知道大家在学习C语言动态分配内存的时候 xff0c 有没有过这样的疑问 xff1a 既然系统可以自动帮我们分配内存 xff0c 为什
  • 分享一种通信协议的应用编程原理和思路

    已剪辑自 https mp weixin qq com s wy flva6pCNqHV3ObeLPCQ 嵌入式开发过程中 xff0c UART CAN USB等通信基本离不开通信协议 下面给大家分享一种通信协议 xff08 MAVLink
  • 一名智能驾驶产品经理的自我修养

    已剪辑自 https mp weixin qq com s fCSO7hmP3FP Xat NyFG0A 随着智能驾驶浪潮的兴起 xff0c 市场上产生了对相关人才的大量需求 xff0c 也诞生了一些传统汽车行业所没有的新兴岗位 其中 xf
  • 7个硬核嵌入式C进阶要点!

    已剪辑自 https mp weixin qq com s 2MLAK9JB oyLhc6HiXH2ww void表示的是无类型 xff0c 不可以采用这个类型声明变量或常量 xff0c 但是可以把指针定义为void类型 xff0c 如vo

随机推荐

  • 嵌入式软件分层框架设计,举了个例子

    文章目录 前言一 框架分层是什么 xff1f 二 框架分层的优劣势1 优势2 劣势 三 一个简单的例子四 总结 已剪辑自 https mp weixin qq com s m Q PaC0XlPSeoWrxIstg 前言 为了能够使得产品得
  • Windows下使用C语言的UDP编程接收网络调试助手发送的数据

    代码 span class token macro property span class token directive hash span span class token directive keyword include span
  • Windows下使用C语言的周期UDP编程同时发送和接收网络调试助手数据

    代码 xff1a span class token macro property span class token directive hash span span class token directive keyword include
  • Windows下使用C语言的周期多路UDP编程发送和接收网络调试助手数据

    代码 xff1a span class token macro property span class token directive hash span span class token directive keyword include
  • 哪一件事让你忽然意识到打工永无出路?

    我发誓我一定要做点什么 xff0c 所以我自己开了个公司 大概我任职某公司CTO的时候吧 我意识到了所谓的战略 技术 管理等综合能力 xff0c 不如销售跑去和客户喝一顿 xff0c 上千万的单就来了 我意识到我所谓的研发战略 xff0c
  • 如何让一个 C 语言项目调用另一个 C++ 项目中某些类所提供的接口?

    目前問題是這樣的 xff1a 有兩個項目 一個項目是用 C 43 43 寫的 裏面提供了一個輸入輸出接口 後來從外面弄來了另外一個項目 用 C 寫的 現在需要將 C 項目中所使用的原有接口替換為使用我們的 C 43 43 項目中提供的接口
  • STM32学习(二)

    常用开发工具简介 安装仿真器驱动 DAP仿真器免驱ST LINK仿真器驱动安装方法 xff1a A盘 6 xff0c 软件资料 1 xff0c 软件 5 xff0c 其他软件 ST LINK驱动及教程 为什么要安装CH340 USB串口驱动
  • 为什么我身边有人说我没有眼力见,眼力见是什么,应该怎么做?

    眼力见 主要描述一个人善于察言观色 为人殷勤 xff0c 还很有礼貌的素养 其实 xff0c 只要把自己的 姿态放低 xff0c 眼力见 自然就见长 大家有没有这种感觉 xff0c 工作中不少领导 前辈经常把 眼力见 这个词挂在嘴边 xff
  • 反应慢,没有眼力劲,看起来给别人一种老实的感觉,做起事情不太利索,接触让别人感觉有点傻。怎么办?

    内向的人 xff0c 缺乏社交 xff0c 就缺乏来自从小到大关系网的 经验叠加 比如 xff0c 你没钱 xff0c 但你有个哥们儿是富二代 xff0c 你们经常一起混 xff0c 那么你会从他身上得到很多 富有家庭对待事务的态度和想法
  • 遇事没有眼力见,反应不灵活,该怎么改善?

    说实话 xff0c 我也属于这种类型的人 说白了就是头脑简单 这个跟成长环境有关系 xff0c 没有经历过需要你去思考太多 xff0c 分析太多 xff0c 最后根据情况作出当时应该 需要做出的回应 和经历有关 如果你现在认为这个事情非常重
  • 如何快速读懂开源代码?

    文章目录 RUN起来 调试 把控关键数据结构和函数 从小的开始 关注一个模块 工具 一 阅读开源代码存在的一些误区 二 阅读代码的心态 三 阅读源码与 辅助材料 四 如何阅读开源代码 gdb 高级调试实战教程 电子书下载链接 xff1a 1
  • 关于我转行嵌入式的那些事

    文章目录 为什么想转行了 xff1f 一 工作环境问题 二 无休止的出差加班和混乱的作息时间 三 工作压力大 四 薪资上限低 xff0c 行业前景差 为什么选择嵌入式 转行前的学习 一 单片机开发 二 Linux应用开发 三 Linux驱动
  • QT的UDP通信详解

  • 这一年我的书单!

    已剪辑自 https mp weixin qq com s Uy3hsbQQY3U4h43rdWr8qA 昨天写了2022年的一些感悟 xff1a 我这一年的感悟 xff0c 在文章里我提到读书在精不在多 xff0c 能指导生活工作中实践的
  • 如何专业地命名嵌入式软件版本?

    已剪辑自 https mp weixin qq com s F XhvYy0IjTrdHIu2BLhNA 不知道大家发布软件的时候 xff0c 版本号是怎么命名的 xff1f 最常见的就是V1 0 0这种简单的形式命名 甚至有些同事直接用V
  • 万字长文细说 Code Review 的正确姿势

    已剪辑自 https mp weixin qq com s GWLlRkF1b6LnyIYZi NSdQ 随着研发团队规模的逐步扩大 xff0c 新项目及新成员越来越多 xff0c 如何做好 code review xff0c 把控研发人员
  • 50条C语言奇技淫巧,精品干货!

    已剪辑自 https mp weixin qq com s vvdvVMVmx3i 6eXjUUYfBQ 本文汇总了50条C语言奇技淫巧 xff0c 希望能对大家有所帮助 01 宏定义用do while 0 如果定义的宏函数后面有多条语句
  • FreeRTOS学习(一)

    裸机与RTOS对比 裸机 xff1a 又称为前后台系统 xff0c 前台系统指的是中断服务函数 xff0c 后台系统指的大循环 xff0c 即应用程序 实时性差 xff1a xff08 应用程序轮流执行 xff09 delay xff1a
  • 如何画架构图?

    在我们做系统架构设计时 xff0c 如何快速的向外界传达我们的设计思路 4 43 1试图适合我们厘清思路 表达自己的想法 在我们汇报 xff0c 争取领导层的认同支持更适合用架构图来表述我们的观点 架构图包括总体架构 逻辑架构 应用架构 技
  • 怎么做串口调试软件?

    嗯 说一下我自己写的串口助手吧 xff0c 名字叫 Bittly xff0c 样子呢长下面这个样子 Bittly 指令调试界面 1 需求确认 一开始使用的是类似于XCOM或者SSCOM之类的串口调试助手 xff0c 他们的优点是体积小 xf