Capture error messages in prun and pdrive.

This commit is contained in:
Ferdi Franceschini
2014-07-20 20:49:20 +10:00
parent 9752c6dbaf
commit b9b386e3f6

View File

@ -52,22 +52,48 @@ publish reldrive user
# \brief Posit run command for positional motors
# \parameter List of motor names and position names
proc prun {args} {
foreach {mot pname} $args {
lappend drlist $mot [SplitReply [$mot posit2unit $pname]]
if [ catch {
foreach {mot pname} $args {
lappend drlist $mot [SplitReply [$mot posit2unit $pname]]
}
clientput run {*}$drlist
capture run {*}$drlist
} message ] {
set msg_list [split $message \n]
set start [lsearch $msg_list ERROR*]
if {$start == -1} {
return $messge
} else {
return [join [lrange $msg_list $start end-1] \n]
}
}
clientput run {*}$drlist
run {*}$drlist
}
publish prun user
# \brief Posit drive command for positional motors
# \parameter List of motor names and position names
proc pdrive {args} {
foreach {mot pname} $args {
lappend drlist $mot [SplitReply [$mot posit2unit $pname]]
if [ catch {
foreach {mot pname} $args {
lappend drlist $mot [SplitReply [$mot posit2unit $pname]]
}
clientput drive {*}$drlist
capture drive {*}$drlist
} message ] {
set msg_list [split $message \n]
set start [lsearch $msg_list ERROR*]
if {$start == -1} {
return $messge
} else {
return [join [lrange $msg_list $start end-1] \n]
}
} else {
foreach {mot pname} $args {
lappend ret New $mot position: $pname
}
lappend ret Driving finished successfully
return $ret
}
clientput drive {*}$drlist
drive {*}$drlist
}
publish pdrive user