Feature Comparison
|
Nimbus
|
VIVID
|
|
|
Automatic code round-tripping |
Yes |
- |
See feature details > |
|
Designed for VS.NET |
Yes |
- |
Nimbus was written from the ground up to support the latest features in VS.NET,
including ATL 7. VIVID was designed for the previous generation Visual Studio and
continues to rely upon ATL 3. |
|
LXI instrument support |
Yes |
- |
|
|
VS.NET integration |
Yes |
- |
See feature details > |
|
Forwards compatibility with IVI.NET |
Yes |
- |
See feature details > |
|
IVI-C driver generation |
Yes |
- |
Nimbus can generate a fully-compliant IVI-C driver that wraps the native IVI-COM
implementation – all contained within a single DLL. The IVI-C driver includes all
files (.fp, .sub, .h) required for seamless integration into LabWindows/CVI. |
|
Design validation |
Yes |
- |
Nimbus reports any design elements that are not IVI-compliant. Developers can integrate
their own custom design rules and validate against these rules as well. |
|
XML support |
Yes |
- |
All project files are stored in standard XML. |
|
Extensible and open architecture |
Yes |
- |
See feature details > |
|
VXI Plug-n-Play wrapper |
Yes |
Yes |
See feature details > |
|
IVI-C wrapper |
Yes |
- |
Nimbus provides true one-click wrapper generation by automatically detecting the
IVI-compliant capabilities of the wrapped IVI-C driver and generating the corresponding
IVI-COM interfaces and implementation. |
|
.NET wrappers w/ IntelliSense |
Yes |
- |
Compilation process automatically emits a .NET wrapper that can easily be used in
any .NET application. |
|
Consolidated VS.NET solution |
Yes |
- |
Nimbus allows you to produce a complete, customer-ready driver using a single VS.NET
solution. The VS.NET solution generated by Nimbus can house the main driver C++
project, the installer MSI project, regression test projects in C#, and even Help
2.0 projects. |
|
Integrated Help documentation |
Yes |
- |
Nimbus online help integrates directly with Visual Studio. Standard F1-Help provides
quick access to the extensive Nimbus driver library. |
|
Dynamic Help |
Yes |
- |
The Nimbus help system is fully integrated with the native VS.NET Dynamic Help system.
As you type code and navigate within a driver, Visual Studio will direct you to
important Nimbus Help topics. |
|
Message-based instrument support |
Yes |
Yes |
Nimbus provides sophisticated SCPI support so that hand-edits of code are almost
never required. |
|
Instrument command importing |
Yes |
- |
Nimbus allows importing of SCPI commands directly from a file. |
|
Installer generationg |
Yes |
Yes |
|
|
Automatic code navigation |
Yes |
- |
Nimbus adds custom menu items and toolbars directly into VS.NET that help you can
quickly navigate to points of interest within your driver code. |
|
Performance monitoring |
Yes |
- |
See feature details > |
|
No runtime DLL requirements |
Yes |
- |
Nimbus drivers requires no runtime DLLs, while VIVID drivers must be shipped to
each customer with additional VIVID-specific components. |
|
Downloadable instrument personality support |
Yes |
- |
See feature details > |
|
Configuration store browser |
- |
Yes |
|
|
Stand-alone driver designer |
Yes |
Yes |
|
|
Unified design environment |
Yes |
- |
See feature details > |
|
Help 1.x generation |
Yes |
Yes |
Old-style Help format (.chm files). With only this style of help, customers using
the driver will not be able to use F1-Help (context-sensitive) or Dynamic Help when
building applications in Visual Studio. |
|
Help 2.0 generation |
Yes |
- |
New-style Help format that exactly mimics MSDN online Help. This style of Help is
required for F1-Help and Dynamic Help. |
|
Tracing support |
Yes |
Yes |
Nimbus stores data in XML and allows fully customizable presentation. |
|
Simulation |
Yes |
Yes |
|
|
Basic driver code generation |
Yes |
Yes |
Nimbus generates a VS.NET solution with fewer files and much simpler driver implementation
code. |
|
.NET-style attributed code |
Yes |
- |
See feature details > |
|
Fully-debuggable source code |
Yes |
- |
Nimbus generates code that uses no macros. VIVID relies heavily on macros, which
cannot be debugged. |
|
Instrument I/O support |
Yes |
Yes |
|
|
State-caching |
Yes |
Yes |
Nimbus uses easily-modified .NET-style attributes, whereas VIVID requires hand-editing
of complex C++ classes. |
|
Range-checking |
Yes |
Yes |
(same comment as state-caching) |
|
Coercion |
Yes |
Yes |
(same comment as state-caching) |
|
Script-based test code |
- |
Yes |
Slow execution speed and difficult to debug. Cannot be compiled. |
|
.NET-based test code |
Yes |
- |
Fast compiled execution. Full C# support so driver test code can leverage the entire
.NET framework. |
|
|
|
|
|
Automatic Code Round-tripping
Arguably one of the most powerful features of the Nimbus product is its ability
to round-trip driver implementation code. This means that decisions made about the
layout of methods, interfaces, and other driver characteristics can be completely
changed after the driver has been generated and after the developer has begun implementation.
Nimbus Code Wizards automatically manipulate the C++ code to effect the desired
changes. All implementation code is preserved in the process! No other driver development
tool on the market today has this capability. Driver developers today facing significant
design changes must make painstaking modifications to the code by hand. This is
so tedious and error-prone as to be prohibitive. Developers working with other tools
have reported completely regenerating their driver from scratch three or more times
per day simply to accommodate design changes.back
to chart >
|
VS.NET Integration
Visual Studio .NET is a boon for third-party developer tools as it provides an unprecedented
level of customization possibilities. Nimbus fully capitalizes on Visual Studio
.NET by integrating our own custom tool windows, menus, commands, and toolbars directly
into the Visual Studio IDE. Driver developers working within Visual Studio have
direct access to the same Nimbus design and development tools as in the stand-alone
Nimbus Driver Designer. In fact, all phases of driver design, development, and test
can be conducted without ever leaving the Visual Studio IDE.back to chart >
|
Forwards compatibility with IVI.NET
Nimbus was designed with a forward-looking eye towards .NET drivers. The driver
designs you create with the Nimbus Driver Designer are already independent of the
underlying implementation technology. That means you can take the same design and
generate an IVI-COM driver today and a .NET driver tomorrow, without changing your
design.back to chart >
|
Extensible and open architecture
Every feature and tool in Nimbus is built on top of the Nimbus Object Model, which
encapsulates all of the design information associated with a driver project. Recognizing
the need for users to develop and integrate their own tools, the team at Pacific
has decided to publish the Nimbus Object Model and document it thoroughly. The result
is an extraordinarily empowering range of possibilities for Nimbus users.
Working with the Nimbus Object Model, you can develop your own custom tools for
accomplishing everything from custom design validation, to database integration,
to custom reporting and printing. In short, anything you see that we've done with
Nimbus, you can build for yourself with the Nimbus Object Model.back to chart >
|
VXI Plug-n-Play wrapper
While both Nimbus and VIVID allow importing of VXI Plug-n-Play (VXI PnP) Function
Panel files, VIVID only imports the function signatures into the design. The existing
VXI PnP driver implementation code is not automatically incorporated into the generated
IVI-COM driver. All implementation of the generated IVI-COM methods is left up to
the user. Indeed, this is the most critical, time-consuming, and error-prone portion
of the task of producing an IVI-COM wrapper around a VXI PnP driver. Moreover, VXI
PnP drivers often expose a lot (if not most) of their functionality through attributes,
and VIVID does not import any of these attributes.
By contrast, Nimbus provides true one-click generation of IVI-COM wrappers for existing
VXI PnP drivers. Users simply direct the Plug-n-Play Wrapper Wizard to the Function
Panel (.fp) file and Nimbus imports all methods, all attributes, and even enum definitions.
The generated driver is completely functional with no code modifications whatsoever.back to chart >
|
Multi-model driver support
Instrument vendors commonly develop products in families of related instrument models.
Often, instrument models within a family support very similar functionality. Rather
than developing, testing, and maintaining separate IVI drivers for each instrument
model, it is far simpler to develop a single driver than can support multiple instrument
models and families.
Multi-model drivers necessarily place a much greater implementation burden on the
driver developer. Nimbus supplies a powerful array of features to facilitate multi-model
driver development with no additional coding. At runtime, the Nimbus-generated driver
detects the instrument to which it is connected and dynamically adapts to issue
the proper device commands for that specific instrument model. The driver developer
uses simple dialog boxes to configure this behavior. All of these dialogs are accessible
from the Nimbus Driver Designer and from within Visual Studio.back to chart >
|
Performance monitoring
Nimbus automatically instruments your driver code by installing a variety of Windows
performance counters to track the performance characteristics of your implementation.
No coding is required on the part of the developer to take advantage of these valuable
analysis tools, and there is virtually zero overhead incurred in collecting the
driver's performance data.
Nimbus installs performance counters for tracking such driver performance characteristics
as method call execution speed, instrument I/O execution speed, state caching efficiency,
and I/O errors.back to chart
>
|
Downloadable instrument personality support
Many types of instruments today ship with lots of configurable options. Customers
purchase a base instrument and then purchase additional options in the form of measurement
personalities that can be downloaded into the instrument. As a result, the capability
of the instrument, and hence, the driver that communicates with it, needs to be
configurable and expandable. As new measurement options are developed and released,
the existing driver needs to be able to accommodate these options even though they
did not exist when the driver was developed.
Nimbus provides direct support for these types of compound instruments. Supporting
instruments with downloadable personalities is as easy as selecting an option in
the New Driver Project Wizard. The Nimbus-generated driver dynamically adapts to
expose only the options installed on the end-user instrument.back to chart >
|
Unified design environment
Constructing a complete, customer-ready IVI driver involves developing a number
of different types of projects. These include the main driver project, a help project,
an installer project, a regression test project, and potentially others. VIVID uses
separate, disconnected tools for driver design, test code production, help file
development, and installer implementation. As a result, the driver product itself
is spread out amongst numerous different, incompatible project types. Nimbus provides
a single environment for designing and implementing all of these driver development
tasks. The single Nimbus project consolidates design, implementation, help, and
even test information into a single open XML-format file.back to chart >
|
.NET-style attributed code
Nimbus introduces an extraordinarily powerful and easy-to-use mechanism for adding,
removing, and modifying the functionality of your IVI-COM driver. Attributed programming
allows you to replace reams of code that developers typically must write directly
in their method implementations with simple declarative driver attributes. These
attributes use the convenient .NET-style syntax and bring to COM programming the
same power, flexibility, and ease-of-use as the .NET attributes that are becoming
so popular in C# and VB.NET programming.back
to chart >
|
|
|