Cómo desarrollar una aplicación que reemplace PuTTy (modo serie)

Haciendo algunas suposiciones:

  • El dispositivo se presenta como un dispositivo serie USB utilizando la clase de dispositivo de comunicaciones, por lo que se presenta automáticamente a través del sistema operativo como un dispositivo serie
  • El dispositivo en sí tiene la interfaz de terminal cargada; es decir, el microcontrolador imprime sus propios menús o mensajes, acepta entradas, etc.
  • Por alguna razón, no desea que el usuario active manualmente Putty (o Minicom o lo que sea)

Lo básico será bastante simple.

  • Mire las descripciones de hardware de los dispositivos USB conectados para localizar su etiqueta específica de fabricante / vendedor. Mire a través de sus puntos finales enumerados para encontrar el archivo de dispositivo de clase de dispositivo de comunicaciones que está asociado con él. O bien, enumere los dispositivos en serie y luego ubique los suyos. En Linux®, puede comenzar en / sys / class / tty / y buscar su dispositivo de esa manera, o utilizar una interfaz de nivel superior.
  • Abra el puerto y configure los protocolos en serie en los ioctls, por ejemplo, velocidad BAUD, paridad, lo que sea.
  • Configure su terminal GUI. Si solo está utilizando E / S de secuencias estándar, tal vez solo desee leer desde la entrada estándar (tal vez verificar el modo cocido) y escribir en la salida estándar. Si desea abrir su propia GUI, probablemente desee un buen widget de terminal compatible con xterm, como GNOME / vte
  • Realice una encuesta del dispositivo serie, lea de él, imprima en el terminal; sondear el teclado, leerlo, escribir en el dispositivo serie. Repita hasta que termine.

En Windows, básicamente puede escribir una aplicación (por ejemplo, en C o Perl), que abre el puerto COM y lee las escrituras desde / arriba como desde un archivo.

Probablemente querrás construir sobre algo como este ejemplo de Perl.

O usa un emulador de terminal programable. Haría el trabajo de comunicación, y puede escribir comandos para decirle qué hacer (hacer conexión, enviar comandos, esperar resultados).

SecureCRT o ZOC Terminal pueden hacer eso.

¿Que estás tratando de hacer?

Si todo lo que desea hacer es enviar comandos a un puerto serie y / o leer datos desde ese puerto, desde una línea de comandos * nix, entonces:

  • use stty para configurar los parámetros del puerto
  • solo echo datos a> / dev / USB0 o lo que sea
  • leer datos de
  • o use algo como propina, o mincom como una simple interfaz de línea serial

Bueno, ¿por qué necesitas reemplazarlo?

Y recuerde, es un software de código abierto, puede comenzar desde sus fuentes si necesita personalizar cosas.

Supongo que no es obvio reescribirlo, incluso pequeñas partes, y necesita un conocimiento profundo de los protocolos involucrados.

Ya hay dos “reemplazos” para la funcionalidad ssh de PuTTy: openssh y dropbear ssh. Míralos bien y decide si puedes hacerlo mejor. SSH requiere una conexión de red a un servidor ssh; Dropbear tiene uno ligero. Es fácil obtener una conexión USB para que parezca una red.

Por otro lado, puede estar buscando un emulador de terminal en serie; buenos ejemplos son kermit y microterm.