127 lines
2.4 KiB
Tcl
127 lines
2.4 KiB
Tcl
|
|
proc SingleVolt {volt oscno} {
|
|
histmem mode unlimited
|
|
newfile HISTOGRAM_XY
|
|
if {$volt== 0} {
|
|
PulserOff
|
|
} else {
|
|
set pulservolt [expr {($volt*1.0)/4000.0}]
|
|
pulser send VOLT:OFFS $pulservolt
|
|
# PulserOn
|
|
# pulser send "APPL:DC DEF,DEF,$pulservolt"
|
|
}
|
|
oscmd start $oscno
|
|
hmm countblock
|
|
save 0
|
|
oscmd stop
|
|
}
|
|
|
|
proc SetDC {} {
|
|
pulseroff
|
|
pulser send FUNC DC
|
|
pulser send VOLT:OFFS 0
|
|
pulseron
|
|
}
|
|
|
|
proc VoltRamp {start step fin oscno} {
|
|
histmem mode unlimited
|
|
set waszero 0
|
|
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}
|
|
if {$j== 0} {
|
|
PulserOff
|
|
set waszero 1
|
|
} else {
|
|
set pulservolt [expr {($j*1.0)/4000.0}]
|
|
pulser send VOLT:OFFS $pulservolt
|
|
if {$waszero==1} {
|
|
PulserOn
|
|
set waszero 0
|
|
}
|
|
# pulser send "APPL:DC DEF,DEF,$pulservolt"
|
|
}
|
|
oscmd start $oscno
|
|
hmm countblock
|
|
save $i
|
|
incr i
|
|
}
|
|
oscmd stop
|
|
}
|
|
|
|
proc SquarePulseVolt {start step fin freq oscno} {
|
|
histmem mode unlimited
|
|
newfile HISTOGRAM_XYT
|
|
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}
|
|
if {$j== 0} {
|
|
PulserOff
|
|
} else {
|
|
set pulservolt [expr {($j*1.0)/4000.0}]
|
|
PulserSquare $freq $pulservolt
|
|
PulserOn
|
|
# pulser send "APPL:SQU $freq,$pulservolt,0"
|
|
}
|
|
oscmd start $oscno
|
|
hmm countblock
|
|
save $i
|
|
incr i
|
|
}
|
|
oscmd stop
|
|
}
|
|
|
|
proc SquarePulseFreq {volt freqlist bins oscno} {
|
|
histmem mode unlimited
|
|
newfile HISTOGRAM_XYT
|
|
set loopvar 1
|
|
set i 0
|
|
foreach freq $freqlist {
|
|
set pulservolt [expr {($volt*1.0)/4000.0}]
|
|
histmem_period_strobo $freq $bins
|
|
wait 3
|
|
PulserSquare $freq $pulservolt
|
|
PulserOn
|
|
# pulser send "APPL:SQU $freq,$pulservolt,0"
|
|
oscmd start $oscno
|
|
hmm countblock
|
|
save $i
|
|
incr i
|
|
}
|
|
oscmd stop
|
|
}
|
|
|
|
proc UniPulseFreq {volt freqlist bins oscno} {
|
|
histmem mode unlimited
|
|
newfile HISTOGRAM_XYT
|
|
set loopvar 1
|
|
set i 0
|
|
foreach freq $freqlist {
|
|
set pulservolt [expr {($volt*1.0)/4000.0}]
|
|
histmem_period_strobo $freq $bins
|
|
wait 3
|
|
PulserSquareOffs $freq $pulservolt [expr {$pulservolt/2}]
|
|
PulserOn
|
|
# pulser send "APPL:SQU $freq,$pulservolt,[expr {$pulservolt/2}]"
|
|
oscmd start $oscno
|
|
hmm countblock
|
|
save $i
|
|
incr i
|
|
}
|
|
oscmd stop
|
|
}
|
|
|
|
publish SetDC user
|
|
publish SingleVolt user
|
|
publish VoltRamp user
|
|
publish SquarePulseVolt user
|
|
publish SquarePulseFreq user
|
|
publish UniPulseFreq user
|