sn
serial-node
npm i serial-node
sn

serial-node

Serial Port using Node.js (unmaintained)

by Guilherme Oliveira

0.0.11 (see all)License:MITTypeScript:Not Found
npm i serial-node
Readme

Serial-node

Serial-node is a module for Node.js to control serial ports. (For now only for windows, soon to Linux and MacOS.)

Installation

Via NPM:

npm install serial-node 
https://www.npmjs.com/package/serial-node

Functions

list()

This function list the available ports on your computer, returns an array of ports.

Example:

const SerialPort = require('serial-node');
const serialList = new SerialPort().list();

serialList.forEach(console.log); 

Note: if there is no available port, the returned array is equal 0.

use(port,values)

This function is to set up and use a port. The parameter 'port' is required and is the port name.

Example:

const SerialPort = require('serial-node');
const serial = new SerialPort();
serial.use('COM3');
values (optional)

The parameter 'values' is to set the parameters of a serial port.

  • baud, defaults to 9600. Must be a number you specify.
  • databits, defaults to 8. Must be one of: 8, 7, 6, or 5.
  • parity, defaults to none. Must be one of: none, even, mark, odd, or space.
  • stopbits, defaults to 1. Must be one of: 1,1.5, or 2.
  • timeout, defaults to off. Must be one of: on or off.
  • xon, defaults to off. Must be one of: on or off.
  • odsr, defaults to off. Must be one of: on or off.
  • octs, defaults to off. Must be one of: on or off.
  • dtr, defaults to off. Must be one of: on or off.
  • rts, defaults to on. Must be one of: on or off.
  • idsr, defaults to off. Must be one of: on or off.
  • callbackUse , function callback when Use is completed.
  • callbackWrite , function callback when Write is completed.
  • callbackRead , function callback when Read is completed.
  • callbackList, function callback when List is completed.

write(value)

This function is to write the serial port.

Example:

const SerialPort= require('serial-node');
const serial = new SerialPort();
serial.use('COM3');
serial.write('hi!');

Note: encoding is ASCII.

read([looping])

This function is to read the serial port, returns the value(split by '\n' or '\0' of '\r').

Example 1:

const SerialPort= require('serial-node');
const serial = new SerialPort();
serial.use('COM3'); 
const read = serial.read();
console.log(read);

Example 2: (Using looping feature) When the lopping parameter is true the callbackUse is called until the stop function is called.

const SerialPort= require('serial-node');
const serial = new SerialPort();

serial.use('COM3', { 
  callbackRead: (args) => {
    const read = args.value.trim() || '';
    console.log(read);
   }
 }
);

serial.read(true); // reading serial in looping

stop()

This function is to stop reading if was set to looping

Example:

const SerialPort= require('serial-node');
const serial = new SerialPort();

serial.use('COM3', { 
  callbackRead: (args) => {
    const read = args.value.trim() || '';
    console.log(read);
   }
 }
);

serial.read(true); // reading serial in looping

// wait for 5 seconds to stop reading
setTimeout(() => {
    serial.stop();
}, 5000);

Events

Please, take a look into callbacks on Use function options. Example:


const SerialPort= require('serial-node');
const serial = new SerialPort();

// setting use with config arguments and callback functions
serial.use('COM3', {
    baud: '115200',
    callbackUse: (args) => {
        if (args.state) {
            // reading serial in looping
            serial.read(true);
 
            // wait for 5 seconds to stop reading
            setTimeout(() => {
                serial.stop();
            }, 5000);
        }
    },
    callbackRead: (args) => {
        // my rules to accept data when the serial data was like: @6:0!
        var read = args.value.trim() || '';
        if (read.startsWith('@') && read.endsWith('!') && read.length == 5) {
            // show the useful data
            console.log(read);
        }
    },
    callbackWrite: (args) => {
        // nothing todo for now
    },
    callbackList: (args) => {
        // nothing todo for now
    }
});

Downloads/wk

4

GitHub Stars

12

LAST COMMIT

3yrs ago

MAINTAINERS

1

CONTRIBUTORS

2

OPEN ISSUES

0

OPEN PRs

0
VersionTagPublished
0.0.11
latest
3yrs ago
No alternatives found
No tutorials found
Add a tutorial
No dependencies found

Rate & Review

100
No reviews found
Be the first to rate