Our team has experience with a wide variety of instrumentation -- from simple digital
multi-meters to complex network analyzers. We can build drivers for digital instrumentation,
like switches and digital word generators, as well as drivers for RF instrumentation,
like spectrum analyzers. Additionally, we have worked extensively with PC and VXI-based
data acquisition equipment.
All of our driver development contracts are performed on a fixed-price basis.
The time it takes to deliver an IVI driver depends upon a number of factors, such
Not surprisingly, the total time it takes to develop, document, and validate an
IVI driver varies widely. Nevertheless, our experience shows that a complete driver
package for a medium size instrument can be delivered in 6 to 8 weeks.
Yes. Pacific MindWorks routinely builds IVI-COM, IVI-C, and LabVIEW drivers. We
have years of experience building all three types of drivers for some of the biggest
names in the test and measurement industry.
Much debate has raged over this exact issue for a long time. Our experience has
shown (and many of our customers now agree) that you likely need both. Why is that?
Some customers make the mistake of basing their IVI-COM versus IVI-C decision on
the expertise they have in-house. However, this is not the right criterion on which
to base an IVI driver strategy. Rather, the deciding factor must be the predominant
end-user development IDE.
Microsoft IDEs are the most dominant in test and measurement and becoming increasingly so.
Unquestionably, IVI-COM drivers provide the best experience in Microsoft
environments, including Visual Basic 6, Visual C++ .NET, C#, and VB.NET. Some may
find it surprising that IVI-COM drivers even provide a better end-user experience
in LabVIEW than IVI-C drivers. By contrast, the integration of IVI-C drivers with .NET
is much more tedious.
However, if many of your end users rely upon C-based environments such as LabWindows™/CVI,
then they may want to have an IVI-C driver. LabWindows uses IVI-C class drivers
to provide access to IVI-defined functionality and these class drivers can load
a specific vendors's IVI-C or IVI-COM driver. The ability to load an IVI-COM driver
into an IVI-C class driver is a very powerful feature that many are unaware of.
Since virtually all National Instruments® IVI-based software accesses drivers
through the IVI-C class driver, this also means that you can use your IVI-COM driver
directly -- without the need to develop an IVI-C driver. The only situation in which
an IVI-C driver would be required is if you want to access instrument-specific capabilities
For a quick comparison of IVI-COM and IVI-C, click "here".
For an in-depth discussion of this issue, see the whitepaper "Comparing
IVI-COM and IVI-C".
A driver "package" from Pacific MindWorks includes much more than the driver DLL.
All of the following are provided with a typical IVI driver project:
All of the above items are provided in source code format, so that the customer
is able to maintain any of the components themselves, if desired.
Yes. Indeed, Pacific MindWorks has extensive experience in doing just this. An existing
VXI Plug-n-Play driver can be used directly in the implementation of a new IVI driver
or the source code for the existing driver can be directly translated, thereby eliminating
the need for the Plug-n-Play driver altogether.
Yes. Pacific MindWorks has extensive experience building drivers for both message-based
and register-based instruments.
No. All of the deliverables from a driver development project can be maintained
with Visual Studio. The driver project itself is a standard Visual
Studio C++ projects, while the help file, installer, and unit test projects are all
Visual Studio C# projects. Source code is provided for all components of the driver package.
The IVI Foundation has yet to complete the specification for building IVI.NET drivers.
Thus, there currently is no such thing as an "IVI.NET" driver. Nonetheless, IVI
does include specifications for building .NET wrappers for IVI-COM drivers. These
.NET wrappers give end users seamless access to the underlying IVI-COM driver when
working in any .NET language, such as VB.NET and C#.
Every IVI driver package from Pacific MindWorks is delivered with a complete IVI-compliant
Yes. Every driver is delivered with a 60-day warranty against bugs - at no additional
charge. On-going maintenance, including the addition new capabilities, is available
as an option. Thus, customers can choose to maintain the driver themselves or they
can free themselves from driver development duties altogether and have us maintain
it for them.
Formal quotations for drivers are typically generated from an instrument programming
manual. In the absence of this, quotations can often be generated from a list of
instrument commands. Information should also be provided on the optional features
desired, such as an IVI-C driver, a LabVIEW driver, example end-user applications,
Nimbus Driver Studio is a complete set of development tools for building fully compliant,
commercial-quality IVI-COM, IVI-C, and MATLAB® instrument drivers. The Nimbus suite
includes code generation tools, auto-documenting facilities, driver testing utilities,
and a host of other productivity tools. Nimbus fully integrates with Visual Studio
to provide end-to-end tool support during driver implementation, with features such
as automatic code round-tripping.
Nimbus provides rich support for building IVI-COM and IVI-C drivers. Moreover, Nimbus
can be used to generate either class-compliant or custom IVI drivers. Nimbus includes
pre-built code for implementing many of the IVI-required interfaces.
Nimbus supports all currently approved IVI instrument driver classes.
Nimbus is available for download for a 30-day evaluation period. The download is
the fully-functional product version. Should you choose to purchase Nimbus, you
need not download anything further - you need only supply the serial number provided
to you at the time of purchase.
Yes. Pacific MindWorks offers an onsite IVI Jumpstart Training Course with 1-day,
3-day, and 5-day curriculums. For more information, click
Absolutely not. One of the principal benefits Nimbus provides is that developers
are shielded from having to know the details of C++, COM, or the IVI specifications
themselves. Indeed, folks turn to Nimbus specifically because they are not experts
in any of these technologies, yet they need the ability to build fully compliant
IVI drivers. Users coming from a background in C programming or VXI Plug-n-Play
driver development will find themselves very comfortable using Nimbus to build IVI-COM
and IVI-C drivers.
Nimbus is unique in a wide variety of ways. For instance, Nimbus is the only product
that generates both IVI-COM and IVI-C drivers - all from a single implementation.
Nimbus also produces the most complete driver "package" - including both prominent
help file formats (HTML 2.0 and HTML 1.X), a fully IVI-compliant installer, ready-to-use
client programs, and even C# unit tests that integrate with the popular NUnit testing
framework. Automatic code round-tripping is a feature only found in our Nimbus product
and pays huge dividends in time savings when driver designs evolve over the course
of a driver project or new features need to be added after implementation.
For a direct comparison of Nimbus to other driver tools, see the "Nimbus
LabWindows™/CVI Comparison Chart".
Code-roundtripping is a feature unique to Nimbus that allows developers to make
changes to their driver design after generating the driver implementation code.
Nimbus integrates Code Wizards into the Visual Studio Environment so that developers
have the same editing capabilities during implementation as they have during the
design phase. The Nimbus Code Wizards provide intuitive dialogs for doing something
as simple as adding a method, to something as complicated as completely rearranging
the driver hierarchy. All of the C++ code manipulation to effect the desired changes
is performed by Nimbus.
There are no additional runtime requirements for drivers built with Nimbus beyond
those requirements imposed by the IVI Foundation, such as the presence of the IVI
Shared Components. Unlike drivers built with every other toolkit, Nimbus-developed
drivers do not rely upon any separate "engine" components or wrappers.
Yes. In fact, Pacific MindWorks was contracted by the LXI Consortium to develop
the LXI specification. When you run the IVI Driver Wizard in Nimbus, you can simply
check a box to include support for LXI and all of the required interfaces for the
specific LXI compliance level are automatically added.
Yes. In fact, all of these features can be incorporated into the driver without
requiring any user-written code. For example, the Nimbus user interface provides
an intuitive way to establish state cache couplings to represent real couplings
between instrument settings.
Nimbus provides a simple, intuitive editor that allows independent control of the
simulation behavior of each driver property. Nimbus ensures that no I/O communication
is performed when the driver is running in simulation mode. Nimbus also generates
code that stores the last value sent to the instrument so that it can return the
same value when the user queries the property, thereby more accurately emulating
a real instrument.
No. Nimbus-developed drivers are conventional Windows unmanaged COM components.
They are not .NET managed components nor do they include any .NET code. However,
the .NET wrappers generated by Nimbus can be used on .NET target machines to provide
those users with seamless access to the driver from languages such as C# and VB.NET.
Yes. Nimbus is a .NET application. However, drivers built with Nimbus are pure unmanaged
code and do not require the .NET Framework to be installed on the target machine.
No. There currently is no such thing as an IVI.NET driver, as the IVI Foundation
has not yet completed the specifications defining what an IVI.NET driver should
look like or how it should be constructed. The Foundation has formed the IVI.NET
Working Group, which is tasked with defining specifications for building IVI.NET
drivers in the future. This Working Group has also released wrappers, called Primary
Interop Assemblies, for all of the IVI-defined classes that allow IVI-COM drivers
to be used from .NET applications seamlessly. This has been shown to provide a very
good experience for the end user building test applications with .NET client code
and IVI-COM drivers.
One of the truly unique features of Nimbus, however, is that it is already designed
with IVI.NET in mind. When you create a Nimbus project now, that same project can
be used to generate an IVI.NET driver when the IVI Foundation releases the appropriate
specifications. Pacific MindWorks is spearheading the work of the IVI.NET Working
Group, and we have already used Nimbus to generate prototype .NET drivers. This
means the work you invest today in building IVI-COM drivers with Nimbus will be
completely reusable when building IVI.NET drivers in the future.
Nimbus also provides a very important and unique capability to support .NET applications.
Each time your Nimbus driver is built, Nimbus automatically generates a .NET wrapper
(interop assembly) that complies with the guidelines laid out by the IVI.NET Working
Group. No extra effort is required on the part of the developer to export their
Nimbus-developed IVI-COM driver to .NET clients.
Yes. The .NET platform provides rich support for integrating conventional COM components,
like IVI-COM drivers. Wrapper components, known as interop assemblies, are used
to access IVI-COM drivers from .NET clients, such as C# and VB.NET. The IVI.NET
Working Group within the IVI Foundation has released interop assemblies for all
of the IVI-defined instrument classes. Moreover, Nimbus provides built-in support
for automatically generating interop assemblies for instrument-specific interfaces
(those interfaces not defined by IVI).
MS Help 2.0 is the latest Microsoft Help format that you see with MSDN. Nimbus directly
supports generating MS Help 2.0 documentation for your IVI-COM driver. This format
allows the most consistency with the Visual Studio documentation users will most
likely be using when writing applications with IVI drivers.
Using Help 2.0 allows direct integration of IVI-COM driver help documentation with
MSDN documentation, so that users can access all of their help documentation in
one place. A unified index, table of contents, and search feature makes accessing
help documentation much more convenient for the end user. Also, popular and convenient
features like Dynamic Help are available with MS Help 2.0 documentation.
MS Help 1.x is the older-style format for help documentation. A number of tools
exist, both within Visual Studio and from third-party vendors, for converting between
Help 2.0 and Help 1.x.
No. Unlike other driver-development tools, Nimbus-generated drivers do not rely
upon any "engine" component or other runtime DLL for features such as state-caching
and range-checking. Each driver has "baked" into it all of the standalone capabilities
that the driver developer specified.
Yes. Pacific MindWorks has used Nimbus to build drivers for various register-based
instruments. With Nimbus, you are free to provide as much custom low-level logic
in your implementation as you need. All of the unit testing, help generation, and
installer generation features work just as well for register-based instruments as
they do for message-based instruments. Features such as simulation, range checking
and state caching also work in precisely the same way for register-based instruments
as they do for message-based instruments.
Not when using Nimbus. Nimbus generates code that can be compiled within Visual Studio for the
main driver DLL, the driver help file, the unit test, and the installation program.
Absolutely. This is also one of the more unique and popular features of Nimbus.
If the IVI Foundation has not defined an instrument class for a series of devices
that are important to your company, then you can reap many of the same interchangeability
benefits by defining an instrument class of your own. Nimbus provides a specialized
wizard for exactly this purpose.
Once the custom instrument class has been defined, then new instrument drivers that
implement the class definition can be developed in precisely the same fashion as
if the class definition had been supplied by the IVI Foundation.
Yes, you will need to purchase a licensed copy of Nimbus for each developer working
with the product. However, recognizing that developers often need to work at home
and on a notebook computer, a single licensed copy of Nimbus enables you to install
the product on a work machine, a home machine, and a notebook computer.
No. A single Nimbus license can be used to develop and ship any number of drivers.
There are no runtime or distribution fees associated with the drivers you develop
Yes. We recognize that a single developer may work on a home PC and on a notebook,
so the Nimbus licensing agreement allows a single licensed copy of Nimbus to be
installed on a work PC, a home PC, and on a notebook computer.
No. The drivers you develop with Nimbus are your own to distribute as you wish.
Any number of drivers may be shipped to your customers with no distribution fees.
A subscription to a Pacific MindWorks' product entitles you to updates and technical
support for the duration of the subscription. Nimbus is an ever-evolving product,
as it aggressively tracks the IVI and LXI standards as well as the latest Microsoft
technologies, such as new versions of Visual Studio.
The initial purchase price of Nimbus includes a one-year subscription to the product.
Subscriptions for subsequent years can be purchased at any time.
Pacific MindWorks' products are obtained through purchase order. After receipt of
a purchase order, you will receive a registration code that will allow you to unlock
No. The IVI Jumpstart Training Course is currently offered only at the customer
Course attendees should have some experience in structured programming, such as
C, C++, or Visual Basic. They should also be familiar with basic instrumentation
and driver fundamentals.
A flat tuition covers up to 5 attendees. Each attendee beyond 5 can be accommodated
at an additional cost.
See the IVI Jumpstart Training page for full details on the course.
The only required equipment is a computer projector capable of displaying at least
1024x768 resolution. Since the course does not include instructor-led lab exercises,
the course attendees do not need any computer equipment or instrumentation.
In the 4 and 5 day versions of the course, where the instructor assists in the development
of a real instrument driver, then the customer must provide all required instrumentation,
software, and interfacing hardware. The instructor will be equipped with a standard
Windows notebook computer.
Copyright © 2001-2010 Pacific MindWorks Inc.