双手撸码20+天,串口软件(visual-serial)终于有了基本雏形
off999 2024-10-27 11:55 45 浏览 0 评论
在我发的DIY前篇的帖子里面,提到了工欲善其事,必先利其器,然后从国庆期间就开始撸码,然后拖拖拉拉撸了二十多天,串口软件终于有了雏形。。如果按着这个进度,我估计DIY是要泡汤了。
为什么要自己撸串口软件,主要就是因为其他的串口软件并不理想,功能太受限。
我撸的这个软件,我给他命名叫做visual-serial,我也实在是想不出好的名字了,这款软件的最大特点是具有扩展性,用户可以根据自己的需要扩展功能。这款软件是开源的,GitHub地址是:https://github.com/lcofjp/visual-serial ,如果你感觉这个软件有点用,请帮我点点star(我建议写代码的坛友,一定要把git用起来,这个工具的功能太强大了,用起来你会受益匪浅,哦对了,我这里有个电子书,对使用GitHub会有帮助,下载地址:http://download.eeworld.com.cn/detail/lcofjp/565631(有经济能力的请尽量支持正版。。)),欢迎有想法、有兴趣的人一起来完善这个软件,欢迎广大坛友提出各种意见和建议。
这款软件基于electron框架开发,使用的语言是HTML、CSS、JavaScript/Node.js,为什么选择这个平台,很多人可能跳出来说为什么不用QT,不用Python,我认为electron框架的主要优点在于:
易扩展,只要添加或者修改js文件就能达到添加或者修改功能的目的,不需要编译,比如说,这个软件没有你想要的波特率(前提是系统要支持这个波特率),好的,打开相应的js文件,找到对应的源码,在数组里添加一个数字就搞定了。或者增加中间件,都是轻而易举。
JavaScript开发会比较省时省力,至少要比C++开发容易的多,高级语言一行代码顶c/c++好几行,而且js的各种库很全面,目前visual-serial的主要代码不到1000行。每个中间件的代码不足100行
不过具有优点的同时,缺点肯定避免不了:
虽然理论上支持>=windows7, macOS, 部分Linux系统,但是不支持XP
软件体积比较大,打成压缩包后大约50M,因为这是一个框架,集成的功能实在太多了,虽然我们用不到
运行会比较占资源,费CPU和内存
广大电工可能不熟悉JavaScript,但是JavaScript至少在语法上是属于C系的,你看懂JavaScript应该很容易,至少要比python什么的容易。
现在来说说这个软件的特点,前面提到了,最大的特点是可扩展性高,可扩展性就是通过中间件来实现的,所谓中间件,就是一个函数,放在数据流中对数据进行一定的处理,用一个图来描述可能更直观:
中间件的我给他分成了三类,middleware,protocol和widget。
middleware就是一个简单的函数,对数据进行一定的处理。
protocol呢,他定义了两个函数,encode和decode,分别完成某种协议的封装和解析。
widget用来扩展界面与用户实现交互,或者是对数据的展示。
从实现上来说,middleware和protocol都是一个单独的js文件,widget是一个文件夹,里面通常包含html、css和js文件
目前软件附带了几个中间件示例,分别是FF-protocol、savetofile、timeout、drawgraph、characterEncoding。
FF-protocol:
假设有某数据格式规定:数据帧以0xFF开头、0xFF结尾,数据中出现的FF转义为FE 01,FE转义为FE 00,数据末尾增加异或校验和。 decode方法完成的工作包括:检测起始的FF字节,然后开始接收数据并进行转义和计算校验和,直到接收到尾部的FF,此时如果校验和正确,则把数据传给下一个中间件。 encode方法就是对数据增加头尾FF、转义和加入校验和,然后传给下一个中间件。示例:
56 A2 D3 91==encode==>FF 56 A2 D3 91 B6 FF
FF 56 A2 D3 91 B6 FF==decode==>56 A2 D3 91
savetofile:
顾名思义,把经过这个中间件的数据保存到文件中,并继续传递数据至下一个中间件。
timeout:
如果数据帧没有具体的格式,无法判断数据的头尾,可以用超时时间来粗略判断帧的结束。如果等待设定的毫秒数内未再收到数据,则把已经收到的数据传给下一个中间件。 注意:计算机的计时并不准确,尤其是计算机任务繁重的时候,因此选择这个中间件是个下策。
characterEncoding:
完成字符串编码的转换,支持多种编码,如UTF8,UTF16,GB18030,因此数据发送和接收可以支持各种字符编码。 软件默认的接收和发送采用UTF8编码,UTF8兼容ASCII,如果数据中包含ASCII之外的字符,则需要注意编码转换问题。
drawgraph:
这是一个窗口扩展,可将数据按特定类型提取,并画出变化曲线。其中BE为设置大端模式,min和max设置绘制曲线时的最小和最大取值范围,不设置为自适应范围。
这些仅仅是我写的示例,可能是用处并不是很大,我的目标其实就是想集成电工们最常用的一些功能、一些协议,做成中间件,满足电工们的日常需求。所以,坛友们的反馈和建议非常重要,能参与到这个项目中更是求之不得。目前只是搭起了架子,后续还会持续改进。
数据发送
数据发送主要有字符串和十六进制发送两种方式。这些功能比较基础没有可介绍的,值得一提的是,以十六进制发送的时候,可支持多种十六进制格式以及宽松的判断,例如:
{0x45, 0x56, 0x89, 0xAB, 0xF2} => 45 56 89 AB F2
08H 58H 9AH BCH => 08 58 9A BC
0x120x560x8a 9F7C62 3 B 5 => 12 56 8A 9F 7C 62 03 0B 05
基本功能我不在这里啰嗦了,我写了个文档在GitHub上:https://lcofjp.github.io/visual-serial/
虽然主界面很丑,但是我还是上个图吧:
欢迎各位坛友下载体验,您的使用就是对我最大的支持,如果有任何意见和建议,软件有什么bug,欢迎到QQ群309018200或者本帖留言。
下载地址:
https://pan.baidu.com/s/1mhAt4Ju
目前只提供了windows和macOS的版本,解压之后是个文件夹,在里面找visual-serial.exe。。。。。
以上图文内容均是EEWORLD论坛网友lcofjp原创,在此感谢。
欢迎微博@EEWORLD
如果你也写过此类原创干货请关注微信公众号:EEWORLD(电子工程世界)回复“投稿”,也可将你的原创发至:bbs_service@eeworld.com.cn,一经入选,我们将帮你登上头条!
与更多行业内网友进行交流请登陆EEWORLD论坛。
相关推荐
- 最新电脑主机配置清单(2021电脑主机主流配置)
-
1.CPU全志a31s80元主板建议联想乐pad160元显示屏7寸分辨率建议在800*480以上约110元电源接口约0.2元wifi模块约20元蓝牙模块约20元硬盘建议金...
- windows7系统界面(win7界面什么样)
-
关于这个问题,要将Win1系统调成Win7界面,您可以尝试以下几个步骤:1.下载并安装一个Win7主题:在网上搜索并下载一个Win7主题,例如“Windows7ThemeforWin10”,...
- 把文件隐藏了怎么显示出来(文件隐藏起来了怎么找)
-
需要显示出来因为有些文件被系统默认设置为隐藏状态,为了查看或编辑这些文件,需要将它们显示出来。如果你使用Windows操作系统,可以在文件资源管理器中点击“查看”选项卡,然后勾选“隐藏项目”复选框,隐...
- mercury路由器wifi密码(mercury路由器wifi密码忘了怎么办)
-
水星路由器宽带密码查看的方法:一、首先登陆原来路由器管理界面,输入路由器账号密码登陆。二、进入路由器管理界面后,点击进入“备份和载入配置”,然后点击“备份配置文件”,然后将备份的配置文件存放在电脑桌...
- microsoft word产品密钥(微软word产品密钥)
-
产品密钥是由一些字符组成的代码,用于激活对应产品。产品密钥是产品授权的证明,它是根据一定的算法(如椭圆算法)等产生的随机数。当用户输入密钥产品会根据其输入的密钥判断是否满足相应的算法,通过这样来判断,...
- 笔记本显卡推荐(笔记本显卡推荐性价比高)
-
1、微星R7850TF2GD5/OC:这款微星显卡是用GCN架构设计的图形核心,里面有1024个sp单元,执行、输出能力都非常的强悍,能完美地将DX11.1特效呈现出来。它还能够支持驳接各种大型...
- hp系统重装win10(hp怎么重装系统win10)
-
答具体解决方法如下准备工作: 1、下载u启动u盘启动盘制作工具 2、下载win10系统镜像并存入u盘启动盘中 3、硬盘模式更改为ahci模式 安装win10系统操作步骤: 1、首先,我们提...
- 惠普笔记本电脑售后服务(惠普笔记本电脑售后服务维修点)
-
惠普笔记本电脑的售后服务包括全国联保、上门维修、24小时服务热线等多种服务。消费者可以通过官网或客户服务热线轻松预约维修服务,享受专业、高效的技术支持。同时,惠普还提供质保服务和延保服务,保障消费者的...
- 住房公积金管理中心官网(广州住房公积金管理中心官网)
-
按照《住房公积金管理条例》有关规定,住房公积金管理中心性质属于事业单位,隶属事业单位编制。使用手机查询住房公积金的方法。微信查询法1、打开微信,点击进入“我”的页面,在这个页面找到钱包;2、点击进入...
- 远程控制系统(路灯远程控制系统)
-
汽车远程控制系统是一种通过移动终端或其他设备远程控制汽车的系统,可以实现远程锁车/解锁、远程启动车辆、远程启动空调、...
- 惠普1136打印机驱动(惠普1136打印机驱动用的是1130吗)
-
原因:1、可能是安装驱动步骤错了,下载驱动的步骤一定要按步骤检查安装。2、可能是驱动程序兼容性问题,或驱动程序损坏,建议使用驱动管理软件安装,这样简单,而且是最新的,兼容性、稳定性好。3、可能是打印机...
- office2013标准版产品密钥(microsoft office2013产品密钥在哪里能找到)
-
win7/win8/win10系统下VisualStudio2013各个版本的密钥:VisualStudioUltimate2013KEY:BWG7X-J98B3-W34RT-33B3R-...
- win7旗舰版电脑非常卡怎么办
-
针对Windows7旗舰版卡顿的情况,可以尝试以下几种方法来解决:1.升级硬件:如果你的电脑配置较低,可以考虑升级一下硬件,例如更换内存条、加装固态硬盘等。2.清理磁盘:清理电脑中不必要的文件、...
- 随身wifi怎么用的使用教程(随身wifi怎么用的使用教程图解)
-
1、将随身wifi插入电脑端,按照提示操作2、首次安装驱动后,随身wifi会随机生成10位默认密码,每台电脑是不相同的。为方便连接,也可手动设置为相同的密码。3、随身WiFi客户端支持3种手机连接方式...
- gho文件制作u盘启动盘(ghost文件制作启动盘)
-
有些优盘制作工具只会制作启动盘,里面是没有包括映像文件的,需要你自己下载。后拷贝gho文件到GHO目录里。你可以检查一下优盘里的内容,尤其是GHO文件夹,没有的话,自己拷贝需要的进入就行了。(1)制作...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
python入门到脱坑 输入与输出—str()函数
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
失业程序员复习python笔记——条件与循环
-
使用 python-fire 快速构建 CLI_如何搭建python项目架构
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
