2008-10-14 32 views
9

Estoy trabajando en un proyecto de automatización de robots y me encontré con un bloqueo de carreteras. Para controlar el robot, uno necesita conectarse con él de forma inalámbrica a través de telnet y enviar comandos a través del protocolo tcp/ip. (por ejemplo, el comando 'Mabc' lo mueve hacia adelante en función de la velocidad de la rueda izquierda (a), la velocidad de la rueda derecha (b) y el tiempo (c)). Lo que intento hacer es hacer algunos cálculos en un programa C y luego enviar un mensaje al robot en función del valor del cálculo.Uso de telnet en un programa C

¿Cómo se pueden enviar comandos a través del protocolo tcp/ip en un programa en C?

Gracias!

Erik

Respuesta

16

Usted está buscando enchufes. This is a comprehensive guide to socket programming in C. Telnet es también un protocolo bien definido, aunque no sé si este robot usaría telnet o no (es una sobrecarga de procesamiento adicional para un protocolo que no tendría mucho beneficio adicional para un programa de control de robots). Telnet está cubierto en detalle por RFC 854

+2

Generalmente no implementan el protocolo telnet completo, solo envían comandos ascii cortos al puerto 23. –

6

Expect le permiten interactuar con programas externos, pero no conozco un puerto C de esperar. De lo contrario, encontraría una biblioteca de telnet en C o escribiría la suya usando la programación de socket.

0

seria:

  • escribir algunos scripts de shell simples que contienen los interractions telnet escritos como en este caso los documentos.
  • usando un archivo .telnetrc en su directorio de inicio para controlar aspectos de su sesión de telnet, p. crmod
  • llamando al script mediante llamadas al sistema.

De esta forma, su tiempo de respuesta para cambiar sus interferencias con el robot no implicará tener que volver a compilar su programa todo el tiempo.

BTW Esto suena divertido.

HTH.

aplausos,

Rob

2

Expect fue diseñado para hacer exactamente esto - mantener conversaciones con programas interactivos. Está escrito en Tcl, extendiendo el intérprete Tcl con varios comandos. Tcl es muy fácil de extender; fue diseñado para ser un lenguaje de scripting incorporado desde el principio. La API C principal utiliza construcciones de estilo argv para pasar parámetros a los comandos Tcl y es muy fácil de usar. La mejor guía para la API C es Ousterhout's original book y me llevó una sesión de laboratorio de dos horas obtener mi primer intérprete Tcl integrado en funcionamiento.

Como beneficio adicional también obtienes un intérprete Tcl incorporado, que puedes usar para agregar una función de scripting a tu aplicación. Es probable que descubras que un poco de esto puede implementarse en Tcl si te apetece, por lo que probablemente te ahorrará tiempo en general.