Don't MakeAsyncQueue when using simulated driver.

Add metedata to slit gap and offset motors for new hdb and nexus code.

r2123 | ffr | 2007-08-16 16:37:45 +1000 (Thu, 16 Aug 2007) | 3 lines
This commit is contained in:
Ferdi Franceschini
2007-08-16 16:37:45 +10:00
committed by Douglas Clowes
parent 307e29e60e
commit 950037bfc3
2 changed files with 76 additions and 34 deletions

View File

@@ -1,17 +1,12 @@
# $Revision: 1.15 $ # $Revision: 1.16 $
# $Date: 2007-05-15 03:15:00 $ # $Date: 2007-08-16 06:36:59 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au) # Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by: $Author: dcl $ # Last revision by: $Author: ffr $
# START MOTOR CONFIGURATION # START MOTOR CONFIGURATION
set animal wombat set animal wombat
set sim_mode [SplitReply [motor_simulation]] set sim_mode [SplitReply [motor_simulation]]
if {$sim_mode == "true"} {
set motor_driver_type asim
} else {
set motor_driver_type DMC2280
}
# Setup addresses of Galil DMC2280 controllers. # Setup addresses of Galil DMC2280 controllers.
set dmc2280_controller1(host) mc1-$animal set dmc2280_controller1(host) mc1-$animal
@@ -26,10 +21,15 @@ set dmc2280_controller3(port) pmc3-$animal
set dmc2280_controller4(host) mc4-$animal set dmc2280_controller4(host) mc4-$animal
set dmc2280_controller4(port) pmc4-$animal set dmc2280_controller4(port) pmc4-$animal
MakeAsyncQueue mc1 DMC2280 $dmc2280_controller1(host) $dmc2280_controller1(port) if {$sim_mode == "true"} {
MakeAsyncQueue mc2 DMC2280 $dmc2280_controller2(host) $dmc2280_controller2(port) set motor_driver_type asim
MakeAsyncQueue mc3 DMC2280 $dmc2280_controller3(host) $dmc2280_controller3(port) } else {
MakeAsyncQueue mc4 DMC2280 $dmc2280_controller4(host) $dmc2280_controller4(port) set motor_driver_type DMC2280
MakeAsyncQueue mc1 DMC2280 $dmc2280_controller1(host) $dmc2280_controller1(port)
MakeAsyncQueue mc2 DMC2280 $dmc2280_controller2(host) $dmc2280_controller2(port)
MakeAsyncQueue mc3 DMC2280 $dmc2280_controller3(host) $dmc2280_controller3(port)
MakeAsyncQueue mc4 DMC2280 $dmc2280_controller4(host) $dmc2280_controller4(port)
}
#Measured absolute encoder reading at home position #Measured absolute encoder reading at home position
set mphi_Home 7613516 set mphi_Home 7613516
@@ -95,6 +95,10 @@ set ss2l_HiRange [expr $hSlitHome + $hSlitLoRange]
set ss2u_HiRange [expr $vSlitHome + $vSlitHiRange] set ss2u_HiRange [expr $vSlitHome + $vSlitHiRange]
set ss2d_HiRange [expr $vSlitHome + $vSlitLoRange] set ss2d_HiRange [expr $vSlitHome + $vSlitLoRange]
set slit1VGroup first/vertical
set slit1HGroup first/horizontal
set slit2VGroup second/vertical
set slit2HGroup second/horizontal
# set movecount high to reduce the frequency of # set movecount high to reduce the frequency of
# hnotify messages to a reasonable level # hnotify messages to a reasonable level
set move_count 10 set move_count 10
@@ -614,6 +618,9 @@ publish mthGet user
MakeConfigurableMotor mth MakeConfigurableMotor mth
mth readscript mthGet mth readscript mthGet
mth drivescript mthSet mth drivescript mthSet
sicslist setatt mth klass crystal
sicslist setatt mth units degrees
sicslist setatt mth long_name half_takeoff_angle
proc sthGet {} { return [expr [SplitReply [stth]]/2.0]} proc sthGet {} { return [expr [SplitReply [stth]]/2.0]}
proc sthSet {val} { return "stth=[SplitReply [stth]]"} proc sthSet {val} { return "stth=[SplitReply [stth]]"}
@@ -622,6 +629,9 @@ publish sthSet user
MakeConfigurableMotor sth MakeConfigurableMotor sth
sth readscript sthGet sth readscript sthGet
sth drivescript sthSet sth drivescript sthSet
sicslist setatt sth klass sample
sicslist setatt sth units degrees
sicslist setatt sth long_name half_azimuthal_angle
proc get_gap_width {m1 m2} { proc get_gap_width {m1 m2} {
return [expr [SplitReply [$m1]] - [SplitReply [$m2]]] return [expr [SplitReply [$m1]] - [SplitReply [$m2]]]
@@ -652,7 +662,7 @@ proc set_gap_offset {m1 m2 val} {
} }
# make_gap_motors virt_width_motor virt_offset_motor real_high_motor real_low_motor # make_gap_motors virt_width_motor virt_offset_motor real_high_motor real_low_motor
proc make_gap_motors {vm1 vm2 m1 m2} { proc make_gap_motors {vm1 vm1_name vm2 vm2_name m1 m2 aunits agroup} {
eval "proc get_$vm1 {} { get_gap_width $m1 $m2 }" eval "proc get_$vm1 {} { get_gap_width $m1 $m2 }"
set v {$var} set v {$var}
eval "proc set_$vm1 {var} { set_gap_width $m1 $m2 $v }" eval "proc set_$vm1 {var} { set_gap_width $m1 $m2 $v }"
@@ -670,12 +680,23 @@ publish set_$vm1 user
$vm2 drivescript set_$vm2 $vm2 drivescript set_$vm2
publish get_$vm2 user publish get_$vm2 user
publish set_$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 ss1vo ss1u ss1d make_gap_motors ss1vg gap ss1vo offset ss1u ss1d mm $slit1VGroup
make_gap_motors ss1hg ss1ho ss1r ss1l make_gap_motors ss1hg gap ss1ho offset ss1r ss1l mm $slit1HGroup
make_gap_motors ss2vg ss2vo ss2u ss2d make_gap_motors ss2vg gap ss2vo offset ss2u ss2d mm $slit2VGroup
make_gap_motors ss2hg ss2ho ss2r ss2l make_gap_motors ss2hg gap ss2ho offset ss2r ss2l mm $slit2HGroup
proc motor_set_sobj_attributes {} {
}
# END MOTOR CONFIGURATION # END MOTOR CONFIGURATION

View File

@@ -1,17 +1,12 @@
# $Revision: 1.18 $ # $Revision: 1.19 $
# $Date: 2007-07-26 02:22:57 $ # $Date: 2007-08-16 06:37:45 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au) # Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by: $Author: dcl $ # Last revision by: $Author: ffr $
# START MOTOR CONFIGURATION # START MOTOR CONFIGURATION
set animal echidna set animal echidna
set sim_mode [SplitReply [motor_simulation]] set sim_mode [SplitReply [motor_simulation]]
if {$sim_mode == "true"} {
set motor_driver_type asim
} else {
set motor_driver_type DMC2280
}
# Setup addresses of Galil DMC2280 controllers. # Setup addresses of Galil DMC2280 controllers.
set dmc2280_controller1(host) mc1-$animal set dmc2280_controller1(host) mc1-$animal
@@ -26,10 +21,15 @@ set dmc2280_controller3(port) pmc3-$animal
set dmc2280_controller4(host) mc4-$animal set dmc2280_controller4(host) mc4-$animal
set dmc2280_controller4(port) pmc4-$animal set dmc2280_controller4(port) pmc4-$animal
MakeAsyncQueue mc1 DMC2280 $dmc2280_controller1(host) $dmc2280_controller1(port) if {$sim_mode == "true"} {
MakeAsyncQueue mc2 DMC2280 $dmc2280_controller2(host) $dmc2280_controller2(port) set motor_driver_type asim
MakeAsyncQueue mc3 DMC2280 $dmc2280_controller3(host) $dmc2280_controller3(port) } else {
MakeAsyncQueue mc4 DMC2280 $dmc2280_controller4(host) $dmc2280_controller4(port) set motor_driver_type DMC2280
MakeAsyncQueue mc1 DMC2280 $dmc2280_controller1(host) $dmc2280_controller1(port)
MakeAsyncQueue mc2 DMC2280 $dmc2280_controller2(host) $dmc2280_controller2(port)
MakeAsyncQueue mc3 DMC2280 $dmc2280_controller3(host) $dmc2280_controller3(port)
MakeAsyncQueue mc4 DMC2280 $dmc2280_controller4(host) $dmc2280_controller4(port)
}
#Measured absolute encoder reading at home position #Measured absolute encoder reading at home position
set mphi_Home 7413209 set mphi_Home 7413209
@@ -96,6 +96,10 @@ set ss2l_HiRange [expr $hSlitHome + $hSlitLoRange]
set ss2u_HiRange [expr $vSlitHome + $vSlitHiRange] set ss2u_HiRange [expr $vSlitHome + $vSlitHiRange]
set ss2d_HiRange [expr $vSlitHome + $vSlitLoRange] set ss2d_HiRange [expr $vSlitHome + $vSlitLoRange]
set slit1VGroup first/vertical
set slit1HGroup first/horizontal
set slit2VGroup second/vertical
set slit2HGroup second/horizontal
# set movecount high to reduce the frequency of # set movecount high to reduce the frequency of
# hnotify messages to a reasonable level # hnotify messages to a reasonable level
set move_count 10 set move_count 10
@@ -639,6 +643,9 @@ publish mthGet user
MakeConfigurableMotor mth MakeConfigurableMotor mth
mth readscript mthGet mth readscript mthGet
mth drivescript mthSet mth drivescript mthSet
sicslist setatt mth klass crystal
sicslist setatt mth units degrees
sicslist setatt mth long_name half_takeoff_angle
proc sthGet {} { return [expr [SplitReply [stth]]/2.0]} proc sthGet {} { return [expr [SplitReply [stth]]/2.0]}
proc sthSet {val} { return "stth=[SplitReply [stth]]"} proc sthSet {val} { return "stth=[SplitReply [stth]]"}
@@ -647,6 +654,9 @@ publish sthSet user
MakeConfigurableMotor sth MakeConfigurableMotor sth
sth readscript sthGet sth readscript sthGet
sth drivescript sthSet sth drivescript sthSet
sicslist setatt sth klass sample
sicslist setatt sth units degrees
sicslist setatt sth long_name half_azimuthal_angle
proc get_gap_width {m1 m2} { proc get_gap_width {m1 m2} {
return [expr [SplitReply [$m1]] - [SplitReply [$m2]]] return [expr [SplitReply [$m1]] - [SplitReply [$m2]]]
@@ -677,7 +687,7 @@ proc set_gap_offset {m1 m2 val} {
} }
# make_gap_motors virt_width_motor virt_offset_motor real_high_motor real_low_motor # make_gap_motors virt_width_motor virt_offset_motor real_high_motor real_low_motor
proc make_gap_motors {vm1 vm2 m1 m2} { proc make_gap_motors {vm1 vm1_name vm2 vm2_name m1 m2 aunits agroup} {
eval "proc get_$vm1 {} { get_gap_width $m1 $m2 }" eval "proc get_$vm1 {} { get_gap_width $m1 $m2 }"
set v {$var} set v {$var}
eval "proc set_$vm1 {var} { set_gap_width $m1 $m2 $v }" eval "proc set_$vm1 {var} { set_gap_width $m1 $m2 $v }"
@@ -695,12 +705,23 @@ publish set_$vm1 user
$vm2 drivescript set_$vm2 $vm2 drivescript set_$vm2
publish get_$vm2 user publish get_$vm2 user
publish set_$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 ss1vo ss1u ss1d make_gap_motors ss1vg gap ss1vo offset ss1u ss1d mm $slit1VGroup
make_gap_motors ss1hg ss1ho ss1r ss1l make_gap_motors ss1hg gap ss1ho offset ss1r ss1l mm $slit1HGroup
make_gap_motors ss2vg ss2vo ss2u ss2d make_gap_motors ss2vg gap ss2vo offset ss2u ss2d mm $slit2VGroup
make_gap_motors ss2hg ss2ho ss2r ss2l make_gap_motors ss2hg gap ss2ho offset ss2r ss2l mm $slit2HGroup
proc motor_set_sobj_attributes {} {
}
# END MOTOR CONFIGURATION # END MOTOR CONFIGURATION