Merged changes from Quokka as at 2015-02-18

This commit is contained in:
Douglas Clowes
2015-02-19 09:40:49 +11:00
parent 287b671569
commit 8c4eed9bfe
6 changed files with 113 additions and 3 deletions

View File

@ -439,3 +439,88 @@ proc add_julabo_lh45 { name IP port {sensor "bath"} {_tol 5.0} {CID 1} {CTYPE T}
} }
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
} }
namespace eval ::scobj::julabo_lh45 {
set debug_threshold 5
}
proc ::scobj::julabo_lh45::sics_log {debug_level debug_string} {
set catch_status [ catch {
set debug_threshold ${::scobj::julabo_lh45::debug_threshold}
if {${debug_level} >= ${debug_threshold}} {
sicslog "::scobj::julabo_lh45::${debug_string}"
}
} catch_message ]
}
clientput "file evaluation of sct_julabo_lh45.tcl"
::scobj::julabo_lh45::sics_log 9 "file evaluation of sct_julabo_lh45.tcl"
proc ::scobj::julabo_lh45::read_config {} {
set catch_status [ catch {
set ns "::scobj::julabo_lh45"
dict for {k v} $::config_dict {
if { [dict exists $v "implementation"] } {
if { !([dict exists $v "name"] && [dict exists $v "enabled"]) } {
continue
}
set name [dict get $v name]
set enabled [string tolower [dict get $v "enabled"]]
set implementation [dict get $v "implementation"]
if { !([dict exists $::config_dict $implementation]) } {
continue
}
set v [dict get $::config_dict $implementation]
if { !([dict exists $v "driver"]) } {
continue
}
if { [string equal -nocase [dict get $v "driver"] "julabo_lh45"] } {
if { [string equal -nocase $enabled "true" ] || [string equal -nocase $enabled "always"] } {
if { ![string equal -nocase [SplitReply [environment_simulation]] "false"] } {
set asyncqueue "null"
${ns}::sics_log 9 "[environment_simulation] => using null asyncqueue"
} elseif { [dict exists $v "asyncqueue"] } {
set asyncqueue [dict get $v "asyncqueue"]
} else {
if { [dict exists $v "asyncprotocol"] } {
set asyncprotocol [dict get $v "asyncprotocol"]
} else {
set asyncprotocol ${name}_protocol
MakeAsyncProtocol ${asyncprotocol}
if { [dict exists $v "terminator"] } {
${asyncprotocol} sendterminator "[dict get $v "terminator"]"
${asyncprotocol} replyterminator "[dict get $v "terminator"]"
}
}
set asyncqueue ${name}_queue
set IP [dict get $v ip]
set PORT [dict get $v port]
MakeAsyncQueue ${asyncqueue} ${asyncprotocol} ${IP} ${PORT}
if { [dict exists $v "timeout"] } {
${asyncqueue} timeout "[dict get $v "timeout"]"
}
}
set arg_list [list]
foreach arg {ctrl_sensor tol id type} {
if {[dict exists $v $arg]} {
lappend arg_list "[dict get $v $arg]"
} else {
${ns}::sics_log 9 "Missing configuration value $arg"
error "Missing configuration value $arg"
}
}
add_julabo_lh45 ${name} "aqadapter" ${asyncqueue} {*}$arg_list
}
}
}
}
} catch_message ]
handle_exception ${catch_status} ${catch_message}
}
if { [info exists ::config_dict] } {
::scobj::julabo_lh45::read_config
} else {
::scobj::julabo_lh45::sics_log 5 "No config dict"
}

View File

@ -50,7 +50,7 @@ namespace eval ::scobj::[set vendor]_[set device] {
proc debug_log {debug_level arg_string} { proc debug_log {debug_level arg_string} {
# write a timestamped string message to a log file for debugging # write a timestamped string message to a log file for debugging
set debug_threshold 0 set debug_threshold 5
if {$debug_level >= $debug_threshold} { if {$debug_level >= $debug_threshold} {
set fd [open "[set [namespace current]::log_file]" "a"] set fd [open "[set [namespace current]::log_file]" "a"]
set line "[clock format [clock seconds] -format "%T"] $arg_string" set line "[clock format [clock seconds] -format "%T"] $arg_string"

View File

@ -1471,6 +1471,26 @@ sicslist setatt ::histogram_memory::ratemap_xy_total klass detector
sicslist setatt ::histogram_memory::ratemap_xy_total long_name total_maprate sicslist setatt ::histogram_memory::ratemap_xy_total long_name total_maprate
sicslist setatt ::histogram_memory::ratemap_xy_total mutable true sicslist setatt ::histogram_memory::ratemap_xy_total mutable true
# Returns 0 If all trips acknowledged, -n if n trips unacknowledged, +n if too many acks?
::utility::macro::getset float ::histogram_memory::reset_trip {args} {
set num_trips [ SplitReply [hmm configure detector_protect_num_trip] ]
set num_acks [ SplitReply [hmm configure detector_protect_num_trip_ack] ]
set trip_cnt_diff [expr {$num_acks - $num_trips}]
if {$args == ""} {
return "reset_trip = $trip_cnt_diff"
} else {
if {$trip_cnt_diff != 0} {
hmm configure fat_detector_protect_num_trip_ack $num_trips
hmm astop
wait 2
hmm init
}
}
}
sicslist setatt ::histogram_memory::reset_trip klass detector
sicslist setatt ::histogram_memory::reset_trip long_name reset_trip
sicslist setatt ::histogram_memory::reset_trip data false
## ##
# @brief Update the beam monitors when the histmem has finished counting. # @brief Update the beam monitors when the histmem has finished counting.
proc ::histogram_memory::countend_event {} { proc ::histogram_memory::countend_event {} {

View File

@ -33,8 +33,12 @@ proc ::scobj::antonparr_MCR500::mkDriver { speed_name torque_name tol settle } {
set catch_status [ catch { set catch_status [ catch {
# mkDriver hook code starts # mkDriver hook code starts
if [::utility::obj_exists $speed_name] {
add_rheo $speed_name $tol $settle add_rheo $speed_name $tol $settle
}
if [::utility::obj_exists $torque_name] {
add_rheo $torque_name $tol $settle add_rheo $torque_name $tol $settle
}
# mkDriver hook code ends # mkDriver hook code ends
} catch_message ] } catch_message ]
handle_exception ${catch_status} ${catch_message} handle_exception ${catch_status} ${catch_message}

View File

@ -100,4 +100,5 @@ proc add_rheo {rhControl tol settle} {
hfactory /sics/$rhControl/settletime plain user float hfactory /sics/$rhControl/settletime plain user float
hset /sics/$rhControl/settletime $settle hset /sics/$rhControl/settletime $settle
hsetprop /sics/$rhControl timecheck 0 hsetprop /sics/$rhControl timecheck 0
hsetprop /sics/$rhControl callBack "rhCallBack /sics/$rhControl"
} }

View File

@ -718,7 +718,7 @@ Motor apx $motor_driver_type [params \
axis E\ axis E\
units mm\ units mm\
hardlowerlim -260\ hardlowerlim -260\
hardupperlim 5\ hardupperlim 45\
maxSpeed 5\ maxSpeed 5\
maxAccel 5\ maxAccel 5\
maxDecel 5\ maxDecel 5\
@ -730,7 +730,7 @@ apx part collimator
apx long_name apx apx long_name apx
apx home 0 apx home 0
apx softlowerlim -255 apx softlowerlim -255
apx softupperlim 5 apx softupperlim 45
apx speed 5 apx speed 5
# Sample aperture y # Sample aperture y