parsers - Interfaz Javascript con puerto serie RS-232
serial port node red (9)
Actualmente estoy trabajando en un proyecto que implica un conmutador A / V de 4 puertos. Este interruptor se puede controlar a través de RS-232.
La computadora que se conectará con el conmutador ejecuta Vista. Me gustaría crear un gadget de barra lateral que tenga 4 botones: 1 para cada puerto del conmutador. Cuando el usuario presiona el botón, cambia a ese puerto.
He hecho un poco de googlear, y parece que no hay una muy buena forma de interactuar entre javascript y rs-232.
¿Alguien tiene alguna sugerencia para mi?
¡Gracias!
¿Te gustan los hacks complicados?
Instale un servidor web. Use CGI, Python, PHP, Perl u otro método para controlar el puerto serie desde una página en el servidor web.
Apunta el control en la página web.
Creo que necesitarás agregar una capa Java o Active-X en el medio. JavaScript está bastante bien aislado (deliberadamente) del sistema operativo.
Javascript en particular, o solo desde el navegador con algún método? ¿Y qué navegador? (¿IE o Firefox?) Los complementos de Firefox que usan XUL + javascript son bastante fáciles, aunque aún tendría que implementar algo en XPCOM (el equivalente de Mozilla de ActiveX / COM) para trabajar con el RS232.
Alternativamente, puede usar JSDB como un servidor web improvisado (en un puerto alternativo de la máquina local). Es ridículamente fácil usar el puerto RS232 en JSDB:
c:/>jsdb
js>S=new Stream(''com1://115200'');
com1
js>S.write(''/x00''); // send ASCII character 0 to the serial port
1
js>
Por lo tanto, su implementación en el navegador podría ser cualquiera que sea su favorito marcador / enlace / cosa que enlace a http://localhost:9999/comport/1
donde 9999 es el puerto # JSDB está escuchando, y "1" es el número de serie cambio de puerto El código JSDB escucharía el puerto y enviaría el comando RS232 apropiado después de analizar una solicitud GET desde el navegador.
Lamento publicar debajo de mi propia pregunta: no me había registrado, así que ahora no puedo editarlo.
Quería implementar un gadget Vista Sidebar para la tarea. desafortunadamente, parece que esos son solo documentos html con JavaScript, por lo que no parece que va a ser una buena solución para mí. Probablemente solo escriba una pequeña aplicación .Net o algo así.
Gracias por todas sus aportaciones. Si alguien todavía tiene ideas, las tomaré.
Necesita un componente RS-232 ActiveX que instale en el sistema y luego cree un objeto en el código de JavaScript en su widget de barra lateral. Tenga en cuenta que no existe un estándar para crear objetos a partir de componentes ActiveX, esto solo está disponible en JScript, la implementación de Microsoft del lenguaje que todos conocemos como Javascript.
No tengo una solución, pero aquí podría ser el comienzo de una.
- El applet Java firmado le daría acceso al sistema
- Utilice RXTX (Java Serial COM API) para conectarse a puertos serie
- Applet necesitaría instalar archivos en la carpeta jre / ext. Reinicia la aplicación después de hacerlo.
Ahora, si ejecuta el javascript desde su máquina, puede usar HTA para tener acceso completo al sistema.
Podría tratar de buscar algo como V8 y escribir un pequeño contenedor para la biblioteca C para exponer a la máquina virtual.
AFAIK, el tiempo de ejecución de gadgets de Vista admite el uso de controles ActiveX firmados. También puedes usar Java. Puede crear un contenedor ActiveX para .Net que tenga una buena cantidad de soporte para dispositivos serie. En su mayor parte, las comunicaciones serie ActiveX + están limitadas a controles comerciales.
RealTerm tiene una extensa interfaz COM y es fácil de controlar desde JavaScript en Windows. La página de descargas de SourceForge tiene la versión 2.0.0.57 e i2cchip.com tiene una versión 2.0.0.70.
Hay un ejemplo de JavaScript en el subdirectorio "ejemplos" que está instalado de manera predeterminada.
Lamentablemente, los ejemplos de JavaScript parecen haber sido eliminados de las versiones posteriores. 4 Aún así es posible hacerlo, pero no hay ejemplos.