推荐win10 商店的 串口调试助手 -“Serial Debug Assistant”
1. 接收从串口进来的数据并在窗口显示。
2. 接收到的数据显示方式可以选择为"字符串"或"HEX"。
3. 中文显示无乱码。可以在设置中更改字符串编码类型。支持多种字符编码 "ASCII","GB2312","UNICODE","UTF-8","BIG5","shift_jis"
4. 串口波特率可以选择为300bps-1500000bps. (波特率>115200时需要硬件支持)。
5. 支持自定义串口波特率。
6. 可以在发送框输入您想发送的字符串,并发送,发送支持 "字符串"或"HEX"。
7. 支持扩展命令,最大600组自定义命令。
8. 自定义命令列表,将多条要发送的命令组合成一个列表。只需点击一次发送,自动执行列表中的各条命令
9. 自动断帧功能,如果接收到两个数据包之间有时间间隔,会在一包数据后面插入换行,下一包数据另起新行,以方便观测。
10. 发送校验功能,采用 JavaScript 脚本,可根据需要自行编写校验方式.
11. 波形显示功能。可将按协议发送的数据显示成波形。并支持波形回看功能和截图功能。
12. 带有 "Limited support" 标志的COM口高速接收时会有卡顿现象.
最近受朋友之托试图用web前端实现串口调试助手,一开始觉得不太有可行性,以前用过的串口调试助手都是客户端程序。觉得浏览器怎么会有调用电脑上的串口的功能呢。后来朋友找了几个资料给我,说网上有人实现,他看不懂。我看了之后恍然大悟,原来是用node。如此万能。
node 实现操作串口的模块是一个 serialport 的模块,网上一搜有很多好文,此处记录一下实现过程中遇到的一些问题以及解决方法。
一开始被忽略的问题 ,我把 node 服务搭在自己的服务器上,后来返回的串口数组全是一堆令我懵逼的数据。后来想起那是 node 读取了我的
Linux 服务器的串口,而不是用户使用的 pc。
由此引出的两个问题。第一,node 服务必须搭建在用户使用的 pc 上,因此用户使用的电脑必须有 node 环境。第二,用户 pc 一般是 windows 系统, node 的模块很多在 Linux 上很容易安装成功,在 Windows 上安装比较困难。
首先解决的是第二个问题:在Windows上安装serialport失败
解决方法: npm install --global --production windows-build-tools
参考链接1: https://stackoverflow.com/questions/33142357/unable-to-install-node-js-serialport-npm-package-on-windows
参考链接2: https://github.com/nodejs/node-gyp#installation
安装好之后就可以安装 serialport 模块了。
解决第一个问题:用户电脑的 node 环境
解决方法: electron ——使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用 (官网链接: https://electronjs.org/ )(w3c: https://www.w3cschool.cn/electronmanual/wcx31ql6.html )
使用 electron 搭建的桌面应用可以像平常我们使用的 exe 应用程序一样直接运行,不需要搭建环境。
npm install -g electron-prebuilt //提示electron-prebuilt已经更名为electron
npm install -g electron //安装失败
使用淘宝镜像安装问题解决: cnpm install -g electron
参考链接: http://blog.csdn.net/upc_xbt/article/details/53342129
解决方法: npm install -g electron-rebuild
以后每次重新运行 electron . 的时候再执行一次 ``./node_modules/.bin/electron-rebuild` 对原生模块进行rebuild
参考链接: https://www.w3cschool.cn/electronmanual/eqsc1qko.html
参考链接: http://m.blog.csdn.net/u014563989/article/details/75045052
cnpm install -g electron-packager //安装打包工具
electron-packager . 可执行文件的文件名 --win --out 打包成的文件夹名 --arch=x64位还是32位 --version版本号 --overwrite --ignore=node_modules
因为打包的时候执行的命令带有 --ignore=node_modules , 即不将 node_modules 里面的依赖包打包,所以在打包后的新文件中,进入resource 目录会发现 node_modules 是一个空文件夹,所以自然找不到依赖包。如果去掉打包时的命令参数 --ignore=node_modules ,则需要非常长的打包时间。我的解决方法是将原来 node_modules 文件夹中的相关的依赖包文件复制进打包后的 node_modules 中,虽然是一个比较无脑的方法,每次打包都要拖动相关文件进去,不过我备份了一个 node_modules 文件夹,下一次打包后就把备份的 node_modules 直接复制进去。
node 模块 ccap : 用于生成验证码图片,可以在 express 后台
res.send(图片) ,前端的 img 的 src设置为请求这个接口。
ccap的用法可以参考链接: https://cnodejs.org/topic/50f90d8edf9e9fcc58a5ee0b
串口调试助手,一般都支持:
支持以文本或16进制方式接收和显示数据;支持串口,自动寻找系统支持的串口,150~256000常见的波特率,支持自定义任意波特率;支持网络接口,支持UDP、TCP客户端、TCP服务器协议类型;支持自动保存测试数据。
支持16进制、字符串、文件3种格式的数据发送;支持循环激励;支持保存为文件,方便测试项目的统一管理和重复使用。
有个别的软件,功能强大,如格西烽火,支持自定义协议功能:
支持主动设备(即主动发起请求、接收响应的设备)和从动设备(即被动等待请求、发送响应的设备)的激励仿真;支持任意的帧格式定制,最小解析单位为1Bit,可直观地显示任意帧格式,不需要再为不同的协议定制软件;支持自定义协议类型,支持测试结果分类存储和显示;支持使用C#、VB和JScript脚本语言控制测试运行,调用第三方DLL完成复杂的计算和测试任务,具有强大的扩展性;支持循环激励和激励统计报告;支持保存为工程文件,方便测试项目的统一管理和重复使用。