
#metadef
#author MikeLud
#idString Keysight Technologies,34461A,
#name Keysight 34461A
#handle K34461
#removeLine 1uA
#removeLine 10uA
#removeLine 0.06PLC
#removeLine 0.006PLC
#removeLine 0.002PLC
#removeLine 0.001PLC
#removeLine Tcouple
#removeLine Ω 49 2100
#removeLine 1GΩ
#removeLine 1ms
#replace #cmdSetup selector Temperature_Settings Temperature
:read: TEMP:TRAN:TYPE?
:update: Probe
:updatedelayed: 0.2
:updatemodechange:
RTD Temperature2.Probe Temperature2.RTD_2w_R0 Temperature2.Aperture Temperature2.Auto_Zero Temperature2.Null Temperature2.Null_Value
FRTD Temperature2.Probe Temperature2.RTD_4w_R0 Temperature2.Aperture Temperature2.Null Temperature2.Null_Value
THER Temperature2.Probe Temperature2.Thermis2w_Type Temperature2.Aperture Temperature2.Auto_Zero Temperature2.Null Temperature2.Null_Value
FTH Temperature2.Probe Temperature2.Thermis4w_Type Temperature2.Aperture Temperature2.Null Temperature2.Null_Value
#remove #cmdSetup radio RTD_2w_OffstComp Temperature2
#remove #cmdSetup radio RTD_2w_Low-Power Temperature2
#remove #cmdSetup radio RTD_4w_OffstComp Temperature2
#remove #cmdSetup radio RTD_4w_Low-Power Temperature2
#remove #cmdSetup radio Thermis2w_Low-Power Temperature2
#remove #cmdSetup radio Thermis4w_Low-Power Temperature2
#remove #cmdSetup comboboxHot Tcouple_Type Temperature2
#remove #cmdSetup radio Offset Temperature2
#remove #cmdSetup number Fixed_Offset Temperature2
#remove #cmdSetup number Internal_Offset Temperature2
#remove #cmdSetup radio Low_Power 2W_Resistance
#remove #cmdSetup radio Low_Power 4W_Resistance
#remove #cmdSetup radio OffstComp 2W_Resistance
#remove #cmdSetup radio OffstComp 4W_Resistance

#metadef
#author MikeLud
#idString Keysight Technologies,34465A,
#name Keysight 34465A
#handle K34465
#removeLine Ω 80 120

#metadef
#author MikeLud
#idString Keysight Technologies,34470A,
#name Keysight 34470A
#handle K34470
#removeLine Ω 80 120


#meta
#author MikeLud
#idString Keysight Technologies,344xxA,
#name Keysight 344xxA
#handle K344xx
#port 5025 LXI

#notes Requires Firmware Revision 3.00 or higher.

; A list of possible column name with unit and formatter (SI, Time, Int, D0..D6)
#value VoltageDC V D6 DC_Voltage,Diode
#value CurrentDC A si DC_Current
#value VoltageAC V D6 AC_Voltage
#value CurrentAC A si AC_Current
#value Resistance ohm si 2W_Resistance,4W_Resistance,Continuity
#value Capacitance F si Capacitance
#value Temperature °C D4 Temperature
#value Frequency Hz si Frequency
#value Period s si Period
#value Ratio - d3 Ratio

; How to poll for data, this is used for table and #values?
; a #askMode, #cmdMode and #prepareSample is used before this is string is used.
; This is a single line command
#askValues data:last?

; Format of answer: f=float, u=remove trailing letters, x=skip, *=Zero upper case values if this value is 0
#askValuesReadFormat ux

; Accept this delay when reading values (seconds)
#readingDelay 10

; Mode change have a longer delay on reading values (seconds)
#modeChangeDelay 10

; Switch meter to this mode during start, leave empty to avoid any switching
;#initialMode 

; String to ask about actual meter mode, 
; This is a single line command
#askMode :SENSE:FUNCTION?
#askModeMathFormat unQuote(value); 

; When one of these commands are used through the command interface a new configuration will be done before using #askMode
; Only one word for each #mayModifyMode
; Specify command without initial colon and in the shortest possible form
#mayModifyMode conf
#mayModifyMode meas
#mayModifyMode abor
#mayModifyMode trig 

; Prepare the meter to response to #askValues
#prepareSample
abort
sample:count 1
trig:source imm
trig:count inf
init

; Initial commands to meter when establishing connection
;#initCmd 

; Final command to meter before breaking connection
#finalCmd abort;*cls;*rst;init;system:local 

#interfaceType DMM BMM
#interface readValue 0

; Strings to configure device in different modes
; First parameter must match a #value (4 parameter) and second parameter must match what #askMode returns
; First parameter is also used in shortcut menu
;#cmdMode

#cmdModeLayout 3 5

#cmdMode DC_Voltage VOLT
abort;
*cls;
CONF:VOLT:DC;[*OPC]

#cmdMode AC_Voltage VOLT:AC
abort;
*cls;
conf:volt:ac;[*OPC]

#cmdMode 2W_Resistance RES
abort;
*cls;
conf:res;[*OPC]

#cmdMode DC_Current CURR
abort;
*cls;
conf:curr:dc;[*OPC]

#cmdMode AC_Current CURR:AC
abort;
*cls;
conf:curr:ac;[*OPC]

#cmdMode 4W_Resistance FRES
abort;
*cls;
conf:fres;[*OPC]

#cmdMode Diode DIOD
abort;
*cls;
conf:diod;[*OPC]

#cmdMode Continuity CONT
abort;
*cls;
conf:CONT;[*OPC]

#cmdMode Temperature TEMP
abort;
*cls;
func "temp";[*OPC]

#cmdMode Capacitance CAP
abort;
*cls;
conf:cap;[*OPC]

#cmdMode Frequency FREQ
abort;
*cls;
conf:freq;[*OPC]

#cmdMode Period PER
abort;
*cls;
conf:per;[*OPC]

#cmdMode Ratio VOLT:RAT
abort;
*cls;
conf:volt:dc:ratio

; Setup menu functions
; The parameters on the first line is: type name page 
; Settings on the following lines are:
; read: SCPI to read value from device, is used to synchronize when opening setup page or setting equal named fields. Not always used
; readformat: Parse read value.
; write: Send the value to device, this field is used in combination with data fields in the details to send updates to device.
; tip: Add this tip to all components for this input field.
 

;Mode-------------------------------------------------------------------------------------------
#cmdSetup info Active_Mode
:read: FUNC?
:readmath: getElement("Diode;DC Voltage;AC Voltage;DC Current;AC Current;Temperture;Capacitance;2W Resistance;4W Resistance;Frequency;Period;Continuity;Ratio",listIndex(unQuote(value),"DIOD VOLT VOLT:AC CURR CURR:AC TEMP CAP RES FRES FREQ PER CONT VOLT:RAT"," "),";")
:updatemodechange:

;DC_Current-------------------------------------------------------------------------------------
#cmdSetup radio Terminals DC_Current
:write: abort;*cls;CURR:DC:TERM #;init
:read: CURR:DC:TERM?
3A 3
10A 10
:updatemodechange:

#cmdSetup radio Range DC_Current
:write: abort;*cls;CURR:DC:RANGE:AUTO #;init
:read: CURR:DC:RANGE:AUTO?
AUTO 1
Manual 0
Once ONCE
:updatemodechange:

#cmdSetup comboboxHot Range DC_Current
:write: abort;*cls;CURR:DC:RANGE #;init
:read: CURR:DC:RANGE?
1uA +1.00000000E-06
10uA +1.00000000E-05
100uA +1.00000000E-04
1mA +1.00000000E-03
10mA +1.00000000E-02
100mA +1.00000000E-01
1A +1.00000000E+00
3A +3.00000000E+00
10A +1.00000000E+01
:updatemodechange:

#cmdSetup comboboxHot Aperture DC_Current
:write: abort;*cls;CURR:DC:NPLC #;init
:read: CURR:DC:NPLC?
100PLC +1.00000000E+02
10PLC +1.00000000E+01
1PLC +1.00000000E+00
0.2PLC +2.00000000E-01
0.06PLC +6.00000000E-02
0.02PLC +2.00000000E-02
0.006PLC +6.00000000E-03
0.002PLC +2.00000000E-03
0.001PLC +1.00000000E-03
:updatemodechange:

#cmdSetup radio Auto_Zero DC_Current
:write: abort;*cls;CURR:DC:ZERO:AUTO #;init
:read: CURR:DC:ZERO:AUTO?
Off 0
On 1
Once ONCE
:updatemodechange:

#cmdSetup radio Null DC_Current
:write: abort;*cls;CURR:DC:NULL:STAT #;init
:read: CURR:DC:NULL:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number Null_Value DC_Current
:read: CURR:DC:NULL:VALUE?
:write: abort;*cls;CURR:DC:NULL:VALUE #;init
:buttontext: Set
Amps -12 +12
:updatemodechange:

;DC_Voltage-------------------------------------------------------------------------------------
#cmdSetup radio Range DC_Voltage
:read: VOLT:DC:RANGE:AUTO?
:write: abort;*cls;VOLT:DC:RANGE:AUTO #;init
AUTO 1
Manual 0
Once ONCE
:updatemodechange:

#cmdSetup comboboxHot Range DC_Voltage
:write: abort;*cls;VOLT:DC:RANGE #;init
:read: VOLT:DC:RANGE?
100mV +1.00000000E-01
1V +1.00000000E+00
10V +1.00000000E+01
100V +1.00000000E+02
1000V +1.00000000E+03
:updatemodechange:

#cmdSetup comboboxHot Aperture DC_Voltage
:write: abort;*cls;VOLT:DC:NPLC #;init
:read: VOLT:DC:NPLC?
100PLC +1.00000000E+02
10PLC +1.00000000E+01
1PLC +1.00000000E+00
0.2PLC +2.00000000E-01
0.06PLC +6.00000000E-02
0.02PLC +2.00000000E-02
0.006PLC +6.00000000E-03
0.002PLC +2.00000000E-03
0.001PLC +1.00000000E-03
:updatemodechange:

#cmdSetup radio Auto_Zero DC_Voltage
:write: abort;*cls;VOLT:DC:ZERO:AUTO #;init
:read: VOLT:DC:ZERO:AUTO?
Off 0
On 1
Once ONCE
:updatemodechange:

#cmdSetup radio Input_Z DC_Voltage
:write: abort;*cls;VOLT:DC:IMP:AUTO #;init
:read: VOLT:DC:IMP:AUTO?
10M 0
Auto 1
:updatemodechange:

#cmdSetup radio Null DC_Voltage
:write: abort;*cls;VOLT:DC:NULL:STAT #;init
:read: VOLT:DC:NULL:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number Null_Value DC_Voltage
:read: VOLT:DC:NULL:VALUE?
:write: abort;*cls;VOLT:DC:NULL:VALUE #;init
:buttontext: Set
Volts -1200 +1200
:updatemodechange:

;Diode------------------------------------------------------------------------------------------
#cmdSetup radio Beeper Diode
:write: abort;*cls;SYST:BEEP:STAT #;init
:read: SYST:BEEP:STAT?
Off 0
On 1
:updatemodechange:

;Frequency--------------------------------------------------------------------------------------
#cmdSetup radio Range Frequency
:write: abort;*cls;FREQ:VOLT:RANGE:AUTO #;init
:read: FREQ:VOLT:RANGE:AUTO?
AUTO 1
Manual 0
Once ONCE
:updatemodechange:

#cmdSetup comboboxHot Range Frequency
:write: abort;*cls;FREQ:VOLT:RANGE #;init
:read: FREQ:VOLT:RANGE?
100mV +1.00000000E-01
1V +1.00000000E+00
10V +1.00000000E+01
100V +1.00000000E+02
750V +7.50000000E+02
:updatemodechange:

#cmdSetup radio AC_Filter Frequency
:write: abort;*cls;FREQ:RANG:LOW #;init
:read: FREQ:RANG:LOW?
:readFormat: u
>3Hz 3
>20Hz 20
>200Hz 200
:updatemodechange:

#cmdSetup radio Gate_Time Frequency
:write: abort;*cls;FREQ:APER #;init
:read: FREQ:APER?
1ms 0.001
10ms 0.01
100ms 0.1
1s 1
:updatemodechange:

#cmdSetup radio Timeout Frequency
:write: abort;*cls;FREQ:TIM:AUTO #;init
:read: FREQ:TIM:AUTO?
1s 0
Auto 1
:updatemodechange:

#cmdSetup radio Null Frequency
:write: abort;*cls;FREQ:NULL:STAT #;init
:read: FREQ:NULL:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number Null_Value Frequency
:read: FREQ:NULL:VALUE?
:write: abort;*cls;FREQ:NULL:VALUE #;init
:buttontext: Set
Hz 0 1200000
:updatemodechange:

;Period-----------------------------------------------------------------------------------------
#cmdSetup radio Range Period
:write: abort;*cls;PER:VOLT:RANGE:AUTO #;init
:read: PER:VOLT:RANGE:AUTO?
AUTO 1
Manual 0
Once ONCE
:updatemodechange:

#cmdSetup comboboxHot Range Period
:write: abort;*cls;PER:VOLT:RANGE #;init
:read: PER:VOLT:RANGE?
100mV +1.00000000E-01
1V +1.00000000E+00
10V +1.00000000E+01
100V +1.00000000E+02
750V +7.50000000E+02
:updatemodechange:

#cmdSetup radio AC_Filter Period
:write: abort;*cls;PER:RANG:LOW #;init
:read: PER:RANG:LOW?
:readFormat: u
>3Hz 3
>20Hz 20
>200Hz 200
:updatemodechange:

#cmdSetup radio Gate_Time Period
:write: abort;*cls;PER:APER #;init
:read: PER:APER?
1ms 0.001
10ms 0.01
100ms 0.1
1s 1
:updatemodechange:

#cmdSetup radio Timeout Period
:write: abort;*cls;PER:TIM:AUTO #;init
:read: PER:TIM:AUTO?
1s 0
Auto 1
:updatemodechange:

#cmdSetup radio Null Period
:write: abort;*cls;PER:NULL:STAT #;init
:read: PER:NULL:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number Null_Value Period
:read: PER:NULL:VALUE?
:write: abort;*cls;PER:NULL:VALUE #;init
:buttontext: Set
Sec 0 1200000
:updatemodechange:

;Temperature------------------------------------------------------------------------------------
#cmdSetup comboboxHot Probe Temperature
:write: abort;*cls;TEMP:TRAN:TYPE #;init
:read: TEMP:TRAN:TYPE?
:update: Temperature_Settings
:updatedelayed: 0.2
RTD_2w RTD
RTD_4w FRTD
Thermis2w THER
Thermis4w FTH
Tcouple TC
:updatemodechange:

#cmdSetup selector Temperature_Settings Temperature
:read: TEMP:TRAN:TYPE?
:update: Probe
:updatedelayed: 0.2
:updatemodechange:
RTD Temperature2.Probe Temperature2.RTD_2w_R0 Temperature2.RTD_2w_OffstComp Temperature2.RTD_2w_Low-Power Temperature2.Aperture  Temperature2.Auto_Zero Temperature2.Null Temperature2.Null_Value
FRTD Temperature2.Probe Temperature2.RTD_4w_R0 Temperature2.RTD_4w_OffstComp Temperature2.RTD_4w_Low-Power Temperature2.Aperture Temperature2.Null Temperature2.Null_Value
THER Temperature2.Probe Temperature2.Thermis2w_Type Temperature2.Thermis2w_Low-Power Temperature2.Aperture Temperature2.Auto_Zero Temperature2.Null Temperature2.Null_Value
FTH Temperature2.Probe Temperature2.Thermis4w_Type Temperature2.Thermis4w_Low-Power Temperature2.Aperture Temperature2.Null Temperature2.Null_Value
TC Temperature2.Probe Temperature2.Tcouple_Type Temperature2.Offset Temperature2.Fixed_Offset Temperature2.Internal_Offset Temperature2.Aperture Temperature2.Auto_Zero Temperature2.Null Temperature2.Null_Value

#cmdSetup number RTD_2w_R0 Temperature2
:read: TEMP:TRAN:RTD:RES:REF?
:write: abort;*cls;TEMP:TRAN:RTD:RES:REF #;init
:buttontext: Set
Ω 80 120
Ω 49 2100
:updatemodechange:

#cmdSetup radio RTD_2w_OffstComp Temperature2
:write: abort;*cls;TEMP:TRAN:RTD:OCOM #;init
:read: TEMP:TRAN:RTD:OCOM?
Off 0
On 1
:updatemodechange:

#cmdSetup radio RTD_2w_Low-Power Temperature2
:write: abort;*cls;TEMP:TRAN:RTD:POW:LIM:STAT #;init
:read: TEMP:TRAN:RTD:POW:LIM:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number RTD_4w_R0 Temperature2
:read: TEMP:TRAN:FRTD:RES:REF?
:write: abort;*cls;TEMP:TRAN:FRTD:RES:REF #;init
:buttontext: Set
Ω 80 120
Ω 49 2100
:updatemodechange:

#cmdSetup radio RTD_4w_OffstComp Temperature2
:write: abort;*cls;TEMP:TRAN:FRTD:OCOM #;init
:read: TEMP:TRAN:FRTD:OCOM?
Off 0
On 1
:updatemodechange:

#cmdSetup radio RTD_4w_Low-Power Temperature2
:write: abort;*cls;TEMP:TRAN:FRTD:POW:LIM:STAT #;init
:read: TEMP:TRAN:FRTD:POW:LIM:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup comboboxHot Thermis2w_Type Temperature2
:write: abort;*cls;TEMP:TRAN:THER:TYPE #;init
:read: TEMP:TRAN:THER:TYPE?
:update: Active_Type
:updatedelayed: 0.2
2.252kΩ +2252
5kΩ +5000
10kΩ +10000

:updatemodechange:

#cmdSetup radio Thermis2w_Low-Power Temperature2
:write: abort;*cls;TEMP:TRAN:THER:POW:LIM:STAT #;init
:read: TEMP:TRAN:THER:POW:LIM:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup comboboxHot Thermis4w_Type Temperature2
:write: abort;*cls;TEMP:TRAN:FTH:TYPE #;init
:read: TEMP:TRAN:FTH:TYPE?
:update: Active_Type
:updatedelayed: 0.2
2.252kΩ +2252
5kΩ +5000
10kΩ +10000
:updatemodechange:

#cmdSetup radio Thermis4w_Low-Power Temperature2
:write: abort;*cls;TEMP:TRAN:FTH:POW:LIM:STAT #;init
:read: TEMP:TRAN:FTH:POW:LIM:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup comboboxHot Tcouple_Type Temperature2
:write: abort;*cls;TEMP:TRAN:TC:TYPE #;init
:read: TEMP:TRAN:TC:TYPE?
:update: Active_Type
:updatedelayed: 0.2
E E
J J
K K
N N
R R
T T
:updatemodechange:

#cmdSetup radio Offset Temperature2
:write: abort;*cls;TEMP:TRAN:TC:RJUN:TYPE #;init
:read: TEMP:TRAN:TC:RJUN:TYPE?
:string:
:update: Null_Value
:updatedelayed: 0.2
Fixed FIX
Internal INT
:updatemodechange:

#cmdSetup number Fixed_Offset Temperature2
:read: TEMP:TRAN:TC:RJUN?
:write: abort;*cls;TEMP:TRAN:TC:RJUN #;init
:buttontext: Set
°C -20 +80
:updatemodechange:

#cmdSetup number Internal_Offset Temperature2
:read: TEMP:NULL:VALUE?
:write: abort;*cls;TEMP:NULL:VALUE #;init
:buttontext: Set
°C -20 +20
:updatemodechange:

#cmdSetup comboboxHot Aperture Temperature2
:write: abort;*cls;TEMP:NPLC #;init
:read: TEMP:NPLC?
100PLC +1.00000000E+02
10PLC +1.00000000E+01
1PLC +1.00000000E+00
0.2PLC +2.00000000E-01
0.06PLC +6.00000000E-02
0.02PLC +2.00000000E-02
0.006PLC +6.00000000E-03
0.002PLC +2.00000000E-03
0.001PLC +1.00000000E-03
:updatemodechange:

#cmdSetup radio Auto_Zero Temperature2
:write: abort;*cls;TEMP:ZERO:AUTO #;init
:read: TEMP:ZERO:AUTO?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
ONCE ONCE
:updatemodechange:

#cmdSetup radio Null Temperature2
:write: abort;*cls;TEMP:NULL:STAT #;init
:read: TEMP:NULL:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number Null_Value Temperature2
:read: TEMP:NULL:VALUE?
:write: abort;*cls;TEMP:NULL:VALUE #;init
:buttontext: Set
°C -270 +1820
:updatemodechange:

;2W_Resistance----------------------------------------------------------------------------------
#cmdSetup radio Range 2W_Resistance
:read: RES:RANGE:AUTO?
:write: abort;*cls;RES:RANGE:AUTO #;init
AUTO 1
Manual 0
Once ONCE
:updatemodechange:

#cmdSetup comboboxHot Range 2W_Resistance
:write: abort;*cls;RES:RANGE #;init
:read: RES:RANGE?
100Ω +1.00000000E+02
1kΩ +1.00000000E+03
10kΩ +1.00000000E+04
100kΩ +1.00000000E+05
1MΩ +1.00000000E+06
10MΩ +1.00000000E+07
100MΩ +1.00000000E+08
1GΩ +1.00000000E+09
:updatemodechange:

#cmdSetup comboboxHot Aperture 2W_Resistance
:write: abort;*cls;RES:NPLC #;init
:read: RES:NPLC?
100PLC +1.00000000E+02
10PLC +1.00000000E+01
1PLC +1.00000000E+00
0.2PLC +2.00000000E-01
0.06PLC +6.00000000E-02
0.02PLC +2.00000000E-02
0.006PLC +6.00000000E-03
0.002PLC +2.00000000E-03
0.001PLC +1.00000000E-03
:updatemodechange:

#cmdSetup radio Auto_Zero 2W_Resistance
:write: abort;*cls;RES:ZERO:AUTO #;init
:read: RES:ZERO:AUTO?
Off 0
On 1
Once ONCE
:updatemodechange:

#cmdSetup radio OffstComp 2W_Resistance
:write: abort;*cls;RES:OCOM #;init
:read: RES:OCOM?
Off 0
On 1
:updatemodechange:

#cmdSetup radio Low_Power 2W_Resistance
:write: abort;*cls;RES:POW:LIM #;init
:read: RES:POW:LIM?
Off 0
On 1
:updatemodechange:

#cmdSetup radio Null 2W_Resistance
:write: abort;*cls;RES:NULL:STAT #;init
:read: RES:NULL:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number Null_Value 2W_Resistance
:read: RES:NULL:VALUE?
:write: abort;*cls;RES:NULL:VALUE #;init
:buttontext: Set
Ohms -120000000 +120000000
:updatemodechange:

;4W_Resistance----------------------------------------------------------------------------------
#cmdSetup radio Range 4W_Resistance
:read: FRES:RANGE:AUTO?
:write: abort;*cls;FRES:RANGE:AUTO #;init
AUTO 1
Manual 0
Once ONCE
:updatemodechange:

#cmdSetup comboboxHot Range 4W_Resistance
:write: abort;*cls;FRES:RANGE #;init
:read: FRES:RANGE?
100Ω +1.00000000E+02
1kΩ +1.00000000E+03
10kΩ +1.00000000E+04
100kΩ +1.00000000E+05
1MΩ +1.00000000E+06
10MΩ +1.00000000E+07
100MΩ +1.00000000E+08
1GΩ +1.00000000E+09
:updatemodechange:

#cmdSetup comboboxHot Aperture 4W_Resistance
:write: abort;*cls;FRES:NPLC #;init
:read: FRES:NPLC?
100PLC +1.00000000E+02
10PLC +1.00000000E+01
1PLC +1.00000000E+00
0.2PLC +2.00000000E-01
0.06PLC +6.00000000E-02
0.02PLC +2.00000000E-02
0.006PLC +6.00000000E-03
0.002PLC +2.00000000E-03
0.001PLC +1.00000000E-03
:updatemodechange:

#cmdSetup radio OffstComp 4W_Resistance
:write: abort;*cls;FRES:OCOM #;init
:read: FRES:OCOM?
Off 0
On 1
:updatemodechange:

#cmdSetup radio Low_Power 4W_Resistance
:write:FRES:POW:LIM #;init
:read: FRES:POW:LIM?
Off 0
On 1
:updatemodechange:

#cmdSetup radio Null 4W_Resistance
:write: abort;*cls;FRES:NULL:STAT #;init
:read: FRES:NULL:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number Null_Value 4W_Resistance
:read: FRES:NULL:VALUE?
:write: abort;*cls;FRES:NULL:VALUE #;init
:buttontext: Set
Ohms -120000000 +120000000
:updatemodechange:

;AC_Current-------------------------------------------------------------------------------------
#cmdSetup radio Terminals AC_Current
:write: abort;*cls;CURR:AC:TERM #;init
:read: CURR:AC:TERM?
3A 3
10A 10
:updatemodechange:

#cmdSetup radio Range AC_Current
:write: abort;*cls;CURR:AC:RANGE:AUTO #;init
:read: CURR:AC:RANGE:AUTO?
AUTO 1
Manual 0
Once ONCE
:updatemodechange:

#cmdSetup comboboxHot Range AC_Current
:write: abort;*cls;CURR:AC:RANGE #;init
:read: CURR:AC:RANGE?
100uA +1.00000000E-04
1mA +1.00000000E-03
10mA +1.00000000E-02
100mA +1.00000000E-01
1A +1.00000000E+00
3A +3.00000000E+00
10A +1.00000000E+01
:updatemodechange:

#cmdSetup radio AC_Filter AC_Current
:write: abort;*cls;CURR:AC:BAND #;init
:read: CURR:AC:BAND?
:readFormat: u
>3Hz 3
>20Hz 20
>200Hz 200
:updatemodechange:

#cmdSetup radio Null AC_Current
:write: abort;*cls;CURR:AC:NULL:STAT #;init
:read: CURR:AC:NULL:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number Null_Value AC_Current
:read: CURR:AC:NULL:VALUE?
:write: abort;*cls;CURR:AC:NULL:VALUE #;init
:buttontext: Set
Amps -12 +12
:updatemodechange:

;AC_Voltage-------------------------------------------------------------------------------------
#cmdSetup radio Range AC_Voltage
:write: abort;*cls;VOLT:AC:RANGE:AUTO #;init
:read: VOLT:AC:RANGE:AUTO?
AUTO 1
Manual 0
Once ONCE
:updatemodechange:

#cmdSetup comboboxHot Range AC_Voltage
:write: abort;*cls;VOLT:AC:RANGE #;init
:read: VOLT:AC:RANGE?
100mV +1.00000000E-01
1V +1.00000000E+00
10V +1.00000000E+01
100V +1.00000000E+02
750V +7.50000000E+02
:updatemodechange:

#cmdSetup radio Filter AC_Voltage
:write: abort;*cls;VOLT:AC:BAND #;init
:read: VOLT:AC:BAND?
:readFormat: u
>3Hz 3
>20Hz 20
>200Hz 200
:updatemodechange:

#cmdSetup radio Null AC_Voltage
:write: abort;*cls;VOLT:AC:NULL:STAT #;init
:read: VOLT:AC:NULL:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number Null_Value AC_Voltage
:read: VOLT:AC:NULL:VALUE?
:write: abort;*cls;VOLT:AC:NULL:VALUE #;init
:buttontext: Set
Volts -1200 +1200
:updatemodechange:

;Capacitance------------------------------------------------------------------------------------
#cmdSetup radio Range Capacitance
:write: abort;*cls;Cap:RANGE:AUTO #;init
:read: Cap:RANGE:AUTO?
AUTO 1
Manual 0
Once ONCE
:updatemodechange:

#cmdSetup comboboxHot Range Capacitance
:write: abort;*cls;Cap:RANGE #;init
:read: Cap:RANGE?
1nF +1.00000000E-09
10nF +1.00000000E-08
100nF +1.00000000E-07
1uF +1.00000000E-06
10uF +1.00000000E-05
100uF +1.00000000E-04
:updatemodechange:

#cmdSetup radio Null Capacitance
:write: abort;*cls;Cap:NULL:STAT #;init
:read: Cap:NULL:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number Null_Value Capacitance
:read: Cap:NULL:VALUE?
:write: abort;*cls;Cap:NULL:VALUE #;init
:buttontext: Set
mF -12 +12
:updatemodechange:

;Continuity------------------------------------------------------------------------------------------
#cmdSetup radio Beeper Continuity
:write: abort;*cls;SYST:BEEP:STAT #;init
:read: SYST:BEEP:STAT?
Off 0
On 1
:updatemodechange:

;Ratio-------------------------------------------------------------------------------------
#cmdSetup radio Range Ratio
:read: VOLT:DC:RANGE:AUTO?
:write: abort;*cls;VOLT:DC:RANGE:AUTO #;init
AUTO 1
Manual 0
Once ONCE
:updatemodechange:

#cmdSetup comboboxHot Range Ratio
:write: abort;*cls;VOLT:DC:RANGE #;init
:read: VOLT:DC:RANGE?
100mV +1.00000000E-01
1V +1.00000000E+00
10V +1.00000000E+01
100V +1.00000000E+02
1000V +1.00000000E+03
:updatemodechange:

#cmdSetup comboboxHot Aperture Ratio
:write: abort;*cls;VOLT:DC:NPLC #;init
:read: VOLT:DC:NPLC?
100PLC +1.00000000E+02
10PLC +1.00000000E+01
1PLC +1.00000000E+00
0.2PLC +2.00000000E-01
0.06PLC +6.00000000E-02
0.02PLC +2.00000000E-02
0.006PLC +6.00000000E-03
0.002PLC +2.00000000E-03
0.001PLC +1.00000000E-03
:updatemodechange:

#cmdSetup radio Input_Z Ratio
:write: abort;*cls;VOLT:DC:IMP:AUTO #;init
:read: VOLT:DC:IMP:AUTO?
10M 0
Auto 1
:updatemodechange:

#cmdSetup radio Null Ratio
:write: abort;*cls;VOLT:DC:NULL:STAT #;init
:read: VOLT:DC:NULL:STAT?
:update: Null_Value
:updatedelayed: 0.2
Off 0
On 1
:updatemodechange:

#cmdSetup number Null_Value Ratio
:read: VOLT:DC:NULL:VALUE?
:write: abort;*cls;VOLT:DC:NULL:VALUE #;init
:buttontext: Set
Volts -1200 +1200
:updatemodechange:

#cmdSetup selector Mode_settings
:read: FUNC?
:readmath: unQuote(value)
:updatemodechange:
TEMP Temperature.
VOLT DC_Voltage.
VOLT:AC AC_Voltage.
CURR DC_Current.
CURR:AC AC_Current.
DIOD Diode.
FREQ Frequency.
RES 2W_Resistance.
FRES 4W_Resistance.
CAP Capacitance.
CONT Continuity.
PER Period.
VOLT:RAT Ratio.

;System_Temperature-------------------------------------------------------------------------------------------
#cmdSetup info System
:read: SYST:TEMP?
:readmath: formatDouble(value,1,3,1,1)
°C
Temperature
:updatemodechange:


;Other menu-------------------------------------------------------------------------------------------

#ScreenDump std
HCOP:SDUM:DATA? 
;The line below works much faster on socket and slower on LXI 
;HCOPy:SDUMp:DATA:FORMat bmp;HCOP:SDUM:DATA? 

#otherList
Var list=splitq(deviceRead(handle,"MMEM:CAT?"),",",1);
Var line="";
Var n=0;
foreach line in list do
	line=getElement(line,0,",");
	if (match(line,".*\\.(bmp|png|csv|jpg)"))
		menuItem[n]=line;
		n=n+1;
		endif;
	endforeach

#otherImage
Var image=deviceReadBytes(handle,"MMEM:UPL? \"INT:\\"+name+"\"");
addImage(image,handle+" "+name);


#otherData
Var data=deviceReadBytes(handle,"MMEM:UPL? \"INT:\\"+name+"\"");
tableAddCSVText(binConvString(data),"index,"+handle+".data",1);
