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:
@@ -1,7 +1,7 @@
|
|||||||
# $Revision: 1.16 $
|
# $Revision: 1.17 $
|
||||||
# $Date: 2007-08-16 06:36:59 $
|
# $Date: 2007-10-29 02:59:15 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by: $Author: ffr $
|
# Last revision by: $Author: dcl $
|
||||||
|
|
||||||
# START MOTOR CONFIGURATION
|
# START MOTOR CONFIGURATION
|
||||||
|
|
||||||
@@ -633,64 +633,6 @@ sicslist setatt sth klass sample
|
|||||||
sicslist setatt sth units degrees
|
sicslist setatt sth units degrees
|
||||||
sicslist setatt sth long_name half_azimuthal_angle
|
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 ss1vg gap ss1vo offset ss1u ss1d mm $slit1VGroup
|
||||||
make_gap_motors ss1hg gap ss1ho offset ss1r ss1l mm $slit1HGroup
|
make_gap_motors ss1hg gap ss1ho offset ss1r ss1l mm $slit1HGroup
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# $Revision: 1.19 $
|
# $Revision: 1.20 $
|
||||||
# $Date: 2007-08-16 06:37:45 $
|
# $Date: 2007-10-29 02:59:58 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by: $Author: ffr $
|
# Last revision by: $Author: dcl $
|
||||||
|
|
||||||
# START MOTOR CONFIGURATION
|
# START MOTOR CONFIGURATION
|
||||||
|
|
||||||
@@ -658,64 +658,6 @@ sicslist setatt sth klass sample
|
|||||||
sicslist setatt sth units degrees
|
sicslist setatt sth units degrees
|
||||||
sicslist setatt sth long_name half_azimuthal_angle
|
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 ss1vg gap ss1vo offset ss1u ss1d mm $slit1VGroup
|
||||||
make_gap_motors ss1hg gap ss1ho offset ss1r ss1l mm $slit1HGroup
|
make_gap_motors ss1hg gap ss1ho offset ss1r ss1l mm $slit1HGroup
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# $Revision: 1.21 $
|
# $Revision: 1.22 $
|
||||||
# $Date: 2007-10-23 03:59:36 $
|
# $Date: 2007-10-29 02:59:58 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by: $Author: ffr $
|
# Last revision by: $Author: dcl $
|
||||||
|
|
||||||
# START MOTOR CONFIGURATION
|
# START MOTOR CONFIGURATION
|
||||||
|
|
||||||
@@ -825,68 +825,6 @@ ss4r home 0
|
|||||||
# return [lindex $l 1]
|
# return [lindex $l 1]
|
||||||
#}
|
#}
|
||||||
|
|
||||||
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.0]
|
|
||||||
set newD1L [expr [SplitReply [$m2]] - $diff/2.0]
|
|
||||||
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
|
|
||||||
sicslist setatt get_$vm1 privilege internal
|
|
||||||
publish set_$vm1 user
|
|
||||||
sicslist setatt set_$vm1 privilege internal
|
|
||||||
|
|
||||||
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
|
|
||||||
sicslist setatt get_$vm2 privilege internal
|
|
||||||
publish set_$vm2 user
|
|
||||||
sicslist setatt set_$vm2 privilege internal
|
|
||||||
|
|
||||||
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 ss1vg gap ss1vo offset ss1u ss1d mm $slit1VGroup
|
||||||
make_gap_motors ss1hg gap ss1ho offset ss1r ss1l mm $slit1HGroup
|
make_gap_motors ss1hg gap ss1ho offset ss1r ss1l mm $slit1HGroup
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# $Revision: 1.12 $
|
# $Revision: 1.13 $
|
||||||
# $Date: 2007-10-26 00:59:12 $
|
# $Date: 2007-10-29 02:59:58 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by: $Author: dcl $
|
# Last revision by: $Author: dcl $
|
||||||
|
|
||||||
@@ -942,56 +942,6 @@ proc motor_set_sobj_attributes {} {
|
|||||||
}
|
}
|
||||||
# END MOTOR CONFIGURATION
|
# END MOTOR CONFIGURATION
|
||||||
|
|
||||||
proc set_virtual_1 { phys1 posit } {
|
|
||||||
set units [expr [SplitReply [$phys1 posit2unit $posit]]]
|
|
||||||
return "$phys1=$units"
|
|
||||||
}
|
|
||||||
|
|
||||||
proc set_virtual_2 { phys1 phys2 posit } {
|
|
||||||
set unit1 [expr [SplitReply [$phys1 posit2unit $posit]]]
|
|
||||||
set unit2 [expr [SplitReply [$phys2 posit2unit $posit]]]
|
|
||||||
return "$phys1=$unit1,$phys2=$unit2"
|
|
||||||
}
|
|
||||||
|
|
||||||
proc get_virtual_1 { phys1 } {
|
|
||||||
set p1 [expr [SplitReply [$phys1 posit]]]
|
|
||||||
return $p1
|
|
||||||
}
|
|
||||||
|
|
||||||
proc get_virtual_2 { phys1 phys2 } {
|
|
||||||
set p1 [expr [SplitReply [$phys1 posit]]]
|
|
||||||
set p2 [expr [SplitReply [$phys2 posit]]]
|
|
||||||
return [expr ($p1 + $p2) / 2.0]
|
|
||||||
}
|
|
||||||
publish set_virtual_1 user
|
|
||||||
publish set_virtual_2 user
|
|
||||||
publish get_virtual_1 user
|
|
||||||
publish get_virtual_2 user
|
|
||||||
|
|
||||||
proc make_coll_motor_1 { vm1 vm1_name pm1 aunits } {
|
|
||||||
eval "proc get_$vm1 {} { get_virtual_1 $pm1 }"
|
|
||||||
set v {$var}
|
|
||||||
eval "proc set_$vm1 {var} { set_virtual_1 $pm1 $v }"
|
|
||||||
MakeConfigurableMotor $vm1
|
|
||||||
$vm1 readscript get_$vm1
|
|
||||||
$vm1 drivescript set_$vm1
|
|
||||||
sicslist setatt $vm1 units $aunits
|
|
||||||
sicslist setatt $vm1 klass collimator
|
|
||||||
sicslist setatt $vm1 long_name $vm1_name
|
|
||||||
}
|
|
||||||
|
|
||||||
proc make_coll_motor_2 { vm1 vm1_name pm1 pm2 aunits } {
|
|
||||||
eval "proc get_$vm1 {} { get_virtual_2 $pm1 $pm2 }"
|
|
||||||
set v {$var}
|
|
||||||
eval "proc set_$vm1 {var} { set_virtual_2 $pm1 $pm2 $v }"
|
|
||||||
MakeConfigurableMotor $vm1
|
|
||||||
$vm1 readscript get_$vm1
|
|
||||||
$vm1 drivescript set_$vm1
|
|
||||||
sicslist setatt $vm1 units $aunits
|
|
||||||
sicslist setatt $vm1 klass collimator
|
|
||||||
sicslist setatt $vm1 long_name $vm1_name
|
|
||||||
}
|
|
||||||
|
|
||||||
# According to http://www.nexusformat.org/Design units must conform to
|
# According to http://www.nexusformat.org/Design units must conform to
|
||||||
# http://www.unidata.ucar.edu/software/udunits/udunits-1/udunits.txt
|
# http://www.unidata.ucar.edu/software/udunits/udunits-1/udunits.txt
|
||||||
# So we use "count" for dimensionless decimal numbers
|
# So we use "count" for dimensionless decimal numbers
|
||||||
|
|||||||
Reference in New Issue
Block a user