Notification that an error condition has occurred during an operation invocation. Event Attributes Symbolic Name Access Privilege Data Type Range VI_ATTR_EVENT_TYPE RO ViEventType VI_EVENT_EXCEPTION VI_ATTR_STATUS RO ViStatus N/A VI_ATTR_OPER_NAME RO ViString N/A Event Attribute Descriptions VI_ATTR_EVENT_TYPE Unique logical identifier of the event. VI_ATTR_STATUS Status code returned by the operation generating the error. VI_ATTR_OPER_NAME The name of the operation generating the event. RULE 3.7.12 The name of the operation contained in VI_ATTR_OPER_NAME SHALL be exactly as presented in this specification, The VISA Library. OBSERVATION 3.7.7 For an exception generated from the viLock() operation, VI_ATTR_OPER_NAME would contain the string "viLock". OBSERVATION 3.7.8 The intent of providing VI_ATTR_OPER_NAME is to be able to provide diagnostic information, such as printing the name of the operation causing the event. Comparing the operation name in order to perform different actions, while valid, is not a recommended programming style. 3.7.3 Event Operations viEnableEvent(vi, eventType, mechanism, context) viDisableEvent(vi, eventType, mechanism) viDiscardEvents(vi, eventType, mechanism) viWaitOnEvent(vi, inEventType, timeout, outEventType, outContext) viInstallHandler(vi, eventType, handler, userHandle) viUninstallHandler(vi, eventType, handler, userHandle) Handler Prototype: viEventHandler(vi, eventType, context, userHandle) 3.7.3.1 viEnableEvent(vi, eventType, mechanism, context) Purpose Enable notification of a specified event. Parameters Name Direction Type Description vi IN ViSession Unique logical identifier to a session. eventType IN ViEventType Logical event identifier.
mechanism IN ViUInt16 Specifies event handling mechanisms to be enabled. The queuing mechanism is enabled by specifying VI_QUEUE, and the callback mechanism is enabled by specifying VI_HNDLR or VI_SUSPEND_HNDLR. It is possible to enable both mechanisms simultaneously by specifying "bit-wise OR" of VI_QUEUE and one of the two mode values for the callback mechanism. context IN ViEventFilter VI_NULL Return Values Type ViStatus This is the operational return status. It returns either a completion code or an error code as follows. Completion Codes Description VI_SUCCESS Event enabled successfully. VI_SUCCESS_EVENT_EN Specified event is already enabled for at least one of the specified mechanisms. Error Codes Description VI_ERROR_INV_SESSION VI_ERROR_INV_OBJECT The given session or object reference is invalid (both are the same value). VI_ERROR_INV_EVENT Specified event type is not supported by the resource. VI_ERROR_INV_MECH Invalid mechanism specified. VI_ERROR_INV_CONTEXT Specified event context is invalid. VI_ERROR_HNDLR_NINSTALLED A handler is not currently installed for the specified event. The session cannot be enabled for the VI_HNDLR mode of the callback mechanism. VI_ERROR_NSUP_MECH The specified mechanism is not supported for the given event type. Description This operation enables notification of an event identified by the eventType parameter for mechanisms specified in the mechanism parameter. The specified session can be enabled to queue events by specifying VI_QUEUE. Applications can enable the session to invoke a callback function to execute the handler by specifying VI_HNDLR. The applications are required to install at least one handler to be enabled for this mode. Specifying VI_SUSPEND_HNDLR enables the session to receive callbacks, but the invocation of the handler is deferred to a later time. Successive calls to this operation replace the old callback mechanism with the new callback mechanism. Specifying VI_ALL_ENABLED_EVENTS for the eventType parameter refers to all events that have previously been enabled on this session, making it easier to switch between the two callback mechanisms for multiple events. Table 3.7.3 Special Values for eventType Parameter Value Action Description
VI_ATTR_OPER_NAME The name of the operation generating the event. For more information on VI_ATTR_OPER_NAME, see its definition in Section 3.7.2.3, VI_EVENT_EXCEPTION. VI_EVENT_VXI_VME_INTR Description Notification that a VXIbus interrupt was received from the device. Event Attributes Symbolic Name Access Privilege Data Type Range VI_ATTR_EVENT_TYPE RO ViEventType VI_EVENT_VXI_VME_INTR VI_ATTR_INTR_STATUS_ID RO ViUInt32 0 to FFFFFFFFh VI_ATTR_RECV_INTR_LEVEL RO ViInt16 1 to 7, VI_UNKNOWN_LEVEL Event Attribute Descriptions VI_ATTR_EVENT_TYPE Unique logical identifier of the event. VI_ATTR_INTR_STATUS_ID This attribute value is the 32-bit status/ID retrieved during the IACK cycle. VI_ATTR_RECV_INTR_LEVEL This attribute value is the VXI interrupt level on which the interrupt was received. VI_EVENT_USB_INTR Description Notification that a vendor-specific USB interrupt was received from the device. Event Attributes Symbolic Name Access Privilege Data Type Range VI_ATTR_EVENT_TYPE RO ViEventType VI_EVENT_USB_INTR VI_ATTR_USB_RECV_INTR_SIZE RO ViUInt16 0 to FFFFh VI_ATTR_USB_RECV_INTR_DATA RO ViBuf N/A VI_ATTR_STATUS RO ViStatus N/A Event Attribute Descriptions VI_ATTR_EVENT_TYPE Unique logical identifier of the event. VI_ATTR_USB_RECV_INTR_SIZE Specifies the size of the data that was received from the USB interrupt-IN pipe. This value will never be larger than the session’s value of VI_ATTR_USB_MAX_INTR_SIZE. VI_ATTR_USB_RECV_INTR_DATA Specifies the actual data that was received from the USB interrupt-IN pipe. Querying this attribute copies the contents
An INSTR resource implementation for a USB system SHALL return the error VI_ERROR_INV_EVENT when a user tries to enable VI_EVENT_USB_INTR for a USBTMC device (base-class or USB488) that does not have an interrupt IN pipe. RULE 5.1.65 An INSTR resource implementation for a USB system SHALL generate VI_EVENT_USB_INTR only when the interrupt header contains a vendor-specific notification as defined by the USBTMC specification. OBSERVATION 5.1.12 A USB488 service request notification will not cause VI_EVENT_USB_INTR to be generated. RULE 5.1.66 IF a framework is 32-bit, THEN the values of the attributes VI_ATTR_RET_COUNT and VI_ATTR_RET_COUNT_32 SHALL be identical. RULE 5.1.67 IF a framework is 64-bit, THEN the values of the attributes VI_ATTR_RET_COUNT and VI_ATTR_RET_COUNT_64 SHALL be identical. RULE 5.1.68 IF a framework is 32-bit, THEN the attribute VI_ATTR_RET_COUNT_64 SHALL NOT be defined. OBSERVATION 5.1.13 A user on a 32-bit framework cannot transfer more data than would fit in a 32-bit size.
RULE 5.2.2 All MEMACC resource implementations SHALL support the attributes VI_ATTR_INTF_TYPE, VI_ATTR_INTF_INST_NAME, VI_ATTR_TMO_VALUE, VI_ATTR_INTF_NUM, and VI_ATTR_DMA_ALLOW_EN. RULE 5.2.3 A MEMACC resource implementation for a VXI or GPIB-VXI system SHALL support the attributes VI_ATTR_WIN_BASE_ADDR, VI_ATTR_WIN_SIZE, VI_ATTR_WIN_ACCESS, VI_ATTR_SRC_INCREMENT, VI_ATTR_DEST_INCREMENT, VI_ATTR_SRC_BYTE_ORDER, VI_ATTR_DEST_BYTE_ORDER, VI_ATTR_WIN_BYTE_ORDER, VI_ATTR_SRC_ACCESS_PRIV, VI_ATTR_DEST_ACCESS_PRIV, and VI_ATTR_WIN_ACCESS_PRIV. RULE 5.2.4 A MEMACC resource implementation for a PXI system SHALL support the attributes VI_ATTR_WIN_BASE_ADDR, VI_ATTR_WIN_SIZE, VI_ATTR_WIN_ACCESS, VI_ATTR_SRC_INCREMENT, and VI_ATTR_DEST_INCREMENT. RULE 5.2.5 IF a MEMACC resource implementation does not support DMA transfers, AND the attribute is VI_ATTR_DMA_ALLOW_EN, AND the attribute state is VI_TRUE, THEN the call to viSetAttribute() SHALL return the completion code VI_WARN_NSUP_ATTR_STATE.
RULE 5.2.8 A MEMACC resource implementation for a PXI system SHALL support the operations viMemAlloc(), viMemFree(), viMemAllocEx(), and viMemFreeEx().
Read data from device asynchronously. Parameters Name Direction Type Description vi IN ViSession Unique logical identifier to a session. buf OUT ViBuf Represents the location of a buffer to receive data from device. count IN ViUInt32 Number of bytes to be read. jobId OUT ViJobId Represents the location of a variable that will be set to the job identifier of this asynchronous read operation. Return Values Type ViStatus This is the operational return status. It returns either a completion code or an error code as follows. Completion Codes Description VI_SUCCESS Asynchronous read operation successfully queued. VI_SUCCESS_SYNC Read operation performed synchronously. Error Codes Description VI_ERROR_INV_SESSION VI_ERROR_INV_OBJECT The given session or object reference is invalid (both are the same value). VI_ERROR_RSRC_LOCKED Specified operation could not be performed because the resource identified by vi has been locked for this kind of access. VI_ERROR_QUEUE_ERROR Unable to queue read operation. VI_ERROR_IN_PROGRESS Unable to start a new asynchronous operation while another asynchronous operation is in progress. Description The asynchronous read operation asynchronously transfers data. The data read is to be stored in the buffer represented by buf. This operation normally returns before the transfer terminates. An I/O Completion event will be posted when the transfer is actually completed. The operation returns jobId, which you can use with either viTerminate() to abort the operation or with an I/O Completion event to identify which asynchronous read operation completed. Table 6.1.2 Special Values for jobId Parameter Value Action Description VI_NULL Do not return a job identifier. Related Items
For GPIB, ASRL, USB, and VXI software triggers, VI_TRIG_PROT_DEFAULT is the only valid protocol. For VXI hardware triggers, VI_TRIG_PROT_DEFAULT is equivalent to VI_TRIG_PROT_SYNC. For a PXI resource, viAssertTrigger() will reserve a trigger line for assertion, or release such a reservation. Instrument drivers should use viAssertTrigger() to ensure that they have ownership of a trigger line before performing any operation that could drive a signal onto that trigger line. The protocol parameter can be either VI_TRIG_PROT_RESERVE or VI_TRIG_PROT_UNRESERVE, which reserve a trigger line and release the reservation, respectively. Related Items See the INSTR resource description. Implementation Requirements RULE 6.1.23 For compatibility with earlier versions of this specification, VI_TRIG_PROT_DEFAULT SHALL be equal to VI_NULL. RULE 6.1.24 IF the attribute VI_ATTR_IO_PROT is set to VI_PROT_NORMAL for a session to an ASRL INSTR or TCPIP SOCKET resource, THEN the operation viAssertTrigger() SHALL return VI_ERROR_INV_SETUP. RULE 6.1.25 An INSTR resource implementation of viAssertTrigger() for a USB System SHALL return the error VI_ERROR_INV_SETUP for a USBTMC base-class (non-488) device. RULE 6.1.26 An INSTR resource implementation of viAssertTrigger() for a USB System SHALL return the error VI_ERROR_INV_SETUP for a USBTMC 488-class device that does not implement the optional trigger message ID. 6.1.8 viReadSTB(vi, status) Purpose Read a status byte of the service request. Parameters Name Direction Type Description vi IN ViSession Unique logical identifier to the session. status OUT ViUInt16 Service request status byte. Return Values Type ViStatus This is the operational return status. It returns either a completion code or an error code as follows. Completion Code Description VI_SUCCESS Operation completed successfully. Error Codes Description
This operation, by using the specified address space, reads in 8, 16, 32, or 64 bits of data from the specified offset. This operation does not require viMapAddress() or viMapAddressEx() to be called prior to its invocation. The following table lists the valid entries for specifying address space. Value Description VI_A16_SPACE Address the A16 address space of VXI/MXI bus. VI_A24_SPACE Address the A24 address space of VXI/MXI bus. VI_A32_SPACE Address the A32 address space of VXI/MXI bus. VI_A64_SPACE Address the A64 address space of VXI/MXI bus. Address the PCI configuration space. – Address the specified PCI memory or I/O space. Access physical locally allocated memory. Related Items See the INSTR and MEMACC resource descriptions. Also see viOut8(), viOut16(), viOut32(), and viOut64(). Implementation Requirements RULE 6.3.1 The viInXX() operations SHALL NOT fail due to the configured state of the hardware used by the memory access operations viMapAddressXX(), viPeekXX(), and viPokeXX(). OBSERVATION 6.3.1 The high-level operations viInXX() operate successfully independently from the low-level operations (viMapAddressXX(), viPeekXX(), and viPokeXX()). The high-level and low-level operations should operate independently regardless of the configured state of the hardware that is used to perform memory accesses. RULE 6.3.2 The viInXX() operations SHALL detect and return VI_ERROR_BERR on VXI transfers that are acknowledged by the VXI BERR* (bus error) signal. RULE 6.3.3 All VXI accesses performed by the viIn8() operation SHALL be D08 reads. RULE 6.3.4 All VXI accesses performed by the viIn16() operation SHALL be D16 reads. RULE 6.3.5 All VXI accesses performed by the viIn32() operation SHALL be D32 reads. RULE 6.3.6 All VXI accesses performed by the viIn64() operation SHALL be D64 reads.
Name Direction Type Description vi IN ViSession Unique logical identifier to a session. Return Values Type ViStatus This is the operational return status. It returns either a completion code or an error code as follows. Completion Code Description VI_SUCCESS Operation completed successfully. Error Codes Description VI_ERROR_INV_SESSION VI_ERROR_INV_OBJECT The given session or object reference is invalid (both are the same value). VI_ERROR_NSUP_OPER The given vi does not support this operation. VI_ERROR_WINDOW_NMAPPED The specified session is not currently mapped. Description This operation unmaps the region previously mapped by the viMapAddress() operation. Related Items See the INSTR and MEMACC resource descriptions. Also see viMapAddress(). Implementation Requirements RULE 6.3.49 IF a call to viUnmapAddress() succeeds, THEN the value of VI_ATTR_WIN_ACCESS for the given vi SHALL be set to VI_NMAPPED. 6.3.32 viPeek8(vi, addr, val8) 6.3.33 viPeek16(vi, addr, val16) 6.3.34 viPeek32(vi, addr, val32) 6.3.35 viPeek64(vi, addr, val64) Purpose Read an 8-bit, 16-bit, 32-bit, or 64-bit value from the specified address. Parameters Name Direction Type Description vi IN ViSession Unique logical identifier to a session. addr IN ViAddr Specifies the source address to read the value. val8, val16, val32, or val64 OUT ViUInt8, ViUInt16, ViUInt32, or ViUInt64 Data read from bus (8 bits for viPeek8(), 16 bits for viPeek16(),32 bits for viPeek32(), and 64 bits for viPeek64()). Return Values
IF the offset parameter specifies a valid address that was previously allocated using the viMemAlloc() or viMemAllocEx() operation, AND it has not already been freed, THEN the viMemFree() or viMemFreeEx() operation SHALL return the corresponding buffer to the device’s memory pool. OBSERVATION 6.4.3 No device is required to have memory that can be shared or managed by the local controller. In this case, a VISA implementation may always return VI_ERROR_NSUP_OPER. RULE 6.4.3 IF the offset is currently mapped through the viMapAddress() or viMapAddressEx() operation on the given vi, THEN the viMemFree() or viMemFreeEx() operation SHALL return VI_ERROR_WINDOW_MAPPED.
VI_ERROR_INV_MODE The value specified by the mode parameter is invalid. Description This operation can send a command or query, or receive a response to a query previously sent to the device. The mode parameter specifies whether to issue a command and/or retrieve a response, and what type or size of command and/or response to use. Table 6.5.4 Special Values for mode Parameter Mode Action Description VI_VXI_CMD16 Send 16-bit Word Serial command. VI_VXI_CMD16_RESP16 Send 16-bit Word Serial query, get 16-bit response. VI_VXI_RESP16 Get 16-bit response from previous query. VI_VXI_CMD32 Send 32-bit Word Serial command. VI_VXI_CMD32_RESP16 Send 32-bit Word Serial query, get 16-bit response. VI_VXI_CMD32_RESP32 Send 32-bit Word Serial query, get 32-bit response. VI_VXI_RESP32 Get 32-bit response from previous query. If the mode parameter specifies sending a 16-bit command, the upper half of the cmd parameter is ignored. If the mode parameter specifies just retrieving a response, then the cmd parameter is ignored. If the mode parameter specifies sending a command only, the response parameter is ignored and may be VI_NULL. If a response is retrieved but is only a 16-bit value, the upper half of the response parameter will be set to 0. Related Items See the INSTR resource description. Implementation Requirements RULE 6.5.7 All VISA implementations SHALL support all defined mode values for viVxiCommandQuery(). OBSERVATION 6.5.4 Refer to the VXI Specification for defined word serial commands. The command values Byte Available, Byte Request, Clear, and Trigger are not valid for this operation. 6.5.7 viAssertIntrSignal(vi, mode, statusID) Purpose Asserts the specified device interrupt or signal. Parameters Name Direction Type Description vi IN ViSession Unique logical identifier to a session. mode IN ViInt16 This specifies how to assert the interrupt. See the Description section for actual values. statusID IN ViUInt32 This is the status value to be presented during an interrupt acknowledge cycle.
IF the mode parameter is VI_ASSERT_USE_ASSIGNED, AND vi is a session to a VXI SERVANT resource, THEN the operation viAssertIntrSignal() SHALL use the mechanism specified in the response of Asynchronous Mode Control command. RULE 6.5.9 IF the mode parameter is VI_ASSERT_USE_ASSIGNED, AND vi is a session to a BACKPLANE resource, THEN the operation viAssertIntrSignal() SHALL return the status code VI_ERROR_INV_MODE. 6.5.8 viAssertUtilSignal(vi, line) Purpose Asserts the specified utility bus signal. Parameters Name Direction Type Description vi IN ViSession Unique logical identifier to a session. line IN ViUInt16 Specifies the utility bus signal to assert. This can be the value VI_UTIL_ASSERT_SYSRESET, VI_UTIL_ASSERT_SYSFAIL, or VI_UTIL_DEASSERT_SYSFAIL. Return Values Type ViStatus This is the operational return status. It returns either a completion code or an error code as follows. Completion Code Description VI_SUCCESS Operation completed successfully. Error Codes Description VI_ERROR_INV_SESSION VI_ERROR_INV_OBJECT The given session or object reference is invalid (both are the same value). VI_ERROR_NSUP_OPER The given vi does not support this operation. VI_ERROR_RSRC_LOCKED Specified operation could not be performed because the resource identified by vi has been locked for this kind of access. VI_ERROR_TMO Timeout expired before operation completed. VI_ERROR_INV_LINE The value specified by the line parameter is invalid. Description This operation can be used to assert either the SYSFAIL or SYSRESET utility bus interrupts on the VXIbus backplane. This operation is valid only on VXI BACKPLANE and SERVANT sessions. Asserting SYSRESET (also known as HARD RESET in the VXI specification) should be used only when it is necessary to promptly terminate operation of all devices in a VXIbus system. This is a serious action that always affects the entire VXIbus system.
Appendix A Required Attributes This appendix lists the required attributes along with the range and default value of every resource described in this document. The set of required attributes varies from interface to interface, and the range and default values for individual attributes may also vary from interface to interface. The set of required attributes for a write operation for the VXI interface, for example, is different from that of a write operation for the GPIB interface. In this appendix, such resources will have several tables of required attributes, one for each type of interface that the resource must be capable of supporting. A.1 Required Attribute Tables Resource Template Attributes Symbolic Name Range Default VI_ATTR_INTF_TYPE N/A N/A VI_ATTR_TMO_VALUE VI_TMO_IMMEDIATE 1 to FFFFFFFEh VI_TMO_INFINITE 2000 VI_ATTR_INTF_NUM 0 to FFFFh 0 (continues) INSTR Resource Attributes (Generic) (Continued) Symbolic Name Range Default VI_ATTR_INTF_TYPE N/A N/A VI_ATTR_TRIG_ID VI_TRIG_SW; VI_TRIG_TTL0 to VI_TRIG_TTL7; VI_TRIG_ECL0 to VI_TRIG_ECL5; VI_TRIG_STAR_VXI0 to VI_TRIG_STAR_VXI2; VI_TRIG_STAR_INSTR VI_TRIG_SW VI_ATTR_INTF_NUM 0 to FFFFh 0 INSTR Resource Attributes (Message Based) Symbolic Name Range Default VI_ATTR_IO_PROT VI_PROT_NORMAL VI_PROT_FDC VI_PROT_HS488 VI_PROT_4882_STRS VI_PROT_USBTMC_VENDOR VI_PROT_NORMAL VI_ATTR_SEND_END_EN VI_TRUE VI_FALSE VI_TRUE VI_ATTR_SUPPRESS_END_EN VI_TRUE VI_FALSE VI_FALSE
VI_ATTR_PXI_SLOT_LBUS_LEFT 0 to 32767 VI_UNKNOWN_SLOT N/A VI_ATTR_PXI_SLOT_LBUS_RIGHT 0 to 32767 VI_UNKNOWN_SLOT N/A VI_ATTR_PXI_TRIG_BUS 0 to 32767 VI_UNKNOWN_TRIG N/A VI_ATTR_PXI_STAR_TRIG_BUS 0 to 32767 VI_UNKNOWN_TRIG N/A VI_ATTR_PXI_STAR_TRIG_LINE 0 to 32767 VI_UNKNOWN_TRIG N/A VI_ATTR_PXI_MEM_TYPE_BARn (where n is 0,1,2,3,4,5) VI_PXI_ADDR_MEM, VI_PXI_ADDR_IO, VI_PXI_ADDR_NONE N/A VI_ATTR_PXI_MEM_BASE_BARn _32 VI_ATTR_PXI_MEM_BASE_BARn _64 (where n is 0,1,2,3,4,5) N/A N/A VI_ATTR_PXI_MEM_SIZE_BARn _32 VI_ATTR_PXI_MEM_SIZE_BARn _64 (where n is 0,1,2,3,4,5) N/A N/A MEMACC Resource Attributes (Generic) Symbolic Name Range Default VI_ATTR_INTF_NUM 0 to FFFFh 0 VI_ATTR_INTF_TYPE VI_INTF_VXI VI_INTF_GPIB_VXI N/A VI_ATTR_INTF_INST_NAME N/A N/A VI_ATTR_TMO_VALUE VI_TMO_IMMEDIATE 1 to FFFFFFFEh VI_TMO_INFINITE 2000 VI_ATTR_DMA_ALLOW_EN VI_TRUE VI_FALSE N/A MEMACC Resource Attributes (VXI, GPIB-VXI, and PXI Specific) Symbolic Name Range Default VI_ATTR_SRC_INCREMENT 0 to 1 1
VI_ATTR_GPIB_SYS_CNTRL_STATE VI_TRUE VI_FALSE N/A VI_ATTR_GPIB_HS488_CBL_LEN 1 to 15 VI_GPIB_HS488_DISABLED VI_GPIB_HS488_NIMPL N/A BACKPLANE Resource Attributes (Generic) Symbolic Name Range Default VI_ATTR_INTF_NUM 0 to FFFFh 0 VI_ATTR_INTF_TYPE VI_INTF_VXI VI_INTF_GPIB_VXI N/A VI_ATTR_INTF_INST_NAME N/A N/A VI_ATTR_TMO_VALUE VI_TMO_IMMEDIATE 1 to FFFFFFFEh VI_TMO_INFINITE 2000 BACKPLANE Resource Attributes (VXI and GPIB-VXI Specific) Symbolic Name Range Default VI_ATTR_TRIG_ID VI_TRIG_SW; VI_TRIG_TTL0 to VI_TRIG_TTL7; VI_TRIG_ECL0 to VI_TRIG_ECL5; VI_TRIG_STAR_SLOT1 to VI_TRIG_STAR_SLOT12; VI_TRIG_STAR_VXI0 to VI_TRIG_STAR_VXI2; VI_TRIG_PANEL_IN; VI_TRIG_PANEL_OUT N/A VI_ATTR_MAINFRAME_LA 0 to 255 VI_UNKNOWN_LA N/A VI_ATTR_VXI_VME_SYSFAIL_STATE VI_STATE_ASSERTED VI_STATE_UNASSERTED VI_STATE_UNKNOWN N/A VI_ATTR_VXI_VME_INTR_STATUS N/A N/A VI_ATTR_VXI_TRIG_STATUS N/A N/A VI_ATTR_VXI_TRIG_SUPPORT N/A N/A SERVANT Resource Attributes (Generic) Symbolic Name Range Default VI_ATTR_INTF_NUM 0 to FFFFh 0 VI_ATTR_INTF_TYPE VI_INTF_VXI VI_INTF_GPIB VI_INTF_TCPIP N/A