Made the isobus address configurable for the Oxford Mercury ITC.
NOTE: Address is option and defaults to @1 Eg Set tol=5.0 and isobus address= @8 for the Mercury ITC add_itc500 tc1 localhost 7777 5.0 "@8" r3642 | ffr | 2012-07-13 15:48:30 +1000 (Fri, 13 Jul 2012) | 5 lines
This commit is contained in:
committed by
Douglas Clowes
parent
d85341b8fc
commit
a6fd5af72c
@@ -15,7 +15,7 @@ namespace eval ::scobj::itc500 {
|
||||
|
||||
proc getValue {nextState cmd} {
|
||||
debug_log "getValue $cmd sct=[sct]"
|
||||
sct send "@1$cmd"
|
||||
sct send "$cmd"
|
||||
return $nextState
|
||||
}
|
||||
proc setValue {tc_root nextState cmd} {
|
||||
@@ -26,7 +26,7 @@ debug_log "setValue $cmd sct=[sct]"
|
||||
} else {
|
||||
set par "[sct target]"
|
||||
}
|
||||
sct send "@1$cmd $par"
|
||||
sct send "$cmd $par"
|
||||
debug_log "setValue $cmd $par"
|
||||
return $nextState
|
||||
}
|
||||
@@ -44,7 +44,7 @@ debug_log "setPoint $tc_root $nextState $cmd sct=[sct]"
|
||||
# Called by drive adapter
|
||||
hsetprop $tc_root/setpoint driving 1
|
||||
}
|
||||
sct send "@1$cmd$par"
|
||||
sct send "$cmd$par"
|
||||
debug_log "setPoint $cmd$par"
|
||||
return $nextState
|
||||
}
|
||||
@@ -92,7 +92,7 @@ debug_log "rdValue new data for $tc_root [sct] $my_model result=$data"
|
||||
return idle
|
||||
}
|
||||
|
||||
proc getState {tc_root nextState cmd} {
|
||||
proc getState {tc_root nextState addr cmd} {
|
||||
debug_log "getState $tc_root $nextState $cmd sct=[sct]"
|
||||
if {[ catch {
|
||||
set my_state "[SplitReply [hgetprop $tc_root/itc500_state my_state]]"
|
||||
@@ -123,7 +123,7 @@ debug_log "getState $tc_root $nextState $cmd sct=[sct]"
|
||||
hsetprop $tc_root/itc500_state my_state "STATE_X"
|
||||
set my_cmd "X"
|
||||
}
|
||||
sct send "@1$my_cmd"
|
||||
sct send "${addr}$my_cmd"
|
||||
debug_log "getState end $tc_root state=$my_state, cmd=$my_cmd"
|
||||
} catch_message ]} {
|
||||
debug_log "getState error: $catch_message"
|
||||
@@ -324,7 +324,7 @@ debug_log "halt $tc_root"
|
||||
return idle
|
||||
}
|
||||
|
||||
proc mk_sct_oxford_itc500 {sct_controller klass tempobj tol} {
|
||||
proc mk_sct_oxford_itc500 {sct_controller klass tempobj tol addr } {
|
||||
if {[ catch {
|
||||
set ns ::scobj::itc500
|
||||
|
||||
@@ -334,8 +334,8 @@ debug_log "halt $tc_root"
|
||||
|
||||
set scobj_hpath /sics/$tempobj
|
||||
hfactory $scobj_hpath/setpoint plain user float
|
||||
hsetprop $scobj_hpath/setpoint read ${ns}::getValue rdValue "R0"
|
||||
hsetprop $scobj_hpath/setpoint write ${ns}::setPoint $scobj_hpath noResponse "T"
|
||||
hsetprop $scobj_hpath/setpoint read ${ns}::getValue rdValue "${addr}R0"
|
||||
hsetprop $scobj_hpath/setpoint write ${ns}::setPoint $scobj_hpath noResponse "${addr}T"
|
||||
hsetprop $scobj_hpath/setpoint check ${ns}::check $scobj_hpath
|
||||
hsetprop $scobj_hpath/setpoint rdValue ${ns}::rdValue $scobj_hpath
|
||||
hsetprop $scobj_hpath/setpoint noResponse ${ns}::noResponse
|
||||
@@ -349,7 +349,7 @@ debug_log "halt $tc_root"
|
||||
|
||||
hfactory $scobj_hpath/sensor plain spy none
|
||||
hfactory $scobj_hpath/sensor/value plain internal float
|
||||
hsetprop $scobj_hpath/sensor/value read ${ns}::getValue rdValue "R1"
|
||||
hsetprop $scobj_hpath/sensor/value read ${ns}::getValue rdValue "${addr}R1"
|
||||
hsetprop $scobj_hpath/sensor/value rdValue ${ns}::rdValue $scobj_hpath
|
||||
hsetprop $scobj_hpath/sensor/value oldval UNKNOWN
|
||||
hsetprop $scobj_hpath/sensor/value lowerlimit 1.5
|
||||
@@ -358,7 +358,7 @@ debug_log "halt $tc_root"
|
||||
|
||||
hfactory $scobj_hpath/sensor2 plain spy none
|
||||
hfactory $scobj_hpath/sensor2/value plain internal float
|
||||
hsetprop $scobj_hpath/sensor2/value read ${ns}::getValue rdValue "R2"
|
||||
hsetprop $scobj_hpath/sensor2/value read ${ns}::getValue rdValue "${addr}R2"
|
||||
hsetprop $scobj_hpath/sensor2/value rdValue ${ns}::rdValue $scobj_hpath
|
||||
hsetprop $scobj_hpath/sensor2/value oldval UNKNOWN
|
||||
hsetprop $scobj_hpath/sensor2/value lowerlimit 0.25
|
||||
@@ -367,7 +367,7 @@ debug_log "halt $tc_root"
|
||||
|
||||
hfactory $scobj_hpath/sensor3 plain spy none
|
||||
hfactory $scobj_hpath/sensor3/value plain internal float
|
||||
hsetprop $scobj_hpath/sensor3/value read ${ns}::getValue rdValue "R3"
|
||||
hsetprop $scobj_hpath/sensor3/value read ${ns}::getValue rdValue "${addr}R3"
|
||||
hsetprop $scobj_hpath/sensor3/value rdValue ${ns}::rdValue $scobj_hpath
|
||||
hsetprop $scobj_hpath/sensor3/value oldval UNKNOWN
|
||||
hsetprop $scobj_hpath/sensor3/value lowerlimit 1.0
|
||||
@@ -375,17 +375,17 @@ debug_log "halt $tc_root"
|
||||
hsetprop $scobj_hpath/sensor3/value units "K"
|
||||
|
||||
hfactory $scobj_hpath/heating_power_percent plain internal float
|
||||
hsetprop $scobj_hpath/heating_power_percent read ${ns}::getValue rdValue "R5"
|
||||
hsetprop $scobj_hpath/heating_power_percent read ${ns}::getValue rdValue "${addr}R5"
|
||||
hsetprop $scobj_hpath/heating_power_percent rdValue ${ns}::rdValue $scobj_hpath
|
||||
hsetprop $scobj_hpath/heating_power_percent oldval UNKNOWN
|
||||
|
||||
hfactory $scobj_hpath/heating_power_volts plain internal float
|
||||
hsetprop $scobj_hpath/heating_power_volts read ${ns}::getValue rdValue "R6"
|
||||
hsetprop $scobj_hpath/heating_power_volts read ${ns}::getValue rdValue "${addr}R6"
|
||||
hsetprop $scobj_hpath/heating_power_volts rdValue ${ns}::rdValue $scobj_hpath
|
||||
hsetprop $scobj_hpath/heating_power_volts oldval UNKNOWN
|
||||
|
||||
hfactory $scobj_hpath/gas_flow plain internal float
|
||||
hsetprop $scobj_hpath/gas_flow read ${ns}::getValue rdValue "R7"
|
||||
hsetprop $scobj_hpath/gas_flow read ${ns}::getValue rdValue "${addr}R7"
|
||||
hsetprop $scobj_hpath/gas_flow rdValue ${ns}::rdValue $scobj_hpath
|
||||
hsetprop $scobj_hpath/gas_flow oldval UNKNOWN
|
||||
|
||||
@@ -409,19 +409,19 @@ debug_log "halt $tc_root"
|
||||
hset $scobj_hpath/apply_tolerance 1
|
||||
|
||||
hfactory $scobj_hpath/proportional_band plain user float
|
||||
hsetprop $scobj_hpath/proportional_band read ${ns}::getValue rdValue "R8"
|
||||
hsetprop $scobj_hpath/proportional_band read ${ns}::getValue rdValue "${addr}R8"
|
||||
hsetprop $scobj_hpath/proportional_band rdValue ${ns}::rdValue $scobj_hpath
|
||||
hsetprop $scobj_hpath/proportional_band oldval 30.0
|
||||
hset $scobj_hpath/proportional_band 30.0
|
||||
|
||||
hfactory $scobj_hpath/integral_time plain user float
|
||||
hsetprop $scobj_hpath/integral_time read ${ns}::getValue rdValue "R9"
|
||||
hsetprop $scobj_hpath/integral_time read ${ns}::getValue rdValue "${addr}R9"
|
||||
hsetprop $scobj_hpath/integral_time rdValue ${ns}::rdValue $scobj_hpath
|
||||
hsetprop $scobj_hpath/integral_time oldval 2.0
|
||||
hset $scobj_hpath/integral_time 2.0
|
||||
|
||||
hfactory $scobj_hpath/derivative_time plain user float
|
||||
hsetprop $scobj_hpath/derivative_time read ${ns}::getValue rdValue "R10"
|
||||
hsetprop $scobj_hpath/derivative_time read ${ns}::getValue rdValue "${addr}R10"
|
||||
hsetprop $scobj_hpath/derivative_time rdValue ${ns}::rdValue $scobj_hpath
|
||||
hsetprop $scobj_hpath/derivative_time oldval 0.0
|
||||
hset $scobj_hpath/derivative_time 0.0
|
||||
@@ -438,7 +438,7 @@ debug_log "halt $tc_root"
|
||||
hsetprop $scobj_hpath/status values busy,idle
|
||||
|
||||
hfactory $scobj_hpath/itc500_state plain spy text
|
||||
hsetprop $scobj_hpath/itc500_state read ${ns}::getState $scobj_hpath rdState "X"
|
||||
hsetprop $scobj_hpath/itc500_state read ${ns}::getState $scobj_hpath rdState $addr "X"
|
||||
hsetprop $scobj_hpath/itc500_state rdState ${ns}::rdState $scobj_hpath
|
||||
hsetprop $scobj_hpath/itc500_state oldval UNKNOWN
|
||||
hsetprop $scobj_hpath/itc500_state my_state "STATE_V"
|
||||
@@ -485,7 +485,7 @@ debug_log "halt $tc_root"
|
||||
}
|
||||
|
||||
::scobj::hinitprops $tempobj
|
||||
hsetprop $scobj_hpath klass NXenvironment
|
||||
hsetprop $scobj_hpath klass environment
|
||||
::scobj::set_required_props $scobj_hpath
|
||||
hsetprop $scobj_hpath type part
|
||||
foreach snsr {sensor sensor2 sensor3} {
|
||||
@@ -523,14 +523,14 @@ debug_log "halt $tc_root"
|
||||
# @param IP, the IP address of the device, this can be a hostname, (eg ca1-kowari)
|
||||
# @param port, the IP protocol port number of the device
|
||||
# @param _tol (optional), this is the initial tolerance setting
|
||||
proc add_itc500 {name IP port {_tol 5.0}} {
|
||||
proc add_itc500 {name IP port {_tol 5.0} {addr "@1"} } {
|
||||
set fd [open "/tmp/itc500.log" a]
|
||||
if {[SplitReply [environment_simulation]]=="false"} {
|
||||
puts $fd "makesctcontroller sct_itc500 oxford ${IP}:$port"
|
||||
makesctcontroller sct_itc500 oxford ${IP}:$port
|
||||
}
|
||||
puts $fd "mk_sct_oxford_itc500 sct_itc500 environment $name $_tol"
|
||||
mk_sct_oxford_itc500 sct_itc500 environment $name $_tol
|
||||
puts $fd "mk_sct_oxford_itc500 sct_itc500 environment $name $_tol $addr"
|
||||
mk_sct_oxford_itc500 sct_itc500 environment $name $_tol $addr
|
||||
puts $fd "makesctemon $name /sics/$name/emon/monmode /sics/$name/emon/isintol /sics/$name/emon/errhandler"
|
||||
makesctemon $name /sics/$name/emon/monmode /sics/$name/emon/isintol /sics/$name/emon/errhandler
|
||||
close $fd
|
||||
|
||||
Reference in New Issue
Block a user