initial commit
This commit is contained in:
44
tcl/drivers/agilent53132a.tcl
Normal file
44
tcl/drivers/agilent53132a.tcl
Normal file
@ -0,0 +1,44 @@
|
||||
namespace eval agilent53132a {} {
|
||||
}
|
||||
|
||||
proc stdConfig::agilent53132a {} {
|
||||
controller std "\n" 5
|
||||
prop startcmd "*IDN?"
|
||||
|
||||
pollperiod 0.1 0.1
|
||||
|
||||
obj "agilent53132a" rd
|
||||
prop read agilent53132a::read
|
||||
|
||||
kids "Frequency counter 53132a settings" {
|
||||
node base par 0
|
||||
prop width 12
|
||||
prop fmt %.8g
|
||||
}
|
||||
|
||||
return "agilent53132a frequency counter"
|
||||
}
|
||||
|
||||
proc agilent53132a::read {} {
|
||||
sct send "READ:FREQ?"
|
||||
return agilent53132a::complete
|
||||
}
|
||||
|
||||
proc agilent53132a::complete {} {
|
||||
|
||||
set value [string map {"," ""} [sct result]]
|
||||
lassign $value value unit
|
||||
if {$unit eq "MHz"} {
|
||||
set value [expr $value * 1e6]
|
||||
} else {
|
||||
error "unsupported unit: $unit"
|
||||
}
|
||||
set base [format %.5g [hval [sct]/base]]
|
||||
if {abs($value - $base) > 16384} { # max value for single precision with 0.001 resolution
|
||||
set base [format "%.5g" $value]
|
||||
hupdate [sct]/base $base
|
||||
}
|
||||
sct update [expr $value - $base]
|
||||
return idle
|
||||
}
|
||||
|
Reference in New Issue
Block a user