niFgen_InitWithOptions

NI-FGEN C Function

niFgen_InitWithOptions

ViStatus niFgen_InitWithOptions (ViRsrc resourceName, ViBoolean idQuery, ViBoolean resetDevice, ViString optionString, ViSession *vi);

Purpose

Performs the following initialization actions:

  • Creates a new IVI instrument session and optionally sets the initial state of the following session attributes: RangeCheck, QueryInstrStatus, Cache, Simulate, and RecordCoersions.
  • Opens a session to the specified device using the interface and address that you specify for resourceName.
  • If IDQuery is set to VI_TRUE, this function queries the device ID and checks that it is valid for NI-FGEN.
  • If resetDevice is set to VI_TRUE, this function resets the device to a known state.
  • Sends initialization commands to set the instrument to the state necessary for NI-FGEN operation.
  • Returns a session handle that you can use to identify the device in all subsequent NI-FGEN function calls.

Parameters

Input
Name Type Description
resourceName ViRsrc Specifies the resource name of the device to initialize.

Example # Device Type Syntax Variable
1
Traditional NI-DAQ device DAQ::1 (1 = device number)
2
NI-DAQmx device myDAQmxDevice (myDAQmxDevice = device name)
3
NI-DAQmx device DAQ::myDAQmxDevice (myDAQmxDevice = device name)
4
NI-DAQmx device DAQ::2 (2 = device name)
5
IVI logical name or IVI virtual name myLogicalName (myLogicalName = name)

For Traditional NI-DAQ devices, the syntax is DAQ::n, where n is the device number assigned by MAX, as shown in Example 1.

For NI-DAQmx devices, the syntax is just the device name specified in MAX, as shown in Example 2. Typical default names for NI-DAQmx devices in MAX are Dev1 or PXI1Slot1. You can rename an NI-DAQmx device by right-clicking on the name in MAX and entering a new name.

An alternate syntax for NI-DAQmx devices consists of DAQ::NI-DAQmx device name, as shown in Example 3. This naming convention allows for the use of an NI-DAQmx device in an application that was originally designed for a Traditional NI-DAQ device. For example, if the application expects DAQ::1, you can rename the NI-DAQmx device to 1 in MAX and pass in DAQ::1 for the resource name, as shown in Example 4.

If you use the DAQ::n syntax and an NI-DAQmx device name already exists with that same name, the NI-DAQmx device is matched first.

You can also pass in the name of an IVI logical name or an IVI virtual name configured with the IVI Configuration utility, as shown in Example 5. A logical name identifies a particular virtual instrument. A virtual name identifies a specific device and specifies the initial settings for the session.

Caution  Traditional NI-DAQ and NI-DAQmx device names are not case-sensitive. However, all IVI names, such as logical names, are case-sensitive. If you use logical names, driver session names, or virtual names in your program, you must ensure that the name you use matches the name in the IVI Configuration Store file exactly, without any variations in the case of the characters.

idQuery ViBoolean Specify whether you want NI-FGEN to perform an ID query.

When you set this parameter to VI_TRUE, NI-FGEN verifies that the device that you initialize is a type that it supports.

Circumstances can arise where sending an ID query to the device is undesirable. When you set this parameter to VI_FALSE, the function initializes the device without performing an ID query.

Defined Values

VI_TRUEPerform ID query
VI_FALSESkip ID query

Default Value: VI_TRUE

resetDevice ViBoolean Specifies whether you want to reset the device during the initialization procedure.

Defined Values

VI_TRUEReset device
VI_FALSEDo not reset device

Default Value: VI_TRUE

optionString ViString Sets the initial value of certain session attributes.

The syntax for optionString is

<attributeName> = <value>

where

attributeName is the name of the attribute and value is the value to which the attribute is set

To set multiple attributes, separate them with a comma.

If you pass NULL or an empty string for this parameter, the session uses the default values for these attributes. You can override the default values by assigning a value explicitly in a string that you pass for this parameter.

You do not have to specify all of the attributes and may leave any of them out. However, if you do not specify one of the attributes, its default value is used.

If simulation is enabled (Simulate=1), you may specify the device that you want to simulate. To specify a device, enter the following syntax in optionString.

DriverSetup=Model:<driver model number>;BoardType:<module type>;MemorySize:<size of onboard memory in bytes>

Syntax Examples

Device optionString Syntax
NI PXI-5404 DriverSetup=Model:5404;BoardType:PXI
NI PCI-5411 DriverSetup=Model:5411;BoardType:PCI;MemorySize:8000000

Attributes and Defined Values

Attribute Name Attribute Values
RangeCheck NIFGEN_ATTR_RANGE_CHECK VI_TRUE, VI_FALSE
QueryInstrStatus NIFGEN_ATTR_QUERY_INSTRUMENT_STATUS VI_TRUE, VI_FALSE
Cache NIFGEN_ATTR_CACHE VI_TRUE, VI_FALSE
Simulate NIFGEN_ATTR_SIMULATE VI_TRUE, VI_FALSE

Default Values: "Simulate=0,RangeCheck=1,QueryInstrStatus=1,Cache=1"

Output
Name Type Description
vi ViSession Returns a session handle that you can use to identify the device in all subsequent NI-FGEN function calls.

Return Value

Name Type Description
Status ViStatus Returns the status code of this operation. The status code either indicates success or describes an error or warning condition. You can examine the status code from each call to an NI-FGEN function to determine if an error occurred. To obtain a text description of the status code, call the niFgen_error_message function. To obtain additional information about the error condition, call the niFgen_GetError function. To clear the error information from NI-FGEN, call the niFgen_ClearError function.

The general meaning of the status code is as follows:

Value Meaning
0 Success
Positive Values Warnings
Negative Values Errors