The HP Vee Programming Environment

As mentioned, HP Vee is primarily used to control instruments and take measurements and data from a number of sources, including PC plug-in cards, stand-alone GPIB instruments, RS-232 and GPIO devices, and VXI instrumentation. HP Vee supports all HP Vee drivers, as well as VXIplug&play drivers and LabWindows/CVI drivers. Drivers for HP instruments can be downloaded from http:// www.tm.agilent.com/tmo/software/ English/instrument_drivers.html.

In building Maxwell, I used the HP Vee interface development capabilities needed for instrument control. Beyond this, HP Vee's processing capabilities were essential. HP Vee provides 12 data types and automatically converts data into the type you require for program execution. It builds and dismantles text and binary numbers, and swaps bytes -- tasks that need to be coded in other languages. HP Vee includes more than 200 math and analysis functions, including elementary math, trigonometry, calculus, array and matrix math, and probability. When you need to construct a solution from a long, custom math equation, HP Vee Lab provides a formula box in which to type the equation.

The HP Vee programming language is entirely visual and object oriented. All methods are represented as objects placed on the screen from a menu, as in Figure 1. Data flow between objects is along threads from left to right, while sequencing is controlled by threads from bottom to top between the objects. This scheme, with the inevitable complications, is quite intuitive and transparent and thus easy to learn. The menu at the top of Figure 1 groups the objects roughly by function. Among the most important are those handling file I/O, graphical display, screen I/O, instrument I/O, iterative control, and math functions.

Figure 1 shows the detail view -- the programming environment. After a program is developed, only those few objects with which the program operator interacts are selected to be placed on a panel view, which can be developed visually without affecting the detail view. Figures 2 through 10 show various panel views. Panel views typically contain transaction fields for data input, graphics objects for data display, and control objects.

Panel views can be developed with great flexibility. This involves not only control of the size and color of objects, but logical grouping on the screen. Panel views of logically related objects can be made to pop up within a panel view, in interaction with the operator. I designed Maxwell's panel views to establish the feel and interactivity of a construction or proof in Euclidian geometry, and to interactively organize the process of conformal mapping.

The user function of the HP Vee language is essential in the development of Maxwell. Figure 6 shows this feature in the functional panel, where the differential forms corresponding to the established notation of vector calculus are user functions. By adopting the notation of vector calculus as command-line syntax, with user functions, the command-line syntax of Maxwell is made equivalent to the conventional notation it mimics.

Since the developers of HP Vee originally had in mind instrument control, a screen object can be given all the functionality of the physical device it represents, which instrument is interfaced with the PC using a device driver. This device object is treated in the detail view and panel view like any other object. Data acquisition and display proceed very easily for a wide variety of diagnostic instruments.

Because of the ease with which the detail and panel views of an HP Vee program can be developed and modified, the language changes much more than laboratory instrument control. Classes in HP Vee programming often have the ambience and creative freedom of an art class rather than an engineering class.

Once the detail and panel views of an HP Vee program have been perfected, the program can be secured. In a secured program, the detail view is inaccessible. A secured program can be run on any system with the HP Vee run-time library installed (the library is freely available).

-- D.S.B.

Back to Article