serialport通过usb通讯_使用SerialPort库进行Node物联网项目开发

SerialPort是Node.js中用于串口通讯的关键组件,广泛应用于物联网开发,如Johnny-Five和Mozilla的WebThings Gateway。本文详细介绍了SerialPort的Bindings、Stream Interfaces、Parsers和命令行接口等组成部分,以及如何使用Mock串口仿真器进行测试。通过理解这些概念,开发者可以更好地在Node.js项目中实现硬件与软件的连接。
摘要由CSDN通过智能技术生成

e270c3bbe8eb2d26f3e956965801f019.png

如果说Nodejs将JavaScript的应用从网页端扩展到了服务器和操作系统端,Electron为JavaScript实现了跨平台应用的能力,那么SerialPort就是打通JavaScript软件与硬件的关键部件。著名的Johnny-Five物联网平台开发包的核心部件就是SerialPort,而Mozilla的WebThings

Gateway物联网关也是在SerialPort基础上实现的。这是因为,虽然已经历经了几十年光阴,串口在通讯传输速度上已经远远跟不上现代的通讯手段,但由于其廉价、简便、稳定可靠且经历时间验证的特点,在当前的工业与民生中仍然具有相当重要的地位,而SerialPort正是作为串口与计算机系统连接的中枢,成为互联网开发利器的JavaScript打通软件与硬件系统的关键。

更准确来说,SerialPort是运行在Node平台上的开发包,其安装也是通过npm install完成的。在SerialPort官方首页有一段简单的应用例程。装完SerialPort后,用这段程序就可以立即上手(当然,你还需要一个串口终端设备并且编写了终端部分的程序,如果没有,也可以通过本文后面的仿真器模拟出来一个。)

const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')
const port = new SerialPort(path, {
     baudRate: 256000 })

const parser = new Readline()
port.pipe(parser)

parser.on('data', line => console.log(`> ${
    line}`))
port.write('ROBOT POWER ONn')
//> ROBOT ONLINE

SerialPort包由SerialPort,Bindings,Interfaces和Parsers几部分组成,并且提供了一些比如串口列表等命令行工具(这些工具在旧版本里是SerialPort的一部分,但是目前版本中都可以独立运行了)。

1. Bindings

Bindings(绑定)是SerialPort连接软件与硬件平台的基础,一般来说,SerialPort库会自动探测并与平台绑定(Binding),不需要人为去调用Bindings来绑定Linux、Windows或是mac平台。当然,SerialPort也提供了一个修改Bindings的路径,这是通过内置的Stream包实现的(按照开发者的意图,用户永远不需要直接操作Bindings包)。

var SerialPort = require('@serialport/stream');
SerialPort.Binding = MyBindingClass;

通常来说,人为修改绑定在使用中并没有太大便利,但对于调试则非常重要,这是因为,在调试时用户可以修改绑定来调用一个仿真的串口。

2. Stream Interfaces

SerialPort的接口界面是通过流(Stream)实现的,

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值