Programación Web y Scripting > JavaScript
Enviar y recibir por el puerto serie
pepepaquiderm2:
Hola! me gustaría saber el código para poder enviar y recibir información por el puerto serie utilizando JavaScript. Gracias !!
posman:
Alguna vez logre enviar datos por el puerto serie. Necesitaba enviar datos a una impresora termica para imprimir etiquetas con codigos de barra personalizados. En un HTML puse un TEXTAREA y un boton. Cuando el usuario presionaba el boton, el texto que habia escrito, se imprimia.
El codigo lo tengo en mi trabajo, asi que te lo podria poner aqui hasta el lunes. Aunque tal vez no te funcione, creo que solamente funciona en IE y es unicamente para enviar, no para recibir datos. Recuerdo que en el trabajo tengo instalado el VB6 y utilice el mscomm. Intente crear de nuevo el codigo con el Visual Studio 2005 que tengo instalado en mi casa, pero no me permite agregar el componente (o control). Y en mi casa busque, y parece tampoco tengo el mscomm. ;)
El codigo era algo asi:
--- Código: Text --- <head><script>function conectar() { puertoSerie.open = true;}function enviar() { puertoSerie.write("texto a enviar");}function desconectar() { puertoSerie.open = false;}function recibir() {}</script> <script language="javascript" for="puertoSerie" event="OnComm">recibir();</script></head><object name="puertoSerie" classid="XXXXX">aqui estaban las propiedades del objeto y configurabas la paridad, velocidad, el puerto, etc.</object> No le hagas mucho caso al codigo, sobre todo a las funciones. No recuerdo bien si esa es la manera de abrir/cerrar el puerto. Lo importante es el class ID, que es lo que no recuerdo porque es una cadenota como de muchos caracteres.
El lunes, te pongo el codigo tal como lo tengo en el trabajo
posman:
Acabo de encontrarme una pagina que se me hace bastante "familiar" jejeje porque asi es mas o menos mi codigo
http://topic.csdn.net/t/20051112/15/4389019.html
Esta en chino o japones, no se, pero si se entiende el codigo
El resultado salio de buscar esto en google:
"classid" mscomm
pepepaquiderm2:
Gracias por la información. Pero aún desconozco lo que hace este código. Me podrías pasar el tuyo a ver si me aclaro un poco más? El problema es que no sé cómo traspasar esta información a un fichero que entienda de JavaScript. Gracias por todo
posman:
El codigo que tengo es muy parecido
--- Código: Text ---<HTML><head><title>Super CIMonWeb</title><script>function abrir(puerto) { cmms.CommPort = puerto; cmms.PortOpen = true;}function cerrar() { cmms.PortOpen = false; }function mandar(cadena) { cmms.Output = cadena;}function recibir() { var cadena = cmms.Input; forma.respuesta.value += cadena + "n"; var r = forma.respuesta.createTextRange(); r.scrollIntoView(false); return false; }</script><script LANGUAGE=javascript FOR=cmms EVENT=OnComm>recibir()</script> </head> <BODY onload="abrir(1);" onunload="cerrar();" topmargin=0> <br><OBJECT id=cmms style="LEFT: 0px; TOP: 0px" classid="clsid:648A5600-2C6E-101B-82B6-000000000014" VIEWASTEXT> <PARAM NAME="_ExtentX" VALUE="1005"> <PARAM NAME="_ExtentY" VALUE="1005"> <PARAM NAME="_Version" VALUE="393216"> <PARAM NAME="CommPort" VALUE="1"> <PARAM NAME="DTREnable" VALUE="-1"> <PARAM NAME="Handshaking" VALUE="0"> <PARAM NAME="InBufferSize" VALUE="1024"> <PARAM NAME="InputLen" VALUE="0"> <PARAM NAME="NullDiscard" VALUE="0"> <PARAM NAME="OutBufferSize" VALUE="512"> <PARAM NAME="ParityReplace" VALUE="63"> <PARAM NAME="RThreshold" VALUE="1"> <PARAM NAME="RTSEnable" VALUE="0"> <PARAM NAME="BaudRate" VALUE="9600"> <PARAM NAME="ParitySetting" VALUE="2"> <PARAM NAME="DataBits" VALUE="7"> <PARAM NAME="StopBits" VALUE="0"> <PARAM NAME="SThreshold" VALUE="0"> <PARAM NAME="EOFEnable" VALUE="0"> <PARAM NAME="InputMode" VALUE="1"></OBJECT> <form name="forma" onsubmit="return false;"><table border=1> <tr> <td>Texto</td> <td><input type="parte" name="parte" value="VA6L2H FNLALT"></td> <td><input type="button" name="btnImprimir1" value="Imprimir1" onclick="mandar(parte.value + sufijo.value + cantidad.value)"></td> </tr> <tr> <td>Sufijo</td> <td><input type="text" name="sufijo" value="AA"></td> </tr> <tr> <td>Cantidad</td> <td><input type="text" name="cantidad" value="000026"></td> </tr> <tr> <td colspan=4><textarea cols=50 rows=8 name="respuesta" value=""></textarea></td> </tr></table> </BODY></HTML>
Al cargarse la pagina, se abre el puerto y al cerrar la pagina, se cierra el puerto. Cuando se presiona el boton "Imprimir", se manda llamar la funcion "mandar" que es la que envie los datos al puerto serie. Tambien se declara una funcion que se llama al recibir datos por el puerto serie. Eso lo puse porque cuando enviaba datos equivocados a la impresora, esta me devolvia una cadena de error. Esa cadena la ponia en el textarea "respuesta"
Navegación
[#] Página Siguiente
Ir a la versión completa