Skip to content

Serial port over ethernet using a HTTP server with WebSockets and REST API.

License

Notifications You must be signed in to change notification settings

papnkukn/remote-serial-port-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

Serial port over ethernet using a HTTP server with WebSockets and REST API.

NOTE: This is an early version of the script - not yet ready for production environment. Please be patient.

Getting Started

Install the package

npm install remote-serial-port-client

Make sure the server is running

npm install -g remote-serial-port-server
remote-serial-port-server --port 5147

List serial ports

var RemoteSerialPort = require('remote-serial-port-client').RemoteSerialPort;
var serialport = new RemoteSerialPort({ url: "http://localhost:5147/" });
serialport.list(function(error, ports) {
  console.log(ports);
});

Use in Node.js

Initialize

var RemoteSerialPort = require('remote-serial-port-client').RemoteSerialPort;
var serialport = new RemoteSerialPort({ url: "http://localhost:5147/" });
...

Using a TCP socket

var RemoteSerialPort = require('remote-serial-port-client').RemoteSerialPort;
var tcp = new RemoteSerialPort({ mode: "tcp", host: "127.0.0.1", port: 5147 });
tcp.open(function(error, result) {
  console.log("Connected");
  setTimeout(function() {
    tcp.write("AT;\n");
  }, 3000);
});
tcp.on("read", function(result) {
  console.log("read", result.data.toString('ascii'));
});

Similar for UDP, just change the mode to udp.

Use in browser

Reference the library

<script src="dist/RemoteSerialPort.min.js"></script>

Initialize in JavaScript

var serialport = new RemoteSerialPort({ url: "http://localhost:5147/" });
...

Methods

new RemoteSerialPort(options)

Creates a new instance.

Propreties of options argument:

Argument name Type Description
verbose boolean A value indicating whether to print details to console
mode string Mode: http, tcp, udp; default: http
url string URL to the the HTTP of the serial port server, mode 'http' only
host string Host name or IP address of the serial port server, TCP and UDP only
port number Port number of the serial port server, TCP and UDP only

list(callback)

Lists available serial ports from the remote host.

Argument name Type Description
port string Serial port name, e.g. COM1 or ttyUSB0 (without /dev)
callback function function(error, ports)

status(port, callback)

Gets the specified serial port status.

Argument name Type Description
port string Serial port name, e.g. COM1 or ttyUSB0 (without /dev)
callback function function(error, status)

open(port, options, callback)

Opens the specified serial port.

Argument name Type Description
port string Serial port name, e.g. COM1 or ttyUSB0 (without /dev)
options object Serial port config
options.baudRate numeric Baud rate, e.g. 9600, 57600, 115200, etc.
options.dataBits numeric Data bits: 5, 6, 7 or 8
options.stopBits numeric Stop bits: 1 or 2
options.parity string Parity: none, even, mark, odd, space
callback function function(error, result)

close(port, callback)

Closes the specified serial port.

Argument name Type Description
port string Serial port name, e.g. COM1 or ttyUSB0 (without /dev)
callback function function(error, result)

write(port, data, callback)

Writes data to the serial port.

Argument name Type Description
port string Serial port name, e.g. COM1 or ttyUSB0 (without /dev)
data mixed Data to be sent to serial port, String of Buffer
callback function function(error, result)

read(port, callback)

Reads data from the serial port receive buffer.

Argument name Type Description
port string Serial port name, e.g. COM1 or ttyUSB0 (without /dev)
callback function function(error, data)

available(port, callback)

Gets a number of bytes waiting in the serial port receive buffer.

Argument name Type Description
port string Serial port name, e.g. COM1 or ttyUSB0 (without /dev)
callback function function(error, result)

Server-side

See remote-serial-port-server script.

About

Serial port over ethernet using a HTTP server with WebSockets and REST API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published