serialport interface for batch style commands
This module is a promise based wrapper for the node-serialport package.
It allows you to interact with devices on a command & response basis. Based on a defined terminator
or timing
behavior the end of a response is deterimed and the complete response returned as a resolved Promise
.
$ npm install --save serial-io
const serialIo = require('serial-io');
// this will send HELLO to the device and resolve with
// anything that gets received within 100ms
serialIo.send('thisPortName', 'HELLO')
.then(response => console.log(`device responded:\n${response}`))
// if you don't know the devices port name try
serialIo.ports().then(console.log.bind(console))
// will show the response of a device on port '/dev/cu.usbmodem1411' (assuming it reacts to 'version\n')
serialIo.send('/dev/cu.usbmodem1411', 'version\n').then(console.log.bind(console))
The package exposes two APIs with different abstraction levels.
Directly interacting with the serialIo
objects gives you the highest level of abstraction.
If you use serialIo.connect()
you get a Connection
object returned that
allows you to do things like multiple requests without re-connecting every time.
All methods are promise-based.
Resolves to a list of available serial ports. Refer to the serialport documentation for a specification of the returned data.
Single interaction with a device
. Opens up a connection, transmits the content
and waits for the response to resolve the returned Promise
.
Type: string
A valid portname.
Type: string
Payload to send.
Type: string
Default: none
If the specified terminator
string/character is found within the response the Promise
is resolved immediately with the capture data. The returned data includes the terminator
.
Type: number
in ms
Default: 100
Time to listen to the device for a (first) response.
Type: number
in ms
Default: 10
Time to wait after receiving a data chunk until the next one arrives. If the timer runs out the response is resolved
.
Opens up a Connection
to the given port.
Type: string
A valid portname.
Refer to serialport openOptions for an overview of available options.
Closes the Connection
instance.
Send content
over the connection and wait for an answer. The method returns a Promise
that will resolve to the received answer. Using options
you can define how listening to answer is done.
Type: string
Payload to send.
Type: string
Default: none
If the specified terminator
string/character is found within the response the Promise
is resolved immediately with the capture data. The returned data includes the terminator
.
Type: number
in ms
Default: 100
Time to listen to the device for a (first) response.
Type: number
in ms
Default: 10
Time to wait after receiving a data chunk until the next one arrives. If the timer runs out the response is resolved
.
Tells you something about the current connection.
MIT © anoff