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