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.
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);
});
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
.
Reference the library
<script src="dist/RemoteSerialPort.min.js"></script>
Initialize in JavaScript
var serialport = new RemoteSerialPort({ url: "http://localhost:5147/" });
...
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 |
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) |
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) |
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) |
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) |
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) |
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) |
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) |
See remote-serial-port-server script.