From 685a9b13734627539472849f97f0f6948d896fae Mon Sep 17 00:00:00 2001 From: Ferdi Franceschini Date: Fri, 21 Jun 2013 11:13:42 +1000 Subject: [PATCH] SICS-587 Setup hostport dictionary based configuration for Echidna. --- site_ansto/instrument/hrpd/MANIFEST.TXT | 2 ++ .../hrpd/config/counter/counter.tcl | 10 ++++-- .../config/motors/motor_configuration.tcl | 21 +++---------- .../instrument/hrpd/hostport_config.tcl | 29 +++++++++++++++++ .../instrument/hrpd/hostport_config_test.tcl | 31 +++++++++++++++++++ 5 files changed, 73 insertions(+), 20 deletions(-) create mode 100644 site_ansto/instrument/hrpd/hostport_config.tcl create mode 100644 site_ansto/instrument/hrpd/hostport_config_test.tcl diff --git a/site_ansto/instrument/hrpd/MANIFEST.TXT b/site_ansto/instrument/hrpd/MANIFEST.TXT index de1b6bd1..edd6fa3e 100644 --- a/site_ansto/instrument/hrpd/MANIFEST.TXT +++ b/site_ansto/instrument/hrpd/MANIFEST.TXT @@ -5,3 +5,5 @@ instrument_vars.tcl echidna_configuration.tcl config util +hostport_config.tcl +hostport_config_test.tcl diff --git a/site_ansto/instrument/hrpd/config/counter/counter.tcl b/site_ansto/instrument/hrpd/config/counter/counter.tcl index 3ae86d84..4f7e802b 100644 --- a/site_ansto/instrument/hrpd/config/counter/counter.tcl +++ b/site_ansto/instrument/hrpd/config/counter/counter.tcl @@ -15,10 +15,14 @@ proc ::counter::isc_initialize {} { variable isc_numchannels variable isc_monitor_address variable isc_portlist - variable isc_beam_monitor_list {MONITOR_1 MONITOR_2 MONITOR_3} - set isc_monitor_address "das1-[SplitReply [instrument]]" - set isc_portlist [list 30000 30001 30002 30003 30004 30005 30006 30007] + dict for {k v} $::MONITOR_HOSTPORT { + lappend monlist $k + lappend hostlist [dict get $v HOST] + lappend isc_portlist [dict get $v PORT] + } + variable isc_beam_monitor_list $monlist + set isc_monitor_address [lindex $hostlist 0] set isc_numchannels [llength $isc_beam_monitor_list] ::counter::ic_initialize } message ] { diff --git a/site_ansto/instrument/hrpd/config/motors/motor_configuration.tcl b/site_ansto/instrument/hrpd/config/motors/motor_configuration.tcl index b1da62f0..fef1aec0 100644 --- a/site_ansto/instrument/hrpd/config/motors/motor_configuration.tcl +++ b/site_ansto/instrument/hrpd/config/motors/motor_configuration.tcl @@ -6,27 +6,14 @@ set animal echidna set sim_mode [SplitReply [motor_simulation]] -# Setup addresses of Galil DMC2280 controllers. -set dmc2280_controller1(host) mc1-$animal -set dmc2280_controller1(port) pmc1-$animal - -set dmc2280_controller2(host) mc2-$animal -set dmc2280_controller2(port) pmc2-$animal - -set dmc2280_controller3(host) mc3-$animal -set dmc2280_controller3(port) pmc3-$animal - -set dmc2280_controller4(host) mc4-$animal -set dmc2280_controller4(port) pmc4-$animal - if {$sim_mode == "true"} { set motor_driver_type asim } else { 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) + MakeAsyncQueue mc1 DMC2280 [dict get $::MOTOR_HOSTPORT MC1 HOST] [dict get $::MOTOR_HOSTPORT MC1 PORT] + MakeAsyncQueue mc2 DMC2280 [dict get $::MOTOR_HOSTPORT MC2 HOST] [dict get $::MOTOR_HOSTPORT MC2 PORT] + MakeAsyncQueue mc3 DMC2280 [dict get $::MOTOR_HOSTPORT MC3 HOST] [dict get $::MOTOR_HOSTPORT MC3 PORT] + MakeAsyncQueue mc4 DMC2280 [dict get $::MOTOR_HOSTPORT MC4 HOST] [dict get $::MOTOR_HOSTPORT MC4 PORT] } #Measured absolute encoder reading at home position diff --git a/site_ansto/instrument/hrpd/hostport_config.tcl b/site_ansto/instrument/hrpd/hostport_config.tcl new file mode 100644 index 00000000..e966993b --- /dev/null +++ b/site_ansto/instrument/hrpd/hostport_config.tcl @@ -0,0 +1,29 @@ +# MOTOR HOST AND PORT +foreach {mc host port} { + MC1 mc1-echidna pmc1-echidna + MC2 mc2-echidna pmc2-echidna + MC3 mc3-echidna pmc3-echidna + MC4 mc4-echidna pmc4-echidna +} { + dict set MOTOR_HOSTPORT $mc HOST $host + dict set MOTOR_HOSTPORT $mc PORT $port +} + +# BEAM MONITOR HOST AND PORT +foreach {bm host port} { + MONITOR_1 das1-echidna 30000 + MONITOR_2 das1-echidna 30001 + MONITOR_3 das1-echidna 30002 +} { + dict set MONITOR_HOSTPORT $bm HOST $host + dict set MONITOR_HOSTPORT $bm PORT $port +} + +# HISTOGRAM SERVER HOST AND PORT +foreach {key host port} { + HMM das1-echidna.nbi.ansto.gov.au 8080 + HMSTAT das1-echidna.nbi.ansto.gov.au 8081 +} { + dict set HISTMEM_HOSTPORT $key HOST $host + dict set HISTMEM_HOSTPORT $key PORT $port +} diff --git a/site_ansto/instrument/hrpd/hostport_config_test.tcl b/site_ansto/instrument/hrpd/hostport_config_test.tcl new file mode 100644 index 00000000..ad6265e1 --- /dev/null +++ b/site_ansto/instrument/hrpd/hostport_config_test.tcl @@ -0,0 +1,31 @@ +# Specify NONE for HOST and PORT if there is no fake device to talk to. + +# TEST MOTOR HOST AND PORT +foreach {key host port} { + MC1 localhost 62034 + MC2 localhost 62035 + MC3 localhost 62036 + MC4 localhost 62037 +} { + dict set MOTOR_HOSTPORT $key HOST $host + dict set MOTOR_HOSTPORT $key PORT $port +} + +# TEST BEAM MONITOR HOST AND PORT +foreach {key host port} { + MONITOR_1 localhost 30000 + MONITOR_2 localhost 30001 + MONITOR_3 localhost 30002 +} { + dict set MONITOR_HOSTPORT $key HOST $host + dict set MONITOR_HOSTPORT $key PORT $port +} + +# TEST HISTOGRAM SERVER HOST AND PORT +foreach {key host port} { + HMM das1-test.nbi.ansto.gov.au 8080 + HMSTAT das1-test.nbi.ansto.gov.au 8081 +} { + dict set HISTMEM_HOSTPORT $key HOST $host + dict set HISTMEM_HOSTPORT $key PORT $port +}