Skip to content
Nimbus Driver Studio
Search
Ctrl
K
Cancel
Select theme
Dark
Light
Auto
Nimbus Feature Highlights
Release Notes
Overview
Nimbus 6 Release Notes
Nimbus 5 Release Notes
Converting From Earlier Versions of Nimbus
IVI Backgrounder
Overview
What All IVI Drivers Do -- Inherent Capabilities
How IVI Drivers Provide Interchangeability
Instrument-Specific Capabilities
IVI Shared Components
Repeated Capabilities
Understanding the Nimbus User Interface
Overview
Using the Nimbus Driver Designer
Using Per-User Preferences
Overview
Common Per-User Preferences for all Driver Types
General Page
Help Page
IVI.NET Per-User Preferences
General Page
I/O Page
IVI-COM Per-User Preferences
General Page
I/O Page
IVI-C Per-User Preferences
General Page
I/O Page
Understanding IVI-C Driver Development Options
Developing an IVI.NET Driver
Overview
Understanding IVI.NET Driver Types
Creating an IVI.NET Driver Project
Overview
Using The IVI.NET Driver Wizard
Overview
General Page
I/O Page
Instrument Class Page, New IVI.NET Driver Wizard
LXI Compliance Page
Features Page
Projects Page
Required Visual Studio Configuration Changes
Building the IVI.NET Driver
Visual Studio Projects for an IVI.NET Driver
Accessing Driver Settings
Overview
General Page
I/O Page
Instrument Classes Page
Capability Groups Page
Models Page
LXI Page
IVI-C Page, IVI.NET Driver Settings
Adding Functionality to an IVI.NET Driver
Overview
Managing IVI-C Driver Functionality
Defining New Data Types Inline
Adding a Method
Adding a Parameter
Adding a Property
Adding an Indexer
Adding an Event
Adding an Enumeration
Adding a Struct
Adding a Class
Adding an Interface
Adding a Child Interface
Adding an Exception
Adding a Repeated Capability
Overview
Add Repeated Capability Dialog
Linking IVI.NET and IVI-C Methods and Properties
Adding Help Information
Adding State Caching to a Property
Adding Range Checking and Coercion to a Property
Adding Simulation to a Property
Adding Support for an Instrument Class
Adding Support for LXI
Understanding Type Name Resolution in Nimbus
IVI.NET Item Editors
Overview
Interface General Editor
Class General Editor
Struct General Editor
Exception General Editor
Enum General Editor
Enum Member Editor
Delegate General Editor
Event General Editor
Method General Editor
Method State Caching Editor
Parameter General Editor
Property General Editor
Property Simulation Editor
Property Range Checking Editor
Property State Caching Editor
Indexer General Editor
Implementing Driver Methods and Properties
Overview
Communicating With Instruments
Working With Instrument Commands
Overview
Instrument Command Syntax
Special Features for SCPI Commands
Retrieving the Instrument Model
Retrieving Initialization Options
Implementing Dynamic Repeated Capabilities
State Caching Overview
Overview
Understanding State Caching
Property Identifiers
Customizing Config Store Registration
Testing an IVI.NET Driver
Developing an IVI-COM Driver
Overview
Creating an IVI-COM Driver Project
Overview
Using the IVI-COM Driver Wizard
Overview
General Page
I/O Page
Instrument Classes Page
LXI Compliance Page
Features Page
Projects Page
Required Visual Studio Configuration Changes
Building the IVI-COM Driver
Visual Studio Projects for an IVI-COM Driver
Accessing Driver Settings
Overview
General Page
I/O Page
Instrument Classes Page
Capability Groups Page
Models Page
LXI Page
IVI-C Page, IVI-COM Driver Settings
.NET Page, IVI-COM Driver Settings
Adding Functionality to an IVI-COM Driver
Overview
Managing IVI-C Driver Functionality
Properties vs. Methods
Understanding Parameter Direction
Defining New Data Types Inline
Adding a Method
Adding a Parameter
Adding a Property
Adding an Enumeration
Adding an Error
Adding a Warning
Adding a Child Interface
Adding a Repeated Capability
Overview
Add Repeated Capability Dialog
Merging Repeated Capabilities
Linking IVI-COM and IVI-C Methods and Properties
Adding Help Information
Adding State Caching to a Property
Adding Range Checking and Coercion to a Property
Adding Simulation to a Property
Adding Support for an Instrument Class
Overview
Excluding IVI-C Functions and Attributes from an Instrument Class
Adding Support for LXI
Adding a Type Library Reference
IVI-COM Item Editors
Overview
IVI-COM Method General Editor
IVI-COM Parameter General Editor
IVI-COM Property General Editor
IVI-COM Property Simulation Editor
IVI-COM Property Range Checking Editor
IVI-COM Property State Caching Editor
IVI-COM Enum Editor
IVI-COM Enum Member Editor
IVI-COM Error Editor
IVI-COM Warning Editor
IVI-C Item Editors
Overview
IVI-C Function General Editor
IVI-C Function Parameter General Editor
IVI-C Callback Function General Editor
IVI-C Attribute General Editor
IVI-C Enum Editor
IVI-C Enum Member Editor
IVI-C Error Editor
IVI-C Warning Editor
Implementing an IVI-COM Driver
Overview
Working With Instrument Commands
Overview
Instrument Command Syntax
Overview
Parameter Format Specifications
Overview
Formatting Integer Input Parameters
Formatting Integer Output Parameters
Formatting Floating-Point Input Parameters
Formatting Floating-Point Output Parameters
Formatting String Input Parameters
Formatting String Output Parameters
Formatting Enum and Boolean Parameters
Reading and Writing IEEE 488.2 Binary Block Data
Reading and Writing Raw Binary Data
Using the Instrument Command Editor
Special Features For SCPI Commands
Implementing Methods and Properties
Overview
Useful Data Types
Overview
BSTR Basics
SAFEARRAY Basics
CString Basics
CComBSTR Basics
_bstr_t Basics
CComSafeArray Basics
String Converter Classes
Communicating With Instruments
Overview
Automatic Command Formatting
Using the I/O Object
Understanding Buffered I/O
Setting the Trailing Character for Read and Write Operations
Calling Driver Methods and Properties
Returning Errors from IVI-COM Drivers
Using Object Parameters
Retrieving the Intrument Model
Retrieving Initialization Options
Implementing IVI-C-Only Functions and Attributes
Implementing Dynamic Repeated Capabilities
State Caching Overview
Overview
Understanding Nimbus State Caching
Property Identifiers
Manually Controlling State Caching
Implementing Class-Compliant Interfaces
Special Notes on Implementing IviFgen
Implementing Simulation
Using Code from External DLLs
Customizing Config Store Registration
Customizing the Driver Inherent Capabilities
Customizing Driver Initialization And Shutdown
Overview
Customizing Driver Initialization
Overview
Understanding the Initialization Sequence
Initialize Method
InitializeIdentification Method
InitializeIO Method
OnFinalConstruct Method
ResetObjectState Method
OnFinalInitialize Method
Customizing Driver Shutdown
Overview
Understanding the Shutdown Sequence
CloseIO Method
OnFinalClose Method
OnFinalRelease Method
Supporting .NET Client Applications
Tracing the Execution of an IVI-COM Driver
Testing an IVI-COM Driver
Testing an IVI-C Wrapper
Versioning an IVI-COM Driver
Overview
Basics of IVI Driver Versioning
Understanding COM Versioning
Understanding .NET Versioning
Revise Interface Dialog
The Nimbus Template Library (NTL)
Overview
The Driver Info Object
The I/O Object
Overview
Session Management Functions
Overview
ReadStatusByte
Clear
SetTrailingForReads
GetTrailingForReads
SetTrailingForWrites
GetTrailingForWrites
SetInstrumentBigEndian
GetInstrumentBigEndian
SetTimeout
GetTimeout
SetTerminationCharacter
GetTerminationCharacter
SetTerminationCharacterEnabled
GetTerminationCharacterEnabled
Lock
Unlock
IoLockType Enumeration
Printf-Style Functions
Overview
Printf
PrintfNoPoll
VPrintf
Scanf
ScanfNoPoll
ScanfWithTimeout
ScanfWithTimeoutNoPoll
VScanf
VScanfNoPoll
Queryf
QueryfNoPoll
QueryfWithTimeout
QueryfWithTimeoutNoPoll
VQueryf
VQueryfNoPoll
I/O Format Specifiers
Overview
I/O Format Specifiers for Write Operations
Overview
I/O Format Specifiers for Writing Characters
I/O Format Specifiers for Writing Strings
I/O Format Specifiers for Writing Integers
I/O Format Specifiers for Writing Floating-Point Numbers
I/O Format Specifiers for Writing IEEE 488.2 Binary Blocks
I/O Format Specifiers for Writing Raw Binary Data
I/O Format Specifiers for Read Operations
Overview
I/O Format Specifiers for Reading Characters
I/O Format Specifiers for Reading Strings
I/O Format Specifiers for Reading Integers
I/O Format Specifiers for Reading Floating-Point Numbers
I/O Format Specifiers for Reading IEEE 488.2 Binary Blocks
I/O Format Specifiers for Reading Raw Binary Data
Basic I/O Functions
Overview
QueryString
QueryStringNoPoll
QueryNumber
QueryNumberNoPoll
QueryList
QueryListNoPoll
Write
WriteNoPoll
WriteString
WriteStringNoPoll
WriteNumber
WriteNumberNoPoll
WriteList
WriteListNoPoll
WriteBinaryBlock
WriteBinaryBlockNoPoll
Read
ReadNoPoll
ReadString
ReadStringNoPoll
ReadNumber
ReadNumberNoPoll
ReadList
ReadListNoPoll
ReadBinaryBlock
ReadBinaryBlockNoPoll
IoDataType Enumeration
Low-Level I/O Functions
Overview
SetSendEndEnabled
GetSendEndEnabled
LowLevelRead
LowLevelReadNoPoll
LowLevelReadString
LowLevelReadStringNoPoll
LowLevelWrite
LowLevelWriteNoPoll
LowLevelWriteString
LowLevelWriteStringNoPoll
Buffer Management Functions
Overview
SetBufferSize
GetReadBufferSize
GetWriteBufferSize
FlushWrite
FlushRead
IoBufferMask Enumeration
Instrument Error Functions
PollInstrumentErrors
VISA-Specific Functions
Overview
Session Management Functions
Overview
SetProtocol
GetProtocol
VisaIoProtocol Enumeration
SetAttribute
GetAttribute
GetResourceName
GetInterfaceName
GetInterfaceType
VisaInterfaceType Enumeration
GetInterfaceNumber
GetSessionType
GetManufacturerName
GetManufacturerId
Register-Based Functions
Overview
VisaAddressSpace Enumeration
In8
In16
In32
In64
Out8
Out16
Out32
Out64
MoveIn8
MoveIn16
MoveIn32
MoveIn64
MoveOut8
MoveOut16
MoveOut32
MoveOut64
Move
MoveAsync
VisaDataWidth Enumeration
SetSourceBigEndian
GetSourceBigEndian
SetDestinationBigEndian
GetDestinationBigEndian
SetSourceIncrement
GetSourceIncrement
SetDestinationIncrement
GetDestinationIncrement
AllocateMemory
FreeMemory
Low-Level I/O Functions
Overview
ReadAsync
WriteAsync
AssertTrigger
VisaTriggerProtocol Enumeration
SendEndEnabled
VISA-COM Specific Functions
Overview
GetIVisaSessionPointer
GetIFormattedIO488Pointer
GetIMessagePointer
GetIAsyncMessagePointer
GetIRegisterPointer
GetISharedRegisterPointer
GetIEventManagerPointer
VISA-C Specific Functions
Overview
GetSession
Instrument Command Functions
Overview
EnumFromResponse
EnumToCommand
GetInstrCommand
GetInstrResponse
InstrPrintCommand
InstrPrintCommandNoPoll
InstrQueryResponse
The Error Reporter Object
Instrument Model Functions
Overview
GetModel
GetSerialNumber
InstrumentInFamily
InstrumentIsModel
InstrumentSupported
ModelInFamily
Configuration Server Functions
Overview
TranslatePhysicalName
TranslateVirtualName
Repeated Capability Functions
Overview
GetInstanceIndex
GetInstanceName
GetParent
GetRepCap
GetRepCapCount
GetRepCapItem
GetRepCapItemCount
GetRepCapItemName
GetRoot
State Caching Functions
Overview
CCacheEntry<T>::ContainsValue
CCacheEntry<T>::Invalidate
CCacheEntry<T>::IsValid
CCacheEntry<T>::GetValue
CCacheEntry<T>::SetValid
CCacheEntry<T>::UpdateValue
GetCacheEntryValue
GetOrCreateCacheEntry
InvalidateCache
InvalidateCacheAll
InvalidateCacheEntry
UpdateCacheEntry
Driver State Functions
Overview
GetCache
GetConfigSetting
GetDriverSetupOptionValue
GetInherentOptionValue
GetInitialized
GetInterchangeCheck
GetQueryInstrStatus
GetRangeCheck
GetRecordCoercions
GetResourceDescriptor
GetSimulate
GetTraceEnabled
SetTraceEnabled
Miscellaneous Functions
EnumToName
EnumFromName
NTL_NO_VISA Macro
NTL_NO_VISACOM Macro
NTL_DISABLE_IVIC_ATTRIBUTE_C4244 Macro
Developing an IVI-C Driver
Overview
Creating an IVI-C Driver Project
Overview
Using The IVI-C Driver Wizard
Overview
General Page
Features Page
I/O Page
LXI Compliance
Projects Page
Required Visual Studio Configuration Changes
Building the IVI-C Driver
Visual Studio Projects for an IVI-C Driver
Accessing Driver Settings
Overview
General Page
I/O Page
Features Page
Capability Groups Page
Models Page
LXI Page
Adding Functionality to an IVI-C Driver
Overview
Defining New Data Types Inline
Adding a Function
Adding a Parameter
Adding an Attribute
Adding Attribute Getter and Setter Functions
Adding an Enumeration
Adding an Error
Adding a Warning
Adding a Child Branch
Adding a Repeated Capability
Overview
Add Repeated Capability Dialog
Adding Help Information
Adding State Caching to an Attribute
Adding Range Checking and Coercion to an Attribute
Adding Simulation to an Attribute
Adding Support for an Instrument Class
Overview
General Page, Add Instrument Class Wizard
Excluding Functions and Attributes from an Instrument Class
Adding Support for LXI
Adding Callback Functions
IVI-C Item Editors
Overview
Function General Editor
Function State Caching Editor
Function Parameter General Editor
Callback Function General Editor
Attribute General Editor
Attribute Simulation Editor
Attribute Range Checking Editor
Attribute State Caching Editor
Enum Editor
Enum Member Editor
Error Editor
Warning Editor
Implementing Driver Functions and Attributes
Overview
Fundamentals of Function And Attribute Implementation
Communicating With Instruments
Working With Instrument Commands
Overview
Instrument Command Syntax
Special Features for SCPI Commands
Returning Errors from IVI-C Drivers
Retrieving the Instrument Model
Retrieving Initialization Options
Customizing the Driver Header File
Understanding State Caching
Implementing Dynamic Repeated Capabilities
Customizing Driver Initialization and Shutdown
Testing an IVI-C Driver
The Nimbus Runtime Library (NRT)
Overview
DriverInfo Struct
DriverSession Class
Overview
Configuration Store Functions
Overview
DriverSession::ConfigSettings
DriverSession::GetConfigSetting
DriverSession::TranslatePhysicalName
DriverSession::TranslateVirtualName
DriverSession::VirtualNameMappings
Driver State Functions
Overview
DriverSession::CacheEnabled
DriverSession::CacheEnabledOriginal
DriverSession::InterchangeCheckEnabled
DriverSession::InterchangeCheckEnabledOriginal
DriverSession::QueryInstrStatusEnabled
DriverSession::QueryInstrStatusEnabledOriginal
DriverSession::RangeCheckEnabled
DriverSession::RangeCheckEnabledOriginal
DriverSession::RecordCoercionsEnabled
DriverSession::RecordCoercionsEnabledOriginal
DriverSession::SimulationEnabled
DriverSession::SimulationEnabledOriginal
DriverSession::SetCacheEnabled
DriverSession::SetInterchangeCheckEnabled
DriverSession::SetQueryInstrStatusEnabled
DriverSession::SetRangeCheckEnabled
DriverSession::SetRecordCoercionsEnabled
DriverSession::SetSimulationEnabled
DriverSession::ResetDefaults
DriverSession::InitOptions
DriverSession::InherentOptions
DriverSession::DriverSetup
DriverSession::GetDriverSetupOption
DriverSession::DriverSetupOptions
Error Reporting Functions
Overview
DriverSession::ReportError
DriverSession::ReportErrorEx
Instrument Model Functions
Overview
DriverSession::InstrumentInFamily
DriverSession::InstrumentIsModel
DriverSession::InstrumentModel
DriverSession::InstrumentSupported
DriverSession::ModelInFamily
I/O Functions
Overview
DriverSession::ClearIOStatus
DriverSession::CloseIO
DriverSession::GetIdentificationInfo
DriverSession::GetVisaResourceManager
DriverSession::GetVisaSession
DriverSession::InitializeIO
DriverSession::PollInstrumentErrors
Miscellaneous Functions
DriverSession::FirmwareRevision
DriverSession::Handle
DriverSession::IoDescriptor
DriverSession::LogicalName
DriverSession::Manufacturer
DriverSession::ResourceName
DriverSession::SerialNumber
State Caching Functions
Overview
DriverSession::InvalidateAttributes
DriverSession::InvalidateAllAttributes
EnumConverter Class
Miscellaneous Functions
GetDriverSession
NRT_NO_VISA Symbol
VisaTimeoutManager Class
Repeated Capability Functions
ParameterStyleRepCap Class
Overview
ParameterStyleRepCap::AddPhysicalNames
ParameterStyleRepCap::ClearPhysicalNames
ParameterStyleRepCap::ExpandSelector
ParameterStyleRepCap::ExpandSingleSelector
ParameterStyleRepCap::GetPhysicalNameAtIndex
ParameterStyleRepCap::GetPhysicalNames
ParameterStyleRepCap::PhysicalNameCount
ParameterStyleRepCap::RemovePhysicalNames
PhysicalName Class
Overview
PhysicalName Constructor
PhysicalName Comparison Operators
PhysicalName::AncestorFullName
PhysicalName::AncestorIndex
PhysicalName::AncestorName
PhysicalName::ExportedName
PhysicalName::ExportedFullName
PhysicalName::FullName
PhysicalName::Index
PhysicalName::Name
PhysicalName::ParentList
PhysicalName::ParentName
PhysicalName::ParentFullName
PhysicalName::QualifiedName
PhysicalName::QualifiedFullName
PhysicalNameList Class
SelectorStyleRepCap Class
Overview
SelectorStyleRepCap::ExpandActiveSelector
SelectorStyleRepCap::ExpandSingleActiveSelector
SelectorStyleRepCap::GetActivePhysicalName
SelectorStyleRepCap::GetActivePhysicalNames
SelectorStyleRepCap::GetActiveSelector
SelectorStyleRepCap::SetActiveSelector
Simulation and State Caching Functions
CacheEntry Struct
Overview
CacheEntry::HasValue
CacheEntry::Invalidate
CacheEntry::IsValid
CacheEntry::SetValid
CacheEntry::SetValue
CacheEntry::Value
GetCacheEntry Function
GetStringValueForSimulation Macro
GetterCacheManager Class
GetValueForSimulation Macro
SetterCacheManager Class
Validation Functions
CheckForNull Macro
CheckForUnsupportedModel Macro
ObtainLock
ReturnOnError Macro
ValidateSession Macro
Adding Support for Multiple Instrument Models
Creating a Driver Help File
Overview
Basics of Driver Help Files
Using the Help Editor
Working with Help Templates
Overview
Using the Help Template Previewer
Changing the Table of Contents
Adding Boilerplate Pages
Editing Template Pages
Sharing Help Templates Across Projects
Accessing the Project Properties
Overview
General Page
Template Page, Driver Help Project Properties
Overview
Help Template Previewer Errors
Building and Viewing the Help Content
Signing Microsoft Help Viewer Content
Creating a Driver Installer
Overview
Basics of Driver Installers
Using the Setup Designer
Accessing Driver Settings
Overview
General Page
Roundtripping The Setup Project
Creating 64-Bit Driver Installers
Ensuring Proper COM Registration (IVI-COM only)
Installing Help Viewer Content
Distributing Driver Source Code
Building the Driver Installer
Manually Customizing The Driver Installer
Learning More About WiX
Getting Assistance
Copyright
Select theme
Dark
Light
Auto
Low-Level I/O Functions
The functions in this section provide low-level access to the underlying VISA I/O session.