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-clientMake sure the server is running
npm install -g remote-serial-port-server
remote-serial-port-server --port 5147List 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.