Files
sea/tcl/archive/drivers/kdvm.tcl
l_samenv 4d9961fe5c add archive (files probably no longer used)
here we can find old files
2022-08-22 15:28:09 +02:00

62 lines
1.0 KiB
Tcl

# keithley 2701 Digital multimeter
namespace eval kdvm {} {
}
proc stdConfig::kdvm {} {
controller std "\n" 5
prop startcmd "*IDN?"
obj Keithley2701 rd -none
prop read kdvm::read
kids channels {
node u1 upd
node u2 upd
node chan out
default 0
prop write kdvm::setchan
prop enum auto,chan1,chan2
}
}
proc kdvm::read {} {
sct send "READ?"
return kdvm::update
}
proc kdvm::update {} {
set mode [hvali [sct]/chan]
if {$mode == 0} {
set chan [silent 1 sct channel]
} else {
set chan $mode
}
hupdate [sct]/u$chan [sct result]
hdelprop [sct]/u$chan geterror
if {$mode != 0} {
return idle
}
set chan [expr 3-$chan]
sct send "ROUT:CLOS (@10${chan}); *IDN?"
sct channel $chan
return stdSct::complete
}
proc kdvm::setchan {} {
set mode [sct target]
if {$mode == 0} {
sct update $mode
return idle
}
set chan $mode
sct send "ROUT:CLOS (@10${chan}); *IDN?"
sct channel $chan
return kdvm::updatechan
}
proc kdvm::updatechan {} {
sct update [sct result]
return idle
}