last update 28 aug 98 / greg goebel / public domain / vwv_3_1.txt
* This document provides introduction notes for the VEE 3.1 release in the spring of 1995.
* The new VEE for Windows release 3.1 is now being shipped. The major reason for this release was to provide VXI Plug & Play compatibility, but two new objects -- Integer & Real Knob input objects, which are variations on the Slider input objects -- have been added, and a number of bugs were fixed.
* VXI PnP technology is implemented in a simple fashion in this release (more sophisticated implementations are under consideration).
A PnP driver is simply a Windows DLL (Dynamic Link Library) and so is accessed and controlled by VEE's standard Import Library, Call Function, and Close Library objects. There are no new objects in VEE to handle the PnP driver (at least for the present); you will, however, need a number of external files.
First, you will need the VISA.DLL interface library (installed in the \WINDOWS\SYSTEM directory) to allow the PnP driver to access an HPIB or GPIB interface. VISA.DLL will not be shipped with VEE; it will be shipped with the interface card. We don't have a release VISA.DLL for HP's HPIB cards yet; we will make it available through the usual channels when it does and announce it in EXCHANGE. No RS-232 support just yet, though of course it will support VXI backplane access.
Second, you will also need the files for the PnP driver itself. Consider a PnP driver for a mythological VXI instrument named, say, the HP E1444 VXI defrazzinator module; the driver will then consist of the following files:
HPE1444.DLL: The PnP driver file. HPE1444.H: Header file for the PnP driver (contains definitions). HPE1444.HLP: Help file for the driver.
These files will be delivered along with the instrument; they should be installed (for this example) in a directory named \VXIPNP\WIN\HPE1444.
At any rate, to load this PnP driver, you have to use the Import Library object:
+-------+ | Start | +---+---+ | +----------------------+------------------------+ | Import Library | +-----------------------------------------------+ | Library Type [ Compiled Function ] | | Library Name [ hpe1444 ] | | File Name [ C:\VXIPNP\WIN\HPE1444.DLL ] | | Definition File [ C:\VXIPNP\WIN\HPE1444.H ] | +----------------------+------------------------+ |
This specifies the PnP driver DLL file and the header file, which defines the functions in the library so VEE can figure out what they are. Note that the "library name" is arbitrary; you could use any reasonable string, such as "driver", "mylib", "testset1", and so on.
This done, you then have to initialize the PnP driver; you bring up a Call Function object, specify the driver function "hpe1444_init", and then execute the "Configure Pinout" entry from the Call Function object's menu.
This gives the Call Function object three input pins and two output pins; the three input pins are as follows:
Takes a string giving the instrument address. Instrument address formats are discussed below.
If 1, tells the PnP driver to send a *IDN? command to instrument and confirm that it is what it's supposed to be. Ignored if 0.
If 1, reset the instrument. Ignored if 0.
The address string is of the form:
VXI card at logical address 12 accessed through VXI backplane or MXI card.
VXI mainframe at HPIB address 7 with VXI card at secondary address 9, accessed through the GPIB interface.
The address strings are defined automatically when the VISA software is installed; they are stored in a .INI file and may be modified if need be.
The two return value pins are as follows:
A driver-dependent status value; this can be converted into a string by using a Call Function to the "hpe1444_error_query" function. The value is "0" if all goes well.
The "virtual instrument" handle. This contains a value that must be used in all subsequent Call Function objects accessing the PnP driver; this pin should either be connected to a global variable (which will then be used to drive the following Call Function objects) or wired directly to the Call Function objects.
For example:
+------------+ | | GPIB0::9:7 +--+ +-----------------------+-------------------------+ +------------+ | | Call Function | | +----------+--------------------------+-----------+ +-----+ +-->| InstDesc | | Ret Value +--> | 0 +----->| Id_query | [ hpe1444.hpe1444_init ] | | +-----+ +-->| reset | | vl +--+ | +----------+------------+-------------+-----------+ | +-----+ | | | | 0 +--+ | +----------------+ +-----+ | | | | +------------+ | | | Set Global | | | +------------+ | +-->| [ handle ] | | +------------+ |
This done, you can then use Call Function boxes to access the PnP driver functions:
| +------------+ +---------------------+------------------------+ | Get Global | | Call Function | +------------+ +----+-----------------------------+-----------+ | [ handle ] +-->| vi | [ hpe1444.hpe1444_trigger ] | Ret Value +---> +------------+ +----+----------------+------------+-----------+ |
After performing all the transactions, you then close the PnP driver with:
| +------------+ +--------------------+-----------------------+ | Get Global | | Call Function | +------------+ +----+---------------------------+-----------+ | [ handle ] +-->| vi | [ hpe1444.hpe1444_close ] | Ret Value +---> +------------+ +----+---------------+-----------+-----------+ |
-- and get rid of the library with:
| +------------+-------------+ | Delete Library | +--------------------------+ | Library Name [ hpe1410 ] | +------------+-------------+ |
More advanced PnP driver interfaces are under consideration for a future version of VEE.
* The new Knob objects add another useful enhancement for building slick user interfaces.
The Integer and Real Knob objects are really just modified versions of the current Slider objects; both sets of objects do the same things, they just look different.
The Knobs provide you with a simulated front-panel knob that you can "twirl" by clicking on the direction you want the knob to go with your mouse, or by grabbing the hairline indicator and moving the knob around with a click-and- drag operation.
The Knobs "Edit Properties" tabfolder gives the following options:
+----------------------------------------------------------------------+ | Knob Properties | +--------------+-------------+-------------+-------------+-------------+ | General | Colors | Fonts | Custom | Icon | | +-------------+-------------+-------------+-------------+ | Title: [IntKnob ] | | | | +- Open View --------+ +- Debug ----------------+ | | | [x] Show Title Bar | | [ ] Breakpoint Enabled | | | | [ ] Show Terminals | | | | | +--------------------+ +------------------------+ | | +- Format ---------+ +- Execution --------+ +- Initialization -----+ | | | <*> Horizontal | | [x] Wait for Input | | Initial Value: [ 0 ] | | | | < > Vertical | | [ ] (Auto Execute) | | [ ] Init at PreRun | | | | [x] Show Display | | | | [ ] Init at Activate | | | | Detents: [1 ] | | | | | | | +------------------+ +--------------------+ +----------------------+ | +----------------------------------------------------------------------+ | [ OK ] [ Cancel ] [ Help ] | +----------------------------------------------------------------------+You can set the orientation of the Knob; whether it has numeric display indicators; the size of the "detent" values -- that is, the interval by which you can set values on the Knob (it's resolution, or granularity, in other terms); whether it waits for input or not; and initial values.
Control inputs may be added for Default Value, Reset, MaxValue, MinValue, and Detents.
The changes made to add the Knobs have been reflected slightly in the operation of their ancestors, the Integer & Real Slider objects: you can now use their "Set Properties" tabfolder to set a "Show Digital Display" property on or off, allowing you to control whether you want to see numeric values on the display or not.
Note that the menu choices for all four of these objects have moved to a new location on the "Data" menu, under the new menu item "Continuous".
* The following bugs were reported in 3.0 and fixed in 3.1:
It turned out to be due to the fact that the customer hadn't installed certain fonts under Windows. All was well once the customer ran Windows Control Panel -> Fonts, and added "Arial (TrueType)", "Courier New (TrueType)", and "Times New Roman (TrueType)" fonts.
The lab also fixed the following problems that were not reported through our online group (meaning they were either discovered by or reported directly to our lab team):
All these VEE 3.0 bugs were fixed in VEE 3.1.