Move functions to motor_utility

r2199 | dcl | 2007-10-29 13:59:58 +1100 (Mon, 29 Oct 2007) | 2 lines
This commit is contained in:
Douglas Clowes
2007-10-29 13:59:58 +11:00
parent 506bb5febc
commit 317c7398ca
4 changed files with 11 additions and 239 deletions

View File

@@ -1,7 +1,7 @@
# $Revision: 1.19 $
# $Date: 2007-08-16 06:37:45 $
# $Revision: 1.20 $
# $Date: 2007-10-29 02:59:58 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by: $Author: ffr $
# Last revision by: $Author: dcl $
# START MOTOR CONFIGURATION
@@ -658,64 +658,6 @@ sicslist setatt sth klass sample
sicslist setatt sth units degrees
sicslist setatt sth long_name half_azimuthal_angle
proc get_gap_width {m1 m2} {
return [expr [SplitReply [$m1]] - [SplitReply [$m2]]]
}
proc set_gap_width {m1 m2 val} {
set currentWidth [expr [SplitReply [$m1]] - [SplitReply [$m2]]]
set diff [expr $val - $currentWidth]
set newD1R [expr [SplitReply [$m1]] + $diff/2]
set newD1L [expr [SplitReply [$m2]] - $diff/2]
return "$m1=$newD1R,$m2=$newD1L"
}
proc get_gap_offset {m1 m2} {
set S1 [SplitReply [$m1]]
set S2 [SplitReply [$m2]]
return [ expr ($S1 + $S2)/2.0 ]
}
proc set_gap_offset {m1 m2 val} {
set S1 [SplitReply [$m1]]
set S2 [SplitReply [$m2]]
set currentoffset [expr ($S1 + $S2)/2.0 ]
set diff [expr $val - $currentoffset]
set newD1R [expr $S1 + $diff]
set newD1L [expr $S2 + $diff]
return "$m1=$newD1R,$m2=$newD1L"
}
# make_gap_motors virt_width_motor virt_offset_motor real_high_motor real_low_motor
proc make_gap_motors {vm1 vm1_name vm2 vm2_name m1 m2 aunits agroup} {
eval "proc get_$vm1 {} { get_gap_width $m1 $m2 }"
set v {$var}
eval "proc set_$vm1 {var} { set_gap_width $m1 $m2 $v }"
MakeConfigurableMotor $vm1
$vm1 readscript get_$vm1
$vm1 drivescript set_$vm1
publish get_$vm1 user
publish set_$vm1 user
eval "proc get_$vm2 {} { get_gap_offset $m1 $m2 }"
set v {$var}
eval "proc set_$vm2 {var} { set_gap_offset $m1 $m2 $v }"
MakeConfigurableMotor $vm2
$vm2 readscript get_$vm2
$vm2 drivescript set_$vm2
publish get_$vm2 user
publish set_$vm2 user
sicslist setatt $vm1 units $aunits
sicslist setatt $vm1 klass aperture
sicslist setatt $vm1 long_name $vm1_name
sicslist setatt $vm1 group $agroup
sicslist setatt $vm2 units $aunits
sicslist setatt $vm2 klass aperture
sicslist setatt $vm2 long_name $vm2_name
sicslist setatt $vm2 group $agroup
}
make_gap_motors ss1vg gap ss1vo offset ss1u ss1d mm $slit1VGroup
make_gap_motors ss1hg gap ss1ho offset ss1r ss1l mm $slit1HGroup