Devices that have GPIB interface are typically controlled by string commands (e.g. *RST or *IDN?). In many cases the syntax of these commands is very simple and can be parameterised. Therefore there is no need to create separate drivers for different devices.

EasyGPIB driver serves as an interface between such a devices and SpecMan. The EasyGPIB device can be created in 'Device Configuration' dialog. The hardware wizard is not able to configure properly the EasyGPIB driver's options at a moment. Thus the editing has to be done manually in configuration file.

Assuming that the device name is EG, the configuration file entry (after the configuration of GPIB interface) can look like this:

Configuration file example:

[EG] DeviceDLL=EASYGPIB VISAresName=GPIB0::8 VISATMOValue=1000 ms VISATimeOut=200 ms VISAWriteTime=0 ms VISAReadTime=0 ms TextWriteProc= TextReadProc=_A,A_,LFCR Multithreaded=false

The lines that describe the actions during initialization and deinitialization as well as properties of device has to be added to the end of this text. Refer to the rules for the explanation of wildcards in the command description.

Operation
Entry
Value
Initialization init[n0] <any command>
Deinitialization deinit[n0] <any command>
Property par[n0]
val[n0]
<any name>, <unit>, [r/w/rw], [sel/val], <write command>,<request command>,<read format>
The meaning of additional entry val[n0] is dependent on the 4th argument.
if sel then val[n0] = <choice1>, <arg1>, <choice2>, <arg2>, ... Here choice is the string, which will appear in the SpecMan interface and arg is GPIB command that will be sent to device if particular choice is selected.
if val then val[n0] = [fu min], [fu max], [fu increment], [fu min_increment]

GPIB commands can have any syntax. The write commands of val type are produced using printf function (printf("<write command>",[f value])), where the value is the one that is specified in the program interface. The write commands of sel type send to device the arg string without any modification. The read commands decode the response using sscanf function (sscanf(string_val, "<read format>",&value)), where string_val is the responce of device and value is the obtained value. (Refer to any help on C programming language, printf or scanf functions format.) The values that used in the program are long float, corresponding format specifier is %lf.

EasyGPIB properties may not me added to transient axes.

Configuration file example:

; Two properties, which read data from device. par0=X, V, r, val, , rest, outr?1, %lf par1=Y, V, r, val, , outr?2, %lf

Configuration file example:

; Two properties, that write to device. par0=Mode, , w, sel, , , val0=Mode 1,MOD1,Mode 2,MOD5 par1=Power, dB, w, val, :POW %5.2lf dB, , val1=-30dB, 5dB, 1dB, 0dB