cory seligman via luv-main
2018-08-20 00:29:46 UTC
Hi All,
I'm having some trouble making expect work.
I need it to talk to some vintage equipment over usb serial, and I think
I'm getting hung up on opening the port.
When the script runs, it just connects to the device and sits there. I can
drive it interactively, but it doesn't attempt to automate anything.
Any ideas? Thanks.
My expect script looks like this:
#!/usr/bin/expect -f
# device
set modem /dev/ttyUSB0
# keep it open
exec sh -c "sleep 3 < $modem" &
# serial port parameters
exec stty -F $modem 2400 raw -clocal -echo -istrip -hup
# connect
send_user "connecting to $modem, exit with ~,\n"
spawn -open [open $modem w+]
interact {
~, exit
~~ {send "\034"}
}
set force_conservative 1 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
set timeout -1
match_max 100000
send -- "\r"
send -- "\r"
expect ">"
send -- "p 7d91\r"
expect ">"
send -- "p b2ff\r"
expect ">"
send -- "h\r"
expect ">"
send -- "td\r"
expect "td\r
18 215 12 24 33\r
expect eof
I'm having some trouble making expect work.
I need it to talk to some vintage equipment over usb serial, and I think
I'm getting hung up on opening the port.
When the script runs, it just connects to the device and sits there. I can
drive it interactively, but it doesn't attempt to automate anything.
Any ideas? Thanks.
My expect script looks like this:
#!/usr/bin/expect -f
# device
set modem /dev/ttyUSB0
# keep it open
exec sh -c "sleep 3 < $modem" &
# serial port parameters
exec stty -F $modem 2400 raw -clocal -echo -istrip -hup
# connect
send_user "connecting to $modem, exit with ~,\n"
spawn -open [open $modem w+]
interact {
~, exit
~~ {send "\034"}
}
set force_conservative 1 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
set timeout -1
match_max 100000
send -- "\r"
send -- "\r"
expect ">"
send -- "p 7d91\r"
expect ">"
send -- "p b2ff\r"
expect ">"
send -- "h\r"
expect ">"
send -- "td\r"
expect "td\r
18 215 12 24 33\r
"
send -- "gd 215\r"expect eof