Comunicación bidireccional usando esperar

Estoy en medio de escribir un expect script para automatizar la comunicación entre un arduino en /dev/ttyUSB0 y una xine instancia en el puerto telnet local 6789. Si se detecta una pulsación de tecla en el arduino, enviará una línea a través de su salida en serie, button 01 pressed, button 2 pressed etcétera. Ahora, de acuerdo con los botones presionados, me gustaría decir xine para iniciar determinadas películas.

Hasta ahora, ambas comunicaciones funcionan por sí solas, pero necesito reaccionar a los mensajes de arduino con mensajes telnet, muy parecido a este ejemplo:

User presses key 1.
arduino sends serial line "button 01 pressed"
expect sees this string on /dev/ttyUSB0 and sends "playlist delete all; mrl add movie01.mp4" to xine.
xine then plays this movie while I am asking it for it's status every second.
Once the movie is finished playing, I tell xine to start the "loop" movie and also the arduino to set every output to the idle state.

Entonces, básicamente estoy pidiendo una forma dos spawn a las comunicaciones (una serie, una telnet) al mismo tiempo, expectaplicando diferentes cadenas en ellos y reaccionando programáticamente a ellos (mientras que la última parte, reaccionando programáticamente, ya está hecha).

Gracias por cualquier ayuda,

Christian.

preguntado el 27 de agosto de 11 a las 14:08

1 Respuestas

Puede intentar usar la opción de esperar con -i para especificar el ID de generación con el que desea comunicarse y establecer un pequeño valor de tiempo de espera, luego puede esperar entre dos procesos.

Respondido 27 ago 11, 18:08

suena interesante, ¿tendría un pequeño ejemplo de algún otro lugar que pueda ver / leer? - cristiano

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.