Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to read from Serial port in a webpage

I want to design a webform that user should fill some fields. The value of one field should be read from Serial port (COM1) of client computer which a special hardware is connected to it and the user presses the Send to PC key of the hardware when filling the form.

How i can listen to COM1 port in my webpage and get the value of COM1 and place it in the web form automatically?

I heard that ActiveX controls can do this but it is compatible only with IE (right?). The other option is Java applets.

I want a simple solution which be compatible with (at least) IE/Firefox/Opera.

I the server-side i can have ASP or PHP but i am appreciate if you give a solution for each.

UPDATE:

We can tell clients to change their security settings to accept our ActiveX/applet.

It is also possible for us to tell clients to install a custom program which runs as a service and reads from Serial port.

The problem is the read data should be entered to the webform automatically and immediately.

The java applet is a good idea, but the client have to install JRE which is large in size.

Is there any other option?

like image 670
Isaac Avatar asked Jul 22 '10 15:07

Isaac


People also ask

Can JavaScript access serial port?

A serial port is a bidirectional communication interface that allows sending and receiving data byte by byte. The Web Serial API provides a way for websites to read from and write to a serial device with JavaScript.

How do I connect to a serial port?

Open a console sessionUsing PuTTY or other terminal emulator, select "Serial" as the connection type and change the "Serial line" to match the COM port noted earlier. The serial console speed is typically 9600. Click "Open" to connect to the console.

How do I read serial data on my computer?

In Serial Port Reader go to the “Main menu”, choose “Session -> New session”. Alternately, you can click on the “New” icon on the main toolbar or press “Ctrl + N”. This invokes the “New monitoring session” screen. Terminal view – all received data is displayed in ASCII characters on a text console.


3 Answers

I was solving the same problem and I did it. It is done using a Java Web Applet. You will need NetBeans. Read "readme" first. Let me know if anything, pls.

http://racky.wz.cz/applet_rs232.zip

Designed for serial COM1. Plug in it a RS-232 cable and short (connect) pins 2 and 3 on the other end.

like image 132
Racky Avatar answered Jan 04 '23 02:01

Racky


With a Java Applet you can read from the serial port but you need to sign the applet for security reasons. To firm unofficially (no sun's firm) you have to create a certificate. Here is an example.

like image 38
Victor Marzo Avatar answered Jan 04 '23 00:01

Victor Marzo


This would appear to break most security models for the web. I cannot think of a way that it would be possible to do within a browser without granting an applet or ActiveX control a whole lot of permissions (and even then I'm not certain it's possible). I think it's likely to require some kind of native "thick" client-side application to do the communication with the serial port.

like image 20
Gian Avatar answered Jan 04 '23 00:01

Gian