viOut8/viOut16/viOut32/viOut64, viOut8Ex/viOut16Ex/viOut32Ex/viOut64Ex
Purpose
Writes an 8-bit, 16-bit, 32-bit, or 64-bit value to the specified memory space and offset.
C Syntax
ViStatus viOut8(ViSession vi, ViUInt16 space, ViBusAddress offset, ViUInt8 val8)
ViStatus viOut16(ViSession vi, ViUInt16 space, ViBusAddress offset, ViUInt16 val16)
ViStatus viOut32(ViSession vi, ViUInt16 space, ViBusAddress offset, ViUInt32 val32)
ViStatus viOut64(ViSession vi, ViUInt16 space, ViBusAddress offset, ViUInt64 val64)
ViStatus viOut8Ex(ViSession vi, ViUInt16 space, ViBusAddress64 offset, ViUInt8 val8)
ViStatus viOut16Ex(ViSession vi, ViUInt16 space, ViBusAddress64 offset, ViUInt16 val16)
ViStatus viOut32Ex(ViSession vi, ViUInt16 space, ViBusAddress64 offset, ViUInt32 val32)
ViStatus viOut64Ex(ViSession vi, ViUInt16 space, ViBusAddress64 offset, ViUInt64 val64)
Visual Basic Syntax
viOut8&(ByVal vi&, ByVal space%, ByVal offset&, ByVal val8 as Byte)
viOut16&(ByVal vi&, ByVal space%, ByVal offset&, ByVal val16%)
viOut32&(ByVal vi&, ByVal space%, ByVal offset&, ByVal val32&)
Resource Classes
FireWire INSTR, GPIB-VXI INSTR, GPIB-VXI MEMACC, PXI INSTR, PXI MEMACC, VXI INSTR, VXI MEMACC
Parameters
Name | Direction | Description |
---|---|---|
vi |
IN |
Unique logical identifier to a session. |
space |
IN |
Specifies the address space. Refer to the table included in the Description section for more information. |
offset |
IN |
Offset (in bytes) of the address or register to which to write. For viOutXX() operations, this is a 32-bit value for 32-bit applications and a 64-bit value for 64-bit applications. For viOutXXEx() operations, this is always a 64-bit value. |
val8, val16, val32, or val64 |
IN |
Data to write to bus (8 bits for viOut8[Ex](), 16 bits for viOut16[Ex](), 32 bits for viOut32[Ex](), and 64 bits for viOut64[Ex]()). |
Return Values
Completion Codes |
Description |
---|---|
VI_SUCCESS |
Operation completed successfully. |
Error Codes | Description |
---|---|
VI_ERROR_INV_OBJECT |
The given session reference is invalid. |
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_BERR |
Bus error occurred during transfer. |
VI_ERROR_INV_SPACE |
Invalid address space specified. |
VI_ERROR_INV_OFFSET |
Invalid offset specified. |
VI_ERROR_NSUP_OFFSET |
Specified offset is not accessible from this hardware. |
VI_ERROR_NSUP_WIDTH |
Specified width is not supported by this hardware. |
VI_ERROR_NSUP_ALIGN_OFFSET |
The specified offset is not properly aligned for the access width of the operation. |
VI_ERROR_INV_SETUP |
Unable to start operation because setup is invalid (due to attributes being set to an inconsistent state). |
Description
The viOutXX[Ex]() operations use the specified address space to write 8, 16, 32, or 64 bits of data, respectively, from the specified offset. These operations do not require viMapAddress() to be called prior to their invocation.
The following table lists the valid entries for specifying address space.
Value | Description |
---|---|
VXI, VME, and GPIB-VXI |
VI_A16_SPACE (1) |
PXI INSTR |
VI_PXI_CFG_SPACE (10) |
PXI MEMACC |
VI_PXI_ALLOC_SPACE (9) |
FireWire INSTR |
VI_FIREWIRE_DFLT_SPACE (5) |
Note viOut8 and viOut16 do not support FireWire INSTR. |
INSTR Specific
Notice that the offset parameter to these operations for an INSTR Resource is the offset address relative to the device's allocated address base for the corresponding address space that was specified. For example, if space specifies VI_A16_SPACE, then offset specifies the offset from the logical address base address of the specified VXI device. If space specifies VI_A24_SPACE or VI_A32_SPACE, then offset specifies the offset from the base address of the VXI device's memory space allocated by the VXI Resource Manager within VXI A24 or A32 space.
To specify the full 48-bit offset for these methods on a FireWire INSTR session, a call to viSetAttribute using VI_ATTR_FIREWIRE_DEST_UPPER_OFFSET is needed prior to calling these methods. Subsequent calls to viSetAttribute are needed only if the upper 16 bits of the FireWire offset change.
MEMACC Specific
For a MEMACC Resource, the offset parameter specifies an absolute address.
Related Topics
VI_ATTR_FIREWIRE_DEST_UPPER_OFFSET
viIn8/viIn16/viIn32/viIn64, viIn8Ex/viIn16Ex/viIn32Ex/viIn64Ex