Moved the pre_count and post_count procs to quokka's environment.tcl because
their definition is specific to quokka. They have also been modified to include the lakeshore readings. r3364 | ffr | 2012-02-12 18:55:07 +1100 (Sun, 12 Feb 2012) | 4 lines
This commit is contained in:
committed by
Douglas Clowes
parent
d52e112481
commit
3b4247c8d2
@@ -23,8 +23,9 @@
|
|||||||
# @param basePath, The object path, this is where we keep our state variables.
|
# @param basePath, The object path, this is where we keep our state variables.
|
||||||
|
|
||||||
proc debug_log {args} {
|
proc debug_log {args} {
|
||||||
set fd [open "../log/magnetic.log" a]
|
set d1 [clock format [clock seconds] -format %d%h%Y]
|
||||||
puts $fd "[clock format [clock seconds] -format "%T"] $args"
|
set fd [open "../log/magnetic$d1.log" a]
|
||||||
|
puts $fd "[clock format [clock seconds] -format "%D %T"] $args"
|
||||||
close $fd
|
close $fd
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,7 +44,7 @@ proc ::scobj::magnetic::checkReplyFunc {basePath} {
|
|||||||
# set replyStr [sct result]
|
# set replyStr [sct result]
|
||||||
#analysis the reply from the Oxford Device
|
#analysis the reply from the Oxford Device
|
||||||
# if {[string first "Error" $replyStr] != -1} {
|
# if {[string first "Error" $replyStr] != -1} {
|
||||||
# broadcast "ERROR: Oxford Device cannot set the new target value, check again!!"
|
# broadcast "Error: Oxford Device cannot set the new target value, check again!!"
|
||||||
# }
|
# }
|
||||||
return idle
|
return idle
|
||||||
}
|
}
|
||||||
@@ -61,18 +62,21 @@ proc ::scobj::magnetic::rqFieldFunc {} {
|
|||||||
# @brief Read and record the Magnetific Field value from the Oxford Device
|
# @brief Read and record the Magnetific Field value from the Oxford Device
|
||||||
proc ::scobj::magnetic::rdFieldStateFunc {basePath} {
|
proc ::scobj::magnetic::rdFieldStateFunc {basePath} {
|
||||||
set replyStr [sct result]
|
set replyStr [sct result]
|
||||||
debug_log $replyStr
|
#broadcast "getF reply: $replyStr"
|
||||||
#broadcast "getF reply:$replyStr"
|
|
||||||
if {[string first "Error" $replyStr] != -1} {
|
if {[string first "Error" $replyStr] != -1} {
|
||||||
broadcast "ERROR: cannot get the Magnetific Field value from the Oxford Device, check again!"
|
broadcast "Error: cannot get the Magnetific Field value from the Oxford Labview server, check again!"
|
||||||
|
} elseif {[string first "failed" $replyStr] != -1} {
|
||||||
|
broadcast "Error: Connection to Oxford Labview server failed, check connection!"
|
||||||
|
} elseif {[string first "read timeout" $replyStr] != -1} {
|
||||||
|
broadcast "Error: read timeout on the connectiion to the Oxford Labview server"
|
||||||
} else {
|
} else {
|
||||||
|
debug_log [expr $replyStr/10.0]
|
||||||
hset $basePath/magneticField $replyStr
|
hset $basePath/magneticField $replyStr
|
||||||
}
|
}
|
||||||
|
|
||||||
return idle
|
return idle
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# @brief Request a state report from the Oxford Device by sending a Magnetic Temperature request command
|
# @brief Request a state report from the Oxford Device by sending a Magnetic Temperature request command
|
||||||
proc ::scobj::magnetic::rqTempFunc {} {
|
proc ::scobj::magnetic::rqTempFunc {} {
|
||||||
set comm "getT\r\n"
|
set comm "getT\r\n"
|
||||||
@@ -87,7 +91,11 @@ proc ::scobj::magnetic::rdTempStateFunc {basePath} {
|
|||||||
debug_log $replyStr
|
debug_log $replyStr
|
||||||
#broadcast "getT reply:$replyStr\n"
|
#broadcast "getT reply:$replyStr\n"
|
||||||
if {[string first "Error" $replyStr] != -1} {
|
if {[string first "Error" $replyStr] != -1} {
|
||||||
broadcast "ERROR: cannot get the Magnetific Temperature value from the Oxford Device, check again!"
|
broadcast "Error: cannot get the Magnetific Temperature value from the Oxford Labview server, check again!"
|
||||||
|
} elseif {[string first "failed" $replyStr] != -1} {
|
||||||
|
broadcast "Error: Connection to Oxford Labview server failed, check connection!"
|
||||||
|
} elseif {[string first "read timeout" $replyStr] != -1} {
|
||||||
|
broadcast "Error: read timeout on the connectiion to the Oxford Labview server"
|
||||||
} else {
|
} else {
|
||||||
set s1 [string trimright $replyStr "\n"]
|
set s1 [string trimright $replyStr "\n"]
|
||||||
set s2 [split $s1 "=;"]
|
set s2 [split $s1 "=;"]
|
||||||
@@ -100,7 +108,6 @@ proc ::scobj::magnetic::rdTempStateFunc {basePath} {
|
|||||||
return idle
|
return idle
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# @brief Make a Magnetic Controller
|
# @brief Make a Magnetic Controller
|
||||||
#
|
#
|
||||||
@@ -108,7 +115,7 @@ proc ::scobj::magnetic::rdTempStateFunc {basePath} {
|
|||||||
#
|
#
|
||||||
# name: name of magnetic controller object
|
# name: name of magnetic controller object
|
||||||
# IP: IP address of RF generator moxa box
|
# IP: IP address of RF generator moxa box
|
||||||
# PORT: Port number assigned to the generator on the moxa-box
|
# POT: Port number assigned to the generator on the moxa-box
|
||||||
# tuning: boolean, set tuning=1 to allow instrument scientists to set the axe positions
|
# tuning: boolean, set tuning=1 to allow instrument scientists to set the axe positions
|
||||||
# interval: polling and ramping interval in seconds.
|
# interval: polling and ramping interval in seconds.
|
||||||
|
|
||||||
@@ -120,7 +127,7 @@ proc ::scobj::magnetic::mkMagnetic {argList} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
MakeSICSObj $pa(NAME) SCT_OBJECT
|
MakeSICSObj $pa(NAME) SCT_OBJECT
|
||||||
sicslist setatt $pa(NAME) klass instrument
|
#sicslist setatt $pa(NAME) klass environment
|
||||||
sicslist setatt $pa(NAME) long_name $pa(NAME)
|
sicslist setatt $pa(NAME) long_name $pa(NAME)
|
||||||
|
|
||||||
hfactory /sics/$pa(NAME)/field plain user float
|
hfactory /sics/$pa(NAME)/field plain user float
|
||||||
@@ -145,6 +152,30 @@ proc ::scobj::magnetic::mkMagnetic {argList} {
|
|||||||
hfactory /sics/$pa(NAME)/setRate plain user float
|
hfactory /sics/$pa(NAME)/setRate plain user float
|
||||||
hfactory /sics/$pa(NAME)/setTemp plain user float
|
hfactory /sics/$pa(NAME)/setTemp plain user float
|
||||||
|
|
||||||
|
# Initialise properties required for generating the API for GumTree and to save data
|
||||||
|
::scobj::hinitprops $pa(NAME) start_magnetic end_magnetic magneticField
|
||||||
|
::scobj::hinitprops $pa(NAME) start_temperature_s1 end_temperature_s1 Temp_s1
|
||||||
|
::scobj::hinitprops $pa(NAME) start_temperature_s2 end_temperature_s2 Temp_s2
|
||||||
|
::scobj::hinitprops $pa(NAME) start_temperature_s3 end_temperature_s3 Temp_s3
|
||||||
|
|
||||||
|
sicslist setatt $pa(NAME) klass environment
|
||||||
|
|
||||||
|
# proc ::histogram_memory::pre_count "{fPath $pa(NAME)}" {
|
||||||
|
# hset /sics/$fPath/start_magnetic [hval /sics/$fPath/magneticField]
|
||||||
|
|
||||||
|
# hset /sics/$fPath/start_temperature_s1 [hval /sics/$fPath/Temp_s1]
|
||||||
|
# hset /sics/$fPath/start_temperature_s2 [hval /sics/$fPath/Temp_s2]
|
||||||
|
# hset /sics/$fPath/start_temperature_s3 [hval /sics/$fPath/Temp_s3]
|
||||||
|
# }
|
||||||
|
|
||||||
|
# proc ::histogram_memory::post_count "{fPath $pa(NAME)}" {
|
||||||
|
# hset /sics/$fPath/end_magnetic [hval /sics/$fPath/magneticField]
|
||||||
|
|
||||||
|
# hset /sics/$fPath/end_temperature_s1 [hval /sics/$fPath/Temp_s1]
|
||||||
|
# hset /sics/$fPath/end_temperature_s2 [hval /sics/$fPath/Temp_s2]
|
||||||
|
# hset /sics/$fPath/end_temperature_s3 [hval /sics/$fPath/Temp_s3]
|
||||||
|
# }
|
||||||
|
|
||||||
#makesctcontroller sct_magnetic rfamp $pa(IP):$pa(PORT)
|
#makesctcontroller sct_magnetic rfamp $pa(IP):$pa(PORT)
|
||||||
makesctcontroller sct_magnetic std $pa(IP):$pa(PORT)
|
makesctcontroller sct_magnetic std $pa(IP):$pa(PORT)
|
||||||
|
|
||||||
@@ -154,40 +185,22 @@ proc ::scobj::magnetic::mkMagnetic {argList} {
|
|||||||
hsetprop /sics/$pa(NAME)/Temp read ::scobj::magnetic::rqTempFunc
|
hsetprop /sics/$pa(NAME)/Temp read ::scobj::magnetic::rqTempFunc
|
||||||
hsetprop /sics/$pa(NAME)/Temp rdTempState ::scobj::magnetic::rdTempStateFunc /sics/$pa(NAME)
|
hsetprop /sics/$pa(NAME)/Temp rdTempState ::scobj::magnetic::rdTempStateFunc /sics/$pa(NAME)
|
||||||
|
|
||||||
|
if {[SplitReply [environment_simulation]]=="false"} {
|
||||||
|
sct_magnetic poll /sics/$pa(NAME)/field $pa(INTERVAL)
|
||||||
|
sct_magnetic poll /sics/$pa(NAME)/Temp $pa(INTERVAL)
|
||||||
|
}
|
||||||
|
|
||||||
hsetprop /sics/$pa(NAME) tuning $pa(TUNING)
|
hsetprop /sics/$pa(NAME) tuning $pa(TUNING)
|
||||||
|
|
||||||
# Initialise properties required for generating the API for GumTree and to save data
|
|
||||||
::scobj::hinitprops $pa(NAME) start_magnetic end_magnetic magneticField
|
|
||||||
::scobj::hinitprops $pa(NAME) start_temperature_s1 end_temperature_s1 Temp_s1
|
|
||||||
::scobj::hinitprops $pa(NAME) start_temperature_s2 end_temperature_s2 Temp_s2
|
|
||||||
::scobj::hinitprops $pa(NAME) start_temperature_s3 end_temperature_s3 Temp_s3
|
|
||||||
|
|
||||||
sct_magnetic poll /sics/$pa(NAME)/field $pa(INTERVAL)
|
|
||||||
sct_magnetic poll /sics/$pa(NAME)/Temp $pa(INTERVAL)
|
|
||||||
|
|
||||||
if {$pa(TUNING)} {
|
if {$pa(TUNING)} {
|
||||||
hfactory /sics/$pa(NAME)/set_magneticField plain user float
|
hfactory /sics/$pa(NAME)/set_magneticField plain user float
|
||||||
|
|
||||||
hsetprop /sics/$pa(NAME)/set_magneticField write ::scobj::magnetic::setting
|
hsetprop /sics/$pa(NAME)/set_magneticField write ::scobj::magnetic::setting
|
||||||
hsetprop /sics/$pa(NAME)/set_magneticField checkReply ::scobj::magnetic::checkReplyFunc /sics/$pa(NAME)
|
hsetprop /sics/$pa(NAME)/set_magneticField checkReply ::scobj::magnetic::checkReplyFunc /sics/$pa(NAME)
|
||||||
|
|
||||||
sct_magnetic write /sics/$pa(NAME)/set_magneticField $pa(INTERVAL)
|
if {[SplitReply [environment_simulation]]=="false"} {
|
||||||
}
|
sct_magnetic write /sics/$pa(NAME)/set_magneticField
|
||||||
|
}
|
||||||
proc ::histogram_memory::pre_count {} {
|
|
||||||
hset /sics/$pa(NAME)/start_magnetic [hval /sics/$pa(NAME)/magneticField]
|
|
||||||
|
|
||||||
hset /sics/$pa(NAME)/start_temperature_s1 [hval /sics/$pa(NAME)/Temp_s1]
|
|
||||||
hset /sics/$pa(NAME)/start_temperature_s2 [hval /sics/$pa(NAME)/Temp_s2]
|
|
||||||
hset /sics/$pa(NAME)/start_temperature_s3 [hval /sics/$pa(NAME)/Temp_s3]
|
|
||||||
}
|
|
||||||
|
|
||||||
proc ::histogram_memory::post_count {} {
|
|
||||||
hset /sics/$pa(NAME)/end_magnetic [hval /sics/$pa(NAME)/magneticField]
|
|
||||||
|
|
||||||
hset /sics/$pa(NAME)/end_temperature_s1 [hval /sics/$pa(NAME)/Temp_s1]
|
|
||||||
hset /sics/$pa(NAME)/end_temperature_s2 [hval /sics/$pa(NAME)/Temp_s2]
|
|
||||||
hset /sics/$pa(NAME)/end_temperature_s3 [hval /sics/$pa(NAME)/Temp_s3]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user