Pullback from Wombat 2015-04-17

This commit is contained in:
Douglas Clowes
2015-04-17 13:12:42 +10:00
parent 25d73eb17a
commit f2568b681d
3 changed files with 232 additions and 168 deletions

View File

@ -1,166 +1,230 @@
# cf commands for driving sample environment
# ajs feb 2015
# cf namespace
# assumes tc1 and tc2 are the cf8 336 and 340 lakeshores for now
namespace eval cf {
variable wall_lag 10
variable wall_max 300
variable sample_tolerance 5
variable wall_tolerance 5
variable wall_set true
variable base_set true
variable base_control true
variable wall_control true
proc UseWall {_wall_set _wall_control} {
variable wall_set
variable wall_control
if {$_wall_set == false} {set wall_set false} else {set wall_set true}
if {$_wall_control == false} {set wall_control false} else {set wall_control true}
}
proc UseBase {_base_set _base_control} {
variable base_set
variable base_control
if {$_base_set == false} {set base_set false} else {set base_set true}
if {$_base_control == false} {set base_control false} else {set base_control true}
}
proc WallParams {_wall_lag _wall_max _wall_tolerance} {
variable wall_lag
variable wall_max
variable wall_tolerance
set wall_lag $_wall_lag
set wall_max $_wall_max
set wall_tolerance $_wall_tolerance
hset /sample/tc2/control/tolerance1 $wall_tolerance
}
proc TempSet {temp} {
variable wall_lag
variable wall_max
variable base_set
variable wall_set
set tempc [expr {$temp - $wall_lag}]
if {$tempc < 4} {set tempc 4}
if {$tempc > $wall_max} {set tempc $wall_max}
hset /sample/tc1/sensor/setpoint1 $temp
if {$base_set} {hset /sample/tc1/sensor/setpoint2 $tempc}
if {$wall_set} {hset /sample/tc2/sensor/setpoint1 $tempc}
}
proc TempDrive {temp} {
variable wall_lag
variable wall_max
variable base_control
variable wall_control
TempSet $temp
set tempc [expr {$temp - $wall_lag}]
if {$tempc < 4} {set tempc 4}
if {$tempc > $wall_max} {set tempc $wall_max}
set drstr "drive tc1_driveable \$temp"
if {$base_control} {append drstr " tc1_driveable2 \$tempc"}
if {$wall_control} {append drstr " tc2_driveable \$tempc"}
eval $drstr
}
proc Tolerance {sample} {
hset /sample/tc1/control/tolerance1 $sample
hset /sample/tc1/control/tolerance2 $sample
}
proc MakeCold {} {
variable sample_tolerance
variable wall_tolerance
Tolerance 20
hset /sample/tc2/control/tolerance1 20
hset /sample/tc2/sensor/setpoint1 4
TempDrive 4
Tolerance $sample_tolerance
hset /sample/tc2/control/tolerance1 $wall_tolerance
wait 300
}
proc TempRun {temp delay numsteps oscno} {
TempDrive $temp
wait $delay
newfile HISTOGRAM_XY
for {set i 0} {$i < $numsteps} {incr i} {
oct oscillate_count $oscno
oct oscillate start
hmm countblock
save $i
}
}
proc RampRun {start step fin oscno delay} {
histmem mode unlimited
newfile HISTOGRAM_XY
set loopvar 1
set i 0
while {$loopvar} {
set j [expr {$i*$step+$start}]
if {$j> $fin && $step > 0} {break}
if {$j< $fin && $step < 0} {break}
TempSet $j
wait $delay
oct oscillate_count $oscno
oct oscillate start
hmm countblock
save $i
incr i
}
}
proc StepRun {start step fin oscno delay} {
histmem mode unlimited
newfile HISTOGRAM_XY
set loopvar 1
set i 0
while {$loopvar} {
set j [expr {$i*$step+$start}]
if {$j> $fin && $step > 0} {break}
if {$j< $fin && $step < 0} {break}
TempDrive $j
wait $delay
oct oscillate_count $oscno
oct oscillate start
hmm countblock
save $i
incr i
}
}
proc HeaterOn {} {
variable base_set
variable wall_set
hset /sample/tc1/heater/heaterRange_1 4
if {$base_set} {hset /sample/tc1/heater/heaterRange_2 4}
if {$wall_set} {hset /sample/tc2/heater/heaterRange 5}
}
proc GetTemp {} {
variable base_set
set t1top [hget /sample/tc1/sensor/sensorValueA]
broadcast "sample top : $t1top"
if {$base_set} {
set t1base [hget /sample/tc1/sensor/sensorValueB]
broadcast "sample base: $t1base"
}
set t1wall [hget /sample/tc2/sensor/sensorValueA]
broadcast "sample wall: $t1wall"
}
namespace export *
namespace ensemble create
}
publish cf user
# cf commands for driving sample environment
# ajs feb 2015
# cf namespace
# assumes tc1 and tc2 are the cf8 336 and 340 lakeshores for now
namespace eval cf {
variable wall_lag 10
variable wall_max 200
variable sample_tolerance 5
variable wall_tolerance 5
variable wall_set true
variable base_set true
variable base_control true
variable wall_control true
proc UseWall {_wall_set _wall_control} {
variable wall_set
variable wall_control
if {$_wall_set == false} {set wall_set false} else {set wall_set true}
if {$_wall_control == false} {set wall_control false} else {set wall_control true}
}
proc UseBase {_base_set _base_control} {
variable base_set
variable base_control
if {$_base_set == false} {set base_set false} else {set base_set true}
if {$_base_control == false} {set base_control false} else {set base_control true}
}
proc RampOn {rate} {
variable base_set
variable wall_set
hset /sample/tc1/control/ramp_Loop_1 1,$rate
if {$base_set} {hset /sample/tc1/control/ramp_Loop_2 1,$rate}
if {$wall_set} {hset /sample/tc2/control/ramp_Loop_1 1,$rate}
wait 5
}
proc RampOff {} {
variable base_set
variable wall_set
hset /sample/tc1/control/ramp_Loop_1 0,5
if {$base_set} {hset /sample/tc1/control/ramp_Loop_2 0,5}
if {$wall_set} {hset /sample/tc2/control/ramp_Loop_1 0,5}
wait 5
}
proc WallParams {_wall_lag _wall_max _wall_tolerance} {
variable wall_lag
variable wall_max
variable wall_tolerance
set wall_lag $_wall_lag
set wall_max $_wall_max
set wall_tolerance $_wall_tolerance
hset /sample/tc2/control/tolerance1 $wall_tolerance
}
proc TempSet {temp} {
variable wall_lag
variable wall_max
variable base_set
variable wall_set
set tempc [expr {$temp - $wall_lag}]
if {$tempc < 4} {set tempc 4}
if {$tempc > $wall_max} {set tempc $wall_max}
hset /sample/tc1/sensor/setpoint1 $temp
if {$base_set} {hset /sample/tc1/sensor/setpoint2 $temp}
if {$wall_set} {hset /sample/tc2/sensor/setpoint1 $tempc}
}
proc TempDrive {temp} {
variable wall_lag
variable wall_max
variable base_control
variable wall_control
TempSet $temp
set tempc [expr {$temp - $wall_lag}]
if {$tempc < 4} {set tempc 4}
if {$tempc > $wall_max} {set tempc $wall_max}
set drstr "drive tc1_driveable \$temp"
if {$base_control} {append drstr " tc1_driveable2 \$temp"}
if {$wall_control} {append drstr " tc2_driveable \$tempc"}
eval $drstr
}
proc Tolerance {sample} {
hset /sample/tc1/control/tolerance1 $sample
hset /sample/tc1/control/tolerance2 $sample
}
proc MakeCold {} {
variable sample_tolerance
variable wall_tolerance
Tolerance 20
hset /sample/tc2/control/tolerance1 20
hset /sample/tc2/sensor/setpoint1 4
TempDrive 4
Tolerance $sample_tolerance
hset /sample/tc2/control/tolerance1 $wall_tolerance
wait 300
}
proc TempRun {temp delay numsteps oscno} {
RampOff
TempDrive $temp
wait $delay
newfile HISTOGRAM_XY
for {set i 0} {$i < $numsteps} {incr i} {
oct oscillate_count $oscno
oct oscillate start
hmm countblock
save $i
}
}
proc StepRun {start step fin oscno delay} {
RampOff
histmem mode unlimited
newfile HISTOGRAM_XY
set loopvar 1
set i 0
while {$loopvar} {
set j [expr {$i*$step+$start}]
if {$j> $fin && $step > 0} {break}
if {$j< $fin && $step < 0} {break}
TempSet $j
wait $delay
oct oscillate_count $oscno
oct oscillate start
hmm countblock
save $i
incr i
}
}
proc StepWaitRun {start step fin oscno delay} {
RampOff
histmem mode unlimited
newfile HISTOGRAM_XY
set loopvar 1
set i 0
while {$loopvar} {
set j [expr {$i*$step+$start}]
if {$j> $fin && $step > 0} {break}
if {$j< $fin && $step < 0} {break}
TempDrive $j
wait $delay
oct oscillate_count $oscno
oct oscillate start
hmm countblock
save $i
incr i
}
}
proc RampRun {start rate fin oscno} {
RampOff
TempSet $start
wait 5
set tim1 [clock seconds]
set tlength [expr abs($start-$fin)/($rate/60.0)]
broadcast $rate $tlength
RampOn $rate
wait 5
TempSet $fin
set bool 0
set i 0
histmem mode unlimited
newfile HISTOGRAM_XY
while {$bool==0} {
oct oscillate_count $oscno
oct oscillate start
hmm countblock
save $i
incr i
set tim2 [expr [clock seconds]-$tim1]
broadcast $tim2
if {$tim2>$tlength} {set bool 1}
}
RampOff
}
proc HeaterOn {} {
variable base_set
variable wall_set
hset /sample/tc1/heater/heaterRange_1 4
if {$base_set} {hset /sample/tc1/heater/heaterRange_2 4}
if {$wall_set} {hset /sample/tc2/heater/heaterRange 5}
}
proc HeaterOff {} {
variable base_set
variable wall_set
hset /sample/tc1/heater/heaterRange_1 0
if {$base_set} {hset /sample/tc1/heater/heaterRange_2 0}
if {$wall_set} {hset /sample/tc2/heater/heaterRange 0}
}
proc GetTemp {} {
variable base_set
set t1top [hget /sample/tc1/sensor/sensorValueA]
broadcast "sample top : $t1top"
if {$base_set} {
set t1base [hget /sample/tc1/sensor/sensorValueB]
broadcast "sample base: $t1base"
}
set t1wall [hget /sample/tc2/sensor/sensorValueA]
broadcast "sample wall: $t1wall"
}
namespace export *
namespace ensemble create
}
publish cf user

View File

@ -28,7 +28,7 @@ proc ::histogram_memory::init_OAT_TABLE {args} {
hmm configure fat_frame_source INTERNAL
set resolution "double_x"
# set resolution "double_x"
switch $resolution {
"hires" {

View File

@ -97,7 +97,7 @@ SetVoltScale 1000.0
# LS336 02 at 205.29
# add_sct_ls336 tc2 10.157.205.30 7777 "\r\n" 1.0 1.0
# add_sct_ls336 tc1 10.157.205.31 7777 "\r\n" 1.0 1.0
# add_sct_ls340 tc3 137.157.201.86 4001 "\r\n" 1.0 1.0
# add_sct_ls340 tc3 137.157.201.86 4002 "\r\n" 1.0 1.0
server_init
###########################################