Access Serial Port From Browser

Make sure your clients have Java installed most do already and if not, the browser can install it this is the only install you may need to require from some of.

RSM Series console servers provide in-band and out-of-band access to DB9 RS232 console ports and maintenance ports on UNIX servers, routers and any other network.

The EtherPath is a versatile single port serial server for Ethernet LAN/WAN s. It allows a remote serial port for any LAN connected workstation via telnet or port.

Target Device End : Adapter : Cable : Adapter : WTI Device End : RJ45 Serial Console Ports: Cisco Routers, Juniper Routers and Other Network Devices with RJ45 Serial.

garrows/browser-serialport

Javascript in particular, or just from the browser with some method. And which browser. IE or Firefox. Firefox plugins using XUL javascript are pretty easy, although you d still have to implement something in XPCOM the Mozilla equivalent of ActiveX/COM to work the RS232.

Alternatively you could use JSDB as an impromptu web server on an alternate port of the local machine. It s ridiculously easy to use the RS232 port in JSDB:

c: jsdb

js S new Stream com1://115200 ;

com1

js S.write x00 ; // send ASCII character 0 to the serial port

1

js

So your browser-side implementation could just be whatever your favorite bookmark/link/thingy is that links to where 9999 is the port JSDB is listening to, and 1 is the serial port switch. The JSDB code would listen to the port and send the appropriate RS232 command after parsing a GET request from the browser.

Javascript interface with RS-232 Serial Port

I am currently working on a project that involves a 4 Port A/V switch. This switch can be controlled via RS-232. The computer that will interface with the switch runs.

Robots in the browser. Just like node-serialport but for browser apps.

Why not Node.js.

Nodebots are awesome but HTML5 apps have access to a lot of APIs that make sense for robotics like the GamepadAPI, WebRTC Video and Data, Web Speech API, etc. Also you get a nice GUI and its easier to run. I have also made a fork of Johnny-Five to work with Browserify as well by modifying it s dependancy Firmata to use browser-serialport.

Restrictions

You will not be able to add this to your normal website.

This library only works in a Chrome Packaged App as this is the only way to get access to the serial ports API in the browser.

If you want help making your first Chrome App, read the Create Your First App tutorial.

There is currently no Firefox extension support but that might come soon if possible.

Known incompatibilities with node-serialport

Parsers not implemented

Inconsistent error messages

Chrome has a slightly different options set:

dataBits: 7, 8

stopBits: 1, 2

parity: none, even, mark, odd, space

flowControl: RTSCTS

Installation

npm install browser-serialport

To Use

Opening a serial port:

var SerialPort require browser-serialport. SerialPort

var serialPort new SerialPort /dev/tty-usbserial1,

baudrate: 57600

;

When opening a serial port, you can specify in this order.

Path to Serial Port - required.

Options - optional and described below.

The options object allows you to pass named options to the serial port during initialization. The valid attributes for the options object are the following:

baudrate: Baud Rate, defaults to 9600. Should be one of: 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1800, 1200, 600, 300, 200, 150, 134, 110, 75, or 50. Custom rates as allowed by hardware is supported.

databits: Data Bits, defaults to 8. Must be one of: 8, 7, 6, or 5.

stopbits: Stop Bits, defaults to 1. Must be one of: 1 or 2.

parity: Parity, defaults to none. Must be one of: none, even, mark, odd, space

buffersize: Size of read buffer, defaults to 255. Must be an integer value.

parser: The parser engine to use with read data, defaults to rawPacket strategy which just emits the raw buffer as a data event. Can be any function that accepts EventEmitter as first parameter and the raw buffer as the second parameter.

Note, we have added support for either all lowercase OR camelcase of the options thanks jagautier, use whichever style you prefer.

open event

You MUST wait for the open event to be emitted before reading/writing to the serial port. The open happens asynchronously so installing data listeners and writing

before the open event might result in nothing at all.

Assuming you are connected to a serial console, you would for example:

serialPort.on open, function

console.log open ;

serialPort.on data, function data

console.log data received: data ;

serialPort.write ls n, function err, results

console.log err err ;

console.log results results ;

You can also call the open function, in this case instanciate the serialport with an additional flag.

, false ; // this is the openImmediately flag default is true

serialPort.open function error

if error

console.log failed to open: error ;

else

List Ports

You can also list the ports along with some metadata as well.

var serialPort require browser-serialport ;

serialPort.list function err, ports

ports.forEach function port

console.log port.comName ;

console.log port.pnpId ;

console.log port.manufacturer ;

Parsers

Browser-serialport doesn t as of 2.0.0 support parsers.

You can get updates of new data from the Serial Port as follows:

serialPort.on data, function data

sys.puts here: data ;

You can write to the serial port by sending a string or buffer to the write method as follows:

serialPort.write OMG IT WORKS r ;

Enjoy and do cool things with this code.

This lesson explains how to connect to router or switch console if serial port is not available in computer.

access serial port from browser