diff --git a/site_ansto/instrument/bilby/config/chopper/astrium_chopper_sct.tcl b/site_ansto/instrument/bilby/config/chopper/astrium_chopper_sct.tcl index 1d7f36a6..a32f1e98 100644 --- a/site_ansto/instrument/bilby/config/chopper/astrium_chopper_sct.tcl +++ b/site_ansto/instrument/bilby/config/chopper/astrium_chopper_sct.tcl @@ -250,9 +250,10 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul set scobj_hpath /sics/${name} + # Start of named group: disk_1 hfactory ${scobj_hpath}/disk_1 plain spy none - + # Start of var: 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 @@ -264,7 +265,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_1/aphase type "part" hsetprop ${scobj_hpath}/disk_1/aphase nxalias "${name}_disk_1_aphase" - + # Start of var: 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 @@ -276,7 +277,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_1/aspeed type "part" hsetprop ${scobj_hpath}/disk_1/aspeed nxalias "${name}_disk_1_aspeed" - + # Start of var: frequency 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 @@ -288,7 +289,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_1/frequency type "part" hsetprop ${scobj_hpath}/disk_1/frequency nxalias "${name}_disk_1_frequency" - + # Start of var: master 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 @@ -300,7 +301,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_1/master type "part" hsetprop ${scobj_hpath}/disk_1/master nxalias "${name}_disk_1_master" - + # Start of var: rphase 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 @@ -312,7 +313,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_1/rphase type "part" hsetprop ${scobj_hpath}/disk_1/rphase nxalias "${name}_disk_1_rphase" - + # Start of var: rspeed 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 @@ -324,7 +325,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_1/rspeed type "part" hsetprop ${scobj_hpath}/disk_1/rspeed nxalias "${name}_disk_1_rspeed" - + # Start of var: state 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} @@ -341,16 +342,20 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/disk_1/state 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::astrium_chopper::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for astrium_chopper" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/disk_1 data "true" hsetprop ${scobj_hpath}/disk_1 klass "@none" hsetprop ${scobj_hpath}/disk_1 type "part" + # End of named group: disk_1 + # Start of named group: disk_2 hfactory ${scobj_hpath}/disk_2 plain spy none - + # Start of var: 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 @@ -362,7 +367,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_2/aphase type "part" hsetprop ${scobj_hpath}/disk_2/aphase nxalias "${name}_disk_2_aphase" - + # Start of var: 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 @@ -374,7 +379,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_2/aspeed type "part" hsetprop ${scobj_hpath}/disk_2/aspeed nxalias "${name}_disk_2_aspeed" - + # Start of var: frequency 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 @@ -386,7 +391,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_2/frequency type "part" hsetprop ${scobj_hpath}/disk_2/frequency nxalias "${name}_disk_2_frequency" - + # Start of var: master 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 @@ -398,7 +403,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_2/master type "part" hsetprop ${scobj_hpath}/disk_2/master nxalias "${name}_disk_2_master" - + # Start of var: rphase 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 @@ -410,7 +415,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_2/rphase type "part" hsetprop ${scobj_hpath}/disk_2/rphase nxalias "${name}_disk_2_rphase" - + # Start of var: rspeed 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 @@ -422,7 +427,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_2/rspeed type "part" hsetprop ${scobj_hpath}/disk_2/rspeed nxalias "${name}_disk_2_rspeed" - + # Start of var: state 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} @@ -439,16 +444,20 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/disk_2/state 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::astrium_chopper::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for astrium_chopper" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/disk_2 data "true" hsetprop ${scobj_hpath}/disk_2 klass "@none" hsetprop ${scobj_hpath}/disk_2 type "part" + # End of named group: disk_2 + # Start of named group: disk_3 hfactory ${scobj_hpath}/disk_3 plain spy none - + # Start of var: 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 @@ -460,7 +469,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_3/aphase type "part" hsetprop ${scobj_hpath}/disk_3/aphase nxalias "${name}_disk_3_aphase" - + # Start of var: 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 @@ -472,7 +481,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_3/aspeed type "part" hsetprop ${scobj_hpath}/disk_3/aspeed nxalias "${name}_disk_3_aspeed" - + # Start of var: frequency 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 @@ -484,7 +493,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_3/frequency type "part" hsetprop ${scobj_hpath}/disk_3/frequency nxalias "${name}_disk_3_frequency" - + # Start of var: master 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 @@ -496,7 +505,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_3/master type "part" hsetprop ${scobj_hpath}/disk_3/master nxalias "${name}_disk_3_master" - + # Start of var: rphase 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 @@ -508,7 +517,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_3/rphase type "part" hsetprop ${scobj_hpath}/disk_3/rphase nxalias "${name}_disk_3_rphase" - + # Start of var: rspeed 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 @@ -520,7 +529,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_3/rspeed type "part" hsetprop ${scobj_hpath}/disk_3/rspeed nxalias "${name}_disk_3_rspeed" - + # Start of var: state 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} @@ -537,16 +546,20 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/disk_3/state 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::astrium_chopper::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for astrium_chopper" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/disk_3 data "true" hsetprop ${scobj_hpath}/disk_3 klass "@none" hsetprop ${scobj_hpath}/disk_3 type "part" + # End of named group: disk_3 + # Start of named group: disk_4 hfactory ${scobj_hpath}/disk_4 plain spy none - + # Start of var: 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 @@ -558,7 +571,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_4/aphase type "part" hsetprop ${scobj_hpath}/disk_4/aphase nxalias "${name}_disk_4_aphase" - + # Start of var: 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 @@ -570,7 +583,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_4/aspeed type "part" hsetprop ${scobj_hpath}/disk_4/aspeed nxalias "${name}_disk_4_aspeed" - + # Start of var: frequency 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 @@ -582,7 +595,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_4/frequency type "part" hsetprop ${scobj_hpath}/disk_4/frequency nxalias "${name}_disk_4_frequency" - + # Start of var: master 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 @@ -594,7 +607,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_4/master type "part" hsetprop ${scobj_hpath}/disk_4/master nxalias "${name}_disk_4_master" - + # Start of var: rphase 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 @@ -606,7 +619,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_4/rphase type "part" hsetprop ${scobj_hpath}/disk_4/rphase nxalias "${name}_disk_4_rphase" - + # Start of var: rspeed 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 @@ -618,7 +631,7 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/disk_4/rspeed type "part" hsetprop ${scobj_hpath}/disk_4/rspeed nxalias "${name}_disk_4_rspeed" - + # Start of var: state 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} @@ -635,12 +648,15 @@ proc ::scobj::astrium_chopper::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/disk_4/state 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::astrium_chopper::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for astrium_chopper" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/disk_4 data "true" hsetprop ${scobj_hpath}/disk_4 klass "@none" hsetprop ${scobj_hpath}/disk_4 type "part" + # End of named group: disk_4 hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5 diff --git a/site_ansto/instrument/bilby/config/motors/shutters_sct.tcl b/site_ansto/instrument/bilby/config/motors/shutters_sct.tcl index c20d8cc4..09806f35 100644 --- a/site_ansto/instrument/bilby/config/motors/shutters_sct.tcl +++ b/site_ansto/instrument/bilby/config/motors/shutters_sct.tcl @@ -204,8 +204,9 @@ proc ::scobj::shutters::mkDriver { sct_controller name device_class simulation_f sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: fast_shutter hfactory ${scobj_hpath}/fast_shutter plain user text hsetprop ${scobj_hpath}/fast_shutter read ${ns}::getValue ${scobj_hpath} read_switch_pair {MG @IN[5], @IN[6]} hsetprop ${scobj_hpath}/fast_shutter read_switch_pair ${ns}::read_switch_pair ${scobj_hpath} @@ -221,11 +222,13 @@ proc ::scobj::shutters::mkDriver { sct_controller name device_class simulation_f if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/fast_shutter 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::shutters::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for shutters" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: rough_100 hfactory ${scobj_hpath}/rough_100 plain user text hsetprop ${scobj_hpath}/rough_100 read ${ns}::getValue ${scobj_hpath} read_switch_pair {MG @IN[15], @IN[16]} hsetprop ${scobj_hpath}/rough_100 read_switch_pair ${ns}::read_switch_pair ${scobj_hpath} @@ -246,11 +249,13 @@ proc ::scobj::shutters::mkDriver { sct_controller name device_class simulation_f if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/rough_100 1 ${sct_controller} write ${scobj_hpath}/rough_100 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::shutters::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for shutters" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: rough_40 hfactory ${scobj_hpath}/rough_40 plain user text hsetprop ${scobj_hpath}/rough_40 read ${ns}::getValue ${scobj_hpath} read_switch_pair {MG @IN[13], @IN[14]} hsetprop ${scobj_hpath}/rough_40 read_switch_pair ${ns}::read_switch_pair ${scobj_hpath} @@ -271,14 +276,17 @@ proc ::scobj::shutters::mkDriver { sct_controller name device_class simulation_f if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/rough_40 1 ${sct_controller} write ${scobj_hpath}/rough_40 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::shutters::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for shutters" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath} data "true" hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} nxsave "true" hsetprop ${scobj_hpath} type "part" + # End of unnamed group hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5 diff --git a/site_ansto/instrument/bilby/config/motors/tank_sct.tcl b/site_ansto/instrument/bilby/config/motors/tank_sct.tcl index 780e6930..eada4418 100644 --- a/site_ansto/instrument/bilby/config/motors/tank_sct.tcl +++ b/site_ansto/instrument/bilby/config/motors/tank_sct.tcl @@ -212,8 +212,9 @@ proc ::scobj::tank::mkDriver { sct_controller name device_class simulation_flag sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: pos hfactory ${scobj_hpath}/pos plain spy float hsetprop ${scobj_hpath}/pos read ${ns}::getValue ${scobj_hpath} read_pos {MG _TPH} hsetprop ${scobj_hpath}/pos read_pos ${ns}::read_pos ${scobj_hpath} @@ -229,17 +230,21 @@ proc ::scobj::tank::mkDriver { sct_controller name device_class simulation_flag if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/pos 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tank::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tank" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath} data "true" hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} type "part" + # End of unnamed group + # Start of named group: limits hfactory ${scobj_hpath}/limits plain spy none - + # Start of var: forward hfactory ${scobj_hpath}/limits/forward plain user text hsetprop ${scobj_hpath}/limits/forward read ${ns}::getValue ${scobj_hpath} read_switch {MG _LFH} hsetprop ${scobj_hpath}/limits/forward read_switch ${ns}::read_switch ${scobj_hpath} @@ -255,11 +260,13 @@ proc ::scobj::tank::mkDriver { sct_controller name device_class simulation_flag if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/limits/forward 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tank::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tank" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: reverse hfactory ${scobj_hpath}/limits/reverse plain user text hsetprop ${scobj_hpath}/limits/reverse read ${ns}::getValue ${scobj_hpath} read_switch {MG _LRH} hsetprop ${scobj_hpath}/limits/reverse read_switch ${ns}::read_switch ${scobj_hpath} @@ -275,16 +282,20 @@ proc ::scobj::tank::mkDriver { sct_controller name device_class simulation_flag if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/limits/reverse 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tank::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tank" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/limits data "true" hsetprop ${scobj_hpath}/limits klass "@none" hsetprop ${scobj_hpath}/limits type "part" + # End of named group: limits + # Start of named group: switches hfactory ${scobj_hpath}/switches plain spy none - + # Start of var: forward hfactory ${scobj_hpath}/switches/forward plain user text hsetprop ${scobj_hpath}/switches/forward read ${ns}::getValue ${scobj_hpath} read_switch {MG @IN[5]} hsetprop ${scobj_hpath}/switches/forward read_switch ${ns}::read_switch ${scobj_hpath} @@ -300,11 +311,13 @@ proc ::scobj::tank::mkDriver { sct_controller name device_class simulation_flag if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/switches/forward 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tank::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tank" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: reverse hfactory ${scobj_hpath}/switches/reverse plain user text hsetprop ${scobj_hpath}/switches/reverse read ${ns}::getValue ${scobj_hpath} read_switch {MG @IN[6]} hsetprop ${scobj_hpath}/switches/reverse read_switch ${ns}::read_switch ${scobj_hpath} @@ -320,12 +333,15 @@ proc ::scobj::tank::mkDriver { sct_controller name device_class simulation_flag if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/switches/reverse 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tank::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tank" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/switches data "true" hsetprop ${scobj_hpath}/switches klass "@none" hsetprop ${scobj_hpath}/switches type "part" + # End of named group: switches hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5 diff --git a/site_ansto/instrument/config/environment/hiden_xcs_sct.tcl b/site_ansto/instrument/config/environment/hiden_xcs_sct.tcl index f7e2a94d..d3ce66a7 100644 --- a/site_ansto/instrument/config/environment/hiden_xcs_sct.tcl +++ b/site_ansto/instrument/config/environment/hiden_xcs_sct.tcl @@ -86,7 +86,12 @@ proc ::scobj::hiden_xcs::checkstatus {tc_root} { # checkstatus hook code goes here if {[sct driving]} { set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" + if {[hpropexists [sct] simulated] && [sct simulated] == "true"} { + set pv "${sp}" + hset ${tc_root}/[sct driveable] ${sp} + } + set pv "[hval ${tc_root}/[sct driveable]]" + } if { abs(${pv} - ${sp}) <= [sct tolerance] } { if { [hpropexists [sct] settle_time] } { if { [hpropexists [sct] settle_time_start] } { @@ -756,8 +761,9 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: enabled hfactory ${scobj_hpath}/enabled plain user int hsetprop ${scobj_hpath}/enabled read ${ns}::getValue ${scobj_hpath} read_digital {?DOUT,2} hsetprop ${scobj_hpath}/enabled read_digital ${ns}::read_digital ${scobj_hpath} @@ -780,11 +786,13 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/enabled 10 ${sct_controller} write ${scobj_hpath}/enabled + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: flow1 hfactory ${scobj_hpath}/flow1 plain user float hsetprop ${scobj_hpath}/flow1 control false hsetprop ${scobj_hpath}/flow1 data false @@ -796,7 +804,7 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ hsetprop ${scobj_hpath}/flow1 type "part" hsetprop ${scobj_hpath}/flow1 nxalias "${name}_flow1" - + # Start of var: flow2 hfactory ${scobj_hpath}/flow2 plain user float hsetprop ${scobj_hpath}/flow2 control false hsetprop ${scobj_hpath}/flow2 data false @@ -808,7 +816,7 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ hsetprop ${scobj_hpath}/flow2 type "part" hsetprop ${scobj_hpath}/flow2 nxalias "${name}_flow2" - + # Start of var: flow3 hfactory ${scobj_hpath}/flow3 plain user float hsetprop ${scobj_hpath}/flow3 control false hsetprop ${scobj_hpath}/flow3 data false @@ -820,7 +828,7 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ hsetprop ${scobj_hpath}/flow3 type "part" hsetprop ${scobj_hpath}/flow3 nxalias "${name}_flow3" - + # Start of var: gas_factor hfactory ${scobj_hpath}/gas_factor plain user float hsetprop ${scobj_hpath}/gas_factor control true hsetprop ${scobj_hpath}/gas_factor data true @@ -833,7 +841,7 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ hsetprop ${scobj_hpath}/gas_factor type "part" hsetprop ${scobj_hpath}/gas_factor nxalias "${name}_gas_factor" - + # Start of var: temperature hfactory ${scobj_hpath}/temperature plain user float hsetprop ${scobj_hpath}/temperature control false hsetprop ${scobj_hpath}/temperature data false @@ -849,10 +857,12 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} nxsave "true" hsetprop ${scobj_hpath} type "part" + # End of unnamed group + # Start of named group: analog hfactory ${scobj_hpath}/analog plain spy none - + # Start of var: ansto_temp hfactory ${scobj_hpath}/analog/ansto_temp plain user float hsetprop ${scobj_hpath}/analog/ansto_temp read ${ns}::getValue ${scobj_hpath} read_sixteen {?AIN,12} hsetprop ${scobj_hpath}/analog/ansto_temp read_sixteen ${ns}::read_sixteen ${scobj_hpath} @@ -869,11 +879,13 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/analog/ansto_temp 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: pv1 hfactory ${scobj_hpath}/analog/pv1 plain user float hsetprop ${scobj_hpath}/analog/pv1 read ${ns}::getValue ${scobj_hpath} read_sixteen {?AIN,0} hsetprop ${scobj_hpath}/analog/pv1 read_sixteen ${ns}::read_sixteen ${scobj_hpath} @@ -890,11 +902,13 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/analog/pv1 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: pv2 hfactory ${scobj_hpath}/analog/pv2 plain user float hsetprop ${scobj_hpath}/analog/pv2 read ${ns}::getValue ${scobj_hpath} read_sixteen {?AIN,1} hsetprop ${scobj_hpath}/analog/pv2 read_sixteen ${ns}::read_sixteen ${scobj_hpath} @@ -911,11 +925,13 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/analog/pv2 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: pv3 hfactory ${scobj_hpath}/analog/pv3 plain user float hsetprop ${scobj_hpath}/analog/pv3 read ${ns}::getValue ${scobj_hpath} read_sixteen {?AIN,2} hsetprop ${scobj_hpath}/analog/pv3 read_sixteen ${ns}::read_sixteen ${scobj_hpath} @@ -932,11 +948,13 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/analog/pv3 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: rhsense hfactory ${scobj_hpath}/analog/rhsense plain user float hsetprop ${scobj_hpath}/analog/rhsense read ${ns}::getValue ${scobj_hpath} read_sixteen {?AIN,9} hsetprop ${scobj_hpath}/analog/rhsense read_sixteen ${ns}::read_sixteen ${scobj_hpath} @@ -953,11 +971,13 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/analog/rhsense 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: rhtemp hfactory ${scobj_hpath}/analog/rhtemp plain user float hsetprop ${scobj_hpath}/analog/rhtemp read ${ns}::getValue ${scobj_hpath} read_sixteen {?AIN,8} hsetprop ${scobj_hpath}/analog/rhtemp read_sixteen ${ns}::read_sixteen ${scobj_hpath} @@ -974,11 +994,13 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/analog/rhtemp 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sp1 hfactory ${scobj_hpath}/analog/sp1 plain user float hsetprop ${scobj_hpath}/analog/sp1 read ${ns}::getValue ${scobj_hpath} read_twelve {?AOUT,0} hsetprop ${scobj_hpath}/analog/sp1 read_twelve ${ns}::read_twelve ${scobj_hpath} @@ -999,11 +1021,13 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/analog/sp1 5 ${sct_controller} write ${scobj_hpath}/analog/sp1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sp2 hfactory ${scobj_hpath}/analog/sp2 plain user float hsetprop ${scobj_hpath}/analog/sp2 read ${ns}::getValue ${scobj_hpath} read_twelve {?AOUT,1} hsetprop ${scobj_hpath}/analog/sp2 read_twelve ${ns}::read_twelve ${scobj_hpath} @@ -1024,11 +1048,13 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/analog/sp2 5 ${sct_controller} write ${scobj_hpath}/analog/sp2 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sp3 hfactory ${scobj_hpath}/analog/sp3 plain user float hsetprop ${scobj_hpath}/analog/sp3 read ${ns}::getValue ${scobj_hpath} read_twelve {?AOUT,2} hsetprop ${scobj_hpath}/analog/sp3 read_twelve ${ns}::read_twelve ${scobj_hpath} @@ -1049,16 +1075,20 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/analog/sp3 5 ${sct_controller} write ${scobj_hpath}/analog/sp3 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/analog data "false" hsetprop ${scobj_hpath}/analog klass "@none" hsetprop ${scobj_hpath}/analog type "part" + # End of named group: analog + # Start of named group: flow hfactory ${scobj_hpath}/flow plain spy none - + # Start of var: sensor hfactory ${scobj_hpath}/flow/sensor plain user float hsetprop ${scobj_hpath}/flow/sensor read ${ns}::fetch_flow ${scobj_hpath} read_flow {None} hsetprop ${scobj_hpath}/flow/sensor read_flow ${ns}::read_flow ${scobj_hpath} @@ -1083,11 +1113,13 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/flow/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/flow/setpoint plain user float hsetprop ${scobj_hpath}/flow/setpoint write ${ns}::write_flow ${scobj_hpath} noResponse {} hsetprop ${scobj_hpath}/flow/setpoint noResponse ${ns}::noResponse ${scobj_hpath} @@ -1115,18 +1147,22 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/flow/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/flow data "true" hsetprop ${scobj_hpath}/flow klass "@none" hsetprop ${scobj_hpath}/flow nxsave "true" hsetprop ${scobj_hpath}/flow type "part" + # End of named group: flow ansto_makesctdrive ${name}_flow_setpoint ${scobj_hpath}/flow/setpoint ${scobj_hpath}/flow/sensor ${sct_controller} + # Start of named group: humidity hfactory ${scobj_hpath}/humidity plain spy none - + # Start of var: sensor hfactory ${scobj_hpath}/humidity/sensor plain user float hsetprop ${scobj_hpath}/humidity/sensor read ${ns}::getValue ${scobj_hpath} read_all_data {?ALL DATA} hsetprop ${scobj_hpath}/humidity/sensor read_all_data ${ns}::read_all_data ${scobj_hpath} @@ -1151,11 +1187,13 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/humidity/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/humidity/setpoint plain user float hsetprop ${scobj_hpath}/humidity/setpoint write ${ns}::write_humidity ${scobj_hpath} noResponse {} hsetprop ${scobj_hpath}/humidity/setpoint noResponse ${ns}::noResponse ${scobj_hpath} @@ -1183,13 +1221,16 @@ proc ::scobj::hiden_xcs::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/humidity/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::hiden_xcs::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for hiden_xcs" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/humidity data "true" hsetprop ${scobj_hpath}/humidity klass "@none" hsetprop ${scobj_hpath}/humidity nxsave "true" hsetprop ${scobj_hpath}/humidity type "part" + # End of named group: humidity ansto_makesctdrive ${name}_humidity_setpoint ${scobj_hpath}/humidity/setpoint ${scobj_hpath}/humidity/sensor ${sct_controller} hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true diff --git a/site_ansto/instrument/config/environment/huber_pilot_sct.tcl b/site_ansto/instrument/config/environment/huber_pilot_sct.tcl index 586ee0c0..e6be7f1a 100644 --- a/site_ansto/instrument/config/environment/huber_pilot_sct.tcl +++ b/site_ansto/instrument/config/environment/huber_pilot_sct.tcl @@ -89,7 +89,12 @@ proc ::scobj::huber_pilot::checkstatus {tc_root} { # checkstatus hook code goes here if {[sct driving]} { set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" + if {[hpropexists [sct] simulated] && [sct simulated] == "true"} { + set pv "${sp}" + hset ${tc_root}/[sct driveable] ${sp} + } + set pv "[hval ${tc_root}/[sct driveable]]" + } if { abs(${pv} - ${sp}) <= [sct tolerance] } { if { [hpropexists [sct] settle_time] } { if { [hpropexists [sct] settle_time_start] } { @@ -301,9 +306,10 @@ proc ::scobj::huber_pilot::mkDriver { sct_controller name device_class simulatio set scobj_hpath /sics/${name} + # Start of named group: Loop1 hfactory ${scobj_hpath}/Loop1 plain spy none - + # Start of var: sensor_int hfactory ${scobj_hpath}/Loop1/sensor_int plain user float hsetprop ${scobj_hpath}/Loop1/sensor_int read ${ns}::getValue ${scobj_hpath} rdTemp {01} hsetprop ${scobj_hpath}/Loop1/sensor_int rdTemp ${ns}::rdTemp ${scobj_hpath} @@ -321,11 +327,13 @@ proc ::scobj::huber_pilot::mkDriver { sct_controller name device_class simulatio if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/sensor_int 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::huber_pilot::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for huber_pilot" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Loop1/setpoint plain user float hsetprop ${scobj_hpath}/Loop1/setpoint read ${ns}::getValue ${scobj_hpath} rdTemp {00} hsetprop ${scobj_hpath}/Loop1/setpoint rdTemp ${ns}::rdTemp ${scobj_hpath} @@ -356,11 +364,13 @@ proc ::scobj::huber_pilot::mkDriver { sct_controller name device_class simulatio if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/setpoint 1 ${sct_controller} write ${scobj_hpath}/Loop1/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::huber_pilot::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for huber_pilot" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: vMaxSP hfactory ${scobj_hpath}/Loop1/vMaxSP plain user float hsetprop ${scobj_hpath}/Loop1/vMaxSP read ${ns}::getValue ${scobj_hpath} rdTemp {31} hsetprop ${scobj_hpath}/Loop1/vMaxSP rdTemp ${ns}::rdTemp ${scobj_hpath} @@ -376,11 +386,13 @@ proc ::scobj::huber_pilot::mkDriver { sct_controller name device_class simulatio if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/vMaxSP 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::huber_pilot::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for huber_pilot" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: vMinSP hfactory ${scobj_hpath}/Loop1/vMinSP plain user float hsetprop ${scobj_hpath}/Loop1/vMinSP read ${ns}::getValue ${scobj_hpath} rdTemp {30} hsetprop ${scobj_hpath}/Loop1/vMinSP rdTemp ${ns}::rdTemp ${scobj_hpath} @@ -396,11 +408,13 @@ proc ::scobj::huber_pilot::mkDriver { sct_controller name device_class simulatio if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/vMinSP 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::huber_pilot::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for huber_pilot" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: vTE hfactory ${scobj_hpath}/Loop1/vTE plain user float hsetprop ${scobj_hpath}/Loop1/vTE read ${ns}::getValue ${scobj_hpath} rdTemp {07} hsetprop ${scobj_hpath}/Loop1/vTE rdTemp ${ns}::rdTemp ${scobj_hpath} @@ -418,11 +432,13 @@ proc ::scobj::huber_pilot::mkDriver { sct_controller name device_class simulatio if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/vTE 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::huber_pilot::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for huber_pilot" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: vTmpActive hfactory ${scobj_hpath}/Loop1/vTmpActive plain user int hsetprop ${scobj_hpath}/Loop1/vTmpActive read ${ns}::getValue ${scobj_hpath} rdStatus {14} hsetprop ${scobj_hpath}/Loop1/vTmpActive rdStatus ${ns}::rdStatus ${scobj_hpath} @@ -438,11 +454,13 @@ proc ::scobj::huber_pilot::mkDriver { sct_controller name device_class simulatio if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/vTmpActive 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::huber_pilot::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for huber_pilot" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: vTmpMode hfactory ${scobj_hpath}/Loop1/vTmpMode plain user int hsetprop ${scobj_hpath}/Loop1/vTmpMode read ${ns}::getValue ${scobj_hpath} rdStatus {13} hsetprop ${scobj_hpath}/Loop1/vTmpMode rdStatus ${ns}::rdStatus ${scobj_hpath} @@ -458,12 +476,15 @@ proc ::scobj::huber_pilot::mkDriver { sct_controller name device_class simulatio if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/vTmpMode 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::huber_pilot::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for huber_pilot" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Loop1 data "true" hsetprop ${scobj_hpath}/Loop1 klass "@none" hsetprop ${scobj_hpath}/Loop1 type "part" + # End of named group: Loop1 ansto_makesctdrive ${name}_Loop1_setpoint ${scobj_hpath}/Loop1/setpoint ${scobj_hpath}/Loop1/sensor_int ${sct_controller} hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true diff --git a/site_ansto/instrument/config/environment/isotech_ps_sct.tcl b/site_ansto/instrument/config/environment/isotech_ps_sct.tcl index 79ccac81..a3a2c12e 100644 --- a/site_ansto/instrument/config/environment/isotech_ps_sct.tcl +++ b/site_ansto/instrument/config/environment/isotech_ps_sct.tcl @@ -251,8 +251,9 @@ proc ::scobj::isotech_ps::mkDriver { sct_controller name device_class simulation sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: amps hfactory ${scobj_hpath}/amps plain user float hsetprop ${scobj_hpath}/amps read ${ns}::getValue ${scobj_hpath} rdValue {A} hsetprop ${scobj_hpath}/amps rdValue ${ns}::rdValue ${scobj_hpath} @@ -269,11 +270,13 @@ proc ::scobj::isotech_ps::mkDriver { sct_controller name device_class simulation if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/amps 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::isotech_ps::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for isotech_ps" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: relay hfactory ${scobj_hpath}/relay plain user int hsetprop ${scobj_hpath}/relay read ${ns}::getValue ${scobj_hpath} read_relay {F} hsetprop ${scobj_hpath}/relay read_relay ${ns}::read_relay ${scobj_hpath} @@ -293,11 +296,13 @@ proc ::scobj::isotech_ps::mkDriver { sct_controller name device_class simulation if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/relay 5 ${sct_controller} write ${scobj_hpath}/relay + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::isotech_ps::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for isotech_ps" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: volts hfactory ${scobj_hpath}/volts plain user float hsetprop ${scobj_hpath}/volts read ${ns}::getValue ${scobj_hpath} rdValue {V} hsetprop ${scobj_hpath}/volts rdValue ${ns}::rdValue ${scobj_hpath} @@ -318,13 +323,16 @@ proc ::scobj::isotech_ps::mkDriver { sct_controller name device_class simulation if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/volts 5 ${sct_controller} write ${scobj_hpath}/volts + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::isotech_ps::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for isotech_ps" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath} data "true" hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} type "part" + # End of unnamed group hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5 diff --git a/site_ansto/instrument/config/environment/magneticField/tsi_smc_sct.tcl b/site_ansto/instrument/config/environment/magneticField/tsi_smc_sct.tcl index 58833475..60909683 100644 --- a/site_ansto/instrument/config/environment/magneticField/tsi_smc_sct.tcl +++ b/site_ansto/instrument/config/environment/magneticField/tsi_smc_sct.tcl @@ -86,7 +86,12 @@ proc ::scobj::tsi_smc::checkstatus {tc_root} { # checkstatus hook code goes here if {[sct driving]} { set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" + if {[hpropexists [sct] simulated] && [sct simulated] == "true"} { + set pv "${sp}" + hset ${tc_root}/[sct driveable] ${sp} + } + set pv "[hval ${tc_root}/[sct driveable]]" + } if { abs(${pv} - ${sp}) <= [sct tolerance] } { if { [hpropexists [sct] settle_time] } { if { [hpropexists [sct] settle_time_start] } { @@ -274,8 +279,9 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: setpoint hfactory ${scobj_hpath}/setpoint plain user float hsetprop ${scobj_hpath}/setpoint write ${ns}::setGauss ${scobj_hpath} noResponse {} hsetprop ${scobj_hpath}/setpoint noResponse ${ns}::noResponse ${scobj_hpath} @@ -304,11 +310,13 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tsi_smc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tsi_smc" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: value hfactory ${scobj_hpath}/value plain user float hsetprop ${scobj_hpath}/value control true hsetprop ${scobj_hpath}/value data true @@ -327,11 +335,13 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl hsetprop ${scobj_hpath} data "true" hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} type "part" + # End of unnamed group ansto_makesctdrive ${name}_setpoint ${scobj_hpath}/setpoint ${scobj_hpath}/value ${sct_controller} + # Start of named group: a hfactory ${scobj_hpath}/a plain spy none - + # Start of var: G hfactory ${scobj_hpath}/a/G plain user text hsetprop ${scobj_hpath}/a/G read ${ns}::getValue ${scobj_hpath} rdValue {G} hsetprop ${scobj_hpath}/a/G rdValue ${ns}::rdValue ${scobj_hpath} @@ -347,11 +357,13 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/a/G 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tsi_smc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tsi_smc" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: J hfactory ${scobj_hpath}/a/J plain user text hsetprop ${scobj_hpath}/a/J read ${ns}::getValue ${scobj_hpath} rdValue {J} hsetprop ${scobj_hpath}/a/J rdValue ${ns}::rdValue ${scobj_hpath} @@ -366,11 +378,13 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/a/J 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tsi_smc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tsi_smc" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: K hfactory ${scobj_hpath}/a/K plain user text hsetprop ${scobj_hpath}/a/K read ${ns}::getValue ${scobj_hpath} rdValue {K} hsetprop ${scobj_hpath}/a/K rdValue ${ns}::rdValue ${scobj_hpath} @@ -385,11 +399,13 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/a/K 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tsi_smc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tsi_smc" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: N hfactory ${scobj_hpath}/a/N plain user text hsetprop ${scobj_hpath}/a/N read ${ns}::getValue ${scobj_hpath} rdValue {N} hsetprop ${scobj_hpath}/a/N rdValue ${ns}::rdValue ${scobj_hpath} @@ -404,11 +420,13 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/a/N 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tsi_smc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tsi_smc" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: O hfactory ${scobj_hpath}/a/O plain user text hsetprop ${scobj_hpath}/a/O read ${ns}::getValue ${scobj_hpath} rdValue {O} hsetprop ${scobj_hpath}/a/O rdValue ${ns}::rdValue ${scobj_hpath} @@ -423,11 +441,13 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/a/O 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tsi_smc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tsi_smc" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: S hfactory ${scobj_hpath}/a/S plain user text hsetprop ${scobj_hpath}/a/S read ${ns}::getValue ${scobj_hpath} rdValue {S} hsetprop ${scobj_hpath}/a/S rdValue ${ns}::rdValue ${scobj_hpath} @@ -442,16 +462,20 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/a/S 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tsi_smc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tsi_smc" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/a data "false" hsetprop ${scobj_hpath}/a klass "@none" hsetprop ${scobj_hpath}/a type "part" + # End of named group: a + # Start of named group: b hfactory ${scobj_hpath}/b plain spy none - + # Start of var: Lower hfactory ${scobj_hpath}/b/Lower plain user float hsetprop ${scobj_hpath}/b/Lower write ${ns}::setValue ${scobj_hpath} noResponse {L} hsetprop ${scobj_hpath}/b/Lower noResponse ${ns}::noResponse ${scobj_hpath} @@ -471,11 +495,13 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/b/Lower + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tsi_smc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tsi_smc" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: Pause hfactory ${scobj_hpath}/b/Pause plain user int hsetprop ${scobj_hpath}/b/Pause write ${ns}::setValue ${scobj_hpath} noResponse {P} hsetprop ${scobj_hpath}/b/Pause noResponse ${ns}::noResponse ${scobj_hpath} @@ -495,11 +521,13 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/b/Pause + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tsi_smc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tsi_smc" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: Ramp hfactory ${scobj_hpath}/b/Ramp plain user int hsetprop ${scobj_hpath}/b/Ramp write ${ns}::setValue ${scobj_hpath} noResponse {R} hsetprop ${scobj_hpath}/b/Ramp noResponse ${ns}::noResponse ${scobj_hpath} @@ -519,11 +547,13 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/b/Ramp + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tsi_smc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tsi_smc" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: Rate hfactory ${scobj_hpath}/b/Rate plain user float hsetprop ${scobj_hpath}/b/Rate write ${ns}::setValue ${scobj_hpath} noResponse {A} hsetprop ${scobj_hpath}/b/Rate noResponse ${ns}::noResponse ${scobj_hpath} @@ -540,12 +570,15 @@ proc ::scobj::tsi_smc::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/b/Rate + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::tsi_smc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for tsi_smc" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/b data "true" hsetprop ${scobj_hpath}/b klass "@none" hsetprop ${scobj_hpath}/b type "part" + # End of named group: b hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5 diff --git a/site_ansto/instrument/config/environment/nhq_200_sct.tcl b/site_ansto/instrument/config/environment/nhq_200_sct.tcl index 6dbddec8..f9de7e1c 100644 --- a/site_ansto/instrument/config/environment/nhq_200_sct.tcl +++ b/site_ansto/instrument/config/environment/nhq_200_sct.tcl @@ -86,7 +86,12 @@ proc ::scobj::nhq_200::checkstatus {tc_root} { # checkstatus hook code goes here if {[sct driving]} { set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" + if {[hpropexists [sct] simulated] && [sct simulated] == "true"} { + set pv "${sp}" + hset ${tc_root}/[sct driveable] ${sp} + } + set pv "[hval ${tc_root}/[sct driveable]]" + } if { abs(${pv} - ${sp}) <= [sct tolerance] } { if { [hpropexists [sct] settle_time] } { if { [hpropexists [sct] settle_time_start] } { @@ -280,8 +285,9 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: break hfactory ${scobj_hpath}/break plain user int hsetprop ${scobj_hpath}/break read ${ns}::getValue ${scobj_hpath} rdValue {W} hsetprop ${scobj_hpath}/break rdValue ${ns}::rdValue ${scobj_hpath} @@ -297,11 +303,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/break 10 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: id hfactory ${scobj_hpath}/id plain user text hsetprop ${scobj_hpath}/id read ${ns}::getValue ${scobj_hpath} rdValue {#} hsetprop ${scobj_hpath}/id rdValue ${ns}::rdValue ${scobj_hpath} @@ -317,17 +325,21 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/id 10 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath} data "true" hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} type "part" + # End of unnamed group + # Start of named group: ch1 hfactory ${scobj_hpath}/ch1 plain spy none - + # Start of var: auto_start hfactory ${scobj_hpath}/ch1/auto_start plain user int hsetprop ${scobj_hpath}/ch1/auto_start read ${ns}::getValue ${scobj_hpath} rdValue {A1} hsetprop ${scobj_hpath}/ch1/auto_start rdValue ${ns}::rdValue ${scobj_hpath} @@ -347,11 +359,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch1/auto_start 5 ${sct_controller} write ${scobj_hpath}/ch1/auto_start + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: current hfactory ${scobj_hpath}/ch1/current plain user text hsetprop ${scobj_hpath}/ch1/current read ${ns}::getValue ${scobj_hpath} rdCurrent {I1} hsetprop ${scobj_hpath}/ch1/current rdCurrent ${ns}::rdCurrent ${scobj_hpath} @@ -367,11 +381,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch1/current 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: go hfactory ${scobj_hpath}/ch1/go plain user int hsetprop ${scobj_hpath}/ch1/go write ${ns}::setValue ${scobj_hpath} noResponse {G1} hsetprop ${scobj_hpath}/ch1/go noResponse ${ns}::noResponse ${scobj_hpath} @@ -388,11 +404,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/ch1/go + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: i_lim hfactory ${scobj_hpath}/ch1/i_lim plain user int hsetprop ${scobj_hpath}/ch1/i_lim read ${ns}::getValue ${scobj_hpath} rdValue {N1} hsetprop ${scobj_hpath}/ch1/i_lim rdValue ${ns}::rdValue ${scobj_hpath} @@ -408,11 +426,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch1/i_lim 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: i_trip hfactory ${scobj_hpath}/ch1/i_trip plain user int hsetprop ${scobj_hpath}/ch1/i_trip read ${ns}::getValue ${scobj_hpath} rdValue {L1} hsetprop ${scobj_hpath}/ch1/i_trip rdValue ${ns}::rdValue ${scobj_hpath} @@ -432,11 +452,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch1/i_trip 5 ${sct_controller} write ${scobj_hpath}/ch1/i_trip + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: module hfactory ${scobj_hpath}/ch1/module plain user int hsetprop ${scobj_hpath}/ch1/module read ${ns}::getValue ${scobj_hpath} rdValue {T1} hsetprop ${scobj_hpath}/ch1/module rdValue ${ns}::rdValue ${scobj_hpath} @@ -452,11 +474,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch1/module 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: status hfactory ${scobj_hpath}/ch1/status plain user text hsetprop ${scobj_hpath}/ch1/status read ${ns}::getValue ${scobj_hpath} rdValue {S1} hsetprop ${scobj_hpath}/ch1/status rdValue ${ns}::rdValue ${scobj_hpath} @@ -472,11 +496,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch1/status 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: v_lim hfactory ${scobj_hpath}/ch1/v_lim plain user int hsetprop ${scobj_hpath}/ch1/v_lim read ${ns}::getValue ${scobj_hpath} rdValue {M1} hsetprop ${scobj_hpath}/ch1/v_lim rdValue ${ns}::rdValue ${scobj_hpath} @@ -492,11 +518,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch1/v_lim 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: v_ramp hfactory ${scobj_hpath}/ch1/v_ramp plain user int hsetprop ${scobj_hpath}/ch1/v_ramp read ${ns}::getValue ${scobj_hpath} rdValue {V1} hsetprop ${scobj_hpath}/ch1/v_ramp rdValue ${ns}::rdValue ${scobj_hpath} @@ -516,11 +544,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch1/v_ramp 5 ${sct_controller} write ${scobj_hpath}/ch1/v_ramp + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: v_sp hfactory ${scobj_hpath}/ch1/v_sp plain user int hsetprop ${scobj_hpath}/ch1/v_sp read ${ns}::getValue ${scobj_hpath} rdValue {D1} hsetprop ${scobj_hpath}/ch1/v_sp rdValue ${ns}::rdValue ${scobj_hpath} @@ -549,11 +579,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch1/v_sp 5 ${sct_controller} write ${scobj_hpath}/ch1/v_sp + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: voltage hfactory ${scobj_hpath}/ch1/voltage plain user int hsetprop ${scobj_hpath}/ch1/voltage read ${ns}::getValue ${scobj_hpath} rdVoltage {U1} hsetprop ${scobj_hpath}/ch1/voltage rdVoltage ${ns}::rdVoltage ${scobj_hpath} @@ -569,17 +601,21 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch1/voltage 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/ch1 data "true" hsetprop ${scobj_hpath}/ch1 klass "@none" hsetprop ${scobj_hpath}/ch1 type "part" + # End of named group: ch1 ansto_makesctdrive ${name}_ch1_v_sp ${scobj_hpath}/ch1/v_sp ${scobj_hpath}/ch1/voltage ${sct_controller} + # Start of named group: ch2 hfactory ${scobj_hpath}/ch2 plain spy none - + # Start of var: auto_start hfactory ${scobj_hpath}/ch2/auto_start plain user int hsetprop ${scobj_hpath}/ch2/auto_start read ${ns}::getValue ${scobj_hpath} rdValue {A2} hsetprop ${scobj_hpath}/ch2/auto_start rdValue ${ns}::rdValue ${scobj_hpath} @@ -599,11 +635,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch2/auto_start 5 ${sct_controller} write ${scobj_hpath}/ch2/auto_start + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: current hfactory ${scobj_hpath}/ch2/current plain user text hsetprop ${scobj_hpath}/ch2/current read ${ns}::getValue ${scobj_hpath} rdCurrent {I2} hsetprop ${scobj_hpath}/ch2/current rdCurrent ${ns}::rdCurrent ${scobj_hpath} @@ -619,11 +657,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch2/current 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: go hfactory ${scobj_hpath}/ch2/go plain user int hsetprop ${scobj_hpath}/ch2/go write ${ns}::setValue ${scobj_hpath} noResponse {G2} hsetprop ${scobj_hpath}/ch2/go noResponse ${ns}::noResponse ${scobj_hpath} @@ -640,11 +680,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/ch2/go + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: i_lim hfactory ${scobj_hpath}/ch2/i_lim plain user int hsetprop ${scobj_hpath}/ch2/i_lim read ${ns}::getValue ${scobj_hpath} rdValue {N2} hsetprop ${scobj_hpath}/ch2/i_lim rdValue ${ns}::rdValue ${scobj_hpath} @@ -660,11 +702,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch2/i_lim 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: i_trip hfactory ${scobj_hpath}/ch2/i_trip plain user int hsetprop ${scobj_hpath}/ch2/i_trip read ${ns}::getValue ${scobj_hpath} rdValue {L2} hsetprop ${scobj_hpath}/ch2/i_trip rdValue ${ns}::rdValue ${scobj_hpath} @@ -684,11 +728,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch2/i_trip 5 ${sct_controller} write ${scobj_hpath}/ch2/i_trip + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: module hfactory ${scobj_hpath}/ch2/module plain user int hsetprop ${scobj_hpath}/ch2/module read ${ns}::getValue ${scobj_hpath} rdValue {T2} hsetprop ${scobj_hpath}/ch2/module rdValue ${ns}::rdValue ${scobj_hpath} @@ -704,11 +750,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch2/module 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: status hfactory ${scobj_hpath}/ch2/status plain user text hsetprop ${scobj_hpath}/ch2/status read ${ns}::getValue ${scobj_hpath} rdValue {S2} hsetprop ${scobj_hpath}/ch2/status rdValue ${ns}::rdValue ${scobj_hpath} @@ -724,11 +772,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch2/status 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: v_lim hfactory ${scobj_hpath}/ch2/v_lim plain user int hsetprop ${scobj_hpath}/ch2/v_lim read ${ns}::getValue ${scobj_hpath} rdValue {M2} hsetprop ${scobj_hpath}/ch2/v_lim rdValue ${ns}::rdValue ${scobj_hpath} @@ -744,11 +794,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch2/v_lim 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: v_ramp hfactory ${scobj_hpath}/ch2/v_ramp plain user int hsetprop ${scobj_hpath}/ch2/v_ramp read ${ns}::getValue ${scobj_hpath} rdValue {V2} hsetprop ${scobj_hpath}/ch2/v_ramp rdValue ${ns}::rdValue ${scobj_hpath} @@ -768,11 +820,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch2/v_ramp 5 ${sct_controller} write ${scobj_hpath}/ch2/v_ramp + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: v_sp hfactory ${scobj_hpath}/ch2/v_sp plain user int hsetprop ${scobj_hpath}/ch2/v_sp read ${ns}::getValue ${scobj_hpath} rdValue {D2} hsetprop ${scobj_hpath}/ch2/v_sp rdValue ${ns}::rdValue ${scobj_hpath} @@ -801,11 +855,13 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch2/v_sp 5 ${sct_controller} write ${scobj_hpath}/ch2/v_sp + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: voltage hfactory ${scobj_hpath}/ch2/voltage plain user int hsetprop ${scobj_hpath}/ch2/voltage read ${ns}::getValue ${scobj_hpath} rdVoltage {U2} hsetprop ${scobj_hpath}/ch2/voltage rdVoltage ${ns}::rdVoltage ${scobj_hpath} @@ -821,12 +877,15 @@ proc ::scobj::nhq_200::mkDriver { sct_controller name device_class simulation_fl if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ch2/voltage 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::nhq_200::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for nhq_200" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/ch2 data "true" hsetprop ${scobj_hpath}/ch2 klass "@none" hsetprop ${scobj_hpath}/ch2 type "part" + # End of named group: ch2 ansto_makesctdrive ${name}_ch2_v_sp ${scobj_hpath}/ch2/v_sp ${scobj_hpath}/ch2/voltage ${sct_controller} hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true diff --git a/site_ansto/instrument/config/environment/omron_hldc_sct.tcl b/site_ansto/instrument/config/environment/omron_hldc_sct.tcl index a0bfc252..b7918b58 100644 --- a/site_ansto/instrument/config/environment/omron_hldc_sct.tcl +++ b/site_ansto/instrument/config/environment/omron_hldc_sct.tcl @@ -201,8 +201,9 @@ proc ::scobj::omron_hldc::mkDriver { sct_controller name device_class simulation sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: distance hfactory ${scobj_hpath}/distance plain user float hsetprop ${scobj_hpath}/distance read ${ns}::getValue ${scobj_hpath} read_mm {0201C02030008001} hsetprop ${scobj_hpath}/distance read_mm ${ns}::read_mm ${scobj_hpath} @@ -218,11 +219,13 @@ proc ::scobj::omron_hldc::mkDriver { sct_controller name device_class simulation if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/distance 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::omron_hldc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for omron_hldc" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: id hfactory ${scobj_hpath}/id plain user text hsetprop ${scobj_hpath}/id read ${ns}::getValue ${scobj_hpath} read_id {0501} hsetprop ${scobj_hpath}/id read_id ${ns}::read_id ${scobj_hpath} @@ -238,13 +241,16 @@ proc ::scobj::omron_hldc::mkDriver { sct_controller name device_class simulation if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/id 10 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::omron_hldc::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for omron_hldc" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath} data "true" hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} type "part" + # End of unnamed group hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5 diff --git a/site_ansto/instrument/config/environment/temperature/julabo_lh45_gen_sct.tcl b/site_ansto/instrument/config/environment/temperature/julabo_lh45_gen_sct.tcl index 244c838c..4f58ce86 100644 --- a/site_ansto/instrument/config/environment/temperature/julabo_lh45_gen_sct.tcl +++ b/site_ansto/instrument/config/environment/temperature/julabo_lh45_gen_sct.tcl @@ -86,7 +86,12 @@ proc ::scobj::julabo_lh45_gen::checkstatus {tc_root} { # checkstatus hook code goes here if {[sct driving]} { set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" + if {[hpropexists [sct] simulated] && [sct simulated] == "true"} { + set pv "${sp}" + hset ${tc_root}/[sct driveable] ${sp} + } + set pv "[hval ${tc_root}/[sct driveable]]" + } if { abs(${pv} - ${sp}) <= [sct tolerance] } { if { [hpropexists [sct] settle_time] } { if { [hpropexists [sct] settle_time_start] } { @@ -375,8 +380,9 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: heating_power_percent hfactory ${scobj_hpath}/heating_power_percent plain user float hsetprop ${scobj_hpath}/heating_power_percent read ${ns}::getValue ${scobj_hpath} rdValue {in_pv_01} hsetprop ${scobj_hpath}/heating_power_percent rdValue ${ns}::rdValue ${scobj_hpath} @@ -392,11 +398,13 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/heating_power_percent 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::julabo_lh45_gen::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for julabo_lh45_gen" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: lh45_lasterror hfactory ${scobj_hpath}/lh45_lasterror plain user text hsetprop ${scobj_hpath}/lh45_lasterror control true hsetprop ${scobj_hpath}/lh45_lasterror data true @@ -408,7 +416,7 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/lh45_lasterror type "part" hsetprop ${scobj_hpath}/lh45_lasterror nxalias "${name}_lh45_lasterror" - + # Start of var: lh45_state hfactory ${scobj_hpath}/lh45_state plain user text hsetprop ${scobj_hpath}/lh45_state read ${ns}::getState ${scobj_hpath} rdState {status} hsetprop ${scobj_hpath}/lh45_state rdState ${ns}::rdState ${scobj_hpath} @@ -424,11 +432,13 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/lh45_state 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::julabo_lh45_gen::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for julabo_lh45_gen" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: overtemp_warnlimit hfactory ${scobj_hpath}/overtemp_warnlimit plain user float hsetprop ${scobj_hpath}/overtemp_warnlimit read ${ns}::getValue ${scobj_hpath} rdValue {in_sp_03} hsetprop ${scobj_hpath}/overtemp_warnlimit rdValue ${ns}::rdValue ${scobj_hpath} @@ -444,11 +454,13 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/overtemp_warnlimit 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::julabo_lh45_gen::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for julabo_lh45_gen" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: remote_ctrl hfactory ${scobj_hpath}/remote_ctrl plain spy text hsetprop ${scobj_hpath}/remote_ctrl control true hsetprop ${scobj_hpath}/remote_ctrl data true @@ -460,7 +472,7 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/remote_ctrl type "part" hsetprop ${scobj_hpath}/remote_ctrl nxalias "${name}_remote_ctrl" - + # Start of var: setpoint hfactory ${scobj_hpath}/setpoint plain user float hsetprop ${scobj_hpath}/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {in_sp_00} hsetprop ${scobj_hpath}/setpoint rdValue ${ns}::rdValue ${scobj_hpath} @@ -491,11 +503,13 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/setpoint 1 ${sct_controller} write ${scobj_hpath}/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::julabo_lh45_gen::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for julabo_lh45_gen" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: subtemp_warnlimit hfactory ${scobj_hpath}/subtemp_warnlimit plain user float hsetprop ${scobj_hpath}/subtemp_warnlimit read ${ns}::getValue ${scobj_hpath} rdValue {in_sp_04} hsetprop ${scobj_hpath}/subtemp_warnlimit rdValue ${ns}::rdValue ${scobj_hpath} @@ -511,18 +525,22 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/subtemp_warnlimit 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::julabo_lh45_gen::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for julabo_lh45_gen" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath} data "true" hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} type "part" + # End of unnamed group ansto_makesctdrive ${name}_setpoint ${scobj_hpath}/setpoint ${scobj_hpath}/sensor/value ${sct_controller} + # Start of named group: mode hfactory ${scobj_hpath}/mode plain spy none - + # Start of var: ext_else_bath hfactory ${scobj_hpath}/mode/ext_else_bath plain user int hsetprop ${scobj_hpath}/mode/ext_else_bath read ${ns}::getValue ${scobj_hpath} rdValue {in_mode_04} hsetprop ${scobj_hpath}/mode/ext_else_bath rdValue ${ns}::rdValue ${scobj_hpath} @@ -542,11 +560,13 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/mode/ext_else_bath 1 ${sct_controller} write ${scobj_hpath}/mode/ext_else_bath + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::julabo_lh45_gen::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for julabo_lh45_gen" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: on_else_off hfactory ${scobj_hpath}/mode/on_else_off plain user int hsetprop ${scobj_hpath}/mode/on_else_off read ${ns}::getValue ${scobj_hpath} rdValue {in_mode_05} hsetprop ${scobj_hpath}/mode/on_else_off rdValue ${ns}::rdValue ${scobj_hpath} @@ -566,16 +586,20 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/mode/on_else_off 1 ${sct_controller} write ${scobj_hpath}/mode/on_else_off + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::julabo_lh45_gen::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for julabo_lh45_gen" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/mode data "true" hsetprop ${scobj_hpath}/mode klass "@none" hsetprop ${scobj_hpath}/mode type "part" + # End of named group: mode + # Start of named group: sensor hfactory ${scobj_hpath}/sensor plain spy none - + # Start of var: bathtemp hfactory ${scobj_hpath}/sensor/bathtemp plain internal float hsetprop ${scobj_hpath}/sensor/bathtemp read ${ns}::getValue ${scobj_hpath} rdSensor {in_pv_00} hsetprop ${scobj_hpath}/sensor/bathtemp rdSensor ${ns}::rdSensor ${scobj_hpath} @@ -593,11 +617,13 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/sensor/bathtemp 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::julabo_lh45_gen::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for julabo_lh45_gen" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: end_temperature hfactory ${scobj_hpath}/sensor/end_temperature plain internal float hsetprop ${scobj_hpath}/sensor/end_temperature control true hsetprop ${scobj_hpath}/sensor/end_temperature data true @@ -610,7 +636,7 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/sensor/end_temperature units "C" hsetprop ${scobj_hpath}/sensor/end_temperature nxalias "${name}_sensor_end_temperature" - + # Start of var: external hfactory ${scobj_hpath}/sensor/external plain internal float hsetprop ${scobj_hpath}/sensor/external read ${ns}::getValue ${scobj_hpath} rdSensor {in_pv_02} hsetprop ${scobj_hpath}/sensor/external rdSensor ${ns}::rdSensor ${scobj_hpath} @@ -628,11 +654,13 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/sensor/external 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::julabo_lh45_gen::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for julabo_lh45_gen" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: start_temperature hfactory ${scobj_hpath}/sensor/start_temperature plain internal float hsetprop ${scobj_hpath}/sensor/start_temperature control true hsetprop ${scobj_hpath}/sensor/start_temperature data true @@ -645,7 +673,7 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/sensor/start_temperature units "C" hsetprop ${scobj_hpath}/sensor/start_temperature nxalias "${name}_sensor_start_temperature" - + # Start of var: value hfactory ${scobj_hpath}/sensor/value plain internal float hsetprop ${scobj_hpath}/sensor/value control true hsetprop ${scobj_hpath}/sensor/value data true @@ -662,6 +690,7 @@ proc ::scobj::julabo_lh45_gen::mkDriver { sct_controller name device_class simul hsetprop ${scobj_hpath}/sensor data "true" hsetprop ${scobj_hpath}/sensor klass "@none" hsetprop ${scobj_hpath}/sensor type "part" + # End of named group: sensor hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5 diff --git a/site_ansto/instrument/config/environment/temperature/lakeshore_218_sct.tcl b/site_ansto/instrument/config/environment/temperature/lakeshore_218_sct.tcl index d59f0e33..1ac7cf52 100644 --- a/site_ansto/instrument/config/environment/temperature/lakeshore_218_sct.tcl +++ b/site_ansto/instrument/config/environment/temperature/lakeshore_218_sct.tcl @@ -168,8 +168,9 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: krdg hfactory ${scobj_hpath}/krdg plain user text hsetprop ${scobj_hpath}/krdg read ${ns}::getValue ${scobj_hpath} rdValue {KRDG? 0} hsetprop ${scobj_hpath}/krdg rdValue ${ns}::rdValue ${scobj_hpath} @@ -185,17 +186,21 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/krdg 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::lakeshore_218::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for lakeshore_218" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath} data "false" hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} type "part" + # End of unnamed group + # Start of named group: sensor hfactory ${scobj_hpath}/sensor plain spy none - + # Start of var: ch1 hfactory ${scobj_hpath}/sensor/ch1 plain user float hsetprop ${scobj_hpath}/sensor/ch1 read ${ns}::getTemp ${scobj_hpath} rdValue {0} hsetprop ${scobj_hpath}/sensor/ch1 rdValue ${ns}::rdValue ${scobj_hpath} @@ -211,11 +216,13 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/sensor/ch1 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::lakeshore_218::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for lakeshore_218" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: ch2 hfactory ${scobj_hpath}/sensor/ch2 plain user float hsetprop ${scobj_hpath}/sensor/ch2 read ${ns}::getTemp ${scobj_hpath} rdValue {1} hsetprop ${scobj_hpath}/sensor/ch2 rdValue ${ns}::rdValue ${scobj_hpath} @@ -231,11 +238,13 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/sensor/ch2 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::lakeshore_218::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for lakeshore_218" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: ch3 hfactory ${scobj_hpath}/sensor/ch3 plain user float hsetprop ${scobj_hpath}/sensor/ch3 read ${ns}::getTemp ${scobj_hpath} rdValue {2} hsetprop ${scobj_hpath}/sensor/ch3 rdValue ${ns}::rdValue ${scobj_hpath} @@ -251,11 +260,13 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/sensor/ch3 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::lakeshore_218::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for lakeshore_218" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: ch4 hfactory ${scobj_hpath}/sensor/ch4 plain user float hsetprop ${scobj_hpath}/sensor/ch4 read ${ns}::getTemp ${scobj_hpath} rdValue {3} hsetprop ${scobj_hpath}/sensor/ch4 rdValue ${ns}::rdValue ${scobj_hpath} @@ -271,11 +282,13 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/sensor/ch4 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::lakeshore_218::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for lakeshore_218" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: ch5 hfactory ${scobj_hpath}/sensor/ch5 plain user float hsetprop ${scobj_hpath}/sensor/ch5 read ${ns}::getTemp ${scobj_hpath} rdValue {4} hsetprop ${scobj_hpath}/sensor/ch5 rdValue ${ns}::rdValue ${scobj_hpath} @@ -291,11 +304,13 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/sensor/ch5 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::lakeshore_218::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for lakeshore_218" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: ch6 hfactory ${scobj_hpath}/sensor/ch6 plain user float hsetprop ${scobj_hpath}/sensor/ch6 read ${ns}::getTemp ${scobj_hpath} rdValue {5} hsetprop ${scobj_hpath}/sensor/ch6 rdValue ${ns}::rdValue ${scobj_hpath} @@ -311,11 +326,13 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/sensor/ch6 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::lakeshore_218::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for lakeshore_218" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: ch7 hfactory ${scobj_hpath}/sensor/ch7 plain user float hsetprop ${scobj_hpath}/sensor/ch7 read ${ns}::getTemp ${scobj_hpath} rdValue {6} hsetprop ${scobj_hpath}/sensor/ch7 rdValue ${ns}::rdValue ${scobj_hpath} @@ -331,11 +348,13 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/sensor/ch7 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::lakeshore_218::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for lakeshore_218" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: ch8 hfactory ${scobj_hpath}/sensor/ch8 plain user float hsetprop ${scobj_hpath}/sensor/ch8 read ${ns}::getTemp ${scobj_hpath} rdValue {7} hsetprop ${scobj_hpath}/sensor/ch8 rdValue ${ns}::rdValue ${scobj_hpath} @@ -351,12 +370,15 @@ proc ::scobj::lakeshore_218::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/sensor/ch8 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::lakeshore_218::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for lakeshore_218" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/sensor data "true" hsetprop ${scobj_hpath}/sensor klass "@none" hsetprop ${scobj_hpath}/sensor type "part" + # End of named group: sensor hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5 diff --git a/site_ansto/instrument/config/environment/temperature/mercury_base_sct.tcl b/site_ansto/instrument/config/environment/temperature/mercury_base_sct.tcl index 0c842081..7861b741 100644 --- a/site_ansto/instrument/config/environment/temperature/mercury_base_sct.tcl +++ b/site_ansto/instrument/config/environment/temperature/mercury_base_sct.tcl @@ -86,7 +86,12 @@ proc ::scobj::mercury_base::checkstatus {tc_root} { # checkstatus hook code goes here if {[sct driving]} { set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" + if {[hpropexists [sct] simulated] && [sct simulated] == "true"} { + set pv "${sp}" + hset ${tc_root}/[sct driveable] ${sp} + } + set pv "[hval ${tc_root}/[sct driveable]]" + } if { abs(${pv} - ${sp}) <= [sct tolerance] } { if { [hpropexists [sct] settle_time] } { if { [hpropexists [sct] settle_time_start] } { @@ -278,9 +283,10 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati set scobj_hpath /sics/${name} + # Start of named group: Loop1 hfactory ${scobj_hpath}/Loop1 plain spy none - + # Start of var: nick hfactory ${scobj_hpath}/Loop1/nick plain user text hsetprop ${scobj_hpath}/Loop1/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:MB1.T1:TEMP:NICK} hsetprop ${scobj_hpath}/Loop1/nick rdText ${ns}::rdText ${scobj_hpath} @@ -296,11 +302,13 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/nick 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: power hfactory ${scobj_hpath}/Loop1/power plain user float hsetprop ${scobj_hpath}/Loop1/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:MB0.H1:HTR:SIG:POWR} hsetprop ${scobj_hpath}/Loop1/power rdValue ${ns}::rdValue ${scobj_hpath} @@ -316,11 +324,13 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/power 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sensor hfactory ${scobj_hpath}/Loop1/sensor plain user float hsetprop ${scobj_hpath}/Loop1/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:MB1.T1:TEMP:SIG:TEMP} hsetprop ${scobj_hpath}/Loop1/sensor rdValue ${ns}::rdValue ${scobj_hpath} @@ -338,11 +348,13 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Loop1/setpoint plain user float hsetprop ${scobj_hpath}/Loop1/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:MB1.T1:TEMP:LOOP:TSET} hsetprop ${scobj_hpath}/Loop1/setpoint rdValue ${ns}::rdValue ${scobj_hpath} @@ -373,17 +385,21 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/setpoint 5 ${sct_controller} write ${scobj_hpath}/Loop1/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Loop1 data "true" hsetprop ${scobj_hpath}/Loop1 klass "@none" hsetprop ${scobj_hpath}/Loop1 type "part" + # End of named group: Loop1 ansto_makesctdrive ${name}_Loop1_setpoint ${scobj_hpath}/Loop1/setpoint ${scobj_hpath}/Loop1/sensor ${sct_controller} + # Start of named group: Loop2 hfactory ${scobj_hpath}/Loop2 plain spy none - + # Start of var: nick hfactory ${scobj_hpath}/Loop2/nick plain user text hsetprop ${scobj_hpath}/Loop2/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:DB6.T1:TEMP:NICK} hsetprop ${scobj_hpath}/Loop2/nick rdText ${ns}::rdText ${scobj_hpath} @@ -399,11 +415,13 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop2/nick 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: power hfactory ${scobj_hpath}/Loop2/power plain user float hsetprop ${scobj_hpath}/Loop2/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB1.H1:HTR:SIG:POWR} hsetprop ${scobj_hpath}/Loop2/power rdValue ${ns}::rdValue ${scobj_hpath} @@ -419,11 +437,13 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop2/power 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sensor hfactory ${scobj_hpath}/Loop2/sensor plain user float hsetprop ${scobj_hpath}/Loop2/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB6.T1:TEMP:SIG:TEMP} hsetprop ${scobj_hpath}/Loop2/sensor rdValue ${ns}::rdValue ${scobj_hpath} @@ -441,11 +461,13 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop2/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Loop2/setpoint plain user float hsetprop ${scobj_hpath}/Loop2/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB6.T1:TEMP:LOOP:TSET} hsetprop ${scobj_hpath}/Loop2/setpoint rdValue ${ns}::rdValue ${scobj_hpath} @@ -476,17 +498,21 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop2/setpoint 5 ${sct_controller} write ${scobj_hpath}/Loop2/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Loop2 data "true" hsetprop ${scobj_hpath}/Loop2 klass "@none" hsetprop ${scobj_hpath}/Loop2 type "part" + # End of named group: Loop2 ansto_makesctdrive ${name}_Loop2_setpoint ${scobj_hpath}/Loop2/setpoint ${scobj_hpath}/Loop2/sensor ${sct_controller} + # Start of named group: Loop3 hfactory ${scobj_hpath}/Loop3 plain spy none - + # Start of var: nick hfactory ${scobj_hpath}/Loop3/nick plain user text hsetprop ${scobj_hpath}/Loop3/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:DB7.T1:TEMP:NICK} hsetprop ${scobj_hpath}/Loop3/nick rdText ${ns}::rdText ${scobj_hpath} @@ -502,11 +528,13 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop3/nick 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: power hfactory ${scobj_hpath}/Loop3/power plain user float hsetprop ${scobj_hpath}/Loop3/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB2.H1:HTR:SIG:POWR} hsetprop ${scobj_hpath}/Loop3/power rdValue ${ns}::rdValue ${scobj_hpath} @@ -522,11 +550,13 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop3/power 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sensor hfactory ${scobj_hpath}/Loop3/sensor plain user float hsetprop ${scobj_hpath}/Loop3/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB7.T1:TEMP:SIG:TEMP} hsetprop ${scobj_hpath}/Loop3/sensor rdValue ${ns}::rdValue ${scobj_hpath} @@ -544,11 +574,13 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop3/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Loop3/setpoint plain user float hsetprop ${scobj_hpath}/Loop3/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB7.T1:TEMP:LOOP:TSET} hsetprop ${scobj_hpath}/Loop3/setpoint rdValue ${ns}::rdValue ${scobj_hpath} @@ -579,12 +611,15 @@ proc ::scobj::mercury_base::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop3/setpoint 5 ${sct_controller} write ${scobj_hpath}/Loop3/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_base::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_base" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Loop3 data "true" hsetprop ${scobj_hpath}/Loop3 klass "@none" hsetprop ${scobj_hpath}/Loop3 type "part" + # End of named group: Loop3 ansto_makesctdrive ${name}_Loop3_setpoint ${scobj_hpath}/Loop3/setpoint ${scobj_hpath}/Loop3/sensor ${sct_controller} hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true diff --git a/site_ansto/instrument/config/environment/temperature/mercury_level_sct.tcl b/site_ansto/instrument/config/environment/temperature/mercury_level_sct.tcl index da638f8e..ad4c127c 100644 --- a/site_ansto/instrument/config/environment/temperature/mercury_level_sct.tcl +++ b/site_ansto/instrument/config/environment/temperature/mercury_level_sct.tcl @@ -149,9 +149,10 @@ proc ::scobj::mercury_level::mkDriver { sct_controller name device_class simulat set scobj_hpath /sics/${name} + # Start of named group: Level hfactory ${scobj_hpath}/Level plain spy none - + # Start of var: Helium hfactory ${scobj_hpath}/Level/Helium plain user float hsetprop ${scobj_hpath}/Level/Helium read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB5.L1:LVL:SIG:HEL:LEV} hsetprop ${scobj_hpath}/Level/Helium rdValue ${ns}::rdValue ${scobj_hpath} @@ -169,11 +170,13 @@ proc ::scobj::mercury_level::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Level/Helium 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_level::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_level" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: Nitrogen hfactory ${scobj_hpath}/Level/Nitrogen plain user float hsetprop ${scobj_hpath}/Level/Nitrogen read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB5.L1:LVL:SIG:NIT:LEV} hsetprop ${scobj_hpath}/Level/Nitrogen rdValue ${ns}::rdValue ${scobj_hpath} @@ -191,12 +194,15 @@ proc ::scobj::mercury_level::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Level/Nitrogen 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_level::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_level" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Level data "true" hsetprop ${scobj_hpath}/Level klass "@none" hsetprop ${scobj_hpath}/Level type "part" + # End of named group: Level hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5 diff --git a/site_ansto/instrument/config/environment/temperature/mercury_pres_sct.tcl b/site_ansto/instrument/config/environment/temperature/mercury_pres_sct.tcl index c2211c13..661f9ece 100644 --- a/site_ansto/instrument/config/environment/temperature/mercury_pres_sct.tcl +++ b/site_ansto/instrument/config/environment/temperature/mercury_pres_sct.tcl @@ -86,7 +86,12 @@ proc ::scobj::mercury_pres::checkstatus {tc_root} { # checkstatus hook code goes here if {[sct driving]} { set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" + if {[hpropexists [sct] simulated] && [sct simulated] == "true"} { + set pv "${sp}" + hset ${tc_root}/[sct driveable] ${sp} + } + set pv "[hval ${tc_root}/[sct driveable]]" + } if { abs(${pv} - ${sp}) <= [sct tolerance] } { if { [hpropexists [sct] settle_time] } { if { [hpropexists [sct] settle_time_start] } { @@ -284,9 +289,10 @@ proc ::scobj::mercury_pres::mkDriver { sct_controller name device_class simulati set scobj_hpath /sics/${name} + # Start of named group: Loop8 hfactory ${scobj_hpath}/Loop8 plain spy none - + # Start of var: nick hfactory ${scobj_hpath}/Loop8/nick plain user text hsetprop ${scobj_hpath}/Loop8/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:DB8.P1:PRES:NICK} hsetprop ${scobj_hpath}/Loop8/nick rdText ${ns}::rdText ${scobj_hpath} @@ -302,11 +308,13 @@ proc ::scobj::mercury_pres::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop8/nick 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_pres::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_pres" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sensor hfactory ${scobj_hpath}/Loop8/sensor plain user float hsetprop ${scobj_hpath}/Loop8/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB8.P1:PRES:SIG:PRES} hsetprop ${scobj_hpath}/Loop8/sensor rdValue ${ns}::rdValue ${scobj_hpath} @@ -325,11 +333,13 @@ proc ::scobj::mercury_pres::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop8/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_pres::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_pres" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Loop8/setpoint plain user float hsetprop ${scobj_hpath}/Loop8/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB8.P1:PRES:LOOP:TSET} hsetprop ${scobj_hpath}/Loop8/setpoint rdValue ${ns}::rdValue ${scobj_hpath} @@ -361,12 +371,15 @@ proc ::scobj::mercury_pres::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop8/setpoint 5 ${sct_controller} write ${scobj_hpath}/Loop8/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_pres::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_pres" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Loop8 data "true" hsetprop ${scobj_hpath}/Loop8 klass "@none" hsetprop ${scobj_hpath}/Loop8 type "part" + # End of named group: Loop8 ansto_makesctdrive ${name}_Loop8_setpoint ${scobj_hpath}/Loop8/setpoint ${scobj_hpath}/Loop8/sensor ${sct_controller} hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true diff --git a/site_ansto/instrument/config/environment/temperature/mercury_scpi_sct.tcl b/site_ansto/instrument/config/environment/temperature/mercury_scpi_sct.tcl index 3514c07e..18a34aec 100644 --- a/site_ansto/instrument/config/environment/temperature/mercury_scpi_sct.tcl +++ b/site_ansto/instrument/config/environment/temperature/mercury_scpi_sct.tcl @@ -86,7 +86,12 @@ proc ::scobj::mercury_scpi::checkstatus {tc_root} { # checkstatus hook code goes here if {[sct driving]} { set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" + if {[hpropexists [sct] simulated] && [sct simulated] == "true"} { + set pv "${sp}" + hset ${tc_root}/[sct driveable] ${sp} + } + set pv "[hval ${tc_root}/[sct driveable]]" + } if { abs(${pv} - ${sp}) <= [sct tolerance] } { if { [hpropexists [sct] settle_time] } { if { [hpropexists [sct] settle_time_start] } { @@ -312,9 +317,10 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati set scobj_hpath /sics/${name} + # Start of named group: Level hfactory ${scobj_hpath}/Level plain spy none - + # Start of var: Helium hfactory ${scobj_hpath}/Level/Helium plain user float hsetprop ${scobj_hpath}/Level/Helium read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB5.L1:LVL:SIG:HEL:LEV} hsetprop ${scobj_hpath}/Level/Helium rdValue ${ns}::rdValue ${scobj_hpath} @@ -332,11 +338,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Level/Helium 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: Nitrogen hfactory ${scobj_hpath}/Level/Nitrogen plain user float hsetprop ${scobj_hpath}/Level/Nitrogen read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB5.L1:LVL:SIG:NIT:LEV} hsetprop ${scobj_hpath}/Level/Nitrogen rdValue ${ns}::rdValue ${scobj_hpath} @@ -354,16 +362,20 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Level/Nitrogen 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Level data "true" hsetprop ${scobj_hpath}/Level klass "@none" hsetprop ${scobj_hpath}/Level type "part" + # End of named group: Level + # Start of named group: Loop1 hfactory ${scobj_hpath}/Loop1 plain spy none - + # Start of var: nick hfactory ${scobj_hpath}/Loop1/nick plain user text hsetprop ${scobj_hpath}/Loop1/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:MB1.T1:TEMP:NICK} hsetprop ${scobj_hpath}/Loop1/nick rdText ${ns}::rdText ${scobj_hpath} @@ -379,11 +391,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/nick 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: power hfactory ${scobj_hpath}/Loop1/power plain user float hsetprop ${scobj_hpath}/Loop1/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:MB0.H1:HTR:SIG:POWR} hsetprop ${scobj_hpath}/Loop1/power rdValue ${ns}::rdValue ${scobj_hpath} @@ -399,11 +413,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/power 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sensor hfactory ${scobj_hpath}/Loop1/sensor plain user float hsetprop ${scobj_hpath}/Loop1/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:MB1.T1:TEMP:SIG:TEMP} hsetprop ${scobj_hpath}/Loop1/sensor rdValue ${ns}::rdValue ${scobj_hpath} @@ -421,11 +437,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Loop1/setpoint plain user float hsetprop ${scobj_hpath}/Loop1/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:MB1.T1:TEMP:LOOP:TSET} hsetprop ${scobj_hpath}/Loop1/setpoint rdValue ${ns}::rdValue ${scobj_hpath} @@ -456,17 +474,21 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop1/setpoint 5 ${sct_controller} write ${scobj_hpath}/Loop1/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Loop1 data "true" hsetprop ${scobj_hpath}/Loop1 klass "@none" hsetprop ${scobj_hpath}/Loop1 type "part" + # End of named group: Loop1 ansto_makesctdrive ${name}_Loop1_setpoint ${scobj_hpath}/Loop1/setpoint ${scobj_hpath}/Loop1/sensor ${sct_controller} + # Start of named group: Loop2 hfactory ${scobj_hpath}/Loop2 plain spy none - + # Start of var: nick hfactory ${scobj_hpath}/Loop2/nick plain user text hsetprop ${scobj_hpath}/Loop2/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:DB6.T1:TEMP:NICK} hsetprop ${scobj_hpath}/Loop2/nick rdText ${ns}::rdText ${scobj_hpath} @@ -482,11 +504,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop2/nick 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: power hfactory ${scobj_hpath}/Loop2/power plain user float hsetprop ${scobj_hpath}/Loop2/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB1.H1:HTR:SIG:POWR} hsetprop ${scobj_hpath}/Loop2/power rdValue ${ns}::rdValue ${scobj_hpath} @@ -502,11 +526,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop2/power 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sensor hfactory ${scobj_hpath}/Loop2/sensor plain user float hsetprop ${scobj_hpath}/Loop2/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB6.T1:TEMP:SIG:TEMP} hsetprop ${scobj_hpath}/Loop2/sensor rdValue ${ns}::rdValue ${scobj_hpath} @@ -524,11 +550,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop2/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Loop2/setpoint plain user float hsetprop ${scobj_hpath}/Loop2/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB6.T1:TEMP:LOOP:TSET} hsetprop ${scobj_hpath}/Loop2/setpoint rdValue ${ns}::rdValue ${scobj_hpath} @@ -559,17 +587,21 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop2/setpoint 5 ${sct_controller} write ${scobj_hpath}/Loop2/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Loop2 data "true" hsetprop ${scobj_hpath}/Loop2 klass "@none" hsetprop ${scobj_hpath}/Loop2 type "part" + # End of named group: Loop2 ansto_makesctdrive ${name}_Loop2_setpoint ${scobj_hpath}/Loop2/setpoint ${scobj_hpath}/Loop2/sensor ${sct_controller} + # Start of named group: Loop3 hfactory ${scobj_hpath}/Loop3 plain spy none - + # Start of var: nick hfactory ${scobj_hpath}/Loop3/nick plain user text hsetprop ${scobj_hpath}/Loop3/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:DB7.T1:TEMP:NICK} hsetprop ${scobj_hpath}/Loop3/nick rdText ${ns}::rdText ${scobj_hpath} @@ -585,11 +617,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop3/nick 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: power hfactory ${scobj_hpath}/Loop3/power plain user float hsetprop ${scobj_hpath}/Loop3/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB2.H1:HTR:SIG:POWR} hsetprop ${scobj_hpath}/Loop3/power rdValue ${ns}::rdValue ${scobj_hpath} @@ -605,11 +639,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop3/power 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sensor hfactory ${scobj_hpath}/Loop3/sensor plain user float hsetprop ${scobj_hpath}/Loop3/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB7.T1:TEMP:SIG:TEMP} hsetprop ${scobj_hpath}/Loop3/sensor rdValue ${ns}::rdValue ${scobj_hpath} @@ -627,11 +663,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop3/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Loop3/setpoint plain user float hsetprop ${scobj_hpath}/Loop3/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB7.T1:TEMP:LOOP:TSET} hsetprop ${scobj_hpath}/Loop3/setpoint rdValue ${ns}::rdValue ${scobj_hpath} @@ -662,17 +700,21 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop3/setpoint 5 ${sct_controller} write ${scobj_hpath}/Loop3/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Loop3 data "true" hsetprop ${scobj_hpath}/Loop3 klass "@none" hsetprop ${scobj_hpath}/Loop3 type "part" + # End of named group: Loop3 ansto_makesctdrive ${name}_Loop3_setpoint ${scobj_hpath}/Loop3/setpoint ${scobj_hpath}/Loop3/sensor ${sct_controller} + # Start of named group: Loop4 hfactory ${scobj_hpath}/Loop4 plain spy none - + # Start of var: nick hfactory ${scobj_hpath}/Loop4/nick plain user text hsetprop ${scobj_hpath}/Loop4/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:DB8.T1:TEMP:NICK} hsetprop ${scobj_hpath}/Loop4/nick rdText ${ns}::rdText ${scobj_hpath} @@ -688,11 +730,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop4/nick 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: power hfactory ${scobj_hpath}/Loop4/power plain user float hsetprop ${scobj_hpath}/Loop4/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB3.H1:HTR:SIG:POWR} hsetprop ${scobj_hpath}/Loop4/power rdValue ${ns}::rdValue ${scobj_hpath} @@ -708,11 +752,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop4/power 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sensor hfactory ${scobj_hpath}/Loop4/sensor plain user float hsetprop ${scobj_hpath}/Loop4/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB8.T1:TEMP:SIG:TEMP} hsetprop ${scobj_hpath}/Loop4/sensor rdValue ${ns}::rdValue ${scobj_hpath} @@ -730,11 +776,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop4/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Loop4/setpoint plain user float hsetprop ${scobj_hpath}/Loop4/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB8.T1:TEMP:LOOP:TSET} hsetprop ${scobj_hpath}/Loop4/setpoint rdValue ${ns}::rdValue ${scobj_hpath} @@ -765,17 +813,21 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop4/setpoint 5 ${sct_controller} write ${scobj_hpath}/Loop4/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Loop4 data "true" hsetprop ${scobj_hpath}/Loop4 klass "@none" hsetprop ${scobj_hpath}/Loop4 type "part" + # End of named group: Loop4 ansto_makesctdrive ${name}_Loop4_setpoint ${scobj_hpath}/Loop4/setpoint ${scobj_hpath}/Loop4/sensor ${sct_controller} + # Start of named group: Valve hfactory ${scobj_hpath}/Valve plain spy none - + # Start of var: sensor hfactory ${scobj_hpath}/Valve/sensor plain user float hsetprop ${scobj_hpath}/Valve/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB4.G1:AUX:SIG:OPEN} hsetprop ${scobj_hpath}/Valve/sensor rdValue ${ns}::rdValue ${scobj_hpath} @@ -793,11 +845,13 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Valve/sensor 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Valve/setpoint plain user float hsetprop ${scobj_hpath}/Valve/setpoint write ${ns}::setValve ${scobj_hpath} noResponse {SET:DEV:DB4.G1:AUX:SIG:OPEN:} hsetprop ${scobj_hpath}/Valve/setpoint noResponse ${ns}::noResponse ${scobj_hpath} @@ -825,12 +879,15 @@ proc ::scobj::mercury_scpi::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/Valve/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_scpi::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_scpi" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Valve data "true" hsetprop ${scobj_hpath}/Valve klass "@none" hsetprop ${scobj_hpath}/Valve type "part" + # End of named group: Valve ansto_makesctdrive ${name}_Valve_setpoint ${scobj_hpath}/Valve/setpoint ${scobj_hpath}/Valve/sensor ${sct_controller} hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true diff --git a/site_ansto/instrument/config/environment/temperature/mercury_temp_sct.tcl b/site_ansto/instrument/config/environment/temperature/mercury_temp_sct.tcl index 9e3fba62..9a69b345 100644 --- a/site_ansto/instrument/config/environment/temperature/mercury_temp_sct.tcl +++ b/site_ansto/instrument/config/environment/temperature/mercury_temp_sct.tcl @@ -86,7 +86,12 @@ proc ::scobj::mercury_temp::checkstatus {tc_root} { # checkstatus hook code goes here if {[sct driving]} { set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" + if {[hpropexists [sct] simulated] && [sct simulated] == "true"} { + set pv "${sp}" + hset ${tc_root}/[sct driveable] ${sp} + } + set pv "[hval ${tc_root}/[sct driveable]]" + } if { abs(${pv} - ${sp}) <= [sct tolerance] } { if { [hpropexists [sct] settle_time] } { if { [hpropexists [sct] settle_time_start] } { @@ -278,9 +283,10 @@ proc ::scobj::mercury_temp::mkDriver { sct_controller name device_class simulati set scobj_hpath /sics/${name} + # Start of named group: Loop4 hfactory ${scobj_hpath}/Loop4 plain spy none - + # Start of var: nick hfactory ${scobj_hpath}/Loop4/nick plain user text hsetprop ${scobj_hpath}/Loop4/nick read ${ns}::getValue ${scobj_hpath} rdText {READ:DEV:DB8.T1:TEMP:NICK} hsetprop ${scobj_hpath}/Loop4/nick rdText ${ns}::rdText ${scobj_hpath} @@ -296,11 +302,13 @@ proc ::scobj::mercury_temp::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop4/nick 15 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_temp::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_temp" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: power hfactory ${scobj_hpath}/Loop4/power plain user float hsetprop ${scobj_hpath}/Loop4/power read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB3.H1:HTR:SIG:POWR} hsetprop ${scobj_hpath}/Loop4/power rdValue ${ns}::rdValue ${scobj_hpath} @@ -316,11 +324,13 @@ proc ::scobj::mercury_temp::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop4/power 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_temp::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_temp" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sensor hfactory ${scobj_hpath}/Loop4/sensor plain user float hsetprop ${scobj_hpath}/Loop4/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB8.T1:TEMP:SIG:TEMP} hsetprop ${scobj_hpath}/Loop4/sensor rdValue ${ns}::rdValue ${scobj_hpath} @@ -338,11 +348,13 @@ proc ::scobj::mercury_temp::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop4/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_temp::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_temp" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Loop4/setpoint plain user float hsetprop ${scobj_hpath}/Loop4/setpoint read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB8.T1:TEMP:LOOP:TSET} hsetprop ${scobj_hpath}/Loop4/setpoint rdValue ${ns}::rdValue ${scobj_hpath} @@ -373,12 +385,15 @@ proc ::scobj::mercury_temp::mkDriver { sct_controller name device_class simulati if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Loop4/setpoint 5 ${sct_controller} write ${scobj_hpath}/Loop4/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_temp::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_temp" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Loop4 data "true" hsetprop ${scobj_hpath}/Loop4 klass "@none" hsetprop ${scobj_hpath}/Loop4 type "part" + # End of named group: Loop4 ansto_makesctdrive ${name}_Loop4_setpoint ${scobj_hpath}/Loop4/setpoint ${scobj_hpath}/Loop4/sensor ${sct_controller} hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true diff --git a/site_ansto/instrument/config/environment/temperature/mercury_valve_sct.tcl b/site_ansto/instrument/config/environment/temperature/mercury_valve_sct.tcl index 830a0669..e4cbb513 100644 --- a/site_ansto/instrument/config/environment/temperature/mercury_valve_sct.tcl +++ b/site_ansto/instrument/config/environment/temperature/mercury_valve_sct.tcl @@ -86,7 +86,12 @@ proc ::scobj::mercury_valve::checkstatus {tc_root} { # checkstatus hook code goes here if {[sct driving]} { set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" + if {[hpropexists [sct] simulated] && [sct simulated] == "true"} { + set pv "${sp}" + hset ${tc_root}/[sct driveable] ${sp} + } + set pv "[hval ${tc_root}/[sct driveable]]" + } if { abs(${pv} - ${sp}) <= [sct tolerance] } { if { [hpropexists [sct] settle_time] } { if { [hpropexists [sct] settle_time_start] } { @@ -256,9 +261,10 @@ proc ::scobj::mercury_valve::mkDriver { sct_controller name device_class simulat set scobj_hpath /sics/${name} + # Start of named group: Valve hfactory ${scobj_hpath}/Valve plain spy none - + # Start of var: sensor hfactory ${scobj_hpath}/Valve/sensor plain user float hsetprop ${scobj_hpath}/Valve/sensor read ${ns}::getValue ${scobj_hpath} rdValue {READ:DEV:DB4.G1:AUX:SIG:OPEN} hsetprop ${scobj_hpath}/Valve/sensor rdValue ${ns}::rdValue ${scobj_hpath} @@ -276,11 +282,13 @@ proc ::scobj::mercury_valve::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/Valve/sensor 5 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_valve::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_valve" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/Valve/setpoint plain user float hsetprop ${scobj_hpath}/Valve/setpoint write ${ns}::setValve ${scobj_hpath} noResponse {SET:DEV:DB4.G1:AUX:SIG:OPEN:} hsetprop ${scobj_hpath}/Valve/setpoint noResponse ${ns}::noResponse ${scobj_hpath} @@ -308,12 +316,15 @@ proc ::scobj::mercury_valve::mkDriver { sct_controller name device_class simulat if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/Valve/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::mercury_valve::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for mercury_valve" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/Valve data "true" hsetprop ${scobj_hpath}/Valve klass "@none" hsetprop ${scobj_hpath}/Valve type "part" + # End of named group: Valve ansto_makesctdrive ${name}_Valve_setpoint ${scobj_hpath}/Valve/setpoint ${scobj_hpath}/Valve/sensor ${sct_controller} hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true diff --git a/site_ansto/instrument/config/environment/temperature/pfeiffer_hg_sct.tcl b/site_ansto/instrument/config/environment/temperature/pfeiffer_hg_sct.tcl index 1925674d..bc12772c 100644 --- a/site_ansto/instrument/config/environment/temperature/pfeiffer_hg_sct.tcl +++ b/site_ansto/instrument/config/environment/temperature/pfeiffer_hg_sct.tcl @@ -125,7 +125,12 @@ proc ::scobj::pfeiffer_hg::checkstatus {tc_root} { # checkstatus hook code goes here if {[sct driving]} { set sp "[sct target]" - set pv "[hval ${tc_root}/[sct driveable]]" + if {[hpropexists [sct] simulated] && [sct simulated] == "true"} { + set pv "${sp}" + hset ${tc_root}/[sct driveable] ${sp} + } + set pv "[hval ${tc_root}/[sct driveable]]" + } if { abs(${pv} - ${sp}) <= [sct tolerance] } { if { [hpropexists [sct] settle_time] } { if { [hpropexists [sct] settle_time_start] } { @@ -383,8 +388,9 @@ proc ::scobj::pfeiffer_hg::mkDriver { sct_controller name device_class simulatio sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: status hfactory ${scobj_hpath}/status plain user int hsetprop ${scobj_hpath}/status control true hsetprop ${scobj_hpath}/status data true @@ -399,10 +405,12 @@ proc ::scobj::pfeiffer_hg::mkDriver { sct_controller name device_class simulatio hsetprop ${scobj_hpath} data "true" hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} type "part" + # End of unnamed group + # Start of named group: pressure hfactory ${scobj_hpath}/pressure plain spy none - + # Start of var: sensor hfactory ${scobj_hpath}/pressure/sensor plain user float hsetprop ${scobj_hpath}/pressure/sensor read ${ns}::sendPR1 ${scobj_hpath} readPR1 {PR1} hsetprop ${scobj_hpath}/pressure/sensor readPR1 ${ns}::readPR1 ${scobj_hpath} @@ -429,11 +437,13 @@ proc ::scobj::pfeiffer_hg::mkDriver { sct_controller name device_class simulatio if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/pressure/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::pfeiffer_hg::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for pfeiffer_hg" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/pressure/setpoint plain user float hsetprop ${scobj_hpath}/pressure/setpoint write ${ns}::setPoint ${scobj_hpath} noResponse {@} hsetprop ${scobj_hpath}/pressure/setpoint noResponse ${ns}::noResponse ${scobj_hpath} @@ -461,12 +471,15 @@ proc ::scobj::pfeiffer_hg::mkDriver { sct_controller name device_class simulatio if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} write ${scobj_hpath}/pressure/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::pfeiffer_hg::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for pfeiffer_hg" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/pressure data "true" hsetprop ${scobj_hpath}/pressure klass "@none" hsetprop ${scobj_hpath}/pressure type "part" + # End of named group: pressure ansto_makesctdrive ${name}_pressure_setpoint ${scobj_hpath}/pressure/setpoint ${scobj_hpath}/pressure/sensor ${sct_controller} hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true diff --git a/site_ansto/instrument/config/environment/temperature/west_6100_sct.tcl b/site_ansto/instrument/config/environment/temperature/west_6100_sct.tcl index 54239686..70522473 100644 --- a/site_ansto/instrument/config/environment/temperature/west_6100_sct.tcl +++ b/site_ansto/instrument/config/environment/temperature/west_6100_sct.tcl @@ -273,8 +273,9 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: alarm1 hfactory ${scobj_hpath}/alarm1 plain user float hsetprop ${scobj_hpath}/alarm1 read ${ns}::getDecimal ${scobj_hpath} rdDecimal {13} hsetprop ${scobj_hpath}/alarm1 rdDecimal ${ns}::rdDecimal ${scobj_hpath} @@ -294,11 +295,13 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/alarm1 1 ${sct_controller} write ${scobj_hpath}/alarm1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::west_6100::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for west_6100" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: alarm2 hfactory ${scobj_hpath}/alarm2 plain user float hsetprop ${scobj_hpath}/alarm2 read ${ns}::getDecimal ${scobj_hpath} rdDecimal {14} hsetprop ${scobj_hpath}/alarm2 rdDecimal ${ns}::rdDecimal ${scobj_hpath} @@ -318,11 +321,13 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/alarm2 1 ${sct_controller} write ${scobj_hpath}/alarm2 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::west_6100::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for west_6100" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: power hfactory ${scobj_hpath}/power plain user int hsetprop ${scobj_hpath}/power read ${ns}::getInteger ${scobj_hpath} rdInteger {3} hsetprop ${scobj_hpath}/power rdInteger ${ns}::rdInteger ${scobj_hpath} @@ -338,11 +343,13 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/power 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::west_6100::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for west_6100" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: powermax hfactory ${scobj_hpath}/powermax plain user int hsetprop ${scobj_hpath}/powermax read ${ns}::getInteger ${scobj_hpath} rdInteger {20} hsetprop ${scobj_hpath}/powermax rdInteger ${ns}::rdInteger ${scobj_hpath} @@ -362,11 +369,13 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/powermax 1 ${sct_controller} write ${scobj_hpath}/powermax + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::west_6100::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for west_6100" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: ramprate hfactory ${scobj_hpath}/ramprate plain user float hsetprop ${scobj_hpath}/ramprate read ${ns}::getDecimal ${scobj_hpath} rdDecimal {24} hsetprop ${scobj_hpath}/ramprate rdDecimal ${ns}::rdDecimal ${scobj_hpath} @@ -386,11 +395,13 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/ramprate 1 ${sct_controller} write ${scobj_hpath}/ramprate + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::west_6100::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for west_6100" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: sensor hfactory ${scobj_hpath}/sensor plain user float hsetprop ${scobj_hpath}/sensor read ${ns}::getDecimal ${scobj_hpath} rdDecimal {1} hsetprop ${scobj_hpath}/sensor rdDecimal ${ns}::rdDecimal ${scobj_hpath} @@ -406,11 +417,13 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/sensor 1 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::west_6100::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for west_6100" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: setpoint hfactory ${scobj_hpath}/setpoint plain user float hsetprop ${scobj_hpath}/setpoint read ${ns}::getDecimal ${scobj_hpath} rdDecimal {2} hsetprop ${scobj_hpath}/setpoint rdDecimal ${ns}::rdDecimal ${scobj_hpath} @@ -430,11 +443,13 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/setpoint 1 ${sct_controller} write ${scobj_hpath}/setpoint + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::west_6100::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for west_6100" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: w_sp hfactory ${scobj_hpath}/w_sp plain user float hsetprop ${scobj_hpath}/w_sp read ${ns}::getDecimal ${scobj_hpath} rdDecimal {21} hsetprop ${scobj_hpath}/w_sp rdDecimal ${ns}::rdDecimal ${scobj_hpath} @@ -454,17 +469,21 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/w_sp 1 ${sct_controller} write ${scobj_hpath}/w_sp + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::west_6100::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for west_6100" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath} data "true" hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} type "part" + # End of unnamed group + # Start of named group: aux hfactory ${scobj_hpath}/aux plain spy none - + # Start of var: decimal hfactory ${scobj_hpath}/aux/decimal plain user int hsetprop ${scobj_hpath}/aux/decimal read ${ns}::getInteger ${scobj_hpath} rdInteger {18} hsetprop ${scobj_hpath}/aux/decimal rdInteger ${ns}::rdInteger ${scobj_hpath} @@ -480,11 +499,13 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/aux/decimal 2 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::west_6100::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for west_6100" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: instatus hfactory ${scobj_hpath}/aux/instatus plain user int hsetprop ${scobj_hpath}/aux/instatus read ${ns}::getInteger ${scobj_hpath} rdInteger {133} hsetprop ${scobj_hpath}/aux/instatus rdInteger ${ns}::rdInteger ${scobj_hpath} @@ -499,11 +520,13 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/aux/instatus 2 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::west_6100::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for west_6100" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: model hfactory ${scobj_hpath}/aux/model plain user int hsetprop ${scobj_hpath}/aux/model read ${ns}::getInteger ${scobj_hpath} rdInteger {122} hsetprop ${scobj_hpath}/aux/model rdInteger ${ns}::rdInteger ${scobj_hpath} @@ -518,12 +541,15 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_ if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/aux/model 2 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::west_6100::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for west_6100" + hsetprop ${scobj_hpath}/%s simulated true } hsetprop ${scobj_hpath}/aux data "false" hsetprop ${scobj_hpath}/aux klass "@none" hsetprop ${scobj_hpath}/aux type "part" + # End of named group: aux hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5 diff --git a/site_ansto/instrument/config/source/reactor_status_sct.tcl b/site_ansto/instrument/config/source/reactor_status_sct.tcl index 5c1d482a..23c7c5e7 100644 --- a/site_ansto/instrument/config/source/reactor_status_sct.tcl +++ b/site_ansto/instrument/config/source/reactor_status_sct.tcl @@ -227,8 +227,9 @@ proc ::scobj::reactor_status::mkDriver { sct_controller name device_class simula sicslist setatt ${name} long_name ${name} set scobj_hpath /sics/${name} + # Start of unnamed group - + # Start of var: cg123 hfactory ${scobj_hpath}/cg123 plain spy float hsetprop ${scobj_hpath}/cg123 control true hsetprop ${scobj_hpath}/cg123 data true @@ -240,7 +241,7 @@ proc ::scobj::reactor_status::mkDriver { sct_controller name device_class simula hsetprop ${scobj_hpath}/cg123 type "part" hsetprop ${scobj_hpath}/cg123 nxalias "${name}_cg123" - + # Start of var: cns_out hfactory ${scobj_hpath}/cns_out plain spy float hsetprop ${scobj_hpath}/cns_out control true hsetprop ${scobj_hpath}/cns_out data true @@ -252,7 +253,7 @@ proc ::scobj::reactor_status::mkDriver { sct_controller name device_class simula hsetprop ${scobj_hpath}/cns_out type "part" hsetprop ${scobj_hpath}/cns_out nxalias "${name}_cns_out" - + # Start of var: power hfactory ${scobj_hpath}/power plain spy float hsetprop ${scobj_hpath}/power control true hsetprop ${scobj_hpath}/power data true @@ -264,7 +265,7 @@ proc ::scobj::reactor_status::mkDriver { sct_controller name device_class simula hsetprop ${scobj_hpath}/power type "part" hsetprop ${scobj_hpath}/power nxalias "${name}_power" - + # Start of var: status hfactory ${scobj_hpath}/status plain spy text hsetprop ${scobj_hpath}/status read ${ns}::getState ${scobj_hpath} rdAll {GET /Bragg/proposal/reactor.jsp?type=ALL} hsetprop ${scobj_hpath}/status rdAll ${ns}::rdAll ${scobj_hpath} @@ -279,11 +280,13 @@ proc ::scobj::reactor_status::mkDriver { sct_controller name device_class simula if {[string equal -nocase "${simulation_flag}" "false"]} { ${sct_controller} poll ${scobj_hpath}/status 30 + hsetprop ${scobj_hpath}/%s simulated false } else { ::scobj::reactor_status::sics_log 9 "simulation_flag=${simulation_flag} => No poll/write for reactor_status" + hsetprop ${scobj_hpath}/%s simulated true } - + # Start of var: tg123 hfactory ${scobj_hpath}/tg123 plain spy float hsetprop ${scobj_hpath}/tg123 control true hsetprop ${scobj_hpath}/tg123 data true @@ -295,7 +298,7 @@ proc ::scobj::reactor_status::mkDriver { sct_controller name device_class simula hsetprop ${scobj_hpath}/tg123 type "part" hsetprop ${scobj_hpath}/tg123 nxalias "${name}_tg123" - + # Start of var: tg4 hfactory ${scobj_hpath}/tg4 plain spy float hsetprop ${scobj_hpath}/tg4 control true hsetprop ${scobj_hpath}/tg4 data true @@ -311,6 +314,7 @@ proc ::scobj::reactor_status::mkDriver { sct_controller name device_class simula hsetprop ${scobj_hpath} data "true" hsetprop ${scobj_hpath} klass "@none" hsetprop ${scobj_hpath} type "part" + # End of unnamed group hsetprop ${scobj_hpath} klass ${device_class} hsetprop ${scobj_hpath} data true hsetprop ${scobj_hpath} debug_threshold 5