Capture error messages in prun and pdrive.
This commit is contained in:
@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user