Implements run and drive wrappers which set allowed target values when
driving the fermi motors.
This commit is contained in:
@@ -1,5 +1,9 @@
|
||||
# Author: Jing Chen (jgn@ansto.gov.au)
|
||||
|
||||
# Ferdi Franceschini: April 2013
|
||||
# Added run and drive wrappers which set the target speed to an allowed speed
|
||||
# for fermi motors.
|
||||
|
||||
# Required by server_config.tcl
|
||||
VarMake Instrument Text Internal
|
||||
Instrument pelican
|
||||
@@ -35,6 +39,38 @@ fileeval $cfPath(anticollider)/anticollider.tcl
|
||||
fileeval $cfPath(chopper)/sct_fermichopper.tcl
|
||||
fileeval $cfPath(chopper)/fermimot.tcl
|
||||
|
||||
proc mkrunargs {args} {
|
||||
foreach {mot speed} $args {
|
||||
lappend runargs $mot
|
||||
if {$mot == "mchs" || $mot == "schs"} {
|
||||
set refspeed [SplitReply [$mot refspeed]]
|
||||
set sprat [expr {abs($speed)/$refspeed}]
|
||||
set mult [::chopper::findSpeedMult $sprat]
|
||||
set target [expr $mult * $refspeed]
|
||||
if {$speed < 0} {
|
||||
set target -$target
|
||||
}
|
||||
lappend runargs [expr round($target)]
|
||||
} else {
|
||||
lappend runargs $speed
|
||||
}
|
||||
}
|
||||
return "$runargs"
|
||||
}
|
||||
|
||||
proc run {args} {
|
||||
set runargs [eval "mkrunargs $args"]
|
||||
eval "sicsrun $runargs"
|
||||
}
|
||||
|
||||
proc drive {args} {
|
||||
set runargs [eval "mkrunargs $args"]
|
||||
eval "sicsdrive $runargs"
|
||||
}
|
||||
|
||||
publish run user
|
||||
publish drive user
|
||||
|
||||
source gumxml.tcl
|
||||
|
||||
::utility::mkVar ::anticollider::protect_detector text manager protect_detector false detector true false
|
||||
|
||||
Reference in New Issue
Block a user