NI SWITCH Setup Functions - ni/grpc-device GitHub Wiki

Setup Functions

niSwitch_init

Specific Function

C Function Prototype

ViStatus niSwitch_init (ViRsrc resourceName, ViBoolean idQuery, ViBoolean resetDevice, ViSession* vi);

Purpose

Returns a session handle used to identify the switch module in all subsequent instrument driver calls.

niSwitch_init creates a new IVI instrument driver session for the switch module specified in the resourceName parameter. If multiple topologies) are valid for that device, NI-SWITCH uses the default topology specified in MAX.

By default, the switch module is reset to a known state.

An error is returned if a session to the specified resource exists in another process. The same session is returned if niSwitch_init is called twice in the same process for the same resource with the same topology.

Parameters

Name Type Description
resourceName ViRsrc

Resource name of the switch module to initialize.

Syntax:

Configured in MAX Under Valid Syntax
Devices and Interfaces DeviceName
PXI System PXI[bus number]::device number

Optional fields are shown in square brackets ([]). The default values for optional fields are as follows:

chassis ID = 1
bus number = 0

Tip  IVI logical names are also valid for the resource name.
Example resource names:
Name Description
SC1Mod3 NI-DAQmx module in chassis "SC1" Slot 3
MySwitch NI-DAQmx module renamed to "MySwitch"
PXI0::16 PXI bus 0, device number 16
PXI::16 PXI bus 0, device number 16
idQuery ViBoolean

This parameter is ignored.

Because NI-SWITCH supports multiple switch modules, it always queries the switch to determine which device is installed. For this reason, this VI may return NISWITCH_ERROR_FAIL_ID_QUERY even if this parameter is set to VI_FALSE.

Value Description
VI_TRUE (default) Queries the switch to determine which device is installed.
VI_FALSE Currently unsupported.
resetDevice ViBoolean Specifies whether to reset the switch module during the initialization process.
Value Description
VI_TRUE (default) Resets the device.
VI_FALSE Currently unsupported. The device will not reset.
vi ViSession A particular NI-SWITCH session established with niSwitch_InitWithTopology, niSwitch_InitWithOptions, or niSwitch_init and used for all subsequent NI-SWITCH calls.

Related Information

  • Initialization
  • Programming Flow

niSwitch_InitWithOptions

Specific Function

C Function Prototype

ViStatus niSwitch_InitWithOptions (ViRsrc resourceName, ViBoolean idQuery, ViBoolean resetDevice, ViConstString optionString, ViSession* vi);

Purpose

Returns a session handle used to identify the switch module in all subsequent instrument driver calls and optionally sets the initial state of the session.

niSwitch_InitWithOptions creates a new IVI instrument driver session for the switch module specified in the resourceName parameter. If multiple topologies) are valid for that device, NI-SWITCH uses the default topology specified in MAX. The topology is also configurable in the optionString parameter.

!Note Note  When initializing an NI SwitchBlock device with topology, you must specify the topology created when you configured the device in MAX, using either Configured Topology or the topology string of the device. Refer to Initializing with Topology for NI SwitchBlock Devices) for information about determining the topology string of an NI SwitchBlock device.
By default, the switch module is reset to a known state.

Enable simulation in the optionString parameter.

An error is returned if a session to the specified resource exists in another process. The same session is returned if niSwitch_InitWithOptions is called twice in the same process for the same resource with the same topology.

Parameters

Name Type Description
resourceName ViRsrc

Resource name of the switch module to initialize.

Syntax:

Configured in MAX Under Valid Syntax
Devices and Interfaces DeviceName
PXI System PXI[bus number]::device number

Optional fields are shown in square brackets ([]). The default values for optional fields are as follows:

chassis ID = 1
bus number = 0

Tip  IVI logical names are also valid for the resource name.
Example resource names:
Name Description
SC1Mod3 NI-DAQmx module in chassis "SC1" Slot 3
MySwitch NI-DAQmx module renamed to "MySwitch"
PXI0::16 PXI bus 0, device number 16
PXI::16 PXI bus 0, device number 16
idQuery ViBoolean

This parameter is ignored.

Because NI-SWITCH supports multiple switch modules, it always queries the switch to determine which device is installed. For this reason, this VI may return NISWITCH_ERROR_FAIL_ID_QUERY even if this parameter is set to VI_FALSE.

Value Description
VI_TRUE (default) Queries the switch to determine which device is installed.
VI_FALSE Currently unsupported.
resetDevice ViBoolean Specifies whether to reset the switch module during the initialization process.
Value Description
VI_TRUE (default) Reset device
VI_FALSE Currently unsupported. The device will not reset.
optionString ViConstString Sets initial values of certain attributes for the NI-SWITCH session. The following table lists the attribute string names you can use:
Attribute Attribute String Name Default Value
NISWITCH_ATTR_RANGE_CHECK RangeCheck 1
NISWITCH_ATTR_QUERY_INSTRUMENT_STATUS QueryInstrStatus 1
NISWITCH_ATTR_CACHE Cache 1
NISWITCH_ATTR_SIMULATE Simulate 0
NISWITCH_ATTR_RECORD_COERCIONS RecordCoercions 0
NISWITCH_ATTR_DRIVER_SETUP DriverSetup topology 1127/2-Wire 32x1 Mux

The format of the optionString is, "AttributeStringName=Value" where AttributeStringName is the string name of the attribute shown above and Value is the value to which the attribute will be set. To set multiple attributes, separate assignments with a comma.

If you pass an empty string for this parameter, the NI-SWITCH session uses the default values for the attributes. You can override the default values by explicitly assigning a value. You do not have to specify all of the available attributes. If you do not specify an attribute, its default value is used.

Use the DriverSetup attribute to set the topology or the resource type of the switch module. This attribute can contain config token/value pairs within it.

DriverSetup=[config token]:[value];[config token 2]:[value 2]

Valid Config Tokens and Values:

Config Token Description Default Value
topology The topology of the device. Refer to Devices) topic for valid values. You can also set the value of the topology config token to Configured Topology to specify the last topology that was configured for the device in MAX. Max configured topology for each device
resourcetype Use "daqmx" for devices configured under NI-DAQmx Devices in MAX. daqmx

For example, use the following string to set an NI SCXI-1127 as a 2-wire 32x1 multiplexer configured in MAX under DAQmx Devices:

"DriverSetup=topology:1127/2-Wire 32x1 Mux;resourcetype:daqmx"

The DriverSetup string is particularly important when using NI-SWITCH through the IviSwtch class driver.

To enable simulation, set simulate equal to 1 and specify the switch module and topology of the switch module to simulate. The following string enables simulation for an NI SCXI-1127 configured as a 2-wire 32x1 multiplexer.

"Simulate=1, DriverSetup=topology:1127/2-Wire 32x1 Mux"

If simulate is set to 1 and the DriverSetup string specifies a topology, the topology is used to determine which device to simulate. If the DriverSetup string does not specify a topology, the device specified in resource name is simulated.

vi ViSession A particular NI-SWITCH session established with niSwitch_InitWithTopology, niSwitch_InitWithOptions, or niSwitch_init and used for all subsequent NI-SWITCH calls.

Related Information

  • Initialization
  • Programming Flow

niSwitch_InitWithTopology

Specific Function

C Function Prototype

ViStatus niSwitch_InitWithTopology (ViRsrc resourceName, ViConstString topology, ViBoolean simulate, ViBoolean resetDevice, ViSession* vi);

Purpose

Returns a session handle used to identify the switch module in all subsequent instrument driver calls and sets the topology) of the switch module.

niSwitch_InitWithTopology creates a new IVI instrument driver session for the switch module specified in the resourceName parameter. The driver uses the topology specified in the topology parameter and overrides the topology specified in MAX.

!Note Note  When initializing an NI SwitchBlock device with topology, you must specify the topology created when you configured the device in MAX, using either NISWITCH_TOPOLOGY_CONFIGURED_TOPOLOGY or the topology string of the device. Refer to Initializing with Topology for NI SwitchBlock Devices) for information about determining the topology string of an NI SwitchBlock device.
By default, the switch module is reset to a known state.

Enable simulation by specifying the topology and setting the simulate parameter to VI_TRUE.

Parameters

Name Type Description
resourceName ViRsrc

Resource name of the switch module to initialize.

Syntax:

Configured in MAX Under Valid Syntax
Devices and Interfaces DeviceName
PXI System PXI[bus number]::device number

Optional fields are shown in square brackets ([]). The default values for optional fields are as follows:

chassis ID = 1
bus number = 0

Tip  IVI logical names are also valid for the resource name.
Example resource names:
Name Description
SC1Mod3 NI-DAQmx module in chassis "SC1" Slot 3
MySwitch NI-DAQmx module renamed to "MySwitch"
PXI0::16 PXI bus 0, device number 16
PXI::16 PXI bus 0, device number 16
topology ViConstString Pass the topology name you want to use for the switch you specify with the resourceName parameter. You can also pass NISWITCH_TOPOLOGY_CONFIGURED_TOPOLOGY to use the last topology that was configured for the device in MAX.
Note  To determine the names of the supported topologies for your switch device, expand the Devices book, and select the switch module you are using from the Contents tab of this help file. In the device overview, the Operation Modes table(s) lists all supported topology and software names for the switch module.
simulate ViBoolean Enables simulation of the switch module specified in the resourceName parameter.
Value Description
VI_TRUE Simulate
VI_FALSE (default) Do not simulate
resetDevice ViBoolean Specifies whether to reset the switch module during the initialization process.
Value Description
VI_TRUE (default) Reset device
VI_FALSE The device will not reset.
Note  The first call to niSwitch_InitWithTopology, after you reboot your computer, will reset the hardware. This is the only case when the Reset flag is not honored.
vi ViSession A particular NI-SWITCH session established with niSwitch_InitWithTopology, niSwitch_InitWithOptions, or niSwitch_init and used for all subsequent NI-SWITCH calls.

Related Information

  • Initialization
  • Programming Flow
  • Topologies

niSwitch_close

Specific Function

C Function Prototype

ViStatus niSwitch_close (ViSession vi);

Purpose

Terminates the NI-SWITCH session and all of its attributes and deallocates any memory resources the driver uses.

Note  You must unlock the session before calling niSwitch_close. After calling niSwitch_close, you cannot use the NI-SWITCH again until you call niSwitch_init or niSwitch_InitWithOptions.

Parameters

Name Type Description
vi ViSession A particular NI-SWITCH session established with niSwitch_InitWithTopology, niSwitch_InitWithOptions, or niSwitch_init and used for all subsequent NI-SWITCH calls.

Related Information

  • Close
⚠️ **GitHub.com Fallback** ⚠️