14439|60

6040

帖子

196

TA的资源

版主

楼主
 

双手撸码20+天,串口软件(visual-serial)终于有了基本雏形 [复制链接]

 
本帖最后由 lcofjp 于 2017-10-25 15:38 编辑

在我发的DIY前篇的帖子里面,提到了工欲善其事,必先利其器,然后从国庆期间就开始撸码,然后拖拖拉拉撸了二十多天,串口软件终于有了雏形。。如果按着这个进度,我估计DIY是要泡汤了。
为什么要自己撸串口软件,主要就是因为其他的串口软件并不理想,功能太受限。

我撸的这个软件,我给他命名叫做visual-serial,我也实在是想不出好的名字了,这款软件的最大特点是具有扩展性,用户可以根据自己的需要扩展功能。这款软件是开源的,GitHub地址是:https://github.com/lcofjp/visual-serial如果你感觉这个软件有点用,请帮我点点star(我建议写代码的坛友,一定要把git用起来,这个工具的功能太强大了,用起来你会受益匪浅,哦对了,我这里有个电子书,对使用GitHub会有帮助,下载地址:https://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原创,如需转载或用于商业用途需征得作者同意并注明出处





此帖出自编程基础论坛

最新回复

  详情 回复 发表于 2018-5-14 08:13

赞赏

8

查看全部赞赏

点赞 关注(13)
 

回复
举报

1366

帖子

6

TA的资源

版主

沙发
 
支持队长。队长牛逼。
此帖出自编程基础论坛
 
个人签名

1084534438 欢迎交流  [加油,一切皆有可能]

 
 

回复

7608

帖子

2

TA的资源

五彩晶圆(高级)

板凳
 
支持队长。队长牛逼。
此帖出自编程基础论坛
 
个人签名

默认摸鱼,再摸鱼。2022、9、28

 
 

回复

785

帖子

0

TA的资源

一粒金砂(高级)

4
 
niuXXXXXXXXXXX
此帖出自编程基础论坛
 
个人签名我从不担心我努力了不优秀,只担心优秀的人都比我更努力。如果你无法忍受孤独,就不要追逐梦想。每一个优秀的人,都有一段沉默的时光。在那一段时光,你付出了很多努力,忍受孤独和寂寞,不抱怨不诉苦,最后渡过了这
 
 

回复

1403

帖子

1

TA的资源

纯净的硅(中级)

5
 
支持队长,绝对的精品,好东西,顶顶顶~
此帖出自编程基础论坛
 
个人签名HELLO_WATER
 
 

回复

565

帖子

0

TA的资源

一粒金砂(高级)

6
 
此帖出自编程基础论坛
 
个人签名stm32/LoRa物联网:304350312
 
 

回复

1976

帖子

0

TA的资源

五彩晶圆(初级)

7
 
此帖出自编程基础论坛
 
 
 

回复

9791

帖子

24

TA的资源

版主

8
 
此帖出自编程基础论坛
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

120

帖子

0

TA的资源

一粒金砂(中级)

9
 
好东西,顶顶顶~
此帖出自编程基础论坛
 
 
 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

10
 
吊炸天
堆栈威武
此帖出自编程基础论坛
 
个人签名

So TM what......?

 

 

回复

3416

帖子

0

TA的资源

纯净的硅(高级)

11
 
软件名就叫

撸串
此帖出自编程基础论坛
 
个人签名

So TM what......?

 

 

回复

6105

帖子

4

TA的资源

版主

12
 
有时间一定下了玩一下。
此帖出自编程基础论坛
 
 
 

回复

450

帖子

43

TA的资源

一粒金砂(高级)

13
 
中英合作风格
此帖出自编程基础论坛

点评

好的,后续慢慢汉化  详情 回复 发表于 2017-10-25 16:33
 
个人签名一心一意,精益求精
 
 

回复

6040

帖子

196

TA的资源

版主

14
 

好的,后续慢慢汉化
此帖出自编程基础论坛
 
 
 

回复

1310

帖子

3

TA的资源

一粒金砂(高级)

15
 
已star,期待作品更完美!
此帖出自编程基础论坛

点评

感谢4哥的大力支持!!  详情 回复 发表于 2017-10-25 16:53
 
个人签名

RTEMS

 
 

回复

2774

帖子

8

TA的资源

版主

16
 
不错不错!已经出货,出货了就好,我们就可以再提要求了!产品经理来说要改需求了!
此帖出自编程基础论坛

点评

有需求尽管来!  详情 回复 发表于 2017-10-25 16:53
 
 
 

回复

6040

帖子

196

TA的资源

版主

17
 
54chenjq 发表于 2017-10-25 16:49
已star,期待作品更完美!

感谢4哥的大力支持!!
此帖出自编程基础论坛
 
 
 

回复

6040

帖子

196

TA的资源

版主

18
 
strong161 发表于 2017-10-25 16:50
不错不错!已经出货,出货了就好,我们就可以再提要求了!产品经理来说要改需求了!

有需求尽管来!
此帖出自编程基础论坛

点评

牛逼的人果然是不惧于改需求的!  详情 回复 发表于 2017-10-25 17:07
 
 
 

回复

42

帖子

0

TA的资源

一粒金砂(中级)

19
 
支持版主了,目前的串口工具基本就是发送接收和显示,不能自己设定一些规则,平时工作modbus协议用的比较多,调试的时候用串口工具每次都得自己组帧,而且不能同时模拟多个设备。很不方便。期待版主的作品,另外之前找个一个叫格西烽火的串口工具,版主可以参考下!
此帖出自编程基础论坛
 
 
 

回复

2774

帖子

8

TA的资源

版主

20
 
lcofjp 发表于 2017-10-25 16:53
有需求尽管来!

牛逼的人果然是不惧于改需求的!
此帖出自编程基础论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表