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:
Ferdi Franceschini
2012-07-13 15:48:30 +10:00
committed by Douglas Clowes
parent d85341b8fc
commit a6fd5af72c

View File

@@ -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