-
Notifications
You must be signed in to change notification settings - Fork 1
Drivers
A driver file should be in the form of an INI configuration file and must contain at least three sections: General settings, Model and options, and VISA settings along with any quantities as their own section.
name*†: the unique name of the instrument
version: version of the driver. Should be updated any time changes are made. This is an optional field and is only used to help the user keep track of any updates.
driver_path: the path to a user-defined InstrumentManager. The path can be an absolute path or relative to the directory that the INI driver is in. Realtive paths cannot start with \ or / and the module name must be the same as the class name. For example if the INI driver file at the time of upload is located at C:\ICAS\drivers\this_driver.ini and the driver_path = custom_managers\ThisDriverManager.py the custom Instrument manager would be located at C:\ICAS\drivers\custom_managers\ThisDriverManager.py and the class name must be ThisDriverManager.
interface†: communication interface of the instrument connection.
model_str_1, model_str_2,..., model_str_n: List of models supported by the driver.
check_model: boolean value determining if InstrumentManager queries instrument for valid models at startup. Defaults to False.
model_cmd: command used to check the instrument model. Default command is *IDN?.
model_id_1, model_id_2,..., model_id_n: Model strings expected to be returned by the instrument by the model_cmd call. If not defined, the program assumes model_str_1, model_str_2,..., model_str_2 as default values. Number of model_ids must match number of model_strs or must not be included.
option_str_1, option_str_2,..., option_str_n: List of options supported by the driver.
check_options: boolean value determining if InstrumentManager queries instrument for valid options at startup. Defaults to False.
option_cmd: command used to check the instrument options.
option_id_1, option_id_2,..., option_id_n: option strings expected to be returned by the instrument by the option_cmd call. If not defined, the program assumes option_str_1, option_str_2,..., option_str_2 as default values. Number of option_ids must match number of option_strs or must not be included.
Configuration information when using default InstrumentManager or VISA protocol. Some fields may still be helpful for custom InstrumentManagers that do not use VISA protocol.
use_visa†: boolean value determining whether to use VISA protocol. If False, user must provide custom InstrumentManager and include path in driver_path.
reset: boolean value determining whether to reset interface. Defaults to False.
error_cmd: command to be sent to instrument when querying for errors.
init: commands to be sent to instrument on InstrumentManager instantiation.
final: commands to be sent to instrument when InstrumentManager closes connection.
str_true: string value that the instrument understands as True. Defaults to 1.
str_false: string value that the instrument understands as False. Defaults to 0.
timeout: time in seconds before timing out while waiting on instrument response. Defaults to 5.
term_char: termination character used by the instrument. Valid values are Auto, None, CR, LF, CR+LF
baud_rate: communication speed for serial communication. Defaults to 9600.
data_bits: number of data bits for serial communication. Defaults to 8.
stop_bits: number of stop bits for serial communication. Valid values are 1, 1.5, and 2. Defaults to 1.
parity: parity used for local communication. Valid values are No parity, Odd parity, and Even parity.
All instrument quantities must have their own section. For example, if the instrument has two quantities Frequency and Amplitude, you would need sections for both of those. datatype is the only required field.
datatype: valid data types are DOUBLE, BOOLEAN, COMBO, STRING, COMPLEX, VECTOR, VECTOR_COMPLEX, PATH, and BUTTON.
label: name InstrumentManager refers to quantity as. Defaults to quantity section name.
unit: unit of measurement.
def_value: default value of quantity.
tooltip tip shown when hovering cursor over quantity name in GUI.
low_lim: lowest value allowed. Defaults to -INf.
low_lim: highest value allowed. Defaults to +INf.
x_name: x-axis label used for VECTOR or VECTOR_COMPLEX data types
x_unit: x-axis unit used for VECTOR or VECTOR_COMPLEX data types
combo_def_1, combo_def_2,..., combo_def_n: options for dropdown box if data type is COMBO.
cmd_def_1, cmd_def_2,..., cmd_def_n: command values associated with each option for dropdown box if data type is COMBO. Must have the same number of cmd_def as combo_def.
group: name of group that the quantity grouped with in the manager GUI.
section: name of section that the quantity grouped with in the manager GUI.
state_quant: a different quantity that determines this quantity's visibility.
state_value_1, state_value_2,..., state_value_n: value of state_quant where this quantity is visible.
set_cmd: command to set quantity's values. If the value needs to be in a specific location in the command put <*> where the value should go, otherwise, value will be placed after command.
get_cmd: command to get quantity's values. Defaults to set_cmd?
* Indicates a required field.
† Indicates field will be overridden by the GUI when adding instrument to the server.
[General settings]
name: Agilent 33220A Waveform Generator
version: 1.0
driver_path: Agilent_33220A_WaveformGenerator/Manager
interface: TCPIP
[Model and options]
model_str_1: 33220A
check_model: True
model_id_1: Agilent Technologies,33220A
[VISA settings]
use_visa: True
reset: True
timeout: 2
error_cmd: :SYST:ERR?
init: *ESE 60;:SOUR:VOLT:UNIT VPP;:FORM:BORD SWAP;
[Function]
datatype: COMBO
def_value: Sinusoid
combo_def_1: Sinusoid
combo_def_2: Square
combo_def_3: Ramp
combo_def_4: Pulse
combo_def_5: Noise
combo_def_6: DC
combo_def_7: User
cmd_def_1: SIN
cmd_def_2: SQU
cmd_def_3: RAMP
cmd_def_4: PULS
cmd_def_5: NOIS
cmd_def_6: DC
cmd_def_7: USER
set_cmd: :FUNC
[Output load]
datatype: COMBO
def_value: 50 Ohm
combo_def_1: 50 Ohm
combo_def_2: 10 kOhm
cmd_def_1: +5.0000000000000E+01
cmd_def_2: +1.0000000000000E+04
set_cmd: :OUTP:LOAD
group: Output
[Frequency]
datatype: DOUBLE
def_value: 1E3
unit: Hz
set_cmd: :FREQ
state_quant: Function
state_value_1: Sinusoid
state_value_2: Ramp
state_value_3: Pulse
state_value_4: Square
state_value_5: Noise
state_value_6: User
[Voltage]
datatype: DOUBLE
def_value: 0.1
unit: V
set_cmd: :VOLT
state_quant: Function
state_value_1: Sinusoid
state_value_2: Ramp
state_value_3: Pulse
state_value_4: Square
state_value_5: Noise
state_value_6: User- Home
- License
- Architecture
- User Guide
1. Install Guide
2. Instrument Server
3. Manual Instrument Control
4. Drivers and Managers
4a. Drivers
4b. InstrumentManager
4c. QuantityManager
5. Experiment Module
5a. Create Experiment
5b. Experiment Runner