我正在编写一个expect
脚本,以便在/dev/ttyUSB0
上的arduino和本地telnet端口6789上的xine
实例之间自动进行通信。如果在arduino上检测到按键,它将会通过它的串行输出button 01 pressed
,button 2 pressed
等发送一行。现在,根据按下的按钮,我想告诉xine
开始播放某些电影。
到目前为止,两个通信都是自己工作的,但我需要用telnet消息对arduino消息做出反应,就像这个例子一样:
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.
所以,基本上我要求同时进行两次spawn
通信(一个串行,一个telnet),expect
不同的字符串,并以编程方式对它们做出反应(而最后一部分,以编程方式作出反应,已经完成了。)
感谢您的帮助,
Christian.
答案 0 :(得分:0)
您可以尝试使用expect with -i来指定要与之通信的spawn id,并设置一个小的超时值,然后您可以在两个进程之间进行预期。