Regenerate with nxalias and sdsinfo
This commit is contained in:
@ -34,6 +34,7 @@ proc ::scobj::hiden_xcs::checklimits {tc_root} {
|
||||
# upperlimit not set, use target
|
||||
set hilimit [sct target]
|
||||
}
|
||||
# hook code goes here
|
||||
if { ${setpoint} < ${lolimit} || ${setpoint} > ${hilimit} } {
|
||||
sct driving 0
|
||||
error "setpoint ${setpoint} violates limits (${lolimit}..${hilimit}) on [sct]"
|
||||
@ -60,6 +61,7 @@ proc ::scobj::hiden_xcs::checkrange {tc_root} {
|
||||
# upperlimit not set, use target
|
||||
set hilimit [sct target]
|
||||
}
|
||||
# hook code goes here
|
||||
if { ${setpoint} < ${lolimit} || ${setpoint} > ${hilimit} } {
|
||||
error "setpoint ${setpoint} violates limits (${lolimit}..${hilimit}) on [sct]"
|
||||
}
|
||||
@ -71,6 +73,7 @@ proc ::scobj::hiden_xcs::checkrange {tc_root} {
|
||||
# checkstatus function for driveable interface
|
||||
proc ::scobj::hiden_xcs::checkstatus {tc_root} {
|
||||
set catch_status [ catch {
|
||||
# hook code goes here
|
||||
if {[sct driving]} {
|
||||
set sp "[sct target]"
|
||||
set pv "[hval ${tc_root}/[sct driveable]]"
|
||||
@ -136,15 +139,7 @@ proc ::scobj::hiden_xcs::fetch_flow {tc_root nextState cmd_str} {
|
||||
sct targets ${targets}
|
||||
if { [hpropexists [sct] target] } {
|
||||
set pid [pid_flow ${tc_root} [sct target] ${data}]
|
||||
foreach node [list analog/sp1 analog/sp2] {
|
||||
hsetprop ${path}/${node} bias_flow ${pid}
|
||||
if { [hpropexists ${path}/${node} target] } {
|
||||
hset ${path}/${node} [hgetpropval ${path}/${node} target]
|
||||
} else {
|
||||
hset ${path}/${node} [hval ${path}/${node}]
|
||||
}
|
||||
}
|
||||
}
|
||||
# cut this function short
|
||||
return ${nextState}
|
||||
# hook code ends
|
||||
if { [hpropexists [sct] geterror] } {
|
||||
@ -166,6 +161,7 @@ proc ::scobj::hiden_xcs::getValue {tc_root nextState cmd_str} {
|
||||
hdelprop [sct] geterror
|
||||
}
|
||||
set cmd "${cmd_str}"
|
||||
# hook code goes here
|
||||
debug_log 1 "getValue sct send ${cmd}"
|
||||
sct send "${cmd}"
|
||||
return ${nextState}
|
||||
@ -178,6 +174,7 @@ proc ::scobj::hiden_xcs::halt {tc_root} {
|
||||
set catch_status [ catch {
|
||||
debug_log 1 "halt tc_root=${tc_root} sct=[sct] driving=[sct driving]"
|
||||
### TODO hset [sct] [hval [sct]]
|
||||
# hook code goes here
|
||||
sct driving 0
|
||||
return "idle"
|
||||
} catch_message ]
|
||||
@ -188,6 +185,7 @@ proc ::scobj::hiden_xcs::halt {tc_root} {
|
||||
proc ::scobj::hiden_xcs::noResponse {tc_root} {
|
||||
set catch_status [ catch {
|
||||
debug_log 1 "noResponse tc_root=${tc_root} sct=[sct] resp=[sct result]"
|
||||
# hook code goes here
|
||||
return "idle"
|
||||
} catch_message ]
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
@ -210,6 +208,18 @@ proc ::scobj::hiden_xcs::pid_flow {tc_root sp pv} {
|
||||
}
|
||||
set i_value [expr [sct pid_ivalue] * [sct pid_integ]]
|
||||
set pid [expr ${p_value} + ${i_value} + ${d_value}]
|
||||
# hook code starts
|
||||
set path [pathname [sct]]
|
||||
foreach node [list analog/sp1 analog/sp2] {
|
||||
hsetprop ${path}/${node} bias_flow ${pid}
|
||||
if { [hpropexists ${path}/${node} target] } {
|
||||
hset ${path}/${node} [hgetpropval ${path}/${node} target]
|
||||
} else {
|
||||
hset ${path}/${node} [hval ${path}/${node}]
|
||||
}
|
||||
}
|
||||
}
|
||||
# hook code ends
|
||||
sct pid_output ${pid}
|
||||
} catch_message ]
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
@ -233,6 +243,21 @@ proc ::scobj::hiden_xcs::pid_humidity {tc_root sp pv} {
|
||||
}
|
||||
set i_value [expr [sct pid_ivalue] * [sct pid_integ]]
|
||||
set pid [expr ${p_value} + ${i_value} + ${d_value}]
|
||||
# hook code starts
|
||||
set path [pathname [sct]]
|
||||
set sign 1
|
||||
foreach node [list analog/sp1 analog/sp2] {
|
||||
set sign [expr -${sign}]
|
||||
set signed_pid [expr ${sign} * ${pid}]
|
||||
hsetprop ${path}/${node} bias_humidity ${signed_pid}
|
||||
if { [hpropexists ${path}/${node} target] } {
|
||||
hset ${path}/${node} [hgetpropval ${path}/${node} target]
|
||||
} else {
|
||||
hset ${path}/${node} [hval ${path}/${node}]
|
||||
}
|
||||
}
|
||||
}
|
||||
# hook code ends
|
||||
sct pid_output ${pid}
|
||||
} catch_message ]
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
@ -253,6 +278,7 @@ proc ::scobj::hiden_xcs::rdValue {tc_root} {
|
||||
sct geterror "${data}"
|
||||
error "[sct geterror]"
|
||||
}
|
||||
# hook code goes here
|
||||
if { ${data} != [sct oldval] } {
|
||||
debug_log 1 "[sct] changed to new:${data}, from old:[sct oldval]"
|
||||
sct oldval ${data}
|
||||
@ -295,17 +321,6 @@ proc ::scobj::hiden_xcs::read_all_data {tc_root} {
|
||||
}
|
||||
if { [hpropexists [sct] target] } {
|
||||
set pid [pid_humidity ${tc_root} [sct target] ${data}]
|
||||
set path [pathname [sct]]
|
||||
foreach node [list analog/sp1 analog/sp2] {
|
||||
set pid [expr -${pid}]
|
||||
hsetprop ${path}/${node} bias_humidity ${pid}
|
||||
if { [hpropexists ${path}/${node} target] } {
|
||||
hset ${path}/${node} [hgetpropval ${path}/${node} target]
|
||||
} else {
|
||||
hset ${path}/${node} [hval ${path}/${node}]
|
||||
}
|
||||
}
|
||||
}
|
||||
# hook code ends
|
||||
if { [hpropexists [sct] geterror] } {
|
||||
debug_log 1 "[sct] error: [sct geterror]"
|
||||
@ -377,6 +392,7 @@ proc ::scobj::hiden_xcs::read_flow {tc_root} {
|
||||
sct geterror "${data}"
|
||||
error "[sct geterror]"
|
||||
}
|
||||
# hook code goes here
|
||||
if { ${data} != [sct oldval] } {
|
||||
debug_log 1 "[sct] changed to new:${data}, from old:[sct oldval]"
|
||||
sct oldval ${data}
|
||||
@ -499,6 +515,7 @@ proc ::scobj::hiden_xcs::setValue {tc_root nextState cmd_str} {
|
||||
}
|
||||
set par [sct target]
|
||||
set cmd "${cmd_str}${par}"
|
||||
# hook code goes here
|
||||
if { [hpropexists [sct] driving] } {
|
||||
if { [hpropexists [sct] writestatus] && [sct writestatus] == "start" } {
|
||||
sct driving 1
|
||||
@ -522,6 +539,7 @@ proc ::scobj::hiden_xcs::write_digital {tc_root nextState cmd_str} {
|
||||
}
|
||||
set par [sct target]
|
||||
set cmd "${cmd_str}${par}"
|
||||
# hook code goes here
|
||||
if { [hpropexists [sct] driving] } {
|
||||
if { [hpropexists [sct] writestatus] && [sct writestatus] == "start" } {
|
||||
sct driving 1
|
||||
@ -694,6 +712,7 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/enabled klass "environment"
|
||||
hsetprop ${scobj_hpath}/enabled sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/enabled type "part"
|
||||
hsetprop ${scobj_hpath}/enabled nxalias "${name}_enabled"
|
||||
|
||||
hfactory ${scobj_hpath}/flow plain user float
|
||||
hsetprop ${scobj_hpath}/flow read ${ns}::fetch_flow ${scobj_hpath} read_flow {None}
|
||||
@ -724,6 +743,7 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/flow pid_pvalue "0.2"
|
||||
hsetprop ${scobj_hpath}/flow sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/flow type "drivable"
|
||||
hsetprop ${scobj_hpath}/flow nxalias "${name}_flow"
|
||||
|
||||
hfactory ${scobj_hpath}/flow1 plain user float
|
||||
hsetprop ${scobj_hpath}/flow1 control false
|
||||
@ -734,6 +754,7 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/flow1 klass "environment"
|
||||
hsetprop ${scobj_hpath}/flow1 sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/flow1 type "part"
|
||||
hsetprop ${scobj_hpath}/flow1 nxalias "${name}_flow1"
|
||||
|
||||
hfactory ${scobj_hpath}/flow2 plain user float
|
||||
hsetprop ${scobj_hpath}/flow2 control false
|
||||
@ -744,6 +765,7 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/flow2 klass "environment"
|
||||
hsetprop ${scobj_hpath}/flow2 sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/flow2 type "part"
|
||||
hsetprop ${scobj_hpath}/flow2 nxalias "${name}_flow2"
|
||||
|
||||
hfactory ${scobj_hpath}/flow3 plain user float
|
||||
hsetprop ${scobj_hpath}/flow3 control false
|
||||
@ -754,6 +776,7 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/flow3 klass "environment"
|
||||
hsetprop ${scobj_hpath}/flow3 sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/flow3 type "part"
|
||||
hsetprop ${scobj_hpath}/flow3 nxalias "${name}_flow3"
|
||||
|
||||
hfactory ${scobj_hpath}/gas_factor plain user float
|
||||
hsetprop ${scobj_hpath}/gas_factor control true
|
||||
@ -765,6 +788,7 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/gas_factor klass "environment"
|
||||
hsetprop ${scobj_hpath}/gas_factor sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/gas_factor type "part"
|
||||
hsetprop ${scobj_hpath}/gas_factor nxalias "${name}_gas_factor"
|
||||
|
||||
hfactory ${scobj_hpath}/humidity plain user float
|
||||
hsetprop ${scobj_hpath}/humidity read ${ns}::getValue ${scobj_hpath} read_all_data {?ALL DATA}
|
||||
@ -796,6 +820,7 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/humidity pid_pvalue "0.2"
|
||||
hsetprop ${scobj_hpath}/humidity sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/humidity type "drivable"
|
||||
hsetprop ${scobj_hpath}/humidity nxalias "${name}_humidity"
|
||||
|
||||
hfactory ${scobj_hpath}/temperature plain user float
|
||||
hsetprop ${scobj_hpath}/temperature control false
|
||||
@ -806,6 +831,7 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/temperature klass "environment"
|
||||
hsetprop ${scobj_hpath}/temperature sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/temperature type "part"
|
||||
hsetprop ${scobj_hpath}/temperature nxalias "${name}_temperature"
|
||||
|
||||
hsetprop ${scobj_hpath} data "true"
|
||||
hsetprop ${scobj_hpath} nxsave "true"
|
||||
@ -832,8 +858,10 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/analog/ansto_temp nxsave false
|
||||
hsetprop ${scobj_hpath}/analog/ansto_temp oldval 0.0
|
||||
hsetprop ${scobj_hpath}/analog/ansto_temp base "0"
|
||||
hsetprop ${scobj_hpath}/analog/ansto_temp sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/analog/ansto_temp span "100"
|
||||
hsetprop ${scobj_hpath}/analog/ansto_temp type "part"
|
||||
hsetprop ${scobj_hpath}/analog/ansto_temp nxalias "${name}_analog_ansto_temp"
|
||||
|
||||
hfactory ${scobj_hpath}/analog/pv1 plain user float
|
||||
hsetprop ${scobj_hpath}/analog/pv1 read ${ns}::getValue ${scobj_hpath} read_sixteen {?AIN,0}
|
||||
@ -844,8 +872,10 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/analog/pv1 nxsave false
|
||||
hsetprop ${scobj_hpath}/analog/pv1 oldval 0.0
|
||||
hsetprop ${scobj_hpath}/analog/pv1 base "0"
|
||||
hsetprop ${scobj_hpath}/analog/pv1 sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/analog/pv1 span "500"
|
||||
hsetprop ${scobj_hpath}/analog/pv1 type "part"
|
||||
hsetprop ${scobj_hpath}/analog/pv1 nxalias "${name}_analog_pv1"
|
||||
|
||||
hfactory ${scobj_hpath}/analog/pv2 plain user float
|
||||
hsetprop ${scobj_hpath}/analog/pv2 read ${ns}::getValue ${scobj_hpath} read_sixteen {?AIN,1}
|
||||
@ -856,8 +886,10 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/analog/pv2 nxsave false
|
||||
hsetprop ${scobj_hpath}/analog/pv2 oldval 0.0
|
||||
hsetprop ${scobj_hpath}/analog/pv2 base "0"
|
||||
hsetprop ${scobj_hpath}/analog/pv2 sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/analog/pv2 span "500"
|
||||
hsetprop ${scobj_hpath}/analog/pv2 type "part"
|
||||
hsetprop ${scobj_hpath}/analog/pv2 nxalias "${name}_analog_pv2"
|
||||
|
||||
hfactory ${scobj_hpath}/analog/pv3 plain user float
|
||||
hsetprop ${scobj_hpath}/analog/pv3 read ${ns}::getValue ${scobj_hpath} read_sixteen {?AIN,2}
|
||||
@ -868,8 +900,10 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/analog/pv3 nxsave false
|
||||
hsetprop ${scobj_hpath}/analog/pv3 oldval 0.0
|
||||
hsetprop ${scobj_hpath}/analog/pv3 base "0"
|
||||
hsetprop ${scobj_hpath}/analog/pv3 sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/analog/pv3 span "500"
|
||||
hsetprop ${scobj_hpath}/analog/pv3 type "part"
|
||||
hsetprop ${scobj_hpath}/analog/pv3 nxalias "${name}_analog_pv3"
|
||||
|
||||
hfactory ${scobj_hpath}/analog/rhsense plain user float
|
||||
hsetprop ${scobj_hpath}/analog/rhsense read ${ns}::getValue ${scobj_hpath} read_sixteen {?AIN,9}
|
||||
@ -880,8 +914,10 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/analog/rhsense nxsave false
|
||||
hsetprop ${scobj_hpath}/analog/rhsense oldval 0.0
|
||||
hsetprop ${scobj_hpath}/analog/rhsense base "0"
|
||||
hsetprop ${scobj_hpath}/analog/rhsense sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/analog/rhsense span "100"
|
||||
hsetprop ${scobj_hpath}/analog/rhsense type "part"
|
||||
hsetprop ${scobj_hpath}/analog/rhsense nxalias "${name}_analog_rhsense"
|
||||
|
||||
hfactory ${scobj_hpath}/analog/rhtemp plain user float
|
||||
hsetprop ${scobj_hpath}/analog/rhtemp read ${ns}::getValue ${scobj_hpath} read_sixteen {?AIN,8}
|
||||
@ -892,8 +928,10 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/analog/rhtemp nxsave false
|
||||
hsetprop ${scobj_hpath}/analog/rhtemp oldval 0.0
|
||||
hsetprop ${scobj_hpath}/analog/rhtemp base "0"
|
||||
hsetprop ${scobj_hpath}/analog/rhtemp sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/analog/rhtemp span "100"
|
||||
hsetprop ${scobj_hpath}/analog/rhtemp type "part"
|
||||
hsetprop ${scobj_hpath}/analog/rhtemp nxalias "${name}_analog_rhtemp"
|
||||
|
||||
hfactory ${scobj_hpath}/analog/sp1 plain user float
|
||||
hsetprop ${scobj_hpath}/analog/sp1 read ${ns}::getValue ${scobj_hpath} read_twelve {?AOUT,0}
|
||||
@ -907,8 +945,10 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/analog/sp1 nxsave false
|
||||
hsetprop ${scobj_hpath}/analog/sp1 oldval 0.0
|
||||
hsetprop ${scobj_hpath}/analog/sp1 base "0"
|
||||
hsetprop ${scobj_hpath}/analog/sp1 sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/analog/sp1 span "500"
|
||||
hsetprop ${scobj_hpath}/analog/sp1 type "part"
|
||||
hsetprop ${scobj_hpath}/analog/sp1 nxalias "${name}_analog_sp1"
|
||||
|
||||
hfactory ${scobj_hpath}/analog/sp2 plain user float
|
||||
hsetprop ${scobj_hpath}/analog/sp2 read ${ns}::getValue ${scobj_hpath} read_twelve {?AOUT,1}
|
||||
@ -922,8 +962,10 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/analog/sp2 nxsave false
|
||||
hsetprop ${scobj_hpath}/analog/sp2 oldval 0.0
|
||||
hsetprop ${scobj_hpath}/analog/sp2 base "0"
|
||||
hsetprop ${scobj_hpath}/analog/sp2 sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/analog/sp2 span "500"
|
||||
hsetprop ${scobj_hpath}/analog/sp2 type "part"
|
||||
hsetprop ${scobj_hpath}/analog/sp2 nxalias "${name}_analog_sp2"
|
||||
|
||||
hfactory ${scobj_hpath}/analog/sp3 plain user float
|
||||
hsetprop ${scobj_hpath}/analog/sp3 read ${ns}::getValue ${scobj_hpath} read_twelve {?AOUT,2}
|
||||
@ -937,8 +979,10 @@ proc ::scobj::hiden_xcs::mk_sct_hiden_xcs { sct_controller name tol } {
|
||||
hsetprop ${scobj_hpath}/analog/sp3 nxsave false
|
||||
hsetprop ${scobj_hpath}/analog/sp3 oldval 0.0
|
||||
hsetprop ${scobj_hpath}/analog/sp3 base "0"
|
||||
hsetprop ${scobj_hpath}/analog/sp3 sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/analog/sp3 span "500"
|
||||
hsetprop ${scobj_hpath}/analog/sp3 type "part"
|
||||
hsetprop ${scobj_hpath}/analog/sp3 nxalias "${name}_analog_sp3"
|
||||
|
||||
if {[SplitReply [environment_simulation]]=="false"} {
|
||||
${sct_controller} poll ${scobj_hpath}/analog/ansto_temp 5
|
||||
|
@ -34,6 +34,7 @@ proc ::scobj::isotech_ps::checkrange {tc_root} {
|
||||
# upperlimit not set, use target
|
||||
set hilimit [sct target]
|
||||
}
|
||||
# hook code goes here
|
||||
if { ${setpoint} < ${lolimit} || ${setpoint} > ${hilimit} } {
|
||||
error "setpoint ${setpoint} violates limits (${lolimit}..${hilimit}) on [sct]"
|
||||
}
|
||||
@ -50,6 +51,7 @@ proc ::scobj::isotech_ps::getValue {tc_root nextState cmd_str} {
|
||||
hdelprop [sct] geterror
|
||||
}
|
||||
set cmd "${cmd_str}"
|
||||
# hook code goes here
|
||||
debug_log 1 "getValue sct send ${cmd}"
|
||||
sct send "${cmd}"
|
||||
return ${nextState}
|
||||
@ -61,6 +63,7 @@ proc ::scobj::isotech_ps::getValue {tc_root nextState cmd_str} {
|
||||
proc ::scobj::isotech_ps::noResponse {tc_root} {
|
||||
set catch_status [ catch {
|
||||
debug_log 1 "noResponse tc_root=${tc_root} sct=[sct] resp=[sct result]"
|
||||
# hook code goes here
|
||||
return "idle"
|
||||
} catch_message ]
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
@ -145,6 +148,7 @@ proc ::scobj::isotech_ps::setValue {tc_root nextState cmd_str} {
|
||||
}
|
||||
set par [sct target]
|
||||
set cmd "${cmd_str}${par}"
|
||||
# hook code goes here
|
||||
if { [hpropexists [sct] driving] } {
|
||||
if { [hpropexists [sct] writestatus] && [sct writestatus] == "start" } {
|
||||
sct driving 1
|
||||
@ -245,7 +249,9 @@ proc ::scobj::isotech_ps::mk_sct_isotech_ps { sct_controller name } {
|
||||
hsetprop ${scobj_hpath}/amps nxsave true
|
||||
hsetprop ${scobj_hpath}/amps units A
|
||||
hsetprop ${scobj_hpath}/amps oldval 0.0
|
||||
hsetprop ${scobj_hpath}/amps sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/amps type "part"
|
||||
hsetprop ${scobj_hpath}/amps nxalias "${name}_amps"
|
||||
|
||||
hfactory ${scobj_hpath}/relay plain user int
|
||||
hsetprop ${scobj_hpath}/relay read ${ns}::getValue ${scobj_hpath} read_relay {F}
|
||||
@ -258,7 +264,9 @@ proc ::scobj::isotech_ps::mk_sct_isotech_ps { sct_controller name } {
|
||||
hsetprop ${scobj_hpath}/relay mutable true
|
||||
hsetprop ${scobj_hpath}/relay nxsave true
|
||||
hsetprop ${scobj_hpath}/relay oldval 0
|
||||
hsetprop ${scobj_hpath}/relay sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/relay type "part"
|
||||
hsetprop ${scobj_hpath}/relay nxalias "${name}_relay"
|
||||
|
||||
hfactory ${scobj_hpath}/volts plain user float
|
||||
hsetprop ${scobj_hpath}/volts read ${ns}::getValue ${scobj_hpath} rdValue {V}
|
||||
@ -272,7 +280,9 @@ proc ::scobj::isotech_ps::mk_sct_isotech_ps { sct_controller name } {
|
||||
hsetprop ${scobj_hpath}/volts nxsave true
|
||||
hsetprop ${scobj_hpath}/volts units V
|
||||
hsetprop ${scobj_hpath}/volts oldval 0.0
|
||||
hsetprop ${scobj_hpath}/volts sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/volts type "part"
|
||||
hsetprop ${scobj_hpath}/volts nxalias "${name}_volts"
|
||||
|
||||
if {[SplitReply [environment_simulation]]=="false"} {
|
||||
${sct_controller} poll ${scobj_hpath}/amps 5
|
||||
@ -282,6 +292,7 @@ proc ::scobj::isotech_ps::mk_sct_isotech_ps { sct_controller name } {
|
||||
${sct_controller} write ${scobj_hpath}/volts
|
||||
}
|
||||
hsetprop ${scobj_hpath} klass environment
|
||||
# hook code goes here
|
||||
} catch_message ]
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
}
|
||||
|
Reference in New Issue
Block a user