Files
sics/site_ansto/instrument/config/commands/pulser.tcl
2014-05-16 17:23:58 +10:00

71 lines
1.4 KiB
Tcl

proc PulserOn {} {
pulser send "OUTP ON;:OUTP?"
}
proc PulserOff {} {
pulser send "OUTP OFF;:OUTP?"
}
proc PulserTTLOn {} {
#NOTE: Setting FUNC DC generates a remote ctrl error if the
# burst mode happens to be on
pulser send "BURS:STAT OFF;:FUNC DC;:VOLT:OFFS 5; OFFS?"
PulserOn
}
proc PulserSin {Freq Volt} {
set resp [pulser send FUNC?]
if {[string first "SIN" $resp ] == -1 } {
pulser send "FUNC SIN;:FUNC?"
}
pulser send "VOLT $Volt;:VOLT?"
pulser send "FREQ $Freq;:FREQ?"
pulser send "VOLT:OFFS 0; OFFS?"
}
proc PulserSquare {Freq Volt} {
set resp [pulser send FUNC?]
if {[string first "SQU" $resp ] == -1 } {
pulser send "FUNC SQU;:FUNC?"
}
pulser send "VOLT $Volt;:VOLT?"
pulser send "FREQ $Freq;:FREQ?"
pulser send "VOLT:OFFS 0; OFFS?"
}
proc PulserSquareOffs {Freq Volt Offs} {
set resp [pulser send FUNC?]
if {[string first "SQU" $resp ] == -1 } {
pulser send "FUNC SQU;:FUNC?"
}
pulser send "VOLT $Volt;:VOLT?"
pulser send "FREQ $Freq;:FREQ?"
pulser send "VOLT:OFFS $Offs; OFFS?"
}
proc PulserDC {Volt} {
#NOTE: Setting FUNC DC generates a remote ctrl error if the
# burst mode happens to be on
set resp [pulser send "BURS:STAT OFF;:FUNC DC;:VOLT:OFFS $Volt; OFFS?"]
broadcast $resp
}
publish PulserOn user
publish PulserOff user
publish PulserSin user
publish PulserSquare user
publish PulserDC user
publish PulserSquareOffs user
publish PulserTTLOn user