2010-07-22 33 views
5

Quiero diseñar un formulario web que el usuario llene algunos campos. El valor de un campo debe leerse desde el puerto serie (COM1) de la computadora cliente al que está conectado un hardware especial y el usuario presiona la tecla Send to PC del hardware al completar el formulario.Cómo leer desde el puerto serie en una página web

¿Cómo puedo escuchar el puerto COM1 en mi página web y obtener el valor de COM1 y colocarlo en el formulario web automáticamente?

Escuché que los controles ActiveX pueden hacer esto pero es compatible solo con IE (¿verdad?). La otra opción son los applets de Java.

Quiero una solución simple que sea compatible con (al menos) IE/Firefox/Opera.

Yo, desde el lado del servidor, puedo tener ASP o PHP, pero agradezco si le das una solución para cada uno.

ACTUALIZACIÓN:

Podemos decirle a los clientes a cambiar su configuración de seguridad para aceptar nuestra ActiveX/applet.

También es posible para nosotros indicar a los clientes que instalen un programa personalizado que se ejecute como un servicio y lea desde el puerto serie.

El problema es que los datos leídos deben ingresarse al formulario web automática e inmediatamente.

El applet de Java es una buena idea, pero el cliente tiene que instalar JRE, que es de gran tamaño.

¿Hay alguna otra opción?

+0

¿Por qué tiene que ser una página web? Puede tener una aplicación cliente (que no tenga problemas para hablar con un puerto COM) envíe los datos a una página web, servicio RESTful o servicio WS- *. –

+0

@Matthew: Tiene razón, pero esta página web es parte de un gran sitio web y BOSS prefiere que todo esté integrado en la web. : -/ – Isaac

Respuesta

3

Con un Applet de Java, puede leer desde el puerto en serie, pero debe firmar el applet por razones de seguridad. Para firma extraoficialmente (sin firma del sol), debe crear un certificado. Here es un ejemplo.

+0

¿Puedes actualizar el enlace? este enlace ha caducado –

1

Esto parece romper la mayoría de los modelos de seguridad para la web. No puedo pensar en una forma en que sea posible hacerlo dentro de un navegador sin otorgar un applet o control ActiveX con muchos permisos (y aun así no estoy seguro de que sea posible). Creo que es probable que requiera algún tipo de aplicación nativa "gruesa" del lado del cliente para hacer la comunicación con el puerto serie.

+0

Nuestros clientes no tienen problemas para otorgar dichos permisos al applet. También actualicé la pregunta para aclaración. – Isaac

0

Java podría ser su mejor opción para mantener la compatibilidad entre navegadores y plataformas. Una búsqueda rápida criado estas páginas que pueden serle de utilidad:

La elección del lado del servidor no importa en absoluto. Una vez que el cliente lee los datos, es lo mismo que enviar cualquier otro dato a un script del lado del servidor.

+2

Sin embargo, esto requerirá un cliente gordo ya que no se puede hacer desde un applet debido a las restricciones de seguridad. – Chris

4

Estaba resolviendo el mismo problema y lo hice. Se hace usando un Applet Web de Java. Necesitarás NetBeans. Lea "readme" primero. Déjame saber si algo, pls.

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

Diseñado para COM1 serie. Enchúfelo a un cable RS-232 y pines cortos (conecte) 2 y 3 en el otro extremo.

+1

+1 Esta respuesta parece legítima y necesita más atención. Este es probablemente un buen código de plantilla para este problema. – Isaac

+0

@Racky: archivo dañado – GerManson

Cuestiones relacionadas