Fix up whitespace.

This commit is contained in:
Ferdi Franceschini
2015-03-13 11:57:56 +11:00
parent e7e2e87b83
commit 88c1f007fa
3 changed files with 537 additions and 537 deletions

View File

@ -6,340 +6,340 @@ set motdir 1
set pulserstate 0 set pulserstate 0
proc SetVoltScale {newscaleval} { proc SetVoltScale {newscaleval} {
global scaleval global scaleval
set scaleval $newscaleval set scaleval $newscaleval
} }
proc VoltScale {involt} { proc VoltScale {involt} {
global scaleval global scaleval
return [expr {($involt*1.0)/$scaleval}] return [expr {($involt*1.0)/$scaleval}]
} }
proc SetRampParms {_rampstep _rampdelay} { proc SetRampParms {_rampstep _rampdelay} {
global rampstep rampdelay global rampstep rampdelay
set rampstep $_rampstep set rampstep $_rampstep
set rampdelay $_rampdelay set rampdelay $_rampdelay
} }
proc SetVolt {volt} { proc SetVolt {volt} {
global pulserstate global pulserstate
if {$volt== 0} { if {$volt== 0} {
PulserOff PulserOff
set pulserstate 0 set pulserstate 0
} else { } else {
set pulservolt [VoltScale $volt] set pulservolt [VoltScale $volt]
# sct_pulser send "VOLT:OFFS $pulservolt; OFFS?" # sct_pulser send "VOLT:OFFS $pulservolt; OFFS?"
# PulserDC $pulservolt # PulserDC $pulservolt
if {$pulserstate==0} { if {$pulserstate==0} {
PulserDC $pulservolt PulserDC $pulservolt
PulserOn PulserOn
set pulserstate 1 set pulserstate 1
} else { } else {
sct_pulser send "VOLT:OFFS $pulservolt; OFFS?" sct_pulser send "VOLT:OFFS $pulservolt; OFFS?"
PulserOn PulserOn
} }
} }
} }
proc VoltSetStep {start step fin delay} { proc VoltSetStep {start step fin delay} {
set i [expr {$start*1.0}] set i [expr {$start*1.0}]
set loopvar 1 set loopvar 1
SetVolt $i SetVolt $i
if {($start == $fin) || ($step == 0)} {break} if {($start == $fin) || ($step == 0)} {break}
while {$loopvar} { while {$loopvar} {
wait $delay wait $delay
if {($start < $fin)} { if {($start < $fin)} {
set i [expr {$i + abs($step)}] set i [expr {$i + abs($step)}]
if {$i >= $fin} { if {$i >= $fin} {
set i $fin set i $fin
set loopvar 0 set loopvar 0
} }
} }
if {($start > $fin)} { if {($start > $fin)} {
set i [expr {$i - abs($step)}] set i [expr {$i - abs($step)}]
if {$i <= $fin} { if {$i <= $fin} {
set i $fin set i $fin
set loopvar 0 set loopvar 0
} }
} }
SetVolt $i SetVolt $i
} }
} }
proc GetVolt {} { proc GetVolt {} {
sct_pulser transact VOLT:OFFS? sct_pulser transact VOLT:OFFS?
} }
proc SingleVolt {volt oscno} { proc SingleVolt {volt oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
SetVolt $volt SetVolt $volt
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
save 0 save 0
} }
proc SetDC {} { proc SetDC {} {
pulseroff pulseroff
#NOTE: Setting FUNC DC generates a remote ctrl error if the #NOTE: Setting FUNC DC generates a remote ctrl error if the
# burst mode happens to be on # burst mode happens to be on
set resp [sct_pulser send "BURS:STAT OFF;:FUNC DC;:VOLT:OFFS 0; OFFS?"] set resp [sct_pulser send "BURS:STAT OFF;:FUNC DC;:VOLT:OFFS 0; OFFS?"]
pulseron pulseron
} }
proc VoltRamp {start step fin oscno} { proc VoltRamp {start step fin oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
set loopvar 1 set loopvar 1
set i 0 set i 0
while {$loopvar} { while {$loopvar} {
set j [expr {$i*$step+$start}] set j [expr {$i*$step+$start}]
if {$j> $fin && $step > 0} {break} if {$j> $fin && $step > 0} {break}
if {$j< $fin && $step < 0} {break} if {$j< $fin && $step < 0} {break}
SetVolt $j SetVolt $j
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $i save $i
incr i incr i
} }
} }
proc SingleVTexScan {mot tstart tstep tfin oscno} { proc SingleVTexScan {mot tstart tstep tfin oscno} {
global motdir global motdir
broadcast in singlevtexscan broadcast in singlevtexscan
set loopvar 1 set loopvar 1
set i_bool 0 set i_bool 0
histmem mode unlimited histmem mode unlimited
if {$motdir == 1} { if {$motdir == 1} {
set currentmot $tstart set currentmot $tstart
set i 0 set i 0
} else { } else {
set currentmot $tfin set currentmot $tfin
set i [expr {int(($tfin-$tstart)/$tstep)}] set i [expr {int(($tfin-$tstart)/$tstep)}]
} }
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
while {$i_bool==0} { while {$i_bool==0} {
drive $mot $currentmot drive $mot $currentmot
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $i save $i
if {($motdir > 0)} { if {($motdir > 0)} {
set currentmot [expr {$currentmot + $tstep}] set currentmot [expr {$currentmot + $tstep}]
if {$currentmot > $tfin} {set i_bool 1} if {$currentmot > $tfin} {set i_bool 1}
incr i incr i
} else { } else {
set currentmot [expr {$currentmot - $tstep}] set currentmot [expr {$currentmot - $tstep}]
if {$currentmot < $tstart} {set i_bool 1} if {$currentmot < $tstart} {set i_bool 1}
incr i -1 incr i -1
} }
} }
set motdir [expr {(-1*$motdir)}] set motdir [expr {(-1*$motdir)}]
} }
proc VListTexScan {voltlist mot tstart tstep tfin oscno} { proc VListTexScan {voltlist mot tstart tstep tfin oscno} {
global rampstep rampdelay global rampstep rampdelay
set curvolt [lindex $voltlist 0] set curvolt [lindex $voltlist 0]
broadcast $curvolt broadcast $curvolt
SetVolt $curvolt SetVolt $curvolt
foreach volt $voltlist { foreach volt $voltlist {
broadcast $volt broadcast $volt
VoltSetStep $curvolt $rampstep $volt $rampdelay VoltSetStep $curvolt $rampstep $volt $rampdelay
SingleVTexScan $mot $tstart $tstep $tfin $oscno SingleVTexScan $mot $tstart $tstep $tfin $oscno
} }
} }
proc SquarePulseTexture {motor start step numsteps volt freq bins oscno} { proc SquarePulseTexture {motor start step numsteps volt freq bins oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
histmem_period_strobo $freq $bins histmem_period_strobo $freq $bins
wait 3 wait 3
set pulservolt [VoltScale $volt] set pulservolt [VoltScale $volt]
PulserSquare $freq $pulservolt PulserSquare $freq $pulservolt
PulserOn PulserOn
for {set i 0} {$i < $numsteps} {incr i} { for {set i 0} {$i < $numsteps} {incr i} {
drive $motor [expr $i*$step+$start] drive $motor [expr $i*$step+$start]
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $i save $i
} }
} }
proc UniPulseTexture {motor start step numsteps volt freq bins oscno} { proc UniPulseTexture {motor start step numsteps volt freq bins oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
histmem_period_strobo $freq $bins histmem_period_strobo $freq $bins
wait 3 wait 3
set pulservolt [VoltScale [expr {$volt*1.0}]] set pulservolt [VoltScale [expr {$volt*1.0}]]
set pulseroffs [VoltScale [expr {$volt*0.5}]] set pulseroffs [VoltScale [expr {$volt*0.5}]]
PulserSquareOffs $freq $pulservolt $pulseroffs PulserSquareOffs $freq $pulservolt $pulseroffs
PulserOn PulserOn
for {set i 0} {$i < $numsteps} {incr i} { for {set i 0} {$i < $numsteps} {incr i} {
drive $motor [expr $i*$step+$start] drive $motor [expr $i*$step+$start]
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $i save $i
} }
} }
proc BehlkePulseTexture {motor start step numsteps freq bins oscno} { proc BehlkePulseTexture {motor start step numsteps freq bins oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
histmem_period_strobo $freq $bins histmem_period_strobo $freq $bins
wait 3 wait 3
PulserSquareOffs $freq 2.5 2.5 PulserSquareOffs $freq 2.5 2.5
PulserOn PulserOn
for {set i 0} {$i < $numsteps} {incr i} { for {set i 0} {$i < $numsteps} {incr i} {
drive $motor [expr $i*$step+$start] drive $motor [expr $i*$step+$start]
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $i save $i
} }
} }
proc SquarePulseVolt {start step fin freq bins oscno} { proc SquarePulseVolt {start step fin freq bins oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
histmem_period_strobo $freq $bins histmem_period_strobo $freq $bins
wait 3 wait 3
set loopvar 1 set loopvar 1
set i 0 set i 0
while {$loopvar} { while {$loopvar} {
set j [expr {$i*$step+$start}] set j [expr {$i*$step+$start}]
if {$j> $fin && $step > 0} {break} if {$j> $fin && $step > 0} {break}
if {$j< $fin && $step < 0} {break} if {$j< $fin && $step < 0} {break}
if {$j== 0} { if {$j== 0} {
PulserOff PulserOff
} else { } else {
set pulservolt [VoltScale $j] set pulservolt [VoltScale $j]
PulserSquare $freq $pulservolt PulserSquare $freq $pulservolt
PulserOn PulserOn
# sct_pulser send "APPL:SQU $freq,$pulservolt,0" # sct_pulser send "APPL:SQU $freq,$pulservolt,0"
} }
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $i save $i
incr i incr i
} }
} }
proc SquarePulseFreq {volt freqlist bins oscno} { proc SquarePulseFreq {volt freqlist bins oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
set loopvar 1 set loopvar 1
set i 0 set i 0
foreach freq $freqlist { foreach freq $freqlist {
set pulservolt [VoltScale $volt] set pulservolt [VoltScale $volt]
histmem_period_strobo $freq $bins histmem_period_strobo $freq $bins
wait 3 wait 3
PulserSquare $freq $pulservolt PulserSquare $freq $pulservolt
PulserOn PulserOn
# sct_pulser send "APPL:SQU $freq,$pulservolt,0" # sct_pulser send "APPL:SQU $freq,$pulservolt,0"
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $i save $i
incr i incr i
} }
} }
proc BehlkePulseFreq {freqlist bins oscno} { proc BehlkePulseFreq {freqlist bins oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
set loopvar 1 set loopvar 1
set i 0 set i 0
foreach freq $freqlist { foreach freq $freqlist {
histmem_period_strobo $freq $bins histmem_period_strobo $freq $bins
wait 3 wait 3
PulserSquareOffs $freq 2.5 2.5 PulserSquareOffs $freq 2.5 2.5
PulserOn PulserOn
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $i save $i
incr i incr i
} }
} }
proc SinePulseFreq {volt freqlist bins oscno} { proc SinePulseFreq {volt freqlist bins oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
set loopvar 1 set loopvar 1
set i 0 set i 0
foreach freq $freqlist { foreach freq $freqlist {
set pulservolt [VoltScale $volt] set pulservolt [VoltScale $volt]
histmem_period_strobo $freq $bins histmem_period_strobo $freq $bins
wait 3 wait 3
PulserSin $freq $pulservolt PulserSin $freq $pulservolt
PulserOn PulserOn
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $i save $i
incr i incr i
} }
} }
proc UniPulseFreq {volt freqlist bins oscno} { proc UniPulseFreq {volt freqlist bins oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
set loopvar 1 set loopvar 1
set i 0 set i 0
foreach freq $freqlist { foreach freq $freqlist {
histmem_period_strobo $freq $bins histmem_period_strobo $freq $bins
wait 3 wait 3
# PulserSquareOffs $freq $pulservolt [expr {$pulservolt/2}] # PulserSquareOffs $freq $pulservolt [expr {$pulservolt/2}]
set pulservolt [VoltScale [expr {$volt*1.0}]] set pulservolt [VoltScale [expr {$volt*1.0}]]
set pulseroffs [VoltScale [expr {$volt*0.5}]] set pulseroffs [VoltScale [expr {$volt*0.5}]]
PulserSquareOffs $freq $pulservolt $pulseroffs PulserSquareOffs $freq $pulservolt $pulseroffs
PulserOn PulserOn
# sct_pulser send "APPL:SQU $freq,$pulservolt,[expr {$pulservolt/2}]" # sct_pulser send "APPL:SQU $freq,$pulservolt,[expr {$pulservolt/2}]"
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $i save $i
incr i incr i
} }
} }
proc UniPulseFatigue {volt freq bins oscno reps runs} { proc UniPulseFatigue {volt freq bins oscno reps runs} {
histmem mode unlimited histmem mode unlimited
set pulservolt [VoltScale $volt] set pulservolt [VoltScale $volt]
set halfvolt [expr {$pulservolt/2.0}] set halfvolt [expr {$pulservolt/2.0}]
histmem_period_strobo $freq $bins histmem_period_strobo $freq $bins
wait 3 wait 3
PulserSquareOffs $freq $halfvolt $halfvolt PulserSquareOffs $freq $halfvolt $halfvolt
PulserOn PulserOn
for {set i 0} {$i<$runs} {incr i} { for {set i 0} {$i<$runs} {incr i} {
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
for {set j 0} {$j<$reps} {incr j} { for {set j 0} {$j<$reps} {incr j} {
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $j save $j
} }
} }
PulserOff PulserOff
set pulserstate 0 set pulserstate 0
Histmem_strobo_off Histmem_strobo_off
} }
@ -347,80 +347,80 @@ proc UniPulseFatigue {volt freq bins oscno reps runs} {
proc PulserBurst {} { proc PulserBurst {} {
sct_pulser send "BURS:MODE TRIG; MODE?" sct_pulser send "BURS:MODE TRIG; MODE?"
sct_pulser send "TRIG:SOUR BUS; SOUR?" sct_pulser send "TRIG:SOUR BUS; SOUR?"
sct_pulser send "BURS:STAT ON; STAT?" sct_pulser send "BURS:STAT ON; STAT?"
PulserOn PulserOn
sct_pulser send "*TRG;:BURS:NCYC?" sct_pulser send "*TRG;:BURS:NCYC?"
while {1} { while {1} {
set sval [sct_pulser transact *OPC?] set sval [sct_pulser transact *OPC?]
if {[string first 1 $sval] >-1} {break} if {[string first 1 $sval] >-1} {break}
} }
PulserOff PulserOff
set pulserstate 0 set pulserstate 0
} }
proc VoltPulseRun {vlo vhi freq cycl} { proc VoltPulseRun {vlo vhi freq cycl} {
PulserOff PulserOff
sct_pulser send "VOLT:LOW [VoltScale $vlo]; LOW?" sct_pulser send "VOLT:LOW [VoltScale $vlo]; LOW?"
sct_pulser send "VOLT:HIGH [VoltScale $vhi]; HIGH?" sct_pulser send "VOLT:HIGH [VoltScale $vhi]; HIGH?"
sct_pulser send "FREQ $freq;:FREQ?" sct_pulser send "FREQ $freq;:FREQ?"
sct_pulser send "BURS:PHAS [expr {90.0 - ($vhi*180.0)/(($vhi-$vlo)*1.0)}]; PHAS?" sct_pulser send "BURS:PHAS [expr {90.0 - ($vhi*180.0)/(($vhi-$vlo)*1.0)}]; PHAS?"
sct_pulser send "BURS:MODE TRIG; MODE?" sct_pulser send "BURS:MODE TRIG; MODE?"
set ploop [expr {int($cycl/50000)}] set ploop [expr {int($cycl/50000)}]
set prem [expr {$cycl % 50000}] set prem [expr {$cycl % 50000}]
if {$ploop >0} { if {$ploop >0} {
for {set i 0} {$i< $ploop} {incr i} { for {set i 0} {$i< $ploop} {incr i} {
Pulser send "BURS:NCYC 50000; NCYC?" Pulser send "BURS:NCYC 50000; NCYC?"
PulserBurst PulserBurst
} }
} }
sct_pulser send "BURS:NCYC $prem; NCYC?" sct_pulser send "BURS:NCYC $prem; NCYC?"
PulserBurst PulserBurst
PulserOff PulserOff
set pulserstate 0 set pulserstate 0
sct_pulser send "BURS:STAT OFF; STAT?" sct_pulser send "BURS:STAT OFF; STAT?"
} }
proc VoltPulses {vlo vhi freq cycl} { proc VoltPulses {vlo vhi freq cycl} {
PulserOff PulserOff
sct_pulser send "FUNC SQU;:FUNC?" sct_pulser send "FUNC SQU;:FUNC?"
VoltPulseRun $vlo $vhi $freq $cycl VoltPulseRun $vlo $vhi $freq $cycl
} }
proc VoltTriPulses {vlo vhi freq cycl} { proc VoltTriPulses {vlo vhi freq cycl} {
PulserOff PulserOff
sct_pulser send "FUNC RAMP;:FUNC?" sct_pulser send "FUNC RAMP;:FUNC?"
sct_pulser send "FUNC:RAMP:SYMM 50;:FUNC:RAMP:SYMM?" sct_pulser send "FUNC:RAMP:SYMM 50;:FUNC:RAMP:SYMM?"
VoltPulseRun $vlo $vhi $freq $cycl VoltPulseRun $vlo $vhi $freq $cycl
} }
proc OneTri {volt period} { proc OneTri {volt period} {
PulserOff PulserOff
if {$volt > 0} { if {$volt > 0} {
sct_pulser send "VOLT:LOW 0; LOW?" sct_pulser send "VOLT:LOW 0; LOW?"
sct_pulser send "VOLT:HIGH [VoltScale $volt]; HIGH?" sct_pulser send "VOLT:HIGH [VoltScale $volt]; HIGH?"
sct_pulser send "BURS:PHAS -90; PHAS?" sct_pulser send "BURS:PHAS -90; PHAS?"
} else { } else {
sct_pulser send "VOLT:LOW [VoltScale $volt]; LOW?" sct_pulser send "VOLT:LOW [VoltScale $volt]; LOW?"
sct_pulser send "VOLT:HIGH 0; HIGH?" sct_pulser send "VOLT:HIGH 0; HIGH?"
sct_pulser send "BURS:PHAS 90; PHAS?" sct_pulser send "BURS:PHAS 90; PHAS?"
} }
sct_pulser send "FUNC RAMP;:FUNC?" sct_pulser send "FUNC RAMP;:FUNC?"
sct_pulser send "FUNC:RAMP:SYMM 50;:FUNC:RAMP:SYMM?" sct_pulser send "FUNC:RAMP:SYMM 50;:FUNC:RAMP:SYMM?"
sct_pulser send "FREQ [expr {1.0/$period}];:FREQ?" sct_pulser send "FREQ [expr {1.0/$period}];:FREQ?"
sct_pulser send "BURS:MODE TRIG; MODE?" sct_pulser send "BURS:MODE TRIG; MODE?"
sct_pulser send "BURS:NCYC 1; NCYC?" sct_pulser send "BURS:NCYC 1; NCYC?"
PulserBurst PulserBurst
PulserOff PulserOff
set pulserstat 0 set pulserstat 0
} }
@ -448,5 +448,5 @@ publish BehlkePulseTexture user
publish BehlkePulseFreq user publish BehlkePulseFreq user
publish UniPulseTexture user publish UniPulseTexture user
publish VoltSetStep user publish VoltSetStep user

View File

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

View File

@ -1,109 +1,109 @@
proc SetVoltPosStep {steps} { proc SetVoltPosStep {steps} {
# set llen 16384 # set llen 16384
# set steplen [expr{int($llen/(2*$steps))}] # set steplen [expr{int($llen/(2*$steps))}]
# set phaselen # set phaselen
set l {} set l {}
for {set i 0} {$i < $steps} {incr i} { for {set i 0} {$i < $steps} {incr i} {
lappend l [expr {($i*2.0/$steps)-1.0}] lappend l [expr {($i*2.0/$steps)-1.0}]
} }
for {set i $steps} {$i > 0} {incr i -1} { for {set i $steps} {$i > 0} {incr i -1} {
lappend l [expr {($i*2.0/$steps)-1.0}] lappend l [expr {($i*2.0/$steps)-1.0}]
} }
set s "DATA VOLATILE, " set s "DATA VOLATILE, "
for {set i 0} {$i < [expr {[llength $l] -1}]} {incr i} { for {set i 0} {$i < [expr {[llength $l] -1}]} {incr i} {
append s [format "%1.3f" [lindex $l $i]] "," append s [format "%1.3f" [lindex $l $i]] ","
} }
append s [format "%1.3f" [lindex $l [expr {[llength $l] -1}]]] append s [format "%1.3f" [lindex $l [expr {[llength $l] -1}]]]
sct_pulser send $s sct_pulser send $s
broadcast $s broadcast $s
} }
proc SetVoltBiStep {steps} { proc SetVoltBiStep {steps} {
set l {} set l {}
for {set i 0} {$i < $steps} {incr i} { for {set i 0} {$i < $steps} {incr i} {
lappend l [expr {$i*1.0/$steps}] lappend l [expr {$i*1.0/$steps}]
} }
for {set i $steps} {$i > [expr {$steps * -1}]} {incr i -1} { for {set i $steps} {$i > [expr {$steps * -1}]} {incr i -1} {
lappend l [expr {$i*1.0/$steps}] lappend l [expr {$i*1.0/$steps}]
} }
for {set i [expr {$steps * -1}]} {$i < 0} {incr i} { for {set i [expr {$steps * -1}]} {$i < 0} {incr i} {
lappend l [expr {$i*1.0/$steps}] lappend l [expr {$i*1.0/$steps}]
} }
set s "DATA VOLATILE, " set s "DATA VOLATILE, "
for {set i 0} {$i < [expr {[llength $l] -1}]} {incr i} { for {set i 0} {$i < [expr {[llength $l] -1}]} {incr i} {
append s [format "%1.3f" [lindex $l $i]] "," append s [format "%1.3f" [lindex $l $i]] ","
} }
append s [format "%1.3f" [lindex $l [expr {[llength $l] -1}]]] append s [format "%1.3f" [lindex $l [expr {[llength $l] -1}]]]
sct_pulser send $s sct_pulser send $s
broadcast $s broadcast $s
} }
proc VoltPosStep {volt freq voltsteps} { proc VoltPosStep {volt freq voltsteps} {
PulserOff PulserOff
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
SetVoltPosStep $voltsteps SetVoltPosStep $voltsteps
sct_pulser send "VOLT:LOW [VoltScale 0.0]; LOW?" sct_pulser send "VOLT:LOW [VoltScale 0.0]; LOW?"
sct_pulser send "VOLT:HIGH [VoltScale [expr {$volt*1.0}]]; HIGH?" sct_pulser send "VOLT:HIGH [VoltScale [expr {$volt*1.0}]]; HIGH?"
sct_pulser send "FREQ $freq;:FREQ?" sct_pulser send "FREQ $freq;:FREQ?"
sct_pulser send "FUNC: USER VOLATILE" sct_pulser send "FUNC: USER VOLATILE"
sct_pulser send "FUNC USER" sct_pulser send "FUNC USER"
} }
proc UniZigTexture {motor mstart mstep mnum volt freq vstep binmult oscno} { proc UniZigTexture {motor mstart mstep mnum volt freq vstep binmult oscno} {
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
set bins [expr {$vstep * 2 * $binmult}] set bins [expr {$vstep * 2 * $binmult}]
histmem_period_strobo $freq $bins histmem_period_strobo $freq $bins
wait 3 wait 3
# set pulservolt [VoltScale [expr {$volt*1.0}]] # set pulservolt [VoltScale [expr {$volt*1.0}]]
# set pulseroffs [VoltScale [expr {$volt*0.5}]] # set pulseroffs [VoltScale [expr {$volt*0.5}]]
VoltPosStep $volt $freq $vstep VoltPosStep $volt $freq $vstep
PulserOn PulserOn
for {set i 0} {$i < $mnum} {incr i} { for {set i 0} {$i < $mnum} {incr i} {
drive $motor [expr $i*$mstep+$mstart] drive $motor [expr $i*$mstep+$mstart]
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
hmm countblock hmm countblock
save $i save $i
} }
PulserOff PulserOff
} }
proc VoltBiStep {volt freq steps} { proc VoltBiStep {volt freq steps} {
PulserOff PulserOff
newfile HISTOGRAM_XYT newfile HISTOGRAM_XYT
SetVoltBiStep $steps SetVoltBiStep $steps
sct_pulser send "VOLT:LOW [VoltScale [expr {$volt*-1.0}]; LOW?" sct_pulser send "VOLT:LOW [VoltScale [expr {$volt*-1.0}]; LOW?"
sct_pulser send "VOLT:HIGH [VoltScale [expr {$volt*1.0}]; HIGH?" sct_pulser send "VOLT:HIGH [VoltScale [expr {$volt*1.0}]; HIGH?"
sct_pulser send "FREQ $freq;:FREQ?" sct_pulser send "FREQ $freq;:FREQ?"
sct_pulser send "FUNC: USER VOLATILE" sct_pulser send "FUNC: USER VOLATILE"
sct_pulser send "FUNC USER" sct_pulser send "FUNC USER"
set bins [expr {$steps * 4}] set bins [expr {$steps * 4}]
histmem_period_strobo $freq $bins histmem_period_strobo $freq $bins
wait 3 wait 3
PulserOn PulserOn
oct oscillate_count $oscno oct oscillate_count $oscno
oct oscillate start oct oscillate start
save 0 save 0
} }
publish SetVoltPosStep user publish SetVoltPosStep user
publish SetVoltBiStep user publish SetVoltBiStep user
publish UniZigTexture user publish UniZigTexture user
publish VoltPosStep user publish VoltPosStep user
publish VoltBiStep user publish VoltBiStep user