SICS-587 (in progress) Put IP and PORT configuration in one file.

Platypus TODO hmm, environment, and devices like multimeters and the
sylvac.
This commit is contained in:
Ferdi Franceschini
2013-04-21 10:54:51 +10:00
parent 73ba1b0dba
commit 49e6a584c0
7 changed files with 152 additions and 74 deletions

View File

@@ -4,3 +4,5 @@ script_validator_ports.tcl
extraconfig.tcl extraconfig.tcl
config config
util util
hostport_config.tcl
hostport_config_test.tcl

View File

@@ -1,8 +1,8 @@
set sim_mode [SplitReply [chopper_simulation]] set sim_mode [SplitReply [chopper_simulation]]
namespace eval ::scobj::chopper { namespace eval ::scobj::chopper {
variable chopper_IP "137.157.202.137" variable chopper_IP [dict get $::CHOPPER_HOSTPORT NCS013 HOST]
variable chopper_port "10000" variable chopper_port [dict get $::CHOPPER_HOSTPORT NCS013 PORT]
variable UID "NCS" variable UID "NCS"
variable PWD "NCS013" variable PWD "NCS013"
} }

View File

@@ -15,10 +15,19 @@ proc ::counter::isc_initialize {} {
variable isc_numchannels variable isc_numchannels
variable isc_monitor_address variable isc_monitor_address
variable isc_portlist variable isc_portlist
if {0} {
variable isc_beam_monitor_list {MONITOR_1 MONITOR_2} variable isc_beam_monitor_list {MONITOR_1 MONITOR_2}
set isc_monitor_address "das1-[SplitReply [instrument]]" set isc_monitor_address "das1-[SplitReply [instrument]]"
set isc_portlist [list 30000 30001 30002 30003 30004 30005 30006 30007] 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] set isc_numchannels [llength $isc_beam_monitor_list]
::counter::ic_initialize ::counter::ic_initialize
} message ] { } message ] {

View File

@@ -8,27 +8,14 @@
set animal platypus set animal platypus
set sim_mode [SplitReply [motor_simulation]] 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"} { if {$sim_mode == "true"} {
set motor_driver_type asim set motor_driver_type asim
} else { } else {
set motor_driver_type DMC2280 set motor_driver_type DMC2280
MakeAsyncQueue mc1 DMC2280 $dmc2280_controller1(host) $dmc2280_controller1(port) MakeAsyncQueue mc1 DMC2280 [dict get $::MOTOR_HOSTPORT MC1 HOST] [dict get $::MOTOR_HOSTPORT MC1 PORT]
MakeAsyncQueue mc2 DMC2280 $dmc2280_controller2(host) $dmc2280_controller2(port) MakeAsyncQueue mc2 DMC2280 [dict get $::MOTOR_HOSTPORT MC2 HOST] [dict get $::MOTOR_HOSTPORT MC2 PORT]
MakeAsyncQueue mc3 DMC2280 $dmc2280_controller3(host) $dmc2280_controller3(port) MakeAsyncQueue mc3 DMC2280 [dict get $::MOTOR_HOSTPORT MC3 HOST] [dict get $::MOTOR_HOSTPORT MC3 PORT]
MakeAsyncQueue mc4 DMC2280 $dmc2280_controller4(host) $dmc2280_controller4(port) MakeAsyncQueue mc4 DMC2280 [dict get $::MOTOR_HOSTPORT MC4 HOST] [dict get $::MOTOR_HOSTPORT MC4 PORT]
} }
#Measured absolute encoder reading at home position #Measured absolute encoder reading at home position

View File

@@ -0,0 +1,35 @@
# MOTOR HOST AND PORT
foreach {mc host port} {
MC1 mc1-platypus pmc1-platypus
MC2 mc2-platypus pmc2-platypus
MC3 mc3-platypus pmc3-platypus
MC4 mc4-platypus pmc4-platypus
} {
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-platypus 30000
MONITOR_2 das1-platypus 30001
} {
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-platypus.nbi.ansto.gov.au 8080
} {
dict set HISTMEM_HOSTPORT $key HOST $host
dict set HISTMEM_HOSTPORT $key PORT $port
}
# CHOPPER HOST AND PORT
foreach {key host port} {
NCS013 137.157.202.137 10000
} {
dict set CHOPPER_HOSTPORT $key HOST $host
dict set CHOPPER_HOSTPORT $key PORT $port
}

View File

@@ -0,0 +1,37 @@
# 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 62530
MC2 localhost 62531
MC3 localhost 62532
MC4 localhost 62533
} {
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
} {
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
} {
dict set HISTMEM_HOSTPORT $key HOST $host
dict set HISTMEM_HOSTPORT $key PORT $port
}
# TEST CHOPPER HOST AND PORT
foreach {key host port} {
NCS013 localhost 10000
} {
dict set CHOPPER_HOSTPORT $key HOST $host
dict set CHOPPER_HOSTPORT $key PORT $port
}

View File

@@ -6,44 +6,31 @@
VarMake sicsdebug Int Mugger VarMake sicsdebug Int Mugger
sicsdebug 0 sicsdebug 0
VarMake opal_simulation Text internal # Simulation flags, possible values = true or false
# true: The simulated driver will be used.
# false: The real driver will be used.
# icsval column = settings when running on the Instrument Control Server (ie SICS_SIMULATION not defined)
# fakedev column = settings for test platforms (ie SICS_SIMULATION=fakedev)
foreach {simflag icsval fakedev} {
opal_simulation true true
detector_simulation false true
hmm_simulation false true
environment_simulation false true
counter_simulation false false
motor_simulation false false
chopper_simulation false true
velsel_simulation false true
plc_simulation false true
rfgen_simulation false true
goniometer_simulation false true
magnetic_simulation false true
} {
dict set SIMFLAG_VAL $simflag ICSVAL $icsval
dict set SIMFLAG_VAL $simflag FAKEDEV $fakedev
VarMake $simflag Text internal
}
opal_simulation true VarMake sics_simulation Text internal
VarMake detector_simulation Text internal
detector_simulation false
VarMake hmm_simulation Text internal
hmm_simulation false
VarMake environment_simulation Text internal
environment_simulation false
VarMake counter_simulation Text internal
counter_simulation false
VarMake motor_simulation Text internal
motor_simulation false
VarMake chopper_simulation Text internal
chopper_simulation false
VarMake velsel_simulation Text internal
velsel_simulation false
VarMake plc_simulation Text internal
plc_simulation false
VarMake rfgen_simulation Text internal
rfgen_simulation false
VarMake goniometer_simulation Text internal
goniometer_simulation false
VarMake magnetic_simulation Text internal
magnetic_simulation false
VarMake sics_fullsimulation Text internal
source util/utility.tcl source util/utility.tcl
source util/script_context_util.tcl source util/script_context_util.tcl
@@ -57,41 +44,62 @@ publish syncbackup Spy
if {[info exists env(SICS_SIMULATION)] != 1} { if {[info exists env(SICS_SIMULATION)] != 1} {
set sicsroot ../ set sicsroot ../
source sics_ports.tcl source sics_ports.tcl
sics_fullsimulation false sics_simulation false
dict for {simflag d} $SIMFLAG_VAL {
$simflag [dict get $d ICSVAL]
}
if [file exists hostport_config.tcl] {
fileeval hostport_config.tcl
} else {
#TODO SICS-587 Abort with error when all instruments have been refactored.
clientput WARNING: hostport_config.tcl is missing
# sics_exitus
}
} else { } else {
switch $env(SICS_SIMULATION) { switch $env(SICS_SIMULATION) {
"full" { "full" {
set sicsroot ../ set sicsroot ../
source sics_ports.tcl source sics_ports.tcl
sics_fullsimulation true sics_simulation true
}
"fakedev" {
set sicsroot ../
source sics_ports.tcl
sics_simulation fakedev
if [file exists hostport_config_test.tcl] {
fileeval hostport_config_test.tcl
} else {
#TODO SICS-587 Abort with error when all instruments have been refactored.
clientput ERROR: hostport_config_test.tcl is missing
sics_exitus
}
} }
"script_validator" { "script_validator" {
VarMake sics_script_validator Text internal VarMake sics_script_validator Text internal
sics_script_validator true sics_script_validator true
set sicsroot ../script_validator/ set sicsroot ../script_validator/
source script_validator_ports.tcl source script_validator_ports.tcl
sics_fullsimulation true sics_simulation true
MakeSync localhost [expr [get_portnum $serverport ]-10] spy 007 ../log/syncfile.tcl MakeSync localhost [expr [get_portnum $serverport ]-10] spy 007 ../log/syncfile.tcl
} }
default { default {
error "ERROR: SICS_SIMULATION must be full or script_validator, not $env(SICS_SIMULATION)" error "ERROR: SICS_SIMULATION must be full, script_validator, or fakedev, not $env(SICS_SIMULATION)"
sics_exitus
} }
} }
}
if {[string trim [lindex [split [sics_fullsimulation] =] 1]] == "true"} { switch $env(SICS_SIMULATION) {
opal_simulation true "full" - "simdriv" - "script_validator" {
detector_simulation true dict for {simflag d} $SIMFLAG_VAL {
hmm_simulation true $simflag true
counter_simulation true }
environment_simulation true }
motor_simulation true "fakedev" {
chopper_simulation true dict for {simflag d} $SIMFLAG_VAL {
velsel_simulation true $simflag [dict get $d FAKEDEV]
plc_simulation true }
rfgen_simulation true }
goniometer_simulation true }
magnetic_simulation true
} }
set cfParent config set cfParent config