npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

better-serial-port

v1.3.1

Published

A wrapper for the node serial port project that adds useful functionality

Downloads

30

Readme

Better Serial Port

This is a basic wrapper around Node Serial Port that adds some extra functionality that i feel it is lacking.

Features

  • The port is monitored. If it disconnects it will emit the close event and when it is detected again it will automatically reconnect and emit the open event
  • Can auto reopen the port on error
  • If there is no data for a specific period of time it will assume the port disconnected

How to use

This is just an extension of Node Serial Port so check out the docs for that project.

However, this project does add some extra functionality:

Extra methods

  • openPort(keepOpen?: boolean): Promise<void>: Will open the port
  • closePort(keepClosed: boolean = false, disconnectError?: Error): Promise<void>: Will close the port and attempt reopen if keepClosed is not set to true
  • portOpen(): boolean: If the port is currently open

Extra Options

  • BetterSerialPortOptions.keepOpen: boolean: Should the port be kept open?
  • BetterSerialPortOptions.closeOnNoData: number | boolean: Should we close (and reopen) the port if we don't get any data
  • BetterSerialPortOptions.disconnectTimeoutMS: number | boolean: How long of no data before assuming disconnection

Included serial port methods

  • write(): Will re-open the port if not successful
  • flush(): Adds a flush function with promise
  • pipe(): Adds the pipe method which will be moved to the new serial port when created

If you need more feel free to ask or add them via a pull request. Otherwise you can call them directly BetterSerialPort.port

Example

const BetterSerialPort = require("better-serial-port");

//Create the port and keep it open
const serialport = new BetterSerialPort.BetterSerialPort({
    path: "/dev/example",
    baudRate: 9600,
    keepOpen: true,
    closeOnNoData: true,
    disconnectTimeoutMS: 1000
});

//Write example
serialport.write("Hello World!");

//Print out any data
serialport.on("data", (data) => {
    console.log(data);
});

//When the port is connected
serialport.on("open", () => {
    console.log("Port connected!");
});

//When the port is disconnected
serialport.on("close", () => {
    console.log("Port disconnected");
});

//Close the port
function close() {
    serialport.closePort();
}

//Close the port and don't re-open it
function stayClosed() {
    serialport.closePort(true);
}