diff --git a/site_ansto/instrument/bilby/config/chopper/sct_astrium_chopper.tcl b/site_ansto/instrument/bilby/config/chopper/sct_astrium_chopper.tcl index 4a45f219..34de087d 100644 --- a/site_ansto/instrument/bilby/config/chopper/sct_astrium_chopper.tcl +++ b/site_ansto/instrument/bilby/config/chopper/sct_astrium_chopper.tcl @@ -177,8 +177,16 @@ proc ::scobj::astrium_chopper::readState {tc_root} { set rhs "[string trim [lindex ${lst} 1]]" sct "attr_${lhs}" "${rhs}" set base [pathname [sct]] - foreach node [list ASPEED RSPEED APHASE RPHASE MASTER] { - if { [string equal -nocase "${lhs}" "${node}"] } { + switch [string toupper ${lhs}] { + "ASPEED" { + if [string is double "${rhs}"] { + set freq [expr "${rhs}" / 60.0] + if { "[hval ${base}/frequency]" != "${freq}" } { + hset ${base}/frequency ${freq} + } + } + } + "RSPEED" - "APHASE" - "RPHASE" - "MASTER" { if { "[hval ${base}/${node}]" != "${rhs}" } { hset ${base}/${node} "${rhs}" } @@ -245,333 +253,377 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul set scobj_hpath /sics/${name} - hfactory ${scobj_hpath}/blade_1 plain spy none + hfactory ${scobj_hpath}/disk_1 plain spy none - hfactory ${scobj_hpath}/blade_1/aphase plain user float - hsetprop ${scobj_hpath}/blade_1/aphase control true - hsetprop ${scobj_hpath}/blade_1/aphase data true - hsetprop ${scobj_hpath}/blade_1/aphase mutable true - hsetprop ${scobj_hpath}/blade_1/aphase nxsave true - hsetprop ${scobj_hpath}/blade_1/aphase oldval 0.0 - hsetprop ${scobj_hpath}/blade_1/aphase klass "parameter" - hsetprop ${scobj_hpath}/blade_1/aphase sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_1/aphase type "part" - hsetprop ${scobj_hpath}/blade_1/aphase nxalias "${name}_blade_1_aphase" + hfactory ${scobj_hpath}/disk_1/aphase plain user float + hsetprop ${scobj_hpath}/disk_1/aphase control true + hsetprop ${scobj_hpath}/disk_1/aphase data true + hsetprop ${scobj_hpath}/disk_1/aphase mutable true + hsetprop ${scobj_hpath}/disk_1/aphase nxsave true + hsetprop ${scobj_hpath}/disk_1/aphase oldval 0.0 + hsetprop ${scobj_hpath}/disk_1/aphase klass "parameter" + hsetprop ${scobj_hpath}/disk_1/aphase sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_1/aphase type "part" + hsetprop ${scobj_hpath}/disk_1/aphase nxalias "${name}_disk_1_aphase" - hfactory ${scobj_hpath}/blade_1/aspeed plain user float - hsetprop ${scobj_hpath}/blade_1/aspeed control true - hsetprop ${scobj_hpath}/blade_1/aspeed data true - hsetprop ${scobj_hpath}/blade_1/aspeed mutable true - hsetprop ${scobj_hpath}/blade_1/aspeed nxsave true - hsetprop ${scobj_hpath}/blade_1/aspeed oldval 0.0 - hsetprop ${scobj_hpath}/blade_1/aspeed klass "parameter" - hsetprop ${scobj_hpath}/blade_1/aspeed sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_1/aspeed type "part" - hsetprop ${scobj_hpath}/blade_1/aspeed nxalias "${name}_blade_1_aspeed" + hfactory ${scobj_hpath}/disk_1/aspeed plain user float + hsetprop ${scobj_hpath}/disk_1/aspeed control true + hsetprop ${scobj_hpath}/disk_1/aspeed data true + hsetprop ${scobj_hpath}/disk_1/aspeed mutable true + hsetprop ${scobj_hpath}/disk_1/aspeed nxsave true + hsetprop ${scobj_hpath}/disk_1/aspeed oldval 0.0 + hsetprop ${scobj_hpath}/disk_1/aspeed klass "parameter" + hsetprop ${scobj_hpath}/disk_1/aspeed sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_1/aspeed type "part" + hsetprop ${scobj_hpath}/disk_1/aspeed nxalias "${name}_disk_1_aspeed" - hfactory ${scobj_hpath}/blade_1/master plain user text - hsetprop ${scobj_hpath}/blade_1/master control true - hsetprop ${scobj_hpath}/blade_1/master data true - hsetprop ${scobj_hpath}/blade_1/master mutable true - hsetprop ${scobj_hpath}/blade_1/master nxsave true - hsetprop ${scobj_hpath}/blade_1/master oldval UNKNOWN - hsetprop ${scobj_hpath}/blade_1/master klass "parameter" - hsetprop ${scobj_hpath}/blade_1/master sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_1/master type "part" - hsetprop ${scobj_hpath}/blade_1/master nxalias "${name}_blade_1_master" + hfactory ${scobj_hpath}/disk_1/frequency plain user float + hsetprop ${scobj_hpath}/disk_1/frequency control true + hsetprop ${scobj_hpath}/disk_1/frequency data true + hsetprop ${scobj_hpath}/disk_1/frequency mutable true + hsetprop ${scobj_hpath}/disk_1/frequency nxsave true + hsetprop ${scobj_hpath}/disk_1/frequency oldval 0.0 + hsetprop ${scobj_hpath}/disk_1/frequency klass "parameter" + hsetprop ${scobj_hpath}/disk_1/frequency sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_1/frequency type "part" + hsetprop ${scobj_hpath}/disk_1/frequency nxalias "${name}_disk_1_frequency" - hfactory ${scobj_hpath}/blade_1/rphase plain user float - hsetprop ${scobj_hpath}/blade_1/rphase control true - hsetprop ${scobj_hpath}/blade_1/rphase data true - hsetprop ${scobj_hpath}/blade_1/rphase mutable true - hsetprop ${scobj_hpath}/blade_1/rphase nxsave true - hsetprop ${scobj_hpath}/blade_1/rphase oldval 0.0 - hsetprop ${scobj_hpath}/blade_1/rphase klass "parameter" - hsetprop ${scobj_hpath}/blade_1/rphase sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_1/rphase type "part" - hsetprop ${scobj_hpath}/blade_1/rphase nxalias "${name}_blade_1_rphase" + hfactory ${scobj_hpath}/disk_1/master plain user text + hsetprop ${scobj_hpath}/disk_1/master control true + hsetprop ${scobj_hpath}/disk_1/master data true + hsetprop ${scobj_hpath}/disk_1/master mutable true + hsetprop ${scobj_hpath}/disk_1/master nxsave true + hsetprop ${scobj_hpath}/disk_1/master oldval UNKNOWN + hsetprop ${scobj_hpath}/disk_1/master klass "parameter" + hsetprop ${scobj_hpath}/disk_1/master sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_1/master type "part" + hsetprop ${scobj_hpath}/disk_1/master nxalias "${name}_disk_1_master" - hfactory ${scobj_hpath}/blade_1/rspeed plain user float - hsetprop ${scobj_hpath}/blade_1/rspeed control true - hsetprop ${scobj_hpath}/blade_1/rspeed data true - hsetprop ${scobj_hpath}/blade_1/rspeed mutable true - hsetprop ${scobj_hpath}/blade_1/rspeed nxsave true - hsetprop ${scobj_hpath}/blade_1/rspeed oldval 0.0 - hsetprop ${scobj_hpath}/blade_1/rspeed klass "parameter" - hsetprop ${scobj_hpath}/blade_1/rspeed sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_1/rspeed type "part" - hsetprop ${scobj_hpath}/blade_1/rspeed nxalias "${name}_blade_1_rspeed" + hfactory ${scobj_hpath}/disk_1/rphase plain user float + hsetprop ${scobj_hpath}/disk_1/rphase control true + hsetprop ${scobj_hpath}/disk_1/rphase data true + hsetprop ${scobj_hpath}/disk_1/rphase mutable true + hsetprop ${scobj_hpath}/disk_1/rphase nxsave true + hsetprop ${scobj_hpath}/disk_1/rphase oldval 0.0 + hsetprop ${scobj_hpath}/disk_1/rphase klass "parameter" + hsetprop ${scobj_hpath}/disk_1/rphase sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_1/rphase type "part" + hsetprop ${scobj_hpath}/disk_1/rphase nxalias "${name}_disk_1_rphase" - hfactory ${scobj_hpath}/blade_1/state plain user text - hsetprop ${scobj_hpath}/blade_1/state read ${ns}::fetchState ${scobj_hpath} readState {1} - hsetprop ${scobj_hpath}/blade_1/state readState ${ns}::readState ${scobj_hpath} - hsetprop ${scobj_hpath}/blade_1/state control true - hsetprop ${scobj_hpath}/blade_1/state data true - hsetprop ${scobj_hpath}/blade_1/state mutable true - hsetprop ${scobj_hpath}/blade_1/state nxsave true - hsetprop ${scobj_hpath}/blade_1/state oldval UNKNOWN - hsetprop ${scobj_hpath}/blade_1/state klass "parameter" - hsetprop ${scobj_hpath}/blade_1/state my_state "idle" - hsetprop ${scobj_hpath}/blade_1/state sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_1/state type "part" - hsetprop ${scobj_hpath}/blade_1/state nxalias "${name}_blade_1_state" + hfactory ${scobj_hpath}/disk_1/rspeed plain user float + hsetprop ${scobj_hpath}/disk_1/rspeed control true + hsetprop ${scobj_hpath}/disk_1/rspeed data true + hsetprop ${scobj_hpath}/disk_1/rspeed mutable true + hsetprop ${scobj_hpath}/disk_1/rspeed nxsave true + hsetprop ${scobj_hpath}/disk_1/rspeed oldval 0.0 + hsetprop ${scobj_hpath}/disk_1/rspeed klass "parameter" + hsetprop ${scobj_hpath}/disk_1/rspeed sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_1/rspeed type "part" + hsetprop ${scobj_hpath}/disk_1/rspeed nxalias "${name}_disk_1_rspeed" + + hfactory ${scobj_hpath}/disk_1/state plain user text + hsetprop ${scobj_hpath}/disk_1/state read ${ns}::fetchState ${scobj_hpath} readState {1} + hsetprop ${scobj_hpath}/disk_1/state readState ${ns}::readState ${scobj_hpath} + hsetprop ${scobj_hpath}/disk_1/state control true + hsetprop ${scobj_hpath}/disk_1/state data true + hsetprop ${scobj_hpath}/disk_1/state mutable true + hsetprop ${scobj_hpath}/disk_1/state nxsave true + hsetprop ${scobj_hpath}/disk_1/state oldval UNKNOWN + hsetprop ${scobj_hpath}/disk_1/state klass "parameter" + hsetprop ${scobj_hpath}/disk_1/state my_state "idle" + hsetprop ${scobj_hpath}/disk_1/state sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_1/state type "part" + hsetprop ${scobj_hpath}/disk_1/state nxalias "${name}_disk_1_state" if {[string equal -nocase "${simulation_flag}" "false"]} { - ${sct_controller} poll ${scobj_hpath}/blade_1/state 1 - hsetprop ${scobj_hpath}/blade_1/state simulated false + ${sct_controller} poll ${scobj_hpath}/disk_1/state 1 + hsetprop ${scobj_hpath}/disk_1/state simulated false } else { ::scobj::astrium_chopper::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for astrium_chopper" - hsetprop ${scobj_hpath}/blade_1/state simulated true + hsetprop ${scobj_hpath}/disk_1/state simulated true } - hsetprop ${scobj_hpath}/blade_1 data "true" - hsetprop ${scobj_hpath}/blade_1 klass "@none" - hsetprop ${scobj_hpath}/blade_1 type "part" + hsetprop ${scobj_hpath}/disk_1 data "true" + hsetprop ${scobj_hpath}/disk_1 klass "@none" + hsetprop ${scobj_hpath}/disk_1 type "part" - hfactory ${scobj_hpath}/blade_2 plain spy none + hfactory ${scobj_hpath}/disk_2 plain spy none - hfactory ${scobj_hpath}/blade_2/aphase plain user float - hsetprop ${scobj_hpath}/blade_2/aphase control true - hsetprop ${scobj_hpath}/blade_2/aphase data true - hsetprop ${scobj_hpath}/blade_2/aphase mutable true - hsetprop ${scobj_hpath}/blade_2/aphase nxsave true - hsetprop ${scobj_hpath}/blade_2/aphase oldval 0.0 - hsetprop ${scobj_hpath}/blade_2/aphase klass "parameter" - hsetprop ${scobj_hpath}/blade_2/aphase sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_2/aphase type "part" - hsetprop ${scobj_hpath}/blade_2/aphase nxalias "${name}_blade_2_aphase" + hfactory ${scobj_hpath}/disk_2/aphase plain user float + hsetprop ${scobj_hpath}/disk_2/aphase control true + hsetprop ${scobj_hpath}/disk_2/aphase data true + hsetprop ${scobj_hpath}/disk_2/aphase mutable true + hsetprop ${scobj_hpath}/disk_2/aphase nxsave true + hsetprop ${scobj_hpath}/disk_2/aphase oldval 0.0 + hsetprop ${scobj_hpath}/disk_2/aphase klass "parameter" + hsetprop ${scobj_hpath}/disk_2/aphase sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_2/aphase type "part" + hsetprop ${scobj_hpath}/disk_2/aphase nxalias "${name}_disk_2_aphase" - hfactory ${scobj_hpath}/blade_2/aspeed plain user float - hsetprop ${scobj_hpath}/blade_2/aspeed control true - hsetprop ${scobj_hpath}/blade_2/aspeed data true - hsetprop ${scobj_hpath}/blade_2/aspeed mutable true - hsetprop ${scobj_hpath}/blade_2/aspeed nxsave true - hsetprop ${scobj_hpath}/blade_2/aspeed oldval 0.0 - hsetprop ${scobj_hpath}/blade_2/aspeed klass "parameter" - hsetprop ${scobj_hpath}/blade_2/aspeed sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_2/aspeed type "part" - hsetprop ${scobj_hpath}/blade_2/aspeed nxalias "${name}_blade_2_aspeed" + hfactory ${scobj_hpath}/disk_2/aspeed plain user float + hsetprop ${scobj_hpath}/disk_2/aspeed control true + hsetprop ${scobj_hpath}/disk_2/aspeed data true + hsetprop ${scobj_hpath}/disk_2/aspeed mutable true + hsetprop ${scobj_hpath}/disk_2/aspeed nxsave true + hsetprop ${scobj_hpath}/disk_2/aspeed oldval 0.0 + hsetprop ${scobj_hpath}/disk_2/aspeed klass "parameter" + hsetprop ${scobj_hpath}/disk_2/aspeed sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_2/aspeed type "part" + hsetprop ${scobj_hpath}/disk_2/aspeed nxalias "${name}_disk_2_aspeed" - hfactory ${scobj_hpath}/blade_2/master plain user text - hsetprop ${scobj_hpath}/blade_2/master control true - hsetprop ${scobj_hpath}/blade_2/master data true - hsetprop ${scobj_hpath}/blade_2/master mutable true - hsetprop ${scobj_hpath}/blade_2/master nxsave true - hsetprop ${scobj_hpath}/blade_2/master oldval UNKNOWN - hsetprop ${scobj_hpath}/blade_2/master klass "parameter" - hsetprop ${scobj_hpath}/blade_2/master sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_2/master type "part" - hsetprop ${scobj_hpath}/blade_2/master nxalias "${name}_blade_2_master" + hfactory ${scobj_hpath}/disk_2/frequency plain user float + hsetprop ${scobj_hpath}/disk_2/frequency control true + hsetprop ${scobj_hpath}/disk_2/frequency data true + hsetprop ${scobj_hpath}/disk_2/frequency mutable true + hsetprop ${scobj_hpath}/disk_2/frequency nxsave true + hsetprop ${scobj_hpath}/disk_2/frequency oldval 0.0 + hsetprop ${scobj_hpath}/disk_2/frequency klass "parameter" + hsetprop ${scobj_hpath}/disk_2/frequency sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_2/frequency type "part" + hsetprop ${scobj_hpath}/disk_2/frequency nxalias "${name}_disk_2_frequency" - hfactory ${scobj_hpath}/blade_2/rphase plain user float - hsetprop ${scobj_hpath}/blade_2/rphase control true - hsetprop ${scobj_hpath}/blade_2/rphase data true - hsetprop ${scobj_hpath}/blade_2/rphase mutable true - hsetprop ${scobj_hpath}/blade_2/rphase nxsave true - hsetprop ${scobj_hpath}/blade_2/rphase oldval 0.0 - hsetprop ${scobj_hpath}/blade_2/rphase klass "parameter" - hsetprop ${scobj_hpath}/blade_2/rphase sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_2/rphase type "part" - hsetprop ${scobj_hpath}/blade_2/rphase nxalias "${name}_blade_2_rphase" + hfactory ${scobj_hpath}/disk_2/master plain user text + hsetprop ${scobj_hpath}/disk_2/master control true + hsetprop ${scobj_hpath}/disk_2/master data true + hsetprop ${scobj_hpath}/disk_2/master mutable true + hsetprop ${scobj_hpath}/disk_2/master nxsave true + hsetprop ${scobj_hpath}/disk_2/master oldval UNKNOWN + hsetprop ${scobj_hpath}/disk_2/master klass "parameter" + hsetprop ${scobj_hpath}/disk_2/master sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_2/master type "part" + hsetprop ${scobj_hpath}/disk_2/master nxalias "${name}_disk_2_master" - hfactory ${scobj_hpath}/blade_2/rspeed plain user float - hsetprop ${scobj_hpath}/blade_2/rspeed control true - hsetprop ${scobj_hpath}/blade_2/rspeed data true - hsetprop ${scobj_hpath}/blade_2/rspeed mutable true - hsetprop ${scobj_hpath}/blade_2/rspeed nxsave true - hsetprop ${scobj_hpath}/blade_2/rspeed oldval 0.0 - hsetprop ${scobj_hpath}/blade_2/rspeed klass "parameter" - hsetprop ${scobj_hpath}/blade_2/rspeed sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_2/rspeed type "part" - hsetprop ${scobj_hpath}/blade_2/rspeed nxalias "${name}_blade_2_rspeed" + hfactory ${scobj_hpath}/disk_2/rphase plain user float + hsetprop ${scobj_hpath}/disk_2/rphase control true + hsetprop ${scobj_hpath}/disk_2/rphase data true + hsetprop ${scobj_hpath}/disk_2/rphase mutable true + hsetprop ${scobj_hpath}/disk_2/rphase nxsave true + hsetprop ${scobj_hpath}/disk_2/rphase oldval 0.0 + hsetprop ${scobj_hpath}/disk_2/rphase klass "parameter" + hsetprop ${scobj_hpath}/disk_2/rphase sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_2/rphase type "part" + hsetprop ${scobj_hpath}/disk_2/rphase nxalias "${name}_disk_2_rphase" - hfactory ${scobj_hpath}/blade_2/state plain user text - hsetprop ${scobj_hpath}/blade_2/state read ${ns}::fetchState ${scobj_hpath} readState {2} - hsetprop ${scobj_hpath}/blade_2/state readState ${ns}::readState ${scobj_hpath} - hsetprop ${scobj_hpath}/blade_2/state control true - hsetprop ${scobj_hpath}/blade_2/state data true - hsetprop ${scobj_hpath}/blade_2/state mutable true - hsetprop ${scobj_hpath}/blade_2/state nxsave true - hsetprop ${scobj_hpath}/blade_2/state oldval UNKNOWN - hsetprop ${scobj_hpath}/blade_2/state klass "parameter" - hsetprop ${scobj_hpath}/blade_2/state my_state "idle" - hsetprop ${scobj_hpath}/blade_2/state sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_2/state type "part" - hsetprop ${scobj_hpath}/blade_2/state nxalias "${name}_blade_2_state" + hfactory ${scobj_hpath}/disk_2/rspeed plain user float + hsetprop ${scobj_hpath}/disk_2/rspeed control true + hsetprop ${scobj_hpath}/disk_2/rspeed data true + hsetprop ${scobj_hpath}/disk_2/rspeed mutable true + hsetprop ${scobj_hpath}/disk_2/rspeed nxsave true + hsetprop ${scobj_hpath}/disk_2/rspeed oldval 0.0 + hsetprop ${scobj_hpath}/disk_2/rspeed klass "parameter" + hsetprop ${scobj_hpath}/disk_2/rspeed sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_2/rspeed type "part" + hsetprop ${scobj_hpath}/disk_2/rspeed nxalias "${name}_disk_2_rspeed" + + hfactory ${scobj_hpath}/disk_2/state plain user text + hsetprop ${scobj_hpath}/disk_2/state read ${ns}::fetchState ${scobj_hpath} readState {2} + hsetprop ${scobj_hpath}/disk_2/state readState ${ns}::readState ${scobj_hpath} + hsetprop ${scobj_hpath}/disk_2/state control true + hsetprop ${scobj_hpath}/disk_2/state data true + hsetprop ${scobj_hpath}/disk_2/state mutable true + hsetprop ${scobj_hpath}/disk_2/state nxsave true + hsetprop ${scobj_hpath}/disk_2/state oldval UNKNOWN + hsetprop ${scobj_hpath}/disk_2/state klass "parameter" + hsetprop ${scobj_hpath}/disk_2/state my_state "idle" + hsetprop ${scobj_hpath}/disk_2/state sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_2/state type "part" + hsetprop ${scobj_hpath}/disk_2/state nxalias "${name}_disk_2_state" if {[string equal -nocase "${simulation_flag}" "false"]} { - ${sct_controller} poll ${scobj_hpath}/blade_2/state 1 - hsetprop ${scobj_hpath}/blade_2/state simulated false + ${sct_controller} poll ${scobj_hpath}/disk_2/state 1 + hsetprop ${scobj_hpath}/disk_2/state simulated false } else { ::scobj::astrium_chopper::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for astrium_chopper" - hsetprop ${scobj_hpath}/blade_2/state simulated true + hsetprop ${scobj_hpath}/disk_2/state simulated true } - hsetprop ${scobj_hpath}/blade_2 data "true" - hsetprop ${scobj_hpath}/blade_2 klass "@none" - hsetprop ${scobj_hpath}/blade_2 type "part" + hsetprop ${scobj_hpath}/disk_2 data "true" + hsetprop ${scobj_hpath}/disk_2 klass "@none" + hsetprop ${scobj_hpath}/disk_2 type "part" - hfactory ${scobj_hpath}/blade_3 plain spy none + hfactory ${scobj_hpath}/disk_3 plain spy none - hfactory ${scobj_hpath}/blade_3/aphase plain user float - hsetprop ${scobj_hpath}/blade_3/aphase control true - hsetprop ${scobj_hpath}/blade_3/aphase data true - hsetprop ${scobj_hpath}/blade_3/aphase mutable true - hsetprop ${scobj_hpath}/blade_3/aphase nxsave true - hsetprop ${scobj_hpath}/blade_3/aphase oldval 0.0 - hsetprop ${scobj_hpath}/blade_3/aphase klass "parameter" - hsetprop ${scobj_hpath}/blade_3/aphase sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_3/aphase type "part" - hsetprop ${scobj_hpath}/blade_3/aphase nxalias "${name}_blade_3_aphase" + hfactory ${scobj_hpath}/disk_3/aphase plain user float + hsetprop ${scobj_hpath}/disk_3/aphase control true + hsetprop ${scobj_hpath}/disk_3/aphase data true + hsetprop ${scobj_hpath}/disk_3/aphase mutable true + hsetprop ${scobj_hpath}/disk_3/aphase nxsave true + hsetprop ${scobj_hpath}/disk_3/aphase oldval 0.0 + hsetprop ${scobj_hpath}/disk_3/aphase klass "parameter" + hsetprop ${scobj_hpath}/disk_3/aphase sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_3/aphase type "part" + hsetprop ${scobj_hpath}/disk_3/aphase nxalias "${name}_disk_3_aphase" - hfactory ${scobj_hpath}/blade_3/aspeed plain user float - hsetprop ${scobj_hpath}/blade_3/aspeed control true - hsetprop ${scobj_hpath}/blade_3/aspeed data true - hsetprop ${scobj_hpath}/blade_3/aspeed mutable true - hsetprop ${scobj_hpath}/blade_3/aspeed nxsave true - hsetprop ${scobj_hpath}/blade_3/aspeed oldval 0.0 - hsetprop ${scobj_hpath}/blade_3/aspeed klass "parameter" - hsetprop ${scobj_hpath}/blade_3/aspeed sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_3/aspeed type "part" - hsetprop ${scobj_hpath}/blade_3/aspeed nxalias "${name}_blade_3_aspeed" + hfactory ${scobj_hpath}/disk_3/aspeed plain user float + hsetprop ${scobj_hpath}/disk_3/aspeed control true + hsetprop ${scobj_hpath}/disk_3/aspeed data true + hsetprop ${scobj_hpath}/disk_3/aspeed mutable true + hsetprop ${scobj_hpath}/disk_3/aspeed nxsave true + hsetprop ${scobj_hpath}/disk_3/aspeed oldval 0.0 + hsetprop ${scobj_hpath}/disk_3/aspeed klass "parameter" + hsetprop ${scobj_hpath}/disk_3/aspeed sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_3/aspeed type "part" + hsetprop ${scobj_hpath}/disk_3/aspeed nxalias "${name}_disk_3_aspeed" - hfactory ${scobj_hpath}/blade_3/master plain user text - hsetprop ${scobj_hpath}/blade_3/master control true - hsetprop ${scobj_hpath}/blade_3/master data true - hsetprop ${scobj_hpath}/blade_3/master mutable true - hsetprop ${scobj_hpath}/blade_3/master nxsave true - hsetprop ${scobj_hpath}/blade_3/master oldval UNKNOWN - hsetprop ${scobj_hpath}/blade_3/master klass "parameter" - hsetprop ${scobj_hpath}/blade_3/master sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_3/master type "part" - hsetprop ${scobj_hpath}/blade_3/master nxalias "${name}_blade_3_master" + hfactory ${scobj_hpath}/disk_3/frequency plain user float + hsetprop ${scobj_hpath}/disk_3/frequency control true + hsetprop ${scobj_hpath}/disk_3/frequency data true + hsetprop ${scobj_hpath}/disk_3/frequency mutable true + hsetprop ${scobj_hpath}/disk_3/frequency nxsave true + hsetprop ${scobj_hpath}/disk_3/frequency oldval 0.0 + hsetprop ${scobj_hpath}/disk_3/frequency klass "parameter" + hsetprop ${scobj_hpath}/disk_3/frequency sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_3/frequency type "part" + hsetprop ${scobj_hpath}/disk_3/frequency nxalias "${name}_disk_3_frequency" - hfactory ${scobj_hpath}/blade_3/rphase plain user float - hsetprop ${scobj_hpath}/blade_3/rphase control true - hsetprop ${scobj_hpath}/blade_3/rphase data true - hsetprop ${scobj_hpath}/blade_3/rphase mutable true - hsetprop ${scobj_hpath}/blade_3/rphase nxsave true - hsetprop ${scobj_hpath}/blade_3/rphase oldval 0.0 - hsetprop ${scobj_hpath}/blade_3/rphase klass "parameter" - hsetprop ${scobj_hpath}/blade_3/rphase sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_3/rphase type "part" - hsetprop ${scobj_hpath}/blade_3/rphase nxalias "${name}_blade_3_rphase" + hfactory ${scobj_hpath}/disk_3/master plain user text + hsetprop ${scobj_hpath}/disk_3/master control true + hsetprop ${scobj_hpath}/disk_3/master data true + hsetprop ${scobj_hpath}/disk_3/master mutable true + hsetprop ${scobj_hpath}/disk_3/master nxsave true + hsetprop ${scobj_hpath}/disk_3/master oldval UNKNOWN + hsetprop ${scobj_hpath}/disk_3/master klass "parameter" + hsetprop ${scobj_hpath}/disk_3/master sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_3/master type "part" + hsetprop ${scobj_hpath}/disk_3/master nxalias "${name}_disk_3_master" - hfactory ${scobj_hpath}/blade_3/rspeed plain user float - hsetprop ${scobj_hpath}/blade_3/rspeed control true - hsetprop ${scobj_hpath}/blade_3/rspeed data true - hsetprop ${scobj_hpath}/blade_3/rspeed mutable true - hsetprop ${scobj_hpath}/blade_3/rspeed nxsave true - hsetprop ${scobj_hpath}/blade_3/rspeed oldval 0.0 - hsetprop ${scobj_hpath}/blade_3/rspeed klass "parameter" - hsetprop ${scobj_hpath}/blade_3/rspeed sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_3/rspeed type "part" - hsetprop ${scobj_hpath}/blade_3/rspeed nxalias "${name}_blade_3_rspeed" + hfactory ${scobj_hpath}/disk_3/rphase plain user float + hsetprop ${scobj_hpath}/disk_3/rphase control true + hsetprop ${scobj_hpath}/disk_3/rphase data true + hsetprop ${scobj_hpath}/disk_3/rphase mutable true + hsetprop ${scobj_hpath}/disk_3/rphase nxsave true + hsetprop ${scobj_hpath}/disk_3/rphase oldval 0.0 + hsetprop ${scobj_hpath}/disk_3/rphase klass "parameter" + hsetprop ${scobj_hpath}/disk_3/rphase sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_3/rphase type "part" + hsetprop ${scobj_hpath}/disk_3/rphase nxalias "${name}_disk_3_rphase" - hfactory ${scobj_hpath}/blade_3/state plain user text - hsetprop ${scobj_hpath}/blade_3/state read ${ns}::fetchState ${scobj_hpath} readState {3} - hsetprop ${scobj_hpath}/blade_3/state readState ${ns}::readState ${scobj_hpath} - hsetprop ${scobj_hpath}/blade_3/state control true - hsetprop ${scobj_hpath}/blade_3/state data true - hsetprop ${scobj_hpath}/blade_3/state mutable true - hsetprop ${scobj_hpath}/blade_3/state nxsave true - hsetprop ${scobj_hpath}/blade_3/state oldval UNKNOWN - hsetprop ${scobj_hpath}/blade_3/state klass "parameter" - hsetprop ${scobj_hpath}/blade_3/state my_state "idle" - hsetprop ${scobj_hpath}/blade_3/state sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_3/state type "part" - hsetprop ${scobj_hpath}/blade_3/state nxalias "${name}_blade_3_state" + hfactory ${scobj_hpath}/disk_3/rspeed plain user float + hsetprop ${scobj_hpath}/disk_3/rspeed control true + hsetprop ${scobj_hpath}/disk_3/rspeed data true + hsetprop ${scobj_hpath}/disk_3/rspeed mutable true + hsetprop ${scobj_hpath}/disk_3/rspeed nxsave true + hsetprop ${scobj_hpath}/disk_3/rspeed oldval 0.0 + hsetprop ${scobj_hpath}/disk_3/rspeed klass "parameter" + hsetprop ${scobj_hpath}/disk_3/rspeed sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_3/rspeed type "part" + hsetprop ${scobj_hpath}/disk_3/rspeed nxalias "${name}_disk_3_rspeed" + + hfactory ${scobj_hpath}/disk_3/state plain user text + hsetprop ${scobj_hpath}/disk_3/state read ${ns}::fetchState ${scobj_hpath} readState {3} + hsetprop ${scobj_hpath}/disk_3/state readState ${ns}::readState ${scobj_hpath} + hsetprop ${scobj_hpath}/disk_3/state control true + hsetprop ${scobj_hpath}/disk_3/state data true + hsetprop ${scobj_hpath}/disk_3/state mutable true + hsetprop ${scobj_hpath}/disk_3/state nxsave true + hsetprop ${scobj_hpath}/disk_3/state oldval UNKNOWN + hsetprop ${scobj_hpath}/disk_3/state klass "parameter" + hsetprop ${scobj_hpath}/disk_3/state my_state "idle" + hsetprop ${scobj_hpath}/disk_3/state sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_3/state type "part" + hsetprop ${scobj_hpath}/disk_3/state nxalias "${name}_disk_3_state" if {[string equal -nocase "${simulation_flag}" "false"]} { - ${sct_controller} poll ${scobj_hpath}/blade_3/state 1 - hsetprop ${scobj_hpath}/blade_3/state simulated false + ${sct_controller} poll ${scobj_hpath}/disk_3/state 1 + hsetprop ${scobj_hpath}/disk_3/state simulated false } else { ::scobj::astrium_chopper::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for astrium_chopper" - hsetprop ${scobj_hpath}/blade_3/state simulated true + hsetprop ${scobj_hpath}/disk_3/state simulated true } - hsetprop ${scobj_hpath}/blade_3 data "true" - hsetprop ${scobj_hpath}/blade_3 klass "@none" - hsetprop ${scobj_hpath}/blade_3 type "part" + hsetprop ${scobj_hpath}/disk_3 data "true" + hsetprop ${scobj_hpath}/disk_3 klass "@none" + hsetprop ${scobj_hpath}/disk_3 type "part" - hfactory ${scobj_hpath}/blade_4 plain spy none + hfactory ${scobj_hpath}/disk_4 plain spy none - hfactory ${scobj_hpath}/blade_4/aphase plain user float - hsetprop ${scobj_hpath}/blade_4/aphase control true - hsetprop ${scobj_hpath}/blade_4/aphase data true - hsetprop ${scobj_hpath}/blade_4/aphase mutable true - hsetprop ${scobj_hpath}/blade_4/aphase nxsave true - hsetprop ${scobj_hpath}/blade_4/aphase oldval 0.0 - hsetprop ${scobj_hpath}/blade_4/aphase klass "parameter" - hsetprop ${scobj_hpath}/blade_4/aphase sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_4/aphase type "part" - hsetprop ${scobj_hpath}/blade_4/aphase nxalias "${name}_blade_4_aphase" + hfactory ${scobj_hpath}/disk_4/aphase plain user float + hsetprop ${scobj_hpath}/disk_4/aphase control true + hsetprop ${scobj_hpath}/disk_4/aphase data true + hsetprop ${scobj_hpath}/disk_4/aphase mutable true + hsetprop ${scobj_hpath}/disk_4/aphase nxsave true + hsetprop ${scobj_hpath}/disk_4/aphase oldval 0.0 + hsetprop ${scobj_hpath}/disk_4/aphase klass "parameter" + hsetprop ${scobj_hpath}/disk_4/aphase sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_4/aphase type "part" + hsetprop ${scobj_hpath}/disk_4/aphase nxalias "${name}_disk_4_aphase" - hfactory ${scobj_hpath}/blade_4/aspeed plain user float - hsetprop ${scobj_hpath}/blade_4/aspeed control true - hsetprop ${scobj_hpath}/blade_4/aspeed data true - hsetprop ${scobj_hpath}/blade_4/aspeed mutable true - hsetprop ${scobj_hpath}/blade_4/aspeed nxsave true - hsetprop ${scobj_hpath}/blade_4/aspeed oldval 0.0 - hsetprop ${scobj_hpath}/blade_4/aspeed klass "parameter" - hsetprop ${scobj_hpath}/blade_4/aspeed sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_4/aspeed type "part" - hsetprop ${scobj_hpath}/blade_4/aspeed nxalias "${name}_blade_4_aspeed" + hfactory ${scobj_hpath}/disk_4/aspeed plain user float + hsetprop ${scobj_hpath}/disk_4/aspeed control true + hsetprop ${scobj_hpath}/disk_4/aspeed data true + hsetprop ${scobj_hpath}/disk_4/aspeed mutable true + hsetprop ${scobj_hpath}/disk_4/aspeed nxsave true + hsetprop ${scobj_hpath}/disk_4/aspeed oldval 0.0 + hsetprop ${scobj_hpath}/disk_4/aspeed klass "parameter" + hsetprop ${scobj_hpath}/disk_4/aspeed sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_4/aspeed type "part" + hsetprop ${scobj_hpath}/disk_4/aspeed nxalias "${name}_disk_4_aspeed" - hfactory ${scobj_hpath}/blade_4/master plain user text - hsetprop ${scobj_hpath}/blade_4/master control true - hsetprop ${scobj_hpath}/blade_4/master data true - hsetprop ${scobj_hpath}/blade_4/master mutable true - hsetprop ${scobj_hpath}/blade_4/master nxsave true - hsetprop ${scobj_hpath}/blade_4/master oldval UNKNOWN - hsetprop ${scobj_hpath}/blade_4/master klass "parameter" - hsetprop ${scobj_hpath}/blade_4/master sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_4/master type "part" - hsetprop ${scobj_hpath}/blade_4/master nxalias "${name}_blade_4_master" + hfactory ${scobj_hpath}/disk_4/frequency plain user float + hsetprop ${scobj_hpath}/disk_4/frequency control true + hsetprop ${scobj_hpath}/disk_4/frequency data true + hsetprop ${scobj_hpath}/disk_4/frequency mutable true + hsetprop ${scobj_hpath}/disk_4/frequency nxsave true + hsetprop ${scobj_hpath}/disk_4/frequency oldval 0.0 + hsetprop ${scobj_hpath}/disk_4/frequency klass "parameter" + hsetprop ${scobj_hpath}/disk_4/frequency sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_4/frequency type "part" + hsetprop ${scobj_hpath}/disk_4/frequency nxalias "${name}_disk_4_frequency" - hfactory ${scobj_hpath}/blade_4/rphase plain user float - hsetprop ${scobj_hpath}/blade_4/rphase control true - hsetprop ${scobj_hpath}/blade_4/rphase data true - hsetprop ${scobj_hpath}/blade_4/rphase mutable true - hsetprop ${scobj_hpath}/blade_4/rphase nxsave true - hsetprop ${scobj_hpath}/blade_4/rphase oldval 0.0 - hsetprop ${scobj_hpath}/blade_4/rphase klass "parameter" - hsetprop ${scobj_hpath}/blade_4/rphase sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_4/rphase type "part" - hsetprop ${scobj_hpath}/blade_4/rphase nxalias "${name}_blade_4_rphase" + hfactory ${scobj_hpath}/disk_4/master plain user text + hsetprop ${scobj_hpath}/disk_4/master control true + hsetprop ${scobj_hpath}/disk_4/master data true + hsetprop ${scobj_hpath}/disk_4/master mutable true + hsetprop ${scobj_hpath}/disk_4/master nxsave true + hsetprop ${scobj_hpath}/disk_4/master oldval UNKNOWN + hsetprop ${scobj_hpath}/disk_4/master klass "parameter" + hsetprop ${scobj_hpath}/disk_4/master sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_4/master type "part" + hsetprop ${scobj_hpath}/disk_4/master nxalias "${name}_disk_4_master" - hfactory ${scobj_hpath}/blade_4/rspeed plain user float - hsetprop ${scobj_hpath}/blade_4/rspeed control true - hsetprop ${scobj_hpath}/blade_4/rspeed data true - hsetprop ${scobj_hpath}/blade_4/rspeed mutable true - hsetprop ${scobj_hpath}/blade_4/rspeed nxsave true - hsetprop ${scobj_hpath}/blade_4/rspeed oldval 0.0 - hsetprop ${scobj_hpath}/blade_4/rspeed klass "parameter" - hsetprop ${scobj_hpath}/blade_4/rspeed sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_4/rspeed type "part" - hsetprop ${scobj_hpath}/blade_4/rspeed nxalias "${name}_blade_4_rspeed" + hfactory ${scobj_hpath}/disk_4/rphase plain user float + hsetprop ${scobj_hpath}/disk_4/rphase control true + hsetprop ${scobj_hpath}/disk_4/rphase data true + hsetprop ${scobj_hpath}/disk_4/rphase mutable true + hsetprop ${scobj_hpath}/disk_4/rphase nxsave true + hsetprop ${scobj_hpath}/disk_4/rphase oldval 0.0 + hsetprop ${scobj_hpath}/disk_4/rphase klass "parameter" + hsetprop ${scobj_hpath}/disk_4/rphase sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_4/rphase type "part" + hsetprop ${scobj_hpath}/disk_4/rphase nxalias "${name}_disk_4_rphase" - hfactory ${scobj_hpath}/blade_4/state plain user text - hsetprop ${scobj_hpath}/blade_4/state read ${ns}::fetchState ${scobj_hpath} readState {4} - hsetprop ${scobj_hpath}/blade_4/state readState ${ns}::readState ${scobj_hpath} - hsetprop ${scobj_hpath}/blade_4/state control true - hsetprop ${scobj_hpath}/blade_4/state data true - hsetprop ${scobj_hpath}/blade_4/state mutable true - hsetprop ${scobj_hpath}/blade_4/state nxsave true - hsetprop ${scobj_hpath}/blade_4/state oldval UNKNOWN - hsetprop ${scobj_hpath}/blade_4/state klass "parameter" - hsetprop ${scobj_hpath}/blade_4/state my_state "idle" - hsetprop ${scobj_hpath}/blade_4/state sdsinfo "::nexus::scobj::sdsinfo" - hsetprop ${scobj_hpath}/blade_4/state type "part" - hsetprop ${scobj_hpath}/blade_4/state nxalias "${name}_blade_4_state" + hfactory ${scobj_hpath}/disk_4/rspeed plain user float + hsetprop ${scobj_hpath}/disk_4/rspeed control true + hsetprop ${scobj_hpath}/disk_4/rspeed data true + hsetprop ${scobj_hpath}/disk_4/rspeed mutable true + hsetprop ${scobj_hpath}/disk_4/rspeed nxsave true + hsetprop ${scobj_hpath}/disk_4/rspeed oldval 0.0 + hsetprop ${scobj_hpath}/disk_4/rspeed klass "parameter" + hsetprop ${scobj_hpath}/disk_4/rspeed sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_4/rspeed type "part" + hsetprop ${scobj_hpath}/disk_4/rspeed nxalias "${name}_disk_4_rspeed" + + hfactory ${scobj_hpath}/disk_4/state plain user text + hsetprop ${scobj_hpath}/disk_4/state read ${ns}::fetchState ${scobj_hpath} readState {4} + hsetprop ${scobj_hpath}/disk_4/state readState ${ns}::readState ${scobj_hpath} + hsetprop ${scobj_hpath}/disk_4/state control true + hsetprop ${scobj_hpath}/disk_4/state data true + hsetprop ${scobj_hpath}/disk_4/state mutable true + hsetprop ${scobj_hpath}/disk_4/state nxsave true + hsetprop ${scobj_hpath}/disk_4/state oldval UNKNOWN + hsetprop ${scobj_hpath}/disk_4/state klass "parameter" + hsetprop ${scobj_hpath}/disk_4/state my_state "idle" + hsetprop ${scobj_hpath}/disk_4/state sdsinfo "::nexus::scobj::sdsinfo" + hsetprop ${scobj_hpath}/disk_4/state type "part" + hsetprop ${scobj_hpath}/disk_4/state nxalias "${name}_disk_4_state" if {[string equal -nocase "${simulation_flag}" "false"]} { - ${sct_controller} poll ${scobj_hpath}/blade_4/state 1 - hsetprop ${scobj_hpath}/blade_4/state simulated false + ${sct_controller} poll ${scobj_hpath}/disk_4/state 1 + hsetprop ${scobj_hpath}/disk_4/state simulated false } else { ::scobj::astrium_chopper::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for astrium_chopper" - hsetprop ${scobj_hpath}/blade_4/state simulated true + hsetprop ${scobj_hpath}/disk_4/state simulated true } - hsetprop ${scobj_hpath}/blade_4 data "true" - hsetprop ${scobj_hpath}/blade_4 klass "@none" - hsetprop ${scobj_hpath}/blade_4 type "part" + hsetprop ${scobj_hpath}/disk_4 data "true" + hsetprop ${scobj_hpath}/disk_4 klass "@none" + hsetprop ${scobj_hpath}/disk_4 type "part" hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5 diff --git a/site_ansto/instrument/config/beamline/sct_he3_polanal.tcl b/site_ansto/instrument/config/beamline/sct_he3_polanal.tcl index 654db951..6aa7809f 100644 --- a/site_ansto/instrument/config/beamline/sct_he3_polanal.tcl +++ b/site_ansto/instrument/config/beamline/sct_he3_polanal.tcl @@ -175,27 +175,9 @@ proc ::scobj::he3_polanal::setValue {tc_root nextState cmd_str} { set cmd "${cmd_str}${par}" # setValue hook code starts set cmd "${cmd_str}" - if {[string equal -nocase [sct target] "refresh"]} { - set cmd "${cmd_str}" - } - if {[string equal -nocase [sct target] "minus"]} { - set cmd "${cmd_str} -" - } - if {[string equal -nocase [sct target] "dn"]} { - set cmd "${cmd_str} -" - } - if {[string equal -nocase [sct target] "down"]} { - set cmd "${cmd_str} -" - } if {[sct target] == "-" || [sct target] == -1} { set cmd "${cmd_str} -" } - if {[string equal -nocase [sct target] "plus"]} { - set cmd "${cmd_str} +" - } - if {[string equal -nocase [sct target] "up"]} { - set cmd "${cmd_str} +" - } if {[sct target] == "+" || [sct target] == 1} { set cmd "${cmd_str} +" } @@ -318,12 +300,12 @@ proc ::scobj::he3_polanal::mkDriver { sct_controller name device_class simulatio hsetprop ${scobj_hpath}/analyser/time2 type "part" hsetprop ${scobj_hpath}/analyser/time2 nxalias "${name}_analyser_time2" - hfactory ${scobj_hpath}/analyser/timestamp plain user float + hfactory ${scobj_hpath}/analyser/timestamp plain user int hsetprop ${scobj_hpath}/analyser/timestamp control true hsetprop ${scobj_hpath}/analyser/timestamp data true hsetprop ${scobj_hpath}/analyser/timestamp mutable true hsetprop ${scobj_hpath}/analyser/timestamp nxsave true - hsetprop ${scobj_hpath}/analyser/timestamp oldval 0.0 + hsetprop ${scobj_hpath}/analyser/timestamp oldval 0 hsetprop ${scobj_hpath}/analyser/timestamp klass "parameter" hsetprop ${scobj_hpath}/analyser/timestamp sdsinfo "::nexus::scobj::sdsinfo" hsetprop ${scobj_hpath}/analyser/timestamp type "part" @@ -406,12 +388,12 @@ proc ::scobj::he3_polanal::mkDriver { sct_controller name device_class simulatio hsetprop ${scobj_hpath}/analyser_start/time2 type "part" hsetprop ${scobj_hpath}/analyser_start/time2 nxalias "${name}_analyser_start_time2" - hfactory ${scobj_hpath}/analyser_start/timestamp plain user float + hfactory ${scobj_hpath}/analyser_start/timestamp plain user int hsetprop ${scobj_hpath}/analyser_start/timestamp control true hsetprop ${scobj_hpath}/analyser_start/timestamp data true hsetprop ${scobj_hpath}/analyser_start/timestamp mutable true hsetprop ${scobj_hpath}/analyser_start/timestamp nxsave true - hsetprop ${scobj_hpath}/analyser_start/timestamp oldval 0.0 + hsetprop ${scobj_hpath}/analyser_start/timestamp oldval 0 hsetprop ${scobj_hpath}/analyser_start/timestamp klass "parameter" hsetprop ${scobj_hpath}/analyser_start/timestamp sdsinfo "::nexus::scobj::sdsinfo" hsetprop ${scobj_hpath}/analyser_start/timestamp type "part" @@ -481,7 +463,7 @@ proc ::scobj::he3_polanal::mkDriver { sct_controller name device_class simulatio hsetprop ${scobj_hpath}/polariser/spin data true hsetprop ${scobj_hpath}/polariser/spin mutable true hsetprop ${scobj_hpath}/polariser/spin nxsave true - hsetprop ${scobj_hpath}/polariser/spin values +,-,Refresh + hsetprop ${scobj_hpath}/polariser/spin values -1,0,+1 hsetprop ${scobj_hpath}/polariser/spin oldval 0.0 hsetprop ${scobj_hpath}/polariser/spin klass "parameter" hsetprop ${scobj_hpath}/polariser/spin sdsinfo "::nexus::scobj::sdsinfo" @@ -509,12 +491,12 @@ proc ::scobj::he3_polanal::mkDriver { sct_controller name device_class simulatio hsetprop ${scobj_hpath}/polariser/time2 type "part" hsetprop ${scobj_hpath}/polariser/time2 nxalias "${name}_polariser_time2" - hfactory ${scobj_hpath}/polariser/timestamp plain user float + hfactory ${scobj_hpath}/polariser/timestamp plain user int hsetprop ${scobj_hpath}/polariser/timestamp control true hsetprop ${scobj_hpath}/polariser/timestamp data true hsetprop ${scobj_hpath}/polariser/timestamp mutable true hsetprop ${scobj_hpath}/polariser/timestamp nxsave true - hsetprop ${scobj_hpath}/polariser/timestamp oldval 0.0 + hsetprop ${scobj_hpath}/polariser/timestamp oldval 0 hsetprop ${scobj_hpath}/polariser/timestamp klass "parameter" hsetprop ${scobj_hpath}/polariser/timestamp sdsinfo "::nexus::scobj::sdsinfo" hsetprop ${scobj_hpath}/polariser/timestamp type "part" @@ -597,12 +579,12 @@ proc ::scobj::he3_polanal::mkDriver { sct_controller name device_class simulatio hsetprop ${scobj_hpath}/polariser_start/time2 type "part" hsetprop ${scobj_hpath}/polariser_start/time2 nxalias "${name}_polariser_start_time2" - hfactory ${scobj_hpath}/polariser_start/timestamp plain user float + hfactory ${scobj_hpath}/polariser_start/timestamp plain user int hsetprop ${scobj_hpath}/polariser_start/timestamp control true hsetprop ${scobj_hpath}/polariser_start/timestamp data true hsetprop ${scobj_hpath}/polariser_start/timestamp mutable true hsetprop ${scobj_hpath}/polariser_start/timestamp nxsave true - hsetprop ${scobj_hpath}/polariser_start/timestamp oldval 0.0 + hsetprop ${scobj_hpath}/polariser_start/timestamp oldval 0 hsetprop ${scobj_hpath}/polariser_start/timestamp klass "parameter" hsetprop ${scobj_hpath}/polariser_start/timestamp sdsinfo "::nexus::scobj::sdsinfo" hsetprop ${scobj_hpath}/polariser_start/timestamp type "part" diff --git a/site_ansto/instrument/config/environment/sct_isotech_ps.tcl b/site_ansto/instrument/config/environment/sct_isotech_ps.tcl index 5c6ac839..05ddd1e8 100644 --- a/site_ansto/instrument/config/environment/sct_isotech_ps.tcl +++ b/site_ansto/instrument/config/environment/sct_isotech_ps.tcl @@ -347,8 +347,8 @@ proc ::scobj::isotech_ps::add_driver {name device_class simulation_flag ip_addre ::scobj::isotech_ps::sics_log 9 "makesctcontroller sct_${name} aqadapter ${tcp_port}" makesctcontroller sct_${name} aqadapter ${tcp_port} } else { - ::scobj::isotech_ps::sics_log 9 "makesctcontroller sct_${name} std ${ip_address}:${tcp_port} \"\\r\"" - makesctcontroller sct_${name} std ${ip_address}:${tcp_port} "\r" + ::scobj::isotech_ps::sics_log 9 "makesctcontroller sct_${name} std ${ip_address}:${tcp_port} \\r" + makesctcontroller sct_${name} std ${ip_address}:${tcp_port} \r } } else { ::scobj::isotech_ps::sics_log 9 "simulation_flag=${simulation_flag} => Null sctcontroller for isotech_ps" @@ -420,7 +420,7 @@ proc ::scobj::isotech_ps::read_config {} { set arg_list [list] set missing_list [list] array unset default_map - array set default_map [list terminator "\r"] + array set default_map [list terminator \r] foreach arg {terminator} { if {[dict exists $u $arg]} { lappend arg_list "[dict get $u $arg]" diff --git a/site_ansto/instrument/config/environment/temperature/sct_julabo_lh45_gen.tcl b/site_ansto/instrument/config/environment/temperature/sct_julabo_lh45_gen.tcl index 1e41640b..c098ad67 100644 --- a/site_ansto/instrument/config/environment/temperature/sct_julabo_lh45_gen.tcl +++ b/site_ansto/instrument/config/environment/temperature/sct_julabo_lh45_gen.tcl @@ -697,8 +697,8 @@ proc ::scobj::julabo_lh45_gen::add_driver {name device_class simulation_flag ip_ ::scobj::julabo_lh45_gen::sics_log 9 "makesctcontroller sct_${name} aqadapter ${tcp_port}" makesctcontroller sct_${name} aqadapter ${tcp_port} } else { - ::scobj::julabo_lh45_gen::sics_log 9 "makesctcontroller sct_${name} std ${ip_address}:${tcp_port} \"\\r\"" - makesctcontroller sct_${name} std ${ip_address}:${tcp_port} "\r" + ::scobj::julabo_lh45_gen::sics_log 9 "makesctcontroller sct_${name} std ${ip_address}:${tcp_port} \\r" + makesctcontroller sct_${name} std ${ip_address}:${tcp_port} \r } } else { ::scobj::julabo_lh45_gen::sics_log 9 "simulation_flag=${simulation_flag} => Null sctcontroller for julabo_lh45_gen" @@ -770,7 +770,7 @@ proc ::scobj::julabo_lh45_gen::read_config {} { set arg_list [list] set missing_list [list] array unset default_map - array set default_map [list terminator "\r"] + array set default_map [list terminator \r] foreach arg {terminator} { if {[dict exists $u $arg]} { lappend arg_list "[dict get $u $arg]" diff --git a/site_ansto/instrument/config/environment/temperature/sct_ls340.tcl b/site_ansto/instrument/config/environment/temperature/sct_ls340.tcl index 0dc417e8..fd49c355 100644 --- a/site_ansto/instrument/config/environment/temperature/sct_ls340.tcl +++ b/site_ansto/instrument/config/environment/temperature/sct_ls340.tcl @@ -30,7 +30,7 @@ proc ::scobj::ls340::sics_log {debug_level debug_string} { } catch_message ] } -proc ::scobj::ls340::mkDriver { sct_controller name device_class simulation_flag ip_address tcp_port id datype tol1 tol2 } { +proc ::scobj::ls340::mkDriver { sct_controller name device_class simulation_flag ip_address tcp_port id datype {tol1 1.0} {tol2 1.0} } { ::scobj::ls340::sics_log 9 "::scobj::ls340::mkDriver ${sct_controller} ${name} ${device_class} ${simulation_flag} ${ip_address} ${tcp_port} ${id} ${datype} ${tol1} ${tol2}" set ns "[namespace current]" set catch_status [ catch { @@ -59,8 +59,8 @@ proc ::scobj::ls340::add_driver {name device_class simulation_flag ip_address tc ::scobj::ls340::sics_log 9 "makesctcontroller sct_${name} aqadapter ${tcp_port}" makesctcontroller sct_${name} aqadapter ${tcp_port} } else { - ::scobj::ls340::sics_log 9 "makesctcontroller sct_${name} std ${ip_address}:${tcp_port}" - makesctcontroller sct_${name} std ${ip_address}:${tcp_port} + ::scobj::ls340::sics_log 9 "makesctcontroller sct_${name} std ${ip_address}:${tcp_port} \\r\\n" + makesctcontroller sct_${name} std ${ip_address}:${tcp_port} \r\n } } else { ::scobj::ls340::sics_log 9 "simulation_flag=${simulation_flag} => Null sctcontroller for ls340" @@ -129,7 +129,26 @@ proc ::scobj::ls340::read_config {} { if { [string equal -nocase ${asyncqueue} "sct"] } { set ip_address [dict get $v ip] set tcp_port [dict get $v port] - makesctcontroller sct_${name} std ${ip_address}:${tcp_port} + set arg_list [list] + set missing_list [list] + array unset default_map + array set default_map [list terminator \r\n] + foreach arg {terminator} { + if {[dict exists $u $arg]} { + lappend arg_list "[dict get $u $arg]" + } elseif {[dict exists $v $arg]} { + lappend arg_list "[dict get $v $arg]" + } elseif {[info exists default_map($arg)]} { + lappend arg_list $default_map($arg) + } else { + ${ns}::sics_log 9 "Missing configuration value $arg" + lappend missing_list $arg + } + } + if { [llength $missing_list] > 0 } { + error "$name is missing configuration values $missing_list" + } + makesctcontroller sct_${name} std ${ip_address}:${tcp_port} {*}$arg_list } else { makesctcontroller sct_${name} aqadapter ${asyncqueue} } @@ -161,11 +180,15 @@ proc ::scobj::ls340::read_config {} { } set arg_list [list] set missing_list [list] + array unset default_map + array set default_map [list tol1 1.0 tol2 1.0] foreach arg {id datype tol1 tol2} { if {[dict exists $u $arg]} { lappend arg_list "[dict get $u $arg]" } elseif {[dict exists $v $arg]} { lappend arg_list "[dict get $v $arg]" + } elseif {[info exists default_map($arg)]} { + lappend arg_list $default_map($arg) } else { ${ns}::sics_log 9 "Missing configuration value $arg" lappend missing_list $arg