Copyright: Copyright (c) 1991-1996 Hewlett-Packard Company


Contents for HP VEE
HP VEE Help

Welcome to HP VEE Help.  To select a topic, click on the underlined text with your mouse.

On Features
Math Syntax
Concepts

Using HP VEE
Using the Keyboard Shortcuts

Error Codes
Glossary
Latest Information

Copyright (c) 1991 - 1996 Hewlett-Packard Company.  All rights reserved.

Microsoft(R), MS-DOS(R), Windows(R), and MS Windows(R) are U.S. registered trademarks of Microsoft Corporation.

PostScript(TM) is a trademark of Adobe Systems Incorporated which may be registered in certain jurisdictions.

UNIX(R) is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Limited.


On Features

This help section provides reference information about all HP VEE objects. Choose the name of the object that you want to read about.

Access Array
Access Record
Accumulator
Activate Breakpoints
Add Terminal
Add To Panel
Advanced I/O
Allocate Array
Alloc Complex
Alloc Coord
Alloc Integer
Alloc PComplex
Alloc Real
Alloc Text
AlphaNumeric
Beep
Break
Build Arb Waveform
Build Complex
Build Coord
Build Data
Build PComplex
Build Record
Build Spectrum
Build Waveform
Bus I/O Monitor
Button
Call Function
Check Box
Clean Up Lines
Clear All Breakpoints
Clone
Clone (Object Menu)
Collector
Color Alarm
Comparator
Complex
Complex Plane
Component Driver
Concatenator
Conditional
Confirm (OK)
Constant
Continuous
Control Input (Object Menu)
Coord
Copy
Counter
Create UserObject
Cut
Cut (Object Menu)
Cyclic Button
Data Input (Object Menu)
Data Output (Object Menu)
Date/Time
Delay
Delete (Object Menu)
Delete Global
Delete Library
Delete Line
Delete Output (Object Menu)
Delete Terminal
DeMultiplexer
Device Configuration
Device Event
Dialog Box
Direct I/O
Do
Drop-Down List
Edit Default Preferences
Edit Description
Edit UserFunction
errorInfo()
Error Output (Object Menu)
Execute Program (PC)
Execute Program (UNIX)
Exit
Exit Thread
Exit UserObject
File Name Selection
Fill Bar
For Count
For Log Range
Formula
For Range
From
From DataSet
From File
From StdIn (UNIX)
From String
Function
Function Generator
Gate
Get Field
Get Global
Get Mappings
Get Values
Global
Help (Object Menu)
hidePanel()
Horizontal Paddle
Horizontal Rocker
Horizontal Slide
HP BASIC/UX
ID Monitor
If A ~= B
If A == B
If A >= B
If A > B
If A <= B
If A < B
If A != B
If/Then/Else
Import Library
Init HP BASIC/UX
Input (Object Menu)
Instrument Panel
Integer
Integer Input
Integer Knob
Integer Slider
Interface Event
Interface Operations
JCT
Junction
Label
Line Probe
List Box
List
lockPosition()
Logging AlphaNumeric
Magnitude Spectrum
Magnitude vs Phase
Make UserFunction (Object menu)
Make UserObject
Merge
Merge Library
Merge Record
Message Box
Meter
Minimize (Object Menu)
Move (Object Menu)
Move Objects
MultiDevice Direct I/O
New
Next
Noise Generator
Note Pad
Object Menu
OK
On Cycle
Open
Other Instruments
panelPosition()
panelSize()
Paste
Pause
PComplex
Phase Spectrum
Picture
Polar Plot
Pop-Up List
Print (PC)
Print All
Print Objects
Print Screen
Print Screen Object
Print Setup (PC)
Properties (Object)
Properties (Program)
Pulse Generator
Radio Buttons
Raise Error
Random Number
Random Seed
Real
Real Input
Real Knob
Real Slider
Record Constant
Repeat
Replace
Restore (Object Menu)
Resume
Run
Sample & Hold
Save
Save As
Save Documentation
Save Objects
Secure
Selection Control
Select Objects
Sequencer
Set Field
Set Global
Set Mappings
Set Values
Shift Register
Show Config (Object Menu)
Show Description
Show Data Flow
Show Execution Flow
showPanel()
Size (Object Menu)
Sliding Collector
Spectrum (Freq)
Start
Step
Stop
Stop (Object)
Strip Chart
SubRecord
System Info
Tank
Text
Text Input
Thermometer
Timer
To
To DataSet
To File
To/From DDE (PC)
To/From HP BASIC/UX
To/From Named Pipe (UNIX)
To/From Socket
To/From VXIplug&play
Toggle Control
Toggle Breakpoints
To Printer
To StdErr (UNIX)
To StdOut (UNIX)
To String
UnBuild Complex
UnBuild Coord
UnBuild Data
UnBuild PComplex
UnBuild Record
UnBuild Spectrum
UnBuild Waveform
unlockPosition()
Unpack (Object Menu)
Until Break
UserFunction
UserObject
Vertical Paddle
Vertical Rocker
Vertical Slide
View Detail
View Globals
View Panel
Virtual Source
VXIplug&play Device Configuration
VXIplug&play Instrument Configuration
VXIplug&play Instruments
Waveform (Time)
whichOS()
whichPlatform()
whichVersion()
XEQ Input (Object Menu)
X vs Y Plot
XY Trace


Access Array

A menu item.

Supported On

All HP VEE Platforms

Use

Use Access Array to access the following array modification objects:

Set Values

Get Values

Set Mappings

Get Mappings

Location

Data ==> Access Array ==>

Notes

These objects are usually used after the Allocate Array objects to modify the elements or add mappings to a newly created array.

See Also

Allocate Array, Get Mappings, Set Mappings, Get Values, and Set Values.


Access Record

A menu item.

Supported On

All HP VEE Platforms

Use

Use Access Record to access the following record modification objects:

Merge Record

SubRecord

Set Field

Get Field

Location

Data ==> Access Record ==>

Notes

These objects are usually used after the Build Record object to modify the elements, merge records or access portions of the record.

See Also

Build Record, Merge Record, SubRecord, Set Field, and Get Field.


Accumulator

An object that displays and outputs a running sum of its input values.

Supported On

All HP VEE Platforms

Use

Use Accumulator to keep a running total.

Location

Device ==> Accumulator

Object Menu

Clear - Clears the contents of the Accumulator.

Properties

General tab:

Initialization

Clear at PreRun - Clears the contents of the Accumulator at PreRun.  Default is on.

Clear at Activate - Clears the contents of the Accumulator at Activate.  Default is on.

Note

The type of the accumulated output data is the same as the first data input value since the last clear.  Thus, if the Accumulator is input a Real and an Int32, it outputs a Real.

If the Accumulator data input is activated with a Real then later is activated by a Complex, the current accumulated data is Real; the object returns an error because it cannot convert the Complex data to Real.

See Also

Counter.


Activate Breakpoints

When checked, enables all set breakpoints. When not checked, allows the program to run normally.

Supported On

All HP VEE Platforms

Use

Use Activate Breakpoints to toggle between debugging and normal program running. When Activate Breakpoints is on, the menu selection is checked. When a breakpoint is encountered, the program stops running.

Location

Debug ==> Activate Breakpoints

Notes

The orange (by default) border surrounding the objects with set breakpoints is still present, even when Activate Breakpoints is off. The object Properties shows Set Breakpoint as being checked regardless of the state of Activate Breakpoints.

When a breakpoint is set on an object in a UserObject (that is displayed as an icon and Show Panel On Execute is off), Step ignores the breakpoint.

See Also

Clear All Breakpoints, Properties (Object), and Toggle Breakpoints.


Add Terminal

A menu item.

Supported On

All HP VEE Platforms

Use

Use Add Terminal to access the following features which add terminals:

Data Input

Control Input

XEQ Input

Data Output

Error Output

Location

On each object menu ==> Add Terminal ==>

Short Cuts

You can quickly add a data terminal by placing the cursor over the input or output terminal display area and then pressing CTRL+A. Each press of CTRL+A inserts an additional data terminal where the cursor is located.

See Also

Properties (Object), Line Probe, Delete Terminal, Control Input (Object Menu), Data Input (Object Menu), Data Output (Object Menu), Error Output (Object Menu), and XEQ Input (Object Menu).


Add To Panel

Puts a copy of selected objects on the panel view of the program or a UserObject.

Supported On

All HP VEE Platforms

Use

Use Add To Panel to place a set of selected objects on the panel view to create a user interface for your program. For example, the panel view might include only the input and display objects for a program; the internal processes of the program are not displayed.

When a panel view exists and the program is not secured, there are two buttons on the HP VEE toolbar or a UserObject's or UserFunction's title bar that let you see the desired view.

If you select Add To Panel and a panel view does not exist, it is created.

Location

Edit ==> Add To Panel

Add To Panel is also located on the toolbar.

Or UserObject object menu Edit ==> Add To Panel

Notes

The Add To Panel feature is not available if no objects are selected.

The panel view of a UserObject may be added to the main panel view or the panel view of a UserObject that is a surrounding context.

See Also

Create UserObject, Secure, Select Objects, View Detail, and View Panel.


Advanced I/O

A menu item.

Supported On

All HP VEE Platforms

Use

Use Advanced I/O to access the following objects for low-level control of the HP-IB, RS-232 (serial), and VXI interfaces (such as bus commands, polling, and service requests):

Interface Operations

Device Event

Interface Event

MultiDevice Direct I/O

Location

I/O ==> Advanced I/O ==>

Notes

VXIplug&play does not support any of the Advanced I/O features.

See Also

Bus I/O Monitor, Device Event, Interface Event, Interface Operations, and MultiDevice Direct I/O.


Allocate Array

A menu item.

Supported On

All HP VEE Platforms

Use

Use Allocate Array to access the following array building and initialization objects:

Alloc Text

Alloc Integer

Alloc Real

Alloc Coord

Alloc Complex

Alloc PComplex

Location

Data ==> Allocate Array ==>

Notes

Use Set Values to modify arrays already built.

See Also

Alloc Coord, Alloc Complex, Alloc Integer, Alloc PComplex, Alloc Text, Alloc Real, Get Values, Set Mappings, and Set Values.


Alloc Complex

An object that creates a Complex array.

Supported On

All HP VEE Platforms

Use

Use Alloc Complex to create an array of Complex elements.

Location

Data ==> Allocate Array ==> Complex

Open View Parameters

Num Dims - The number of dimensions in the output array. Num Dimensions is an integer from 1 through 10. Default is 1.

Init Value - The value to place in each array element. Default is (0, 0).

Size - The number of elements in the dimension. There is one field per dimension.  Default is 10.

Init Value and Size may be set on the object or from data input pins.

Notes

To change the values of individual elements, use Set Values.

If the Num Dims value is changed, the view automatically creates or deletes fields on the open view so that the number of dimension size fields matches the value of the Num Dims value.

The output array is not mapped.  Use Set Mappings to map the dimensions of the array.

See Also

Complex, Get Values, Set Mappings, and Set Values.


Alloc Coord

An object that creates a Coord array.

Supported On

All HP VEE Platforms

Use

Use Alloc Coord to create an array of Coord elements.

Location

Data ==> Allocate Array ==> Coord

Open View Parameters

Num Dims - The number of dimensions in the output array. Num Dimensions can only be 1 since Coord arrays of greater than 1 dimension are not allowed in HP VEE.

Num Coord Dims - The number of values in each Coord.

Init Value - The value to place in each array element. Default is (0, 0), (0,0,0), or (0,0,0,0).

Size - The number of elements in the dimension. Default is 10.

Init Value and Size may be set on the object or from data input pins.

Notes

To change the values of individual elements, use Set Values.

See Also

Coord, Get Values, and Set Values.


Alloc Integer

An object that creates an integer array.

Supported On

All HP VEE Platforms

Use

Use Alloc Integer to create an array of Integer elements.

Location

Data ==> Allocate Array ==> Integer

Open View Parameters

Num Dims - The number of dimensions in the output array. Num Dimensions is an integer from 1 through 10. Default is 1.

Init Value | Lin Ramp | Log Ramp

Init Value - The values to place in each array element. This value is interpreted as an integer. Default is 0.

Lin Ramp - A linear ramp of integer values that are as equally spaced as possible between the ramp initial value (inclusive) and the ramp ending value (inclusive). This option is only available if Num Dims = 1.

Log Ramp - A ramp of integer values that are logarithmically spaced as possible between the ramp initial value (inclusive) and the ramp ending value (inclusive). This option is only available if Num Dims = 1.

Size - The number of elements in the dimension.  There is one field per dimension. Default is 10.

Init Value and Size may be set on the object or from data input pins.

Notes

To change the values of individual elements, use Set Values.

If the Num Dims value is changed, the view automatically creates or deletes fields on the open view so that the number of dimension size fields matches the value of the Num Dims value.

The output array is not mapped.  Use Set Mappings to map the dimensions of the array.

See Also

Integer, Get Values, Set Mappings, and Set Values.


Alloc PComplex

An object that creates a PComplex array.

Supported On

All HP VEE Platforms

Use

Use Alloc PComplex to create an array of PComplex elements.

Location

Data ==> Allocate Array ==> PComplex

Open View Parameters

Num Dims - The number of dimensions in the output array. Num Dimensions is an integer from 1 through 10.  Default is 1.

Init Value - The value to place in each array element. The initial value's phase is normalized to fall between pi and -pi radians; the number's magnitude is converted to a positive if it was negative and the phase angle was shifted 180 degrees. Default is (0, @0).

Size - The number of elements in the dimension. There is one field per dimension. Default is 10.

Init Value and Size may be set on the object or from data input pins.

Notes

Set Values changes the values of individual elements.

If the Num Dims value is changed, the view automatically creates or deletes fields on the open view so that the number of dimension-sized fields matches the Num Dims value.

The output array is not mapped.  Use Set Mappings to map the dimensions of the array.

See Also

Get Values, PComplex, Set Mappings, and Set Values.


Alloc Real

An object that creates a real array.

Supported On

All HP VEE Platforms

Use

Use Alloc Real to create an array of Real elements.

Location

Data ==> Allocate Array ==> Real

Open View Parameters

Num Dims - The number of dimensions in the output array. Num Dimensions is an integer from 1 through 10. Default is 1.

Init Value | Lin Ramp | Log Ramp

Init Value - The value to place in each array element. Default is 0.

Lin Ramp - A linear ramp of real values that are as equally spaced as possible between the ramp initial value (inclusive) and the ramp ending value (inclusive). This option is only available if Num Dims = 1.

Log Ramp - A ramp of real values that are logarithmically spaced between the ramp initial value (inclusive) and the ramp ending value (inclusive). This option is only available if Num Dims = 1.

Size - The number of elements in the dimension. There is one field per dimension.  Default is 10.

Init Value and Size may be set on the object or from data input pins.

Notes

To change the values of individual elements, use Set Values.

If the Num Dims value is changed, the view automatically creates or deletes fields on the open view so that the number of dimension-sized fields matches the Num Dims value.

The output array is not mapped.  Use Set Mappings to map the dimensions of the array.

See Also

Get Values, Real, Set Mappings, and Set Values.


Alloc Text

An object that creates a Text array.

Supported On

All HP VEE Platforms

Use

Use Alloc Text to create an array of Text elements.

Location

Data ==> Allocate Array ==> Text

Open View Parameters

Num Dims - The number of dimensions in the output array. Num Dimensions is an integer from 1 through 10.  Default is 1.

Init Value - The value to place in each array element. This value is interpreted as a string. Default is null (an empty string).

Size - The number of elements in the dimension. Default is 10.

Init Value and Size may be set on the object or from data input pins.

Notes

To change the values of individual elements, use Set Values.

If the Num Dims value is changed, the view automatically creates or deletes fields on the open view so that the number of dimension-sized fields matches the Num Dims value.

The output array is not mapped.  Use Set Mappings to map the dimensions of the array.

See Also

Get Values, Set Mappings, Set Values, and Text.


AlphaNumeric

An object that displays alphanumeric data.

Supported On

All HP VEE Platforms

Use

Use AlphaNumeric to display any of the data types as a single value, an Array 1D, or a Array 2D. To view an array, scroll the display with the scroll bars.

Location

Display ==> AlphaNumeric

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the contents of the AlphaNumeric are cleared at PreRun.  Default is on.

Clear At Activate - When the check box is selected, the contents of the AlphaNumeric are cleared at Activate.  Default is on.

Number tab:

Global Format - Use the default format. Default is on.

Integer: - If Global Format is off, specify the number format for integer numbers to be displayed on this object. The choices are Decimal (e.g. 42), Octal (e.g. #Q52), Hexadecimal (e.g. #H2a), and Binary (e.g. #B00101010). Default is Decimal.

Real: - If Global Format is off, specify the number format for real numbers to be displayed on this object. The choices are Fixed (e.g. 98.6000), Scientific (e.g. 9.8600E+01), Engineering (e.g. 98.6000E0), Standard (e.g. 98.6), and Time Stamp (e.g. Sat 01/Jan/1994 17:01:38). Default is Standard.

Notes

A row of asterisks *** is displayed if the current width of the AlphaNumeric object is too small to display the default precision of the numeric type. Resize the object to display the data.

If there is a 2D Array, you will see a scroll bar.

Arrays that are three-dimensional and larger are displayed as the string 3D Array and so forth.

ASCII 0-30 are dependent on font and may not even be readable.

See Also

Edit Default Preferences and Logging AlphaNumeric.


Beep

An object that generates an audible tone.

Supported On

All HP VEE Platforms

Use

Use Beep to generate a tone of a specified frequency, duration, and volume.

Location

Display ==> Beep

Open View Parameters

Frequency (Hz) - The frequency of the tone in Hertz. Default is 1000 Hz.

Duration (sec) - The time in seconds for the tone to last. Default is 0.1 sec.

Volume (0-100) - The relative volume of the tone, where 0 is silent and 100 is the loudest. Default is 80.  (On the PC, any value from 1 to 100 causes the same volume.  However, a value of 0 causes silence.)

All of the three open view parameters can be added as data input terminals.

Notes

The functionality of the Beep object is hardware dependent. In some cases, one or more of the open-view parameters may not affect the actual tone generated. Also, some computers do not have internal speakers and may require an external speaker module. Refer to your computer owner's manual for information about its audio output capabilities.

A Frequency or Volume value less than or equal to zero will pause for the specified duration.

The Beep object may complete execution (activate its sequence output pin) before a long duration tone has completed.  Execution of subsequent Beep objects, however will pause program execution until the previous tone has completed.


Break

An object that terminates the current iteration loop.

Supported On

All HP VEE Platforms

Use

Use Break to stop the loop and continue execution through the sequence output pin of the iterator.

Location

Flow ==> Repeat ==> Break

Note

Break is usually used with Until Break objects.  It may also be used with other iteration objects and is often used with an If/Then/Else object to conditionally stop iteration.

See Also

For Count, For Range, For Log Range, Next, On Cycle, and Until Break.


Build Arb Waveform

An object that creates a waveform from a set of coordinate data.

Supported On

All HP VEE Platforms

Use

Use Build Arb Waveform to create a uniformly sampled waveform from an Array 1D of Coord values.

Location

Data ==> Build Data ==> Arb Waveform

Open View Parameters

Num Points - The number of points in the output waveform. Default is 256.  Num Points may be set from a data input.

Notes

Build Arb Waveform uses the following formula:

dx = (Xmax-Xmin)/Num Points

Xvalue = Xmin + (point * dx)

Therefore, the last data point is not the last independent value of Coord.

The independent values (x) of each Coord must be greater than, or equal to, the independent value of the previous Coord in the array.

The Input Coord array must be (x,y) pairs, not (x,y,z).

See Also

Build Waveform, Comparator, Coord, Function Generator, Noise Generator, and Pulse Generator.


Build Complex

An object that creates a Complex number.

Supported On

All HP VEE Platforms

Use

Use Build Complex to create a Complex number from real and imaginary components.

Location

Data ==> Build Data ==> Complex

Notes

If one of the inputs is an array, the other input must be either a Scalar or an array of the same size and shape.  Both inputs are converted to type Real. The output is the same size and shape as the inputs. The input values' mappings are ignored and the output Complex value is not mapped.

See Also

Build Data and UnBuild Complex.


Build Coord

An object that creates a Coord from Real numbers.

Supported On

All HP VEE Platforms

Use

Use Build Coord to build a Coord from Real components.

Location

Data ==> Build Data ==> Coord

Notes

The number of data inputs determines the number of coordinate fields.  The default (and minimum) is 2 (x,y). The maximum number of coordinate fields is 10.

If one of the inputs is an array, the other input(s) must be either a Scalar or an array of the same size and shape.  All inputs are converted to type Real. The output is of the same shape as the inputs. The input values' mappings are ignored.

The data input shape must be a Scalar or Array 1D.

NOTE
For Coordinate data type, the field names will always be x, y, z, w, v, u, t, s, r, q even though you may change the input terminal names. These field names are used on UnBuild Coord and sort(x).

See Also

Build Data, Coord, UnBuild Coord, and UnBuild Data.


Build Data

A menu item.

Supported On

All HP VEE Platforms

Use

Use Build Data to access the following objects that create containers of particular data types from separate components:

Coord

Complex

PComplex

Waveform

Arb Waveform

Spectrum

Record

Location

Data ==> Build Data ==>

See Also

Allocate Array, Build Arb Waveform, Build Complex, Build Coord, Build PComplex, Build Record, Build Spectrum, Build Waveform, Set Mappings, and Set Values.


Build PComplex

An object that creates a PComplex (polar complex) number from separate components.

Supported On

All HP VEE Platforms

Use

Use Build PComplex to create a PComplex number from the magnitude and phase components. Units of the phase component are determined by the Trig Mode setting under File ==> Edit Default Preferences.

Location

Data ==> Build Data ==> PComplex

Notes

If one of the inputs is an array, the other input must be either a Scalar or an array of the same size and shape.  Both inputs are converted to type Real. The output is of the same shape as the inputs. The input values' mappings are ignored and the output PComplex value is not mapped.

The phase of the initial value is normalized to fall between pi and -pi radians; the magnitude of the number is converted positive if it was negative and the phase angle was shifted 180 degrees.

See Also

Alloc PComplex, Build Complex, Build Data, Edit Default Preferences, PComplex, and UnBuild PComplex.


Build Record

An object that creates a record from separate components

Supported On

All HP VEE Platforms

Use

Use Build Record to create a record from scalar or array components. The input data components become fields in the output record. The output record can be either a scalar or a one-dimensional array.

Location

Data ==> Build Data ==> Record

Open View Parameters

Output Shape - You can set the shape of the output record to either Scalar or Array 1D.

Notes

The fields in the record are named from the names of the corresponding input terminals. The field names are not case sensitive (lowercase and uppercase letters are equivalent). Field names may not be duplicated within a single record. Additional data inputs may be added to create a record with any number of fields. Records of records are allowed (where a field in a record is itself a record). There is no limit on recursion (except for the available memory).

If all inputs are scalar quantities, the record on the Record output pin will be a scalar record consisting of one field for each input, regardless of the specified Output Shape.

If one or more of the inputs are array, the shape of the resulting record depends on the specified Output Shape:

If Scalar is specified as the Output Shape, the output record will be a scalar that consists of one field for each input. Each field will be either a scalar or an array, the same shape as the corresponding input.

If Array 1D is specified as the Output Shape, the output record will be a one-dimensional array of records with fields for each input. If an input is a scalar or one-dimensional array, the corresponding field in the record will be a scalar. If an input is an n-dimensional array, the corresponding field will be an array of n-1 dimensions. If more than one of the inputs are arrays, they must all have the same size and shape. Let's look at some examples:

If input A is a one-dimensional array 10 elements long and input B is a scalar, the output will be a one-dimensional record array of 10 elements with two fields, A and B. The individual  elements of the A input array will appear in the individual array elements of field A in the output record. Input B will be duplicated 10 times in the B field of the output record.

If an input is an array of two or more dimensions, the output record will still be an Array 1D. For example, if an input field is a two-dimensional array, 10-by-3 in size, the output record is a one-dimensional array with a length of 10, but with a field which is a one-dimensional array of 3 elements.

See Also

From DataSet, Get Field, Merge Record, Record Constant, Set Field, SubRecord, To DataSet, and UnBuild Record.


Build Spectrum

An object that creates a Spectrum from separate components.

Supported On

All HP VEE Platforms

Use

Use Build Spectrum to build spectrum values from an array of PComplex or Complex numbers and the frequency interval information.

Location

Data ==> Build Data ==> Spectrum

Example

If you have an Array 1D of [5], PComplex (0,@1), (0,@2), and so forth, and frequency start equals 11 and stop equals 16, then frequency sample equals 11, 12, 13, 14, 15.

Open View Parameters

Start/Stop Freq |Center/Span Freq - Determines whether the two type-in values represent Start/Stop or Center/Span. Either Start/Stop or Center/Span values can be added as inputs.

Freq Sampling - Specifies whether the frequency sampling values are sampled linearly or logarithmically. Default is Linear.

Notes

The input PComplex values' mappings are ignored.

HP VEE does not track dB-scaled data.  When you perform operations on dB-scaled data, you must ensure that they are done correctly.

To convert between linear- and db-scaled data, use the library programs provided with HP VEE in the lib directory under the HP VEE program installation directory.

There are the same number of points as sampling intervals. Each point is at the beginning of the sampling interval.

See Also

Build Data, Build Waveform, and  UnBuild Spectrum.

fft(x) (under Math Syntax).


Build Waveform

An object that creates a Waveform from separate components.

Supported On

All HP VEE Platforms

Use

Use Build Waveform to create a Waveform from a Real array of amplitude values and time span information.

Location

Data ==> Build Data ==> Waveform

Open View Parameters

Time Span - The length of time in seconds over which the y data was sampled. Time Span may be added as a data input. Default is 20m seconds.

Notes

The input values' mappings are ignored. Build Waveform assumes the y data was sampled linearly at a constant rate over the given interval.

There are the same number of points as sampling intervals. Each point is at the beginning of the sampling interval.

See Also

Build Arb Waveform, Build Data, Build Spectrum, and UnBuild Waveform.

ifft(x) (under Math Syntax).


Bus I/O Monitor

An object that logs the messages sent over an I/O interface path (HP-IB, GPIO, VXI, or RS-232).

Supported On

All HP VEE Platforms

Use

Use Bus I/O Monitor to record each byte (command or data) transferred between HP VEE and any instruments it is controlling by way of Instrument Panels, Component Drivers, Direct I/O, and the Advanced I/O devices. The information that is recorded can optionally be sent to a log file.

The display area of Bus I/O Monitor contains five columns.  For HP-IB, GPIO and RS-232 the columns indicate:

Column 1 - Line number.

Column 2 - HP-IB command (*), data output (>), or data input (<).

Column 3 - Hexadecimal value of the byte transmitted.

Column 4 - 7-bit ASCII character corresponding to the byte transmitted.

Column 5 - Bus command mnemonic (HP-IB bus commands only).

Only columns 1 through 3 are used when monitoring GPIO communications.

Only columns 1 through 4 are used when monitoring RS-232 communications.

For VXI the columns indicate:

Column 1 - Line number.

Column 2 - VXI command (*), data output (>), or data input (<).

Column 3 - Memory space (A16, A24, or A32), symbolic name for register or location, offset from named location.

Column 4 - Hexadecimal value of the byte transmitted.

Column 5 - Logical address of the VXI instrument.

Location

I/O ==> Bus I/O Monitor

Object Menu

Clear - Clears the contents of the Bus I/O Monitor. Clear may be added as a control input pin.

Clear Log File - Deletes the contents of the specified log file. This parameter can be added as a control input.

Properties

General tab:

Initialization

Clear at PreRun - Clears the contents of the Bus I/O Monitor at PreRun. Note that if the Bus Monitor is not connected to a thread and Start is used (not Run), PreRun does not happen on the object. This is because only the objects on the Start thread are PreRun. Default is on.

Clear at Activate - Clears the contents of the Bus I/O Monitor at activate. Default is off.

Logging

Logging Enabled - Records  activity in the list area of the Bus I/O Monitor. Log Enable and Log Disable control input pins may be added. Default is on.

Log To File - Sends data to the specified file as it is recorded by the Bus I/O Monitor. Monitor data is always appended to the end of the specified file. The Log File Name can be specified on the open view of the Bus I/O Monitor or can be added as a control input. Default is off.

Buffer Size

Lines: Determines the maximum number of lines retained in the monitor's display.  Once the monitor is full, lines at the beginning of monitor are discarded to make room for newly-logged lines. Default is 256.

Notes

The Bus I/O Monitor allows execution to proceed much faster when displayed as an icon rather than an open view.

Each Bus I/O Monitor object is capable of monitoring one physical bus. For example, to monitor HP VEE activity on one HP-IB card and one RS-232 card, the user would need two Bus I/O Monitors.

Bus I/O Monitor is not a general purpose hardware bus monitor since it only shows the bytes input and output by HP VEE.  Any other programs that input/output to the bus, for example, HP BASIC/UX, compiled functions, or shell escape programs that perform I/O, do not log their I/O to the HP VEE monitor.

For MS Windows, you can change the time zone that appears in this object by using the set command in your AUTOEXEC.BAT file. As an example, for Mountain Time, enter the command set TZ=MST7MDT and reboot your PC.

See Also

Advanced I/O and Other Instruments.


Button

See Toggle Control.


Call Function

An object that executes a previously defined UserFunction, Compiled Function, or Remote Function.

Supported On

All HP VEE Platforms

Use

Use Call Function to execute (call) a previously defined UserFunction, Compiled Function, or Remote Function. Each input and output on the Call Function object corresponds to the respective input/output on the called function. (For a UserFunction, the inputs and outputs correspond directly to the inputs and outputs on the original UserObject that was made into the UserFunction.) Call Function inputs are passed to the called function by position, not by name. For example, the Call Function object may have as its inputs, A and B. But the called function may have as its inputs x and y. No matter, the first input (A) on Call Function is passed as the first input (x) of the called function. Only position is significant.

You may also call a UserFunction, Compiled Function, or Remote Function by including its name in any expression whose evaluation is delayed until run time. These include expressions in Formula, If/Then/Else, Set Field, Get Field, Get Values, or From DataSet devices, or expressions in Sequencer or I/O transactions. For example, you can call the function someUsrFunc by including the expression 2+someUsrFunc(a) in a Formula object.

You can select a function to call in two ways. You can execute Select Function in the object menu and select a name from a list of available functions, or you can type in the name directly in the Function Name field. In either case, Call Function will automatically configure its input and output pins for the called function, if that function is recognized by HP VEE.

Since Call Function can call UserFunctions (either locally created or imported from a library), Compiled Functions, or Remote Functions, it is possible to have two functions with the same name. Naming conflicts are resolved according to the following rule:

The libraries are searched in the following order:  1) local UserFunctions, 2) imported ("external") UserFunctions, 3) Compiled Functions, and 4) Remote Functions.

This rule also applies to all objects capable of calling such functions from an expression. In all cases, the first (top-most) output pin of the defined function is the returned value for the expression.

If a function is defined with the same name as a built-in HP VEE function, such as COS, the user-defined function will override the built-in function.

Location

Device ==> Function ==> Call

Open View Parameters

Function Name - The name of the UserFunction, Compiled Function, or Remote Function to be called.

Object Menu

Edit UserFunction - Displays the editing window to the named UserFunction.  When you're done editing, press the Close button on the window. (This selection is grayed out if the named function currently doesn't exist in HP VEE.)

Select Function - Lists the functions currently known to HP VEE. Locally created UserFunctions are listed first, followed by an alphabetically arranged list of the imported library functions (UserFunctions, Compiled Functions, and Remote Functions). When you select a function, the input and output pins on this object are automatically configured as defined by the called function. (This selection is grayed out if the named function currently doesn't exist in HP VEE.)

Configure Pinout - Automatically configures the input and output pins on this object as defined by the called function. (This selection is grayed out if the named function currently doesn't exist in HP VEE.)

Notes

The Call Function object acts much like a math function call. Any inputs act like the formal arguments of an internal HP VEE function, while any outputs act like return values from that function.

The actual execution of Call Function is synchronous -- a call to a UserFunction, Compiled Function, or Remote Function will suspend the execution of parallel threads until the function is complete.

See Also

Delete Library, Edit UserFunction, Import Library, UserFunction, and UserObject.


Check Box

See Toggle Control.


Clean Up Lines

Redraws all lines in the program or UserObject to route around objects using only horizontal and vertical line segments.

Supported On

All HP VEE Platforms

Use

If you disable Automatic Line Routing, connecting lines are straight from pin to pin (unless tacked). Select Clean Up Lines from time to time to tidy up the lines in your program.

Location

Edit ==> Clean Up Lines
  	     or
 UserObject (Object Menu) ==> Edit ==> Clean Up Lines

Notes

Clean Up Lines is context sensitive; when it is selected from the UserObject Edit menu, only the lines within the UserObject are affected.  When selected from the menu bar Edit, only the lines in the root context (not in any UserObjects) are affected.

It may take several moments to completely re-route the lines in a complex program.

When a particular routing seems complex, move some of the objects apart to give the Auto Line Routing feature more room to find a shorter path.

After using Clean Up Lines, sometimes it is difficult to determine if two lines cross each other or if one line is connected to three places.  Use Line Probe to display the endpoints of the lines.

See Also

Edit Default Preferences, Line Probe, and UserObject.


Clear All Breakpoints

Clears execution breakpoints.

Supported On

All HP VEE Platforms

Use

Use Clear All Breakpoints to delete all breakpoints when you are finished debugging.

Location

Debug ==> Clear All Breakpoints

See Also

Activate Breakpoints, Properties (Object), and Toggle Breakpoints.


Clone

Duplicates selected objects and their interconnections, and places a copy of them in the Paste buffer.

Supported On

All HP VEE Platforms

Use

Use Clone when you want an immediate copy of a set of selected objects. Clone copies all the attributes of the cloned object including pins, parameters, and size.

Location

Edit ==> Clone

Notes

Clone is only available after objects are selected.

To Clone a single object, use the Clone selection from its object menu.

Each Clone overwrites the previous content of the Paste buffer.

Each Clone of an Instrument Panel reflects a different state of the same instrument.

Each Clone of a UserObject is an independent copy of all objects in it.   Changing one copy does not affect others.

See Also

Cut, Clone (Object Menu), Copy, Object Menu, Paste, and Select Objects.


Clone (Object Menu)

Duplicates this object and places a copy of the object in the Paste buffer.

Supported On

All HP VEE Platforms

Use

Use Clone to create a copy of the object. Clone makes a duplicate object immediately available and puts a copy of the object in the Paste buffer. Clone copies all the attributes of the cloned object including terminals, parameters, and size.

Location

On each object menu ==> Clone

Notes

To copy multiple objects at the same time, select the objects using Edit ==> Select Objects, then use Edit ==> Clone.

Each Clone overwrites the previous content of the Paste buffer.

Each Clone of a UserObject is an independent copy of all objects in it. Changing one copy does not affect any others.

Each Clone of an Instrument Panel reflects a different state of the same instrument.

See Also

Object Menu, Cut (Object Menu), Copy, Clone, Paste, and Replace.


Collector

An object that collects data and outputs an array.

Supported On

All HP VEE Platforms

Use

Use Collector to create a one-dimensional array from scalar input data, or to create an output array from collected input arrays. If the input arrays have "n" dimensions, the collector can either output an array of n+1 dimensions, or it can output a one-dimensional array (with the input data "flattened"). When all data has been collected, activate the XEQ pin to output the resulting array.

Location

Data ==> Collector

Open View Parameters

Output Shape - Choose one of two selections:

n+1 Dim Array - The input signals (arrays of n dimensions) are collected and output as an array of n+1 dimensions.

1 Dim Array - The input signals, regardless of shape, are "flattened" by the collector and output as an Array 1D.

(For scalar input data, the output shape will be "Array 1D" regardless of the selection.)

Object Menu

Clear - Clears the contents of the Collector.

Properties

General tab:

Initialization

Clear at PreRun - Clears the contents of the Collector at PreRun.  Default is on.

Clear at Activate - Clears the contents of the Collector at activate.  Default is on.

Notes

Because XEQ is required on the Collector you cannot add another XEQ pin or delete it.

The Collector continues to collect the input data until the XEQ pin is triggered.

The Collector has two inputs; one for the data coming in (any shape and type); the other tells the object when to execute. The Collector accepts multiple pieces of data on the first data input pin, and collects the data until the XEQ pin is activated. Then the object copies the full set of data to its output pin and propagates its output. The output data pin is never propagated until the XEQ pin is activated. Once the data propagates, the Collector clears its internal buffer and again starts collecting data. The type of the output signal is determined by the type of the first data container coming in after each XEQ or Clear.  All subsequent containers are coerced to the type of the first one. If coercion fails, an error is reported.

The shape of the output signal depends on the Output Shape selection:

n+1 Dim Array operation - If you select n+1 Dim Array for the Output Shape, the Collector will collect the data coming into its Data pin, and will output an array of one dimension higher than the number of dimensions of the input data. Each input signal must be the same size and shape as the first input signal, until the XEQ pin is triggered. No mapping information is copied -- the output signal is not mapped.

For example, if the first input data is a Real 1D array, 10 long, each subsequent input signal must be a 1D array, 10 long, of a type that can be coerced into Real, until the XEQ pin is triggered. The output signal will be a Real 2D array with 10 columns and n rows, where "n" is the number of times data was sent to the Data input pin before XEQ was triggered.

1 Dim Array operation - If you select 1 Dim Array for the Output Shape, the Collector collects the data coming into its Data pin and outputs an Array 1D, regardless of the shape of the input data. Scalar or Array 1D data is appended to the end; multi-dimensional arrays are flattened into an Array 1D and then appended.

For example, if the data in is a scalar Real value 1.2, then a scalar Int32 value 34, then XEQ is activated, it will output a Real Array 1D, two long, with the values [1.2 34.0].  Then, if it is activated with several Complex data containers, it will output a Complex Array 1D.

Note that for scalar inputs of any type, the Collector generates the same output signal regardless of the Output Shape selection.

Since Waveform and Spectrum signals do not support more than one dimension, they are not allowed as inputs when the Collector is operating in the n+1 Dim Array mode. To collect Waveform or Spectrum data into a 2D array, unbuild the data first and then collect it into a 2D array. Note that the mapping information will be lost.

Since Record and Coord containers only support up to 1D arrays, only scalar Record or Coord containers are allowed as inputs when the Collector is operating in the n+1 Dim Array mode.

Enum inputs are converted to type Text before being placed into an array.

For Record inputs, the field names, types and sizes must match.

The Collector begins with its internal buffer cleared.  It clears its internal buffer of collected data each time the XEQ pin is activated. You can add a control input for Clear and programmatically clear the Collector data before XEQ is activated. Subsequent activation of the data input starts the collecting over again. The output is not propagated until XEQ is activated.

If the XEQ pin is activated, and the data input has not been activated with non-nil data since the last clear, the Collector will output a nil signal.

See Also

Allocate Array, Concatenator, Get Values, Set Values, and Sliding Collector.


Color Alarm

An object that displays a different color and text string, depending on the value of the Scalar input.

Supported On

All HP VEE Platforms

Use

Use Color Alarm as an "LED" that displays a color and a text string, based on an input value and user-defined ranges. The input value may also be displayed in an optional digital numeric field.

Location

Display ==> Indicator ==> Color Alarm

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the contents of the Color Alarm are cleared at PreRun.  Default is on.

Clear At Activate - When the check box is selected, the contents of the Color Alarm are cleared at Activate.  Default is on.

Layout group:

Rectangular | Circular - Selects the shape of the Color Alarm display. Default is Circular.

Show 3-D Border - If the check box is selected, the Color Alarm is shaded to give it a 3-dimensional look. If the check box is not selected, the Color Alarm is displayed as one flat color; this is useful when you need very small "LED" displays, you need the object to operate a little faster, or you don't like the 3-D look.

Show Digital Display  - If the check box is selected, a digital display of the input value is displayed at the bottom of the open view of the object.  If the check box is not selected, the digital display is not displayed and the object operates faster. Default is off.

Limits group:

High Color - Specifies the color used for the highest range (i.e., greater than High Limit).

High Text - Specifies the text displayed on the Color Alarm when the High Color is used. Default is High.

High Limit - Defines the numeric lower limit for the highest range. This value must be greater than or equal to the Low Limit.

Mid Color - Specifies the color used for the middle range (i.e., less than or equal to High Limit and greater than Low Limit).

Mid Text - Specifies the text displayed on the Color Alarm when the Mid Color is used. Default is Mid.

Low Limit - Defines the numeric upper limit for the lowest range. This value must be less than or equal to the High Limit.

Low Color - Specifies the color used for the lowest range (i.e., less than or equal to the Low Limit).

Low Text - Specifies the text displayed on the Color Alarm when the Low Color is used. Default is Low.

Notes

The input data must be Scalar and able to be converted to Real (Complex, PComplex, Spectrum, and Coord must be first "unbuilt".)

The Low Limit must be less than the High Limit.

To use only 2 ranges of color, set the Low Limit equal to the High Limit.

To use only 1 color, set the Low Color, Mid Color, and High Color to the same color.

See Also

AlphaNumeric, Fill Bar, Logging AlphaNumeric, Meter, Tank, and Thermometer.


Comparator

An object that compares two values then outputs the coordinates where the comparison fails.

Supported On

All HP VEE Platforms

Use

Use the Comparator to compare a numeric test value, such as a Waveform or Coord, with a reference value. If one or more of the values in Test Value fails the comparison, a Coord Array 1D is output on the Failures output pin and the Failed output pin activates. If all values pass the comparison, an empty Coord is output on the Failures output pin and the Passed output pin activates.

The independent field (x) in the Failures output Coord Array 1D contains the index or mapping of each failure point. The dependent field (y) contains the Test Value that failed.

Location

Device ==> Comparator

Open View Parameters

Test Value == Ref Value - Change the comparison operator by clicking on it and selecting the function from the list that is displayed.  Default is ==.

Notes

The Comparator compares only numeric values, not text strings.

The shape of the Ref Value is treated as the same shape as the Test Value.  For example, a Scalar Ref Value of 3 is treated as an Array 1D (with all elements equal to 3) when the Test Value is an Array 1D.  If arrays are compared, their size and number of dimensions must match.

If Test Value is a scalar, Ref Value must be a scalar.

If Test Value is an unmapped array, any mappings on Ref Value are ignored.

If Test Value is a mapped array, the independent variable of the Failures output Coord (x) is the mapping of the element that failed.

If Test Value is a Coord, only the dependent variable of the Coord is used in the comparison. The Failures output Coord contains the Coord value that failed.

All tests use an "almost equal" algorithm that checks equality or inequality to at least six significant digits. If the Ref Value is an array with more than one element, a value for "virtual zero" is derived from the reference data's magnitude. Any data points with a value of "0" must be matched with this "virtual zero" value.

See Also

Allocate Array, Build Arb Waveform, Coord, If/Then/Else, and Set Values


Complex

An object that outputs constant Complex scalars or an Array 1D.

Supported On

All HP VEE Platforms

Use

Use Complex to set a Complex Constant or to get user input. Click on the entry field to enter a value.

Location

Data ==> Constant ==> Complex

Example

To use Complex as a prompt on a panel, change the name of the Complex object to a prompt such as Enter the AC voltage:. The user fills in the requested information in the entry field.

Type in (2,10/27) to have the Complex constant evaluate the formula and display the answer.

Properties

General tab:

Configuration group:

Scalar | 1D Array - Sets the initial data shape of the value(s) to be output with this object.

Size: -  When 1D Array is selected, Size sets the length of the array.

Size Fixed - When the check box is selected, the array cannot have lines added or deleted. This selection is only available if 1D Array is selected.

Execution group: (disabled when Configuration is 1D Array)

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is (0, 0).

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Number tab:

Global Format - Use the default format. Default is on.

Real: - If Global Format is off, specify the number format for real numbers to be displayed on this object. The choices are Fixed (e.g. 98.6000), Scientific (e.g. 9.8600E+01), Engineering (e.g. 98.6000E0), Standard (e.g. 98.6), and Time Stamp (e.g. Sat 01/Jan/1994 17:01:38). Default is Standard.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin.

Control inputs may be added for Default Value and Reset. The Default Value input allows you to programmatically change the current value(s).  This input requires a Complex value, either a Scalar or an Array 1D.  The Constant is reconfigured to match the shape of the incoming data.  The Reset input allows you to programmatically set the value(s) to zero.  If the Constant is configured as an Array 1D, all values are set to zero.  The actual data on the Reset input is ignored.

Note that the Initial Value field is always a scalar, even if Complex is configured to be an array.

You can enter just the Real and Imaginary values, separate them with a comma, and HP VEE formats for you.

See Also

Alloc Complex, Build Complex, Edit Default Preferences, Constant, Coord, Date/Time, Selection Control, Integer, PComplex, Real, Text, and Toggle Control.


Complex Plane

An object that displays continuously-generated complex data as a Cartesian plot.

Supported On

All HP VEE Platforms

Use

Use Complex Plane to display Complex, PComplex, or Coord data values on a Real versus Imaginary axis.

Location

Display ==> Complex Plane

Open View Parameters

Auto Scale - Automatically scales the display to show the entire trace.

Imag - The name of the Y (Imaginary) axis.

Trace1 - The name of the first trace.

Real - The name of the X (Real) axis.

Object Menu

Auto Scale ==> - Automatically scales the display to show the entire trace. (Can be added as control pins.)

Auto Scale - Automatically scales both axes.

Auto Scale X -  Automatically scales the X axis.

Auto Scale Y -  Automatically scales the Y axis.

Zoom ==> - Scales the display.

In - Magnifies the display to contain only the rectangular region that you selected with the pointer. You select the region after selecting this feature by dragging on the graph area.  This action outlines the information with a "rubber band" box.

Out 2|5|10|20|50|100X - Expands the scales of the display by a factor in both the X and Y directions about the center.

Clear Control ==> - Parameters that specify when to clear the display.

Display - Clears the displayed trace(s).  This parameter may be added as a control input.

Next Curve - Resets the pen to display the next curve in a family of curves (data from the next time the display operates) without clearing the previous curve. Next Curve must be selected (or activated) before each new curve in the family. This parameter may be added as a control input.

Center Markers - If markers are available, brings them to the center of the visible part of the trace.  This is useful if you've scrolled the display and markers are not visible.

Add Right Scale - Adds up to two additional scales to permit traces to have different scale ranges. After adding a right scale, assign a trace to the scale using Traces & Scales button in the object's Properties dialog box (object menu ==> Edit Properties).

Plot - Presents the Plotter Setup control panel.  When OK is pressed, a copy of the device's entire display is plotted on the selected plotter.  This parameter may be added as a control input. If the current Plotter Setup is in Plot to File mode, you may specify the destination file or directory name as string data on the Plot control input. If no control input value is given, the file or directory name specified in Plotter Setup will be used.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the display is cleared at PreRun time.  Default is on.

Clear At Activate - When the check box is selected, the display is cleared at Activate time.  Default is on.

Layout group:

Graph Only - The open view shows only the graph area and the marker information (if it exists).  No buttons, scales, scale names, or traces names are shown. This layout redraws quickest and provides the largest display area.

Scales - The open view shows the graph area, the scales, the scale names, and trace names.  These fields are not recessed and may not be edited. This layout is useful when recessed fields might be distracting, such as printing graphs, or when the fields should be protected from editing on a User Panel.

Scales & Sliders - The open view shows all information about the graph.  It includes the most information and allows you to modify the most elements interactively.  It is the default.

Traces & Scales... - A dialog box that allows you to specify values such as the names, colors, line and point characteristics, minimum values, and maximum values for the traces and/or scales.

 Traces:

  - Name: - The name of the trace that is displayed to the left of the graph area and the name of the corresponding input terminal.
 - Scale: - If you have multiple Y scales, selects which Y scale is to be used for this trace.
 -  Color: - The color of the trace. Each added trace has a different color than the existing traces.  Default for Trace1 is Pen 4 (yellow).
 - Lines: - The format of the line connecting data points. Default is a continuous line.
 - Points: - The symbol that marks each data point. To show unconnected data points, select the single dot Lines format and the desired Points symbol. Default is a dot.

 Scales:

 - Show Scale: - If you have multiple Y scales, a selection (using a check box) to specify if the end points and an axis of each additional right scale is displayed to the right of the graph area.
 -  Scale Name: - The names of the scales.  They may be set here or on the Scales & Sliders layout.
 - Maximum: - The maximum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Minimum: - The minimum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Mapping: -  The way the x and y data is mapped to the display.  The mapping may be linear or log.  To make a log-log plot, change both X and Y axes to Log. Default is Linear.
 - Log Cycles: - The maximum number of decades shown (counting down from the maximum x and y values) when AutoScale is activated.  Log Cycles is only used when the Mapping is Log. Log Cycles is useful when a trace contains a large dynamic range in the data. Default is 4.
 - Scale Colors - The color of any background grid or tic marks. Default is Gray.

Grid Type group:

None - No grid lines are shown.

Tic Marks -  Shows tic marks at the major and minor divisions on all four sides of the graph.

Axis - Shows tic marks at the major and minor divisions on the X and Y axes of the graph.  If the actual axes are scrolled off the graph area, axis lines are drawn on the edge closest to the axes.

Lines - Shows lines at the major divisions and tic marks at the minor divisions.  The X and Y axes are shown as thick lines.

Markers group: - Allows you to find the exact value of a data point on the displayed curve. If the data is plotted on a log scale, the values shown on the marker are the linear data points.

To move markers to a different trace, click on the button to the left of the marker values near the bottom of the display. The button cycles through the different line types and colors of the different traces.

Off - No markers are shown. This selection is the default.

One - One marker is available.

Two - Two markers are available.

Delta - Two markers are available and the x and y differences between them are displayed.

Interpolate - When the check box is selected, you can place markers between the displayed data points. The marker values displayed are calculated by linear interpolation.  Default is off.

Notes

Inputs must be Scalar or Array 1D of type Complex, PComplex, or Coord.

Input data of type Coord is plotted by simply using its x and y values without first being converted to type Complex.

 Add traces with the Add Terminal ==> Data Input object menu selection.  Up to twelve traces are allowed.

A Title control input may be added, which sets the title bar name to the specified text value. This allows programmatic control over the title shown when the display is printed or plotted.

You can add a Traces control input pin. The control input data must be an array of records (or a record scalar if you only want to control one trace).  Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A field named TraceNum with an integer value (1 is the first trace).  The TraceNum field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name

Pen

LineType

PointType

The Name field must have a text value.  The Pen, LineType and PointType values must be integers from 0 to n, where 0 draws nothing and n is the number of choices available.

Refer to "Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

You can add a Scales control input pin to control the scales parameters listed above.  The control input data must be an array of records (or a record scalar, if you only want to control one scale). Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A Text field named Scale with a value X, Y (or Y1), Y2, or Y3. The Scale field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name - Must be a text value.

Min - Must be an integer or real value.

Max - Must be an integer or real value.

Mapping - Must have a text value of  Linear or Log.

Refer to "Using Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

See Also

Magnitude Spectrum, Polar Plot, Strip Chart, Waveform (Time), X vs Y Plot, XY Trace, and Edit Default Preferences.


Component Driver

An instrument control object that reads and writes values to components you specifically select.  No control panel is displayed for the instrument, which differs from the Instrument Panel object.

Supported On

All HP VEE Platforms

Use

Use a Component Driver to control an instrument by setting the values of only a few components at a time. Before you can use a Component Driver, the instrument driver for the desired instrument must be installed.

To add a Component Driver object to the HP VEE work area, click on I/O ==> Instrument ... to display the Instrument Select or Configure dialog box. Check the list of configured instruments to see if there is an entry for the instrument you want to use:

If the instrument you want is in the list, and is properly configured:

1. Click once on the instrument entry to highlight it.

2. Click on the Component Driver button.

3. Click on Get Instr to add the Component Driver for that instrument.

If the instrument you want is in the list, but you need to change its configuration, click on Edit Instrument, change the configuration using the dialog boxes, save the configuration (click on Save Config), and then follow steps 1 through 3 above.

If the instrument you want is not in the list, click on Add Instrument, configure the instrument using the dialog boxes, save the configuration (click on Save Config), and then follow steps 1 through 3 above.

For information about the configuration dialog boxes, refer to Other Instruments and Device Configuration. For further information about using Component Drivers, refer to chapter 3 in HP VEE Advanced Programming Techniques.

Location

I/O ==> Instrument ...

Notes

Component Drivers may be operated with Live Mode off.  This allows you to run your program without communicating with the instrument, even if the instrument is not connected to the computer.  This means that you must set Live Mode to on (refer to Device Configuration) before your program will communicate with the physical instrument.

For UNIX systems, your system administrator must configure your computer before it is possible to communicate between HP VEE and any hardware interface. If you believe that you have properly followed all HP VEE procedures and you still cannot achieve any level of communication with an instrument, the problem may be with your computer configuration. Ask your system administrator to read this explanation and verify proper configuration of your system's interface drivers. (These interface drivers are different from the instrument driver files included with HP VEE).

To be useful, at least one input or one output must be added to the Component Driver object. More than one input or output can be added and both inputs and outputs may appear on the same object. An input performs the set actions for the component. An output performs the get actions. Control pins are available as inputs to initialize the component, programmatically change the device address, and set the timeout value.

See Also

Device Configuration, Direct I/O, Other Instruments, Instrument Panel, and Add Terminal.

HP VEE Advanced Programming Techniques, Chapter 3.


Concatenator

An object that outputs the concatenation of all its input data into an Array 1D.

Supported On

All HP VEE Platforms

Use

Use Concatenator to combine two or more data elements into the elements of an Array 1D. The size of the resultant array is the sum of the sizes of the inputs. Data inputs can be added to allow three or more containers to be concatenated.

Enum inputs are converted to type Text before concatenation occurs.

Location

Data ==> Concatenator

Notes

The output data type is the highest type of all the input data types.  If any input is an array of more than one dimension, the array is flattened (row major) into an Array 1D for the concatenation.

To concatenate multiple lines of Text into one line, use Accumulator.

Nil inputs are ignored.  This is different than the concat(x,y) function which operates within the formula box. In the formula box, all nil inputs are automatically converted to Real scalars with value 0.  Thus, concat(a,b), where a is nil and b is an Int32 scalar value 5, results in the Array 1D, two long of Real with values [0 5]. The Concatenator object with two inputs with nil and an Int32 scalar value 5 outputs an Int32 array one long with value [5].

If the first value (first data input) is mapped, the other input values may be either mapped with the same point spacing, or unmapped. The result will be mapped from the Xmin to Xmin + dx * N where "Xmin" is the minimum value of the mapping of the first array value, "dx" is the distance between two consecutive points in the first value, and "N" is the size of the result array.

See Also

Accumulator, Allocate Array, Collector, Set Values, and Sliding Collector.

concat(x,y) (under Math Syntax).


Conditional

A menu item.

Supported On

All HP VEE Platforms

Use

Use Conditional to access the following conditional branches:

If A == B

If A ~= B

If A != B

If A < B

If A > B

If A <= B

If A >= B

Use Conditional objects to decide which subthread to run.

Location

Flow ==> Conditional ==>

Notes

Note the difference between menu items under Relational and under Conditional. Relationals are formulas with output 0 or 1; Conditionals are If/Then/Else and have two outputs of which one fires.

Note that the return value of AND, OR, XOR, and NOT is of type Int32 and is the same shape as the operands. This is different than the conditionals such as == that always return a scalar.

The logical operators are defined for type text only in the sense of whether the string is null or not.  That is, "0" and "1" are logically true since they are non-null strings, while "" is false. Therefore, "zoo" AND "" (null string) is logically false since the second string is null. Remember that when comparing a Text type to a non-string type, the latter is promoted to a Text type. This means that "zoo" AND "0" is true since the Real 0 is promoted to the string "0" and, since both strings are non-null, the AND expression is true, returning 1.

See Also

If A ~= B, If A == B, If A != B, If A < B, If A > B, If A <= B, If A >= B, and If/Then/Else.

Relational and Triadic Operator (under Math Syntax).


Confirm (OK)

See OK.


Constant

A menu item.

Supported On

All HP VEE Platforms

Use

Use Constant to access the following input constants:

Text

Integer

Real

Coord

Complex

PComplex

Date/Time

Record

Location

Data ==> Constant

Notes

All Constant objects, except Text, support the use of arbitrary formulas in the input box. (Global variables are allowed only if they have been set in a previous execution of the program.  Use View Globals to see what global variables exist.) The formula is parsed and evaluated immediately after typed and entered into the edit field.  The resulting Scalar number is used as the value for the Constant.  Constants do not support input variables like the Formula object does, therefore you cannot use input variable names in the formulas.  The typed in formula must evaluate to a Scalar value of the proper type or of a type that can be converted to the Constant you are using.

The syntax supported is the same as in the Formula object, but with some exceptions.  You cannot use array building syntax ([, ]) operators to construct an array, since they would return a non-Scalar and the return value must be Scalar.  Also, you cannot use input name variables in Constant objects.

In general, the use of any of the dyadic operators, parentheses for nesting, function calls, and the predefined numeric constant PI (3.1416...) is allowed.

Examples

When you type (2, @PI/2) into a PComplex object, it is evaluated and returns (2, @90) (if Trig Mode is set to Degrees).

When you type 14 + exp10(3) into a Real object, it is evaluated and returns 1014.

When you type (1, 2) into a Real object, an error is returned because HP VEE does not allow the conversion from Complex to Real.

See Also

Complex, Coord, Date/Time, Integer, PComplex, Real, Record Constant, Selection Control, Text, and Toggle Control.


Continuous

A menu item.

Supported On

All HP VEE Platforms

Use

Use Continuous to access the following objects:

Integer Slider

Real Slider

Integer Knob

Real Knob

Location

Data ==> Continuous ==>

See Also

Integer Knob, Integer Slider, Real Knob, and Real Slider.


Control Input (Object Menu)

Adds an asynchronous control input terminal to the object.

Supported On

All HP VEE Platforms

Use

Use Control Input to add asynchronous inputs, such as Reset or Clear, to objects.

After selecting Control Input, choose the control to add from a dialog box. The terminal for a control input is a different color than for a data input.

Location

On each object menu ==> Add Terminal ==> Control Input

Notes

Control inputs are not available on all objects.

Activation of a control input pin does not cause the object to operate, it only forces that particular action to happen (for example, Clear).

Often the actions performed by a control input may also be done from a selection on the object menu or by a button on the open view.

See Also

Add Terminal, Data Output (Object Menu), Input (Object Menu), Object Menu, and XEQ Input (Object Menu).


Coord

An object that outputs a constant Coord Scalar or Array 1D.

Supported On

All HP VEE Platforms

Use

Use Coord to set a Coord constant or to get user input. Click on the entry field to enter a value.

Location

Data ==> Constant ==> Coord

Properties

General tab:

Configuration group:

Scalar | 1D Array - Sets the initial data shape of the value(s) to be output with this object.

Size: -  When 1D Array is selected, Size sets the length of the array.

Size Fixed - When the check box is selected, the array cannot have lines added or deleted. This selection is only available if 1D Array is selected.

Execution group: (disabled when Configuration is 1D Array)

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is (0, 0).

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Number tab:

Global Format - Use the default format. Default is on.

Real: - If Global Format is off, specify the number format for real numbers to be displayed on this object. The choices are Fixed (e.g. 98.6000), Scientific (e.g. 9.8600E+01), Engineering (e.g. 98.6000E0), Standard (e.g. 98.6), and Time Stamp (e.g. Sat 01/Jan/1994 17:01:38). Default is Standard.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin.

Control inputs may be added for Default Value and Reset. The Default Value input allows you to programmatically change the current value(s).  This input requires a Coord value, either a Scalar or an Array 1D.  The Constant is reconfigured to match the shape of the incoming data.  The Reset input allows you to programmatically set the value(s) to zero.  If the Constant is configured as an Array 1D, all values are set to zero.  The actual data on the Reset input is ignored.

Note that the Initial Value field is always a scalar, even if Coord is configured to be an array.

Coords can contain more than two fields. For example, a Coord with three fields is (x, y, z).

The mathematic operations on Coords operate on the dependent variable only, that is, they operate on the y value of the (x, y) pair.

Example

Type in 2, 5 + exp10(2) to generate the Coord constant (2,105).

The Coord Array 1D can be used to define bounding envelopes on waveforms and as input to Comparators for waveforms. Use an Array 1D of Coords to define the limiting points on the bounding waveform. The limiting points are the endpoints of line segments that define the limiting waveform shape. Then send this array through the Build Arb Waveform box to create a limiting waveform. The new bounding waveform can be used in the Comparator box as one of the inputs to generate the points that fall outside the bounding waveform.

You can use the bounding waveform in the clipUpper or clipLower function to clip the waveform to the bounding limits.

See Also

Complex, Constant, Date/Time, Integer, PComplex, Real, Selection Control, Text, and Toggle Control.


Copy

Places a copy of the selected objects in the Paste buffer.

Supported On

All HP VEE Platforms

Use

Use Copy and then Paste to make multiple copies of a set of selected objects.

Location

Edit ==> Copy

Copy is also located on the toolbar.

Notes

Copy is only available after objects are selected.

To copy a single object, use the Clone selection from its object menu.

Each Copy overwrites the previous content of the Paste buffer.

Copy is different from Clone in that Clone gives you a duplicate set of objects immediately and Copy only places the objects in the Paste buffer for later use.

See Also

Clone, Cut, Object Menu, Paste, Replace, and Select Objects.


Counter

An object that displays and outputs the number of times its data input pin has been activated.

Supported On

All HP VEE Platforms

Use

Use Counter to keep a running count. Counter keeps a running count of the number of times an input has been activated by a previous object's output. The Counter output is a Real scalar.

Location

Device ==> Counter

Object Menu

Clear - Clears the contents of the Counter.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the Counter is cleared at PreRun time.  Default is on.

Clear At Activate - When the check box is selected, the Counter is cleared at Activate time.  Default is on.

Notes

The data input for Counter does not require any particular type data and even counts an input with a nil value. It can also be cleared by activating the input Clear control pin.

The value of the Counter, a Real scalar, is available at the Counter output.

See Also

Accumulator.


Create UserObject

Puts selected objects into a UserObject.

Supported On

All HP VEE Platforms

Use

Use Create UserObject to group objects together logically and physically. Select the objects to be included and then select Create UserObject.  The UserObject created contains the selected objects.

A UserObject operates just like any other object; no objects operate inside a UserObject until all data inputs to the UserObject are activated unless the optional XEQ pin is activated. All operations inside the UserObject must be complete before the data output is activated.

The right-most button on the title bar of the open view is a maximize button that increases the size of the UserObject to the size of the HP VEE work area.

If the objects in the UserObject were connected to other objects before they were in the UserObject, terminals are automatically created on the UserObject to maintain the connections.  When objects inside the UserObject are connected to objects outside the UserObject, input and output pins are also automatically created.

Location

Edit ==> Create UserObject

Notes

If no objects are selected, Create UserObject is not available. To create an empty UserObject, select UserObject from the Device menu. You can place objects inside the UserObject after it has been created by moving them inside the UserObject boundaries.

It is convenient to save UserObjects of common functions (using Save Object) to create a library of functions to be used again.

When you Step through a UserObject the entire context runs when UserObject is an icon, has Show Panel on Execute selected, or the UserObject panel view is displayed.

See Also

Add To Panel, Edit Default Preferences, Secure, Select Objects, Step, Unpack (Object Menu), UserFunction, and UserObject.


Cut

Deletes the selected objects and places them in the Paste buffer.

Supported On

All HP VEE Platforms

Use

Use Cut to delete a set of selected objects or to remove the objects from one place on the work area and put multiple copies of them in another place on the work area (using Paste).

Location

Edit ==> Cut

Cut is also located on the toolbar.

Notes

Cut is only available after objects are selected.

Cut is not available when a program is running.

To delete a single object, use the Cut feature from its object menu.

Each Cut overwrites the previous content of the Paste buffer.

If you accidentally Cut objects, they can be recovered by using Paste.

To make multiple copies without deleting objects, use Clone or Copy.

See Also

Clone, Cut (Object Menu), Copy, Paste, Replace, and Select Objects.


Cut (Object Menu)

Deletes the object and places it in the Paste buffer.

Supported On

All HP VEE Platforms

Use

Use Cut to remove this object from your work area.

Location

On the object menu ==> Cut

Notes

Cut is available from all objects.

Each Cut overwrites the previous content of the Paste buffer.

Cut (Object Menu) is not available when a program is running.

If you accidentally Cut an object, it can be recovered by using Paste.

If you want to delete multiple objects, use the Cut selection from the Edit menu.

Short Cuts

To delete the object under a pointer, press CTRL+D.

See Also

Clone, Clone (Object Menu), Copy, Cut, Paste, Replace, and Select Objects.


Cyclic Button

See Selection Control.


Data Input (Object Menu)

Adds a data input terminal to the object.

Supported On

All HP VEE Platforms

Use

Use Data Input to increase the number of data input terminals the object uses. On some objects additional data inputs are automatically named A, B, C, and so on. You can change the names of most terminals to names that are more meaningful to you.

Although you cannot change the data type or shape of most input terminals, you can change these constraints on some objects, such as If/Then, Formula, Shift Register, and objects under the I/O menu.

NOTE
You should not change the data type or shape of an input terminal; if a constraint is changed from Any, the input data must be converted to the terminal constraint before the object processes the data. Conversions are time-consuming.  If the conversion is unsuccessful, the object returns an error.

Location

On each object menu ==> Add Terminal ==> Data Input

Notes

Data Input is only available from objects that permit additional data inputs.

Short Cuts

You can quickly add a data input terminal by placing the cursor over the input terminal display area and then pressing CTRL+A. Each press of CTRL+A inserts another data input terminal at the cursor location. The Add Terminal ==> Data Input adds the terminal at the end. CTRL+D deletes terminals covered by the cursor.

See Also

Add Terminal, Data Output (Object Menu), Control Input (Object Menu), Conditional, Input (Object Menu), Object Menu, Properties (Object), and XEQ Input (Object Menu).


Data Output (Object Menu)

Adds a data output terminal to the object.

Supported On

All HP VEE Platforms

Use

Use Data Output to increase the number of data output terminals. On some objects, additional data outputs are automatically named X, Y, Z, W, V and so on; you can change these data output names to names that are more meaningful to you.

The output terminal container information (data type and shape) is not displayed in the terminal information dialog box until after the program is run.

Location

On each object menu ==> Add Terminal ==> Data Output

Notes

Data Output is only available from objects that permit additional data outputs.

Short Cuts

You can quickly add a data output terminal by placing the cursor over the output terminal display area and then pressing CTRL+A. Each press of CTRL+A inserts another data output terminal at the cursor location. The Add Terminal ==> Data Output adds the terminal at the end. CTRL+D deletes terminals covered by the cursor.

See Also

Add Terminal, Data Input (Object Menu), Delete Output (Object Menu), Error Output (Object Menu), Other Instruments, and Object Menu.


Date/Time

An object that outputs a constant date and time value. Date/Time takes an input date and time and converts it to the number of seconds between the input and the beginning of the Epoch (defined as beginning at 0000 hours UTC January 1, 0001 AD).

Supported On

All HP VEE Platforms

Use

Use Date/Time to display the time and date at the moment an object or data is created.

Date/Time can be used to calculate elapsed time between a past and current event by comparing the two mathematically.

To change a value such as the day, date, or time, type the value. For example, typing Fri changes Thu 27/Oct/1994 15:43:33 to Fri 28/Oct/1994 15:43:33. If you don't specify a value, the current day, date, or time is displayed. If you change just one of these the other time elements will stay the same.

Location

Data ==> Constant ==> Date/Time

Example

You can use Date/Time to determine the length of time that has passed between the moment a specific piece of experimental data was produced and another moment in time, either past or present. Use a Date/Time box to enter the new, arbitrary date then take the difference between the original, experimental data and the new arbitrary date.

To determine the length of time it takes for all or part of your program to execute, use Timer or now().

Properties

General tab:

Configuration group:

Scalar | 1D Array - Sets the initial data shape of the value(s) to be output with this object.

Size: -  When 1D Array is selected, Size sets the length of the array.

Size Fixed - When the check box is selected, the array cannot have lines added or deleted. This selection is only available if 1D Array is selected.

Password Masking - When the check box is selected, the input text is echoed as asterisks (*). This feature is useful when the operator is entering sensitive date/time data. The string that is output on the Date/Time output pin is not masked.  Masking is disabled when Configuration is 1D Array. Default is off.

Execution group: (disabled when Configuration is 1D Array)

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is  Sat 01/Jan/1 17:00:00 MST.

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin.

Control inputs may be added for Default Value and Reset. The Default Value input allows you to programmatically change the current value(s). The Constant is reconfigured to match the shape of the incoming data.  The Reset input allows you to programmatically set the value(s) to zero.  If the Constant is configured as an Array 1D, all values are set to zero.  The actual data on the Reset input is ignored.

Note that the Initial Value field is always a scalar, even if Date/Time is configured to be an array.

The Default Value control input should be a valid Date/Time string as given by the parse rules for date/time constants. These are the same rules as those for Direct I/O.

You can display Date/Time output in AlphaNumeric or Logging AlphaNumeric by using the Time Stamp number format available in those objects' Properties dialog boxes.

You can write the Date/Time output to various locations such as a string, file, or printer by using objects such as To String, To File, or To Printer (I/O ==> To ==>). In these objects, use the Time Stamp format in a WRITE TEXT transaction.

For MS Windows, you can change the time zone that appears in this object by using the set command in your AUTOEXEC.BAT file for Windows 95 or User Environment Variables (Main / Control Panel / System) for Windows NT.

As an example, for Mountain Time, enter the command set TZ=MST7MDT and reboot your PC.

See Also

Timer.


Delay

An object that waits a specified period of time before activating its Done data output terminal.

Supported On

All HP VEE Platforms

Use

Use Delay to delay execution of a thread segment for a specified number of seconds.

Location

Flow ==> Delay

Example

Use Delay as a time out in a dialog box created with a UserObject.

Open View Parameters

Enter the number of seconds delay in the edit field. If you add a data input pin, the value supplied to that pin determines the delay period in seconds.

Notes

The delay value is specified in seconds and has a resolution dependent on the system clock and the nature of the program in which the Delay is operating. You can set the value for the Delay through a data input.

The delay interval is measured from the time when the sequence input pin is activated. After the specified interval, the Done data output terminal is activated. Note that Delay is "asleep" while it is waiting, thereby allowing other objects the opportunity to operate.

In most cases, either the Done data output terminal or the sequence out pin may be used to continue propagation after the Delay time expires. However, when the Delay object is part of a thread containing other objects in executing in parallel, the sequence out pin may not fire until a much longer time has elapsed. This is because sequence out pins are fired only when there are no other objects which may execute. To ensure that the delayed thread will continue at the end of the Delay period, use the Done data output terminal, which always fires at the end of the Delay time period.

See Also

Device Event, Interface Event, OK, and On Cycle.


Delete (Object Menu)

Removes this object from the panel view.

Supported On

 All HP VEE Platforms

Use

Use Delete to remove the object from the panel view. Note that the object remains on the detail view.

Location

On the object menu ==> Delete

Notes

Delete is only available from objects on the panel view.

Short Cuts

You can quickly delete a panel object by placing the cursor over the object and then pressing CTRL+D.

See Also

Cut, Object Menu,  and Properties (Object).


Delete Global

An object that deletes the value of a global variable that has already been created in the execution of the current program.

Supported On

All HP VEE Platforms

Use

Use the Delete Global object to delete a global variable by name or to delete all global variables currently set in the program. The global variable must have been created previously by a Set Global object within the program.

Location

Data ==> Global ==> Delete Global

Open View Parameters

The open view displays a field to choose between deleting one global variable by name, or deleting all globals.

The open view also displays a field for the name of the global variable. The name is not case sensitive (either lower-case or upper-case letters may be used). Thus globalA is the same variable as GLOBALa. The name field may be added as a control input.

Notes

The Delete Global object will error if the global variable referenced by name does not exist. To avoid getting this error, add an error output pin to the Delete Global object.

When the Delete Global object has executed, the global variable referenced by name (or all globals) are deleted, just as if they never were created.  Subsequent use of the global variable in Get Global objects will error since the global variable does not exist.

Deleting global variables when they're not needed anymore with the Delete Global object saves memory and helps you better manage your variables.

In Edit Default Preferences, if Delete Globals at PreRun is on (the default), all global variables are deleted before your program executes.  If Delete Globals at PreRun is turned off, global variables will not be deleted, and you must program carefully to avoid propagating invalid data.

For further information, refer to "Using Global Variables in UserObjects" in HP VEE Advanced Programming Techniques, and to "Using Global Variables in Expressions" in chapter 3 of the reference manual.

See Also

Edit Default Preferences, Get Global, Set Global, and View Globals.


Delete Library

An object that deletes (unloads) a library of UserFunctions, Compiled Function definitions, or Remote Function definitions from a running program.

Supported On

All HP VEE Platforms

Use

Use Delete Library to delete a library from your HP VEE program. The action taken depends on the type of library:

UserFunction - Delete Library deletes from the HP VEE program the UserFunctions previously loaded with an Import Library object. This deletes only the UserFunctions contained in the library named in the Library Name field.

Compiled Function - Delete Library detaches a shared library from the HP VEE process. However, the file containing the shared library is actually detached only when the last library pointing to that file is deleted. That is, if you have several different libraries pointing to the same shared library file (with either the same or a different definition file), the shared library file is detached from the HP VEE process only when there are no more libraries using the attached code. The operating system will not allow you to move or delete a shared library file once it is attached to a process. You must use the Delete Lib option in the Import Library object to detach the code if you want to create a new shared library file.

Remote Function - Delete Library shuts down the remote HP VEE process and removes the Remote Function definitions from the local HP VEE process.  Delete Library actually shuts down the remote process when the last library that references the remote process is deleted on the local host.

Location

Device ==> Function ==> Delete Library

Open View Parameters

Library Name - Enter the name of the library that you want to delete.

Notes

Delete Library is generally used for advanced operations where you want to dynamically load, and then delete, library objects from a running HP VEE process.  This greatly reduces the memory requirements of the HP VEE process.

See Also

Call Function, Edit UserFunction, Import Library, UserFunction, and UserObject.


Delete Line

Removes the line between two pins.

Supported On

All HP VEE Platforms

Use

Use Delete Line to eliminate wrong connections or to modify connections in your program. Select Delete Line, then click on or near the line to be deleted.

To exit this mode without deleting a line, click on an empty space on the work area, away from any lines.

Location

Edit ==> Delete Line

Delete Line is also located on the toolbar.

Notes

To view the endpoints of a line (without deleting it), select Delete Line and hold down the mouse button when the pointer is over the line.  Move the pointer away from the line before releasing the button.

Delete Line is not available when the program is running.

Short Cuts

While holding down CTRL+Shift place the pointer over line(s) and click the left mouse button to delete lines.

You can delete a series of lines this way, one at a time.

See Also

Cut and Line Probe.


Delete Output (Object Menu)

Deletes the output pin from the object.

Supported On

All HP VEE Platforms

Use

Use Output to delete a data or error output pin that was added to the object.

After selecting Output, select the pin to be deleted from the dialog box displayed.  The pin and any connections to it are deleted. If two pins have identical names, HP VEE deletes the pin based on the order that the pins appear in the list.

Location

On each object menu ==> Delete Terminal ==> Output

Notes

Output is available only if the object has pins that may be deleted.  Some pins cannot be deleted.

Short Cuts

You can quickly delete an output terminal by placing the cursor over the output terminal view and then pressing CTRL+D.

See Also

Add Terminal, Input (Object Menu), and Object Menu.


Delete Terminal

A menu item.

Supported On

All HP VEE Platforms

Use

Use Delete Terminal to access the following features which delete terminals:

Delete Input

Delete Output

Location

On each object menu ==> Delete Terminal ==>

Short Cuts

You can quickly delete a data terminal by placing the cursor over the terminal view area and then pressing CTRL+D.

See Also

Add Terminal, Input (Object Menu), Delete Output (Object Menu), Line Probe, and Properties (Object),


DeMultiplexer

An object that directs the input value to a selected output pin.

Supported On

All HP VEE Platforms

Use

Use DeMultiplexer to direct the input data to a particular output pin. The output that is activated depends on the value of the address input.

Location

Device ==> DeMultiplexer

Notes

DeMultiplexer has two inputs, one for data output and one for the address value (which determines the output to be propagated).  Only one output is propagated each time the object operates. If the value of the address input is not within the range of the number of outputs [0==>(N-1)], an error is returned. Additional outputs can be added to the object. Outputs can be deleted, but then the following outputs (if any) are renumbered in order.

See Also

If/Then/Else and JCT.


Device Configuration

A dialog box that allows you to configure instruments.

Supported On

All HP VEE Platforms

Use

Use the Device Configuration dialog box to add a new instrument configuration or to edit an existing configuration.  You can use Device Configuration to configure either a direct I/O configuration, or an instrument driver configuration.

Location

I/O ==> Other Instruments ... (then Add Instrument or Edit Instrument)

Dialog Information

The Device Configuration dialog box provides the following fields and buttons:

NOTE
Use the Tab key to tab from field to field, or click on the desired field with the mouse.  Do not press Enter (or Return) until you are finished with the dialog box.  Pressing Enter (or Return) will cause the dialog box to close -- it is equivalent to pressing OK.

Name - Enter a unique name to identify this particular instrument configuration.  Note that more than one configuration, each identified by a unique name, can control a single instrument, but this technique is not recommended. You cannot use the same name for two different instruments.

Interface - Specifies the type of hardware interface used to communicate with the instrument (the default is HP-IB).  Click on HP-IB to display a list of available interface types (HP-IB, Serial, and so forth).  If you are using a GPIB interface, select HP-IB  for this field.

Address (eg 714) - Specifies the I/O address of your instrument.  The default is 0.  (When you enter a non-zero address, Live Mode changes to ON.) For more information about setting addresses, refer to "Using Instruments" in your <book|Advance Programming Techniques| manual.

Gateway - (HP-UX on S700 only) Specifies the LAN gateway's host name when an HP VEE process must access instruments connected to a remote computer. For more information about advanced I/O control, refer to "Using Instruments" in your Advance Programming Techniques manual.

Device Type - HP VEE does not use this field.  You can enter an optional device type description in this field for your convenience.

Timeout (sec) - Specifies how many seconds HP VEE will wait for an instrument to respond to a request for communication before generating an error.  The default is 5 seconds.

Byte Ordering - Specifies the order the device uses for reading and writing binary data.  HP VEE will determine if byte swapping is necessary.  Click on this field to choose between MSB (send Most-Significant Byte first) and LSB (send Least-Significant Byte first). All IEEE 488.2-compliant devices use the MSB order.  Refer to your instrument manual for more specific information.

Live Mode - Specifies whether Live Mode is ON or OFF. If Live Mode is off, you can run your program even without your instrument being connected.  However, to actually communicate with the instrument, Live Mode must be ON.  Live Mode remains OFF until you enter a non-zero address in the Address field. Then, Live Mode switches to ON, and you can toggle the field ON or OFF by clicking on it.

Config buttons - To complete your device configuration, you must click on one of the following buttons:

Direct I/O Config ... - Click on this button if you plan to use a Direct I/O object to control your instrument.  The Direct I/O Configuration dialog box will ask you for additional information, depending on the interface you are using.  Refer to Chapter 3, "Using Instruments," in HP VEE Advanced Programming Techniques for further information.

Instrument Driver Config ... - Click on this button if you plan to use an Instrument Panel or Component Driver to control your instrument.  The Instrument Driver Configuration dialog box will ask you for additional information, depending on the interface you are using.  Refer to Chapter 3, "Using Instruments," in HP VEE Advanced Programming Techniques for further information.

Address space buttons (VXI only). - If you are using Direct I/O to control a VXI device, there are additional options. (Refer to Chapter 3, "Using Instruments," in HP VEE Advanced Programming Techniques for further information.)

A16 Space Config - Click on this button if you want to access the VXI device's registers.  Complete the resulting dialog box.

A24/32 Space Config - Click on this button if you want to access the VXI device's extended memory.  Complete the resulting dialog box.

OK button. - Once you have completed your configuration, press OK.

Notes

The various configuration dialog boxes request information that is too extensive to list here.  Refer to Chapter 3, "Using Instruments," in HP VEE Advanced Programming Techniques for a complete discussion of this information.

See Also

Advanced I/O, Bus I/O Monitor, Component Driver, Direct I/O, Other Instruments, Instrument Panel, and VXIplug&play Instrument Configuration

HP VEE Advanced Programming Techniques, Chapter 3, "Using Instruments."


Device Event

An object that captures events generated by HP-IB or VXI devices.

Supported On

All HP VEE Platforms

Use

The Device Event object can be configured to detect various device events. Depending upon configuration, the object may wait for the event, giving up execution to other parallel threads, or it may simply return a boolean (0 or 1) or other indicator of the state of the device.

If the Device Event object has been configured to wait for the event, then upon the event the object will execute. Any thread hosted by this object will have priority over any other parallel threads, and will execute to completion. If the Device Event object has been configured to simply return an indicator of device state, the thread containing it will have normal priority, and will execute in parallel with any other threads.

Location

I/0 ==> Advanced I/O ==> Device Event

Open View Parameters

Device - The currently selected device is displayed in the Device field. Click on this field to display a list of the currently configured HP-IB and VXI devices.

Event - Allows selection of specific events. Click on this field to display the choices:

Spoll - Returns the status byte of HP-IB devices and message-based VXI devices. If an HP-IB device has been selected, the only possible selection is Spoll. The returned status byte is used with the Mask value.

SRQ - For VXI, an SRQ is generated from a message-based device when the device sends either a VME interrupt or a signal register write that is a request-true event. When this asynchronous event occurs, the device's status byte is returned, thus causing the device to generate a request-false event. The returned status byte is used with the Mask value.

Signal Interrupt - This asynchronous event is generated from either message-based or register-based VXI devices. The event occurs when the device sends either a VME interrupt or a signal register write that is a device-defined event or an undefined event. The returned 32-bit value is the value placed in the signal write register, or the value placed on the VXI Bus when the device does an interrupt acknowledge (IACK). This value is used with the Mask value.

Mask - You can enter a value to be used as a bit mask (default = 0). The Mask value is used in a logical AND operation with the value returned by the device when the specified event occurs.

Action - Determines the execution behavior of the Device Event object upon detection of the specified event, in conjunction with the specified bit mask.

No Wait - Execute immediately, outputting the current state of the configured event, as specified by a 32-bit integer, to the status pin. This value is either the boolean value FALSE (0) or a device-dependent bit pattern. If the event choice is Spoll, the low byte of the returned integer is the status byte of the device. For the two asynchronous VXI events, a FALSE (0) is returned if the event has not occurred. If the event has occurred, the device-dependent bit pattern is returned.

Any Set - Wait for the event to occur and use the returned value in a logical AND operation with the Mask value. If any bit is set in the resulting bit pattern, then execute by placing the original, unmasked value on the status output pin.

All Clear - Wait for the event to occur and use the returned value in a logical AND operation with the Mask value. If no bit is set, then execute by placing the original, unmasked value on the status output pin.

Notes

The execution behavior of the Device Event object can either be asynchronous or synchronous as determined by the choice of the Action parameter. No Wait specifies a synchronous, polling behavior. The object executes immediately and any attached thread will have the same priority as all other threads currently executing. Choosing Any Set or All Clear causes the Device Event object to wait until both the event has occurred, and the logical AND of the Mask value and the value returned by the device satisfies the "any bit set" or "no bit set" criteria. When both of these conditions have been satisfied, the object executes. Any thread attached will have a higher priority, and will execute to completion, blocking all other concurrently executing threads.

Strictly speaking, the Spoll event is not a true asynchronous event as are the VXI SRQ and Signal Interrupt. By using a Mask value and the appropriate action, Any Set or All Clear, the status byte can be evaluated continuously with the Mask value until the correct bits are modified by the device. The object will wait until this occurs, allowing concurrent threads to continue execution. For the Spoll event, choosing the No Wait Action is identical to specifying the All Clear Action with a mask value of zero -- the Device Event object executes immediately.

For the true asynchronous events SRQ and Signal Interrupt, the device waits until the event occurs, allowing concurrent threads to continue executing. Once the interrupt occurs, the resulting status byte, signal write register contents, or IACK value will be logically ANDed with the mask value. The object executes only if the resulting bit pattern satisfies the Any Set or All Clear criteria. If the All Clear action is specified with a mask value of zero, the Device Event object will execute when the interrupt occurs.

A control pin is available as an input to programmatically change the device timeout period.

See Also

Interface Event, Interface Operations.


Dialog Box

A menu item.

Supported On

All HP VEE Platforms

Use

Use Dialog Box to access the following prepared dialog box objects:

Text Input

Integer Input

Real Input

Message Box

List Box

File Name Selection

Location

Data ==> Dialog Box ==>

See Also

File Name Selection, Integer Input, List Box, Message Box, Real Input, Text Input, and UserObject.


Direct I/O

An object that writes data to and reads data from an instrument using transaction statements.

Supported On

All HP VEE Platforms

Use

Use Direct I/O to output and input a variety of encodings and formats to instruments.

Location

I/O ==> Other Instruments ==>

Object Menu

Show Config - Displays the instrument configuration.

Upload State - Uploads the current instrument state to a learn string, and associates this state with this particular instance of the Direct I/O object. Supports HP-IB and message-based VXI devices that support learn strings.

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Open View Parameters

Direct I/O Actions:

READ - Reads data from an instrument using the specified encoding and format.

WRITE - Writes data to an instrument using the specified encoding and format.

EXECUTE - For an HP-IB instrument, sends either a Selected Device Clear, Go To Local, Remote, or Group Execute Trigger command. For a serial instrument, sends Break or Reset. For a GPIO instrument, sends Reset. For a VXI message-based instrument, sends either a Selected Device Clear, Go To Local, Remote, or Trigger command.

WAIT - Waits the specific number of seconds before executing the next transaction. For an HP-IB instrument or a VXI message-based instrument, wait until the bitwise AND of the serial poll response with the mask is either zero (ALL CLEAR) or non-zero (ANY SET).

For GPIO instruments only, the READ action allows IOSTATUS and the WRITE action allows IOCTL.

For VXI instruments only, the READ and WRITE actions allow REGISTER: and MEMORY:.  The WAIT action also supports the ability to wait until the value in a memory or register offset AND a mask value satisfy the ANYSET, ALL CLEAR, or EQUAL.

Direct I/O Encodings:

TEXT - Writes all data types in human-readable form. HP VEE numeric data is automatically converted to text as it is written.

BINARY - Writes all data types in an machine-specific binary format.

BINBLOCK - Writes all HP VEE data types in binary files with IEEE 488.2 definite length block headers.

When using BINBLOCK with an instrument that outputs a terminating line-feed, select End byte (LF) so that HP VEE will consume the terminating line-feed. If the instrument does not output a terminating line-feed, select No END byte.

CONTAINER - Writes all data types in a platform-independent text format.

Short Cuts

You can quickly add a data terminal by placing the cursor over the input or output terminal display area and then pressing CTRL+A. Each press of CTRL+A adds an additional data terminal.

You can quickly delete a data terminal by placing the cursor over the terminal view area and then pressing CTRL+D.

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

Control pins are available as inputs to programmatically change the device address and timeout period.

See Also

Advanced I/O, Component Driver, Other Instruments, Instrument Panel, and To/From VXIplug&play.

HP VEE Advanced Programming Techniques, chapters 3 and 6.


Do

An object that creates a branch point to control the flow of execution of a thread.

Supported On

All HP VEE Platforms

Use

Use Do to create a branch point; the object connected to the data output pin is activated before the object connected to the sequence output pin.  Note that this forces the order in which objects operate.

Location

Flow ==> Do

See Also

Break and Start.


Drop-Down List

See Selection Control.


Edit Default Preferences

A menu choice that gives you a dialog to set your HP VEE default preferences.

Supported On

All HP VEE Platforms

Use

Use Edit Default Preferences to set work area options. Saved options are used when you start up HP VEE and when you select New. Some of these options are also saved in your program, so each program may have a different set of defaults.

Location

File ==> Edit Default Preferences

Edit Default Preferences is also located on the toolbar.

Dialog Information

General tab:

Environment group

Auto Line Routing- When the Auto Line Routing check box is selected, the lines connected to an object are automatically rerouted when that object is moved or sized. HP VEE draws only horizontal and vertical lines with lines routed around other objects. It may take several moments to redraw the lines for a complicated program.  When the Auto Line Routing check box is not selected, connecting lines are drawn straight from pin to pin (unless tacked). Choose Edit ==> Clean Up Lines to reroute lines around objects.

Delete Globals at PreRun - When the Delete Globals at PreRun check box is selected, the values stored in all global variables are deleted before the program runs each time. Because Get Global objects cannot execute until the global variables they call are set with Set Global objects, an error will be returned if a required global variable has not been set.  When the Delete Globals at PreRun check box is not selected, the values stored in global variables will not be deleted at PreRun, and the program runs using global data from a previous run. However, you need to be careful, this data may be invalid (not correct for the execution of the program this time), no error will be reported, and you may encounter unexpected results.

Save Default Colors/Fonts with Program - When the check box is selected, all the default colors and fonts selected in this Preferences dialog box are saved in the program file. This ensures that whoever opens your program will also get all of your default colors and fonts.  If the check box is not selected, only the colors and fonts explicitly set in your program are saved in your program file. This allows others using your program to retain their own default colors and fonts. Default is off.

Debug group

Data Flow Rate: - Sets the rate at which the Data Flow markers move, indicating data flow through the program.  Select a rate from 1 to 10 (where 10 is the fastest). The default rate is 6.

Trig Mode group:

Degrees | Radians | Gradians - specifies the default for trigonometric units used throughout this program. If you select Radians, your trigonometric calculations will execute the fastest.

Colors tab:

Screen Element - Allows you to select the screen element (a graphical part of HP VEE) for which you'll set the default color. You can change the color of some of these elements locally using Edit Properties.

Color Value - Allows you to select the color of the screen element from a palette.

Fonts tab:

Screen Element - Allows you to select the screen element (a graphical part of HP VEE) for which you'll set the default font. You can change the font of some of these elements locally using Edit Properties.

Font Value - Allows you to select the font of the screen element from the list of available fonts on your system.

Number tab:

Integer: - Specifies the number format for integer numbers to be displayed on this object. The choices are Decimal (e.g. 42), Octal (e.g. #Q52), Hexadecimal (e.g. #H2a), and Binary (e.g. #B00101010). Default is Decimal.

Real: - Specifies the number format for real numbers to be displayed on this object. The choices are Fixed (e.g. 98.6000), Scientific (e.g. 9.8600E+01), Engineering (e.g. 98.6000E0), and Standard (e.g. 98.6).  Default is Standard.

Printing tab:

Screen Element - Allows you to select the screen element (a graphical part of HP VEE) for which you'll set the shade of gray to use when printing.

B & W Printer Darkness - Allows you to select the shade of gray to use for each screen element, when it prints on non-color printers. The defaults are usually fine for most printers.

Print Magnification: - Specifies the magnification used when printing a HP VEE program or part of a program. Use a lower number for a smaller image on the printout.  To make a printout of a maximized screen fit on one page, the default printing magnification is set to 75% on MS Windows and 67% on UNIX.  On HP-UX, printing magnification is rounded down to the nearest 1/3 (e.g. 33.3%, 66.6%, 100%, 133.3%). This rounding happens internally, so the number you type in is still displayed.

Printer Setup... - (UNIX only) Sets how and where you get your HP VEE printouts.

Graphics Printer - Allows you to select from the set of printers configured on your system for graphics. You may also use the default printer. Click on Default for a selection of available printers. If you click on Graphics Printer, the field toggles to Graphics Directory (below).

Graphics Directory - Allows you to specify a destination directory for the files that output is printed to. The output files are named "page1", "page2", and so forth.

Printer Type - Identifies the particular type of printer being used for graphics printing. When Graphics Directory is selected, this field becomes File Type (below).

File Type - Selects the type of output file that is to be written.

Darkness - Sets printout darkness to Light, Medium, or Dark.

Landscape - Sets printout orientation to landscape mode or portrait mode.  Landscape mode is on when x appears in the box.  Click on Landscape to clear the x for portrait mode.

The following fields are used only for text printing using the To Printer object.

Text Printer - Allows you to select from the set of printers configured on your system for text (To Printer objects). You may also use the default printer.

Wrap Column - The number of characters that can be entered on a single line before the column wraps to the next line. Default is 80 characters.

No Header - Enter your header title here. You can also select Header Title by clicking on the No Header bar. If a header is specified, it is printed at the top of each page with the date and page number.

Plotter Setup... -  (UNIX only) Sets how and where HP VEE plots two-dimensional graphical displays.

Plotter Device - Allows you to select from the set of plotters/printers configured on your system.  You may also use the default printer.

Plot to File - Allows you to specify the file or directory on the file system where the plot will be written, rather than being sent directly to a plotter. If you specify a file, each plot will erase the old contents of the file (if any) and write the plotter HPGL commands to the file. If you specify an existing directory, the first plot made during any session of HP VEE will generate a file named "plot1" in that directory.  Additional plots to a directory during the same HP VEE session will be named "plot2", "plot3", etc.  Any of the resulting plot files can be sent to the plotter using a standard lp command such as:  lp -d <plotter> /tmp/veeplot/plot3

Plotter Type - Identifies the plotter to be used as compatible with either the HP-GL or the HP-GL/2 command set. Use HP-GL/2 for plotters that can also be used as printers, such as the LaserJet III or the PaintJet XL with the HP-GL/2 Cartridge.

Number of Pens - Identifies the number of physical pens in the plotter.  If 6 pens are specified, such as for an HP 7475 plotter, and a display trace attempts to use pen 9, the pen numbers will "wrap" and pen 3 will be used.

 Label Using - This option is only available when you are using a multiple-byte character set for the labels in your X-Y displays (e.g., the X Windows LANG environment variable is set to Japanese). See "Using Two-Byte Character Sets" in appendix A of HP VEE Advanced Programming Techniques for more information. When present, this option gives you two choices:  - Stroke Fonts - With this selection, text and numeric labels are plotted using the specified stroke font. Since most plotters do not directly support Kanji, use this option for Kanji support.
 - Plotter ROM - With this selection, text and numeric labels are output as HPGL and are to be converted to strokes by the plotter. This won't work for fonts not directly supported by the plotter. However, this option may be desirable if the HPGL commands are to be used by another software package.

Paper Size - Allows you to select the size of the paper in the plotter.  Choosing the size Special will allow you to edit the P1 and P2 fields to use a non-standard paper size, or to plot on only a portion of the page.  The plotted image will always be scaled to the maximum size that can fit within the area defined by P1 and P2. However, the aspect ratio of the original display object is maintained, so the plotted image may fill the defined area in only one direction.
 - P1 (left, bottom) - Specifies the offset from the left side and bottom of the plotter's hard clip limits to the bottom left corner of the plotting area to be used.
 - P2 (right, top) - Specifies the offset from the right side and top of the plotter's hard clip limits to the top right corner of the plotting area to be used.
 - Size Units - Allows you to select whether the P1 and P2 units will be displayed and entered in either Inches or Millimeters.

 To send plots to a local or networked plotter, your system administrator must first add the plotter as a spooled device on your system.

 In addition to standard HP-GL plotters such as the HP 7475, the HP ColorPro (HP 7440), or the HP 7550, some printers can be used as plotters, such as the PaintJet XL, and the LaserJet III.  The HP ColorPro plotter requires the Graphics Enhancement Cartridge to plot Polar or Smith Chart graticules.  The PaintJet XL requires the HP-GL/2 Cartridge to make any plots.  In order to make plots on the LaserJet III, at least two megabytes of optional memory expansion is required, and the Page Protection configuration option should be enabled.  Plots of many vectors, especially with Polar or Smith chart graticules, may require even more optional memory in the LaserJet III. If a plot is to be output to a printer, the Plotter Type must be set to HP-GL/2, which causes the proper HP-GL/2 setup sequence to be included with the plot information.

 To generate a plot, either interactively choose the Plot menu entry from the display's object menu, or programmatically use the optional Plot input control pin on the display. If the current Plotter Setup is in the Plot to File mode, you may specify the destination file or directory name as string data on the Plot control input. If no control input value is given, the file or directory name specified in Plotter Setup will be used.

 The entire view of the display object will be plotted, and scaled to fill the defined plotting area, while retaining the aspect ratio of the original display object.  By re-sizing the display object, you can control the aspect ratio of the plotted image.  By making the display object larger, you can reduce the relative size of the text and numeric labels around the plot.

Notes

When Save is pressed, default preferences are stored in the defaults file (.veerc in your $HOME directory for UNIX, or VEE.RC in the HP VEE program installation directory for MS Windows). Some of these properties are saved in your program as well as the defaults file.  These include the choices in the Environment and Trig Mode groups on the General tab, and the number format on the Number tab. The colors and font values are saved in the program only if Save Default Colors/Fonts with Program is on. Also for colors and fonts, only the settings you change are saved in the defaults file.

If Save is not pressed, the changes are valid only for the current work session.

When Reset is pressed, your current settings are discarded and the defaults file is re-read.

See Also

Clean Up Lines, Delete Global, Get Global, Set Global, Show Data Flow, Properties (Object), and Properties (Program),


Edit Description

Displays an editable dialog box that displays user-supplied information. Accessible from the object menu for information about an object, or from the File menu for information about the entire program.

Supported On

All HP VEE Platforms

Use

Use Edit Description to document an object, and explain how or why it's used. Or from the File menu, use Edit Description to document the entire file.

To write a description, click in the text area and type the description. Click on OK when you're finished.

Location

On each object menu ==> Edit Description

or

File ==> Edit Description

Open View Parameters

OK - Saves the description information with the program.

Cancel - Cancels current changes to description, and closes Description window.

Insert Template - Inserts a prepared template at the cursor location. The template includes information HP VEE knows about the program/object. This includes title, all input terminal names with required data types and shapes, and and all output terminal names.

Insert File - Lets you select a text file to insert at the cursor location.

Clear All - Clears all content from the Description window. To recover canceled text, press Cancel, then re-open the Edit Description window.

Notes

You can edit the text area using the usual HP VEE edit functions.

When printing using Print All with Print All Objects selected or printing using Print Objects, the description for the object will also be printed.

When the file is secured, Edit Description is no longer available from the File menu, however File ==> Show Description displays the information that was input with Edit Description, but the information cannot be edited.

Template information in the Description window is not updated automatically when you make changes to titles or add/delete inputs/outputs in your program. You will need to edit the text directly, or you can delete the lines included in the previous template insertion, then press Insert Template to reinsert a new template.

See Also

Note Pad, Object Menu, Secure, and Show Description.


Edit UserFunction

A menu selection that allows you to edit a locally-created UserFunction within a program. You may also view (but not change) a UserFunction imported with a library.

Supported On

All HP VEE Platforms

Use

Use Edit UserFunction to edit a UserFunction created locally within a program by executing Make UserFunction from the object menu of a UserObject. If you have saved a series of UserFunctions in a library file, you will have to open the library file to edit those UserFunctions.

Location

Edit ==> Edit UserFunction

Object menu of Call Function ==> Edit UserFunction

Notes

When you select Edit UserFunction, a dialog box appears listing the available local UserFunctions to edit. Once you select a UserFunction, a dialog box displays a work area showing the functionality of the original UserObject from which the UserFunction was created. You can edit this work area just as you would edit any UserObject. When you have finished, press Done to finish the edit session. When you save the file, the edited UserFunction will be saved with it.

While editing a UserFunction you can switch between the Panel and Detail view by using To Panel and To Detail from the object menu.

When viewing a UserFunction imported with a library, you cannot change the UserFunction.  However, to aid in debugging, you may set breakpoints, and open/iconize/move objects.  These changes will not be saved to the library file.

See Also

Call Function, Delete Library, Import Library, UserFunction, and UserObject.


errorInfo()

An object that outputs information about the last error trapped on an error output pin.

Supported On

All HP VEE Platforms

Use

Use errorInfo() to determine error information for the last error trapped when using error output pins. After the error is trapped, execute an errorInfo() object to output a record that contains all the information that would be displayed in an error dialog box.

The record contains: the error number, the error message, and the title and type of the object that generated the error.

Location

Data ==> System Info ==> errorInfo()

Notes

The errorInfo() object is simply a Formula object initialized without inputs and containing the errorInfo() equation. You may also type errorInfo() into any other Formula object or expression.

If no error was output to an error output pin, the record that is output from ErrorInfo contains no data.

errorInfo() only traps run-time errors, not pre-run errors such as when an input terminal is not connected.

errorInfo() does not give information about untrapped errors (which generate an error message dialog box).

See Also

Error Output (Object Menu), Formula, and Raise Error.


Error Output (Object Menu)

Adds an error output terminal to the object.

Supported On

All HP VEE Platforms

Use

Use Error Output to allow your program to trap and process HP VEE errors. If an Error pin is on an object and the object encounters an error, no error dialog box is displayed, the error number is output to the Error pin.

If an error is trapped, the error output pin and the sequence output pin are activated; no data is output on the data output pins.

The error output pin outputs a Scalar Int32 container with the value of the error number that was generated.

Location

On each object menu ==> Add Terminal ==> Error Output

Notes

Error Output is available from almost all objects. Some objects, such as Bus I/O Monitor and Note Pad, never return an error, therefore, they do not allow the addition of an error output pin.

An error output terminal outputs the error number of the HP VEE error. It does not output the meaning of the number or any recovery information. Error information is available under the Error Codes topic under Help ==> Contents

A Raise Error object in a UserObject can generate an error that may be trapped by the error pin of an enclosing UserObject.

The error pin on a UserObject traps any errors for any object in the UserObject.

See Also

Add Terminal, Delete Terminal, Object Menu, Raise Error, and UserObject.


Execute Program (PC)

An object that starts an MS-DOS or Windows process from HP VEE.

Supported On

Windows

Use

Use Execute Program (PC) to start MS-DOS or Windows processes, including executable programs, operating system commands, or batch files.

Location

I/O ==> Execute Program (PC)

Open View Parameters

Run Style - If the program you want to execute runs in a window, Run Style specifies the window style:

Normal runs the program in a standard window.

Minimized runs the program in a window minimized to an icon.

Maximized runs the program in a window enlarged to its maximum size.

Wait for prog exit  - If Wait for prog exit is set to Yes, HP VEE runs the external process, and waits until the external process terminates before activating the sequence output pin of the Execute Program (PC) object.

If Wait for prog exit is set to No, HP VEE runs the external process, but activates the sequence output pin of the Execute Program (PC) object without waiting for the external process to terminate.

Prog with params - The program you want to run.  Here are some examples of what you might type into this field:

COMMAND.COM  /C  DIR  C:\TMP (on Windows 95)
 CMD  /C  DIR  C:\TMP (on Windows NT)  PBRUSH

C:\MYDIR\MYFILE.BAT

Working directory - Points to a directory where the program you want to execute can find files it needs.  So, if you want to run the program nmake using the makefile in the directory c:\progs\cprog1 use these parameters:

In Prog with params:, enter nmake.

In Working directory:, enter c:\progs\cprog1.

Notes

Execute Program (PC) is not transaction based. You cannot communicate with external processes using transactions, which differs from Execute Program (UNIX).

If you have included the appropriate path in the PATH variable, you don't need to include the path in the Prog with params field. Set the PATH variable in AUTOEXEC.BAT file for Windows 95 or User Environment Variables (Main / Control Panel / System) for Windows NT.

To execute a .EXE file, you don't need to include the suffix in the Prog with params field.  However, for .COM and .BAT files you do need to include the suffix.

See Also

Execute Program (UNIX), and To/From DDE (PC).


Execute Program (UNIX)

An object that spawns a child process, either directly or through a command shell.

Supported On

HP-UX

Solaris

Use

Use Execute Program to communicate with programs external to HP VEE. Communication to the external program is handled through the operating system mechanism of stdin and stdout.

Use Execute Program to run any executable programs, operating system commands, or shell scripts.

You can communicate with the spawned process through transactions. To add a transaction, select Add Trans in the object menu.  To edit a transaction, double-click on the transaction and complete the resulting dialog box.

Location

I/O ==> Execute Program (UNIX)

Open View Parameters

Shell - The operating system shell to communicate with. If the Shell field is set to none, the first token in the Prog with params field is assumed to be the name of an executable file.  Each token after the first is assumed to be a command-line parameter.  The executable is spawned directly as a child process of HP VEE.  All other things being equal, Execute Program operates fastest when Shell is set to none.

 If the Shell field specifies a shell, HP VEE spawns a process corresponding to the specified shell.  The string contained in the Prog with params field is passed to the specified shell for interpretation.  Generally, the shell spawns additional processes or executes a script.

Wait for prog exit  - If Wait for prog exit is set to Yes, HP VEE performs the following tasks:

1. Spawns a child process.

2. Executes all transactions specified in the Execute Program object.

3. Closes all pipes to the child process (thus sending an EOF to the child).

4. Waits until the child process terminates before activating the sequence output pin of the Execute Program object.

Note that all HP VEE threads are suspended until the child process terminates.

If Wait for prog exit is set to No, HP VEE performs the following tasks:

1. Checks to see if a child process corresponding to the Execute Program object is active.  If one is not already active, HP VEE spawns one.

2. Executes all transactions specified in the Execute Program object.

3. Activates the sequence output pin of the Execute Program object.  The child process remains active and the corresponding pipes still exist.

All other things being equal, Execute Program operates fastest when Wait for prog exit is set to No.

Prog with params - The program you want to run.  Here are examples of what you typically type into the Prog with params field:

To run a custom C program (Shell field set to none):  MyProg -optiona -optionb

To run a shell command (Shell set to ksh):  ls -t *.dat

To run a program using one of the shell dependent features, you could set Shell to sh and enter the command into the Shell command: line:

MyProg *.dat

This forces the shell to pass as command line parameters all the files that end in ".dat".

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

Data Format tab:

Separator Sequence group:

End Of Line (EOL) - Specifies the characters sent at the end of WRITE transactions that use EOL ON. The entry in this field must contain zero or more ASCII characters surrounded by double quotes.  Default is "\n".

Array Separator - Specifies the character string used to separate elements of an array written by WRITE TEXT transactions. The entry in this field must be surrounded by double quotes.

Multi-Field Format group: Specifies the following two formatting styles for multi-field data types for WRITE TEXT transactions. The affected data types are Coord, Complex, PComplex, and Spectrum.

Data Only - Separates each multi-field item with a comma without surrounding the group with parentheses. The complex number 2+2j would be formatted as 2,2.

(...) Syntax - (default) Separates each multi-field item with a comma and surrounds the group with parentheses. The complex number 2+2j would be formatted as (2,2).

Array Format group: Determines how multidimensional arrays are formatted.

Linear - Arranges array elements linearly.

Block - (default)  Arranges array elements in a block of two or more dimensions using the EOL character at the end of each row.

Notes

If you use shell-dependent features in the Prog with params field, you must set a shell in the Shell field to achieve the desired result. Common shell-dependent features are:

Standard input/output redirection (< and >).

File name expansion using wildcards (*, ?, and [a-z]).

Pipes (|).

When sending input to a shell command such as sort or wc, you must include an EXECUTE CLOSE WRITE PIPE transaction after the data has been written to the command.  Closing the write pipe will let the command know that it has received all of the data to process.

When reading an arbitrary amount of data back from a shell command such as ls or grep,  use a READ ... ARRAY 1D TO END: (*) transaction. It will continue to read data until the pipe reading data from the shell is closed.

Example

Here is a simple C program to read a number from stdin, add one to it, and send it back to HP VEE by way of stdout. The stdout buffering must be turned off.  This is done in one of two ways.  The first way is with the setbuf(stdout,NULL) statement, which turns buffering off.  The second technique is to leave the stdout buffering on, then use the fflush(stdout), command to flush the output buffer back to HP VEE.

#include <stdio.h>

main ()

{

     int c;

     double val;

     setbuf(stdout,NULL); /* turn stdout buffering off */

     while (((c=scanf("%lf",&val)) !=EOF) & c > 0) { /* read a value */

       fprintf(stdout,"%g\n",val+1;  /* add one to the input value */

       fflush(stdout);  /* force output back to main pgm */

     }

     exit(0);

}

Short Cuts

You can quickly add a data terminal by placing the cursor over the input or output terminal display area and then pressing CTRL+A. Each press of CTRL+A adds an additional data terminal.

You can quickly delete a data terminal by placing the cursor over the terminal view area and then pressing CTRL+D.

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

Execute Program (PC), HP BASIC/UX, From StdIn (UNIX), To/From Named Pipe (UNIX), and To StdOut (UNIX).

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


Exit

Exits (quits) HP VEE.

Supported On

All HP VEE Platforms

Use

Use Exit to end this work session with HP VEE.

Location

File ==> Exit

Notes

If your program changes have not been saved when you select Exit, you are prompted to save them.

You are not allowed to Exit when a program is running.  Use the Stop object to exit a running program.

Short Cuts

Press CTRL+E to exit. On the window control button in the upper-left corner of the HP VEE window, either double-click on the button, or click on the button and choose Close from its menu.

See Also

Raise Error, Exit Thread, Exit UserObject, New, Open, and Stop.


Exit Thread

An object that stops the execution of a thread.

Supported On

All HP VEE Platforms

Use

Use Exit Thread to terminate the execution of an independent thread. Exit Thread only stops the execution of the thread on which it resides.

Location

Flow ==> Exit Thread

See Also

Break, Raise Error, Exit UserObject, Start, and Stop.


Exit UserObject

An object that stops the execution of a UserObject.

Supported On

All HP VEE Platforms

Use

Use Exit UserObject to stop the execution of all threads in the UserObject and start execution in the next object after the UserObject in the program. Any data sent to the UserObjects output terminals before the Exit UserObject was encountered, is passed to the appropriate succeeding object(s) by activating these outputs.

Use Exit UserObject to make an early exit from a UserObject.

Location

Flow ==> Exit UserObject

See Also

Create UserObject, Raise Error, Exit Thread, Start, Stop, and UserObject.


File Name Selection

An object that displays a pop-up dialog box that displays a list of files to the user.

Supported On

All HP VEE Platforms

Use

Use File Name Selection to display a list of the files on a disk drive to the user. The user responds by selecting one of the choices on the dialog box. File Name Selection is very useful to interactively request file names to be used in To File and From File objects.

In the pop-up dialog box, when a file selection is made and the OK button is pressed, the selection is output on the File Name output pin. When the Cancel button is pressed, a 1 is output on the Cancel output pin.

Location

Data ==> Dialog Box ==> File Name Selection

Open View

Prompt/Label - The string that prompts the user to select a file name. You may add this parameter as a data input. Default is Enter File Name:

Initial Directory - The directory that is initially shown in the File Name Selection pop-up dialog box. You may add this parameter as a data input.  Default is the directory from which you stared HP VEE.

Initial File/Wildcard -  Allows you to set a file name as the default or to filter a set of file names by using wildcard characters. You may add this parameter as a data input.  Default is *.*.

Select File For: Reading | Writing - When you select Reading, the user must select an existing file name from the pop-up dialog box. If the user types a nonexistant file name into the pop-up dialog box and presses OK, they are prompted to enter an existing file name.

When you select Writing, the user may type a new file name or select an existing file name from the pop-up dialog box. If an existing file name is chosen, a warning dialog box pops up asking if it's OK to overwrite the file. If the user presses Yes, the file name is output to the File Name output pin. If the user presses No, the user is returned to the File Name Selection dialog box to select another file name. You may add this parameter as a data input.

Notes

The location of the pop-up dialog box is approximately at the center of the work area. It will go to the same location each time the program is run.

To respond to the pop-up dialog box using only the keyboard: when the dialog box pops up, use Enter and Esc keys. Or use the Tab key to move between the buttons and the selection area; move through the choices with the arrow keys, and select the file name with the Space bar.

The pop-up dialog box is only displayed while the program is running. While the pop-up dialog box is displayed, the entire program pauses execution, then continues when the dialog box is closed.

See Also

From File, Integer Input, List Box, Message Box, Real Input, Text Input, To File, and UserObject.


Fill Bar

An object that displays a Scalar numeric value graphically using a color bar.

Supported On

All HP VEE Platforms

Use

Use Fill Bar to display a numeric value on an analog scale with a color bar, and an optional digital numeric field.

Location

Display ==> Indicator ==> Fill Bar

Open View

The minimum and maximum values of the Fill Bar are set on the open view of the object by clicking on the present value and typing in a new value. Tic marks and their labels are automatically calculated and displayed. The minimum value must be less than the maximum value.

These values may also be added as control inputs.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the contents of the Fill Bar are cleared at PreRun.  Default is on.

Clear At Activate - When the check box is selected, the contents of the Fill Bar are cleared at Activate.  Default is on.

Layout group:

Horizontal | Vertical - Selects the orientation of how the Fill Bar is displayed. Default is Vertical.

Show Digital Display  - If the check box is selected, a digital display of the input value is displayed at the bottom of the open view of the object.  If the check box is not selected, the digital display is not displayed and the object operates faster. Default is on.

Limits group:

High Color - Specifies the color used for the highest range (i.e., greater than High Limit).

High Limit - Defines the numeric lower limit for the highest range. This value must be greater than or equal to the Low Limit. You may add this value as a control input, which disables this property's edit field.

Mid Color - Specifies the color used for the middle range (i.e., less than or equal to High Limit and greater than Low Limit).

Low Limit - Defines the numeric upper limit for the lowest range. This value must be less than or equal to the High Limit. You may add this value as a control input, which disables this property's edit field.

Low Color - Specifies the color used for the lowest range (i.e., less than or equal to the Low Limit).

Notes

The input data must be Scalar and able to be converted to Real (Complex, PComplex, Spectrum, and Coord must be first "unbuilt".)

The Low Limit must be less than the High Limit.

To use only 2 ranges of color, set the Low Limit equal to the High Limit.

To use only 1 color, set the Low Color, Mid Color, and High Color to the same color.

Short Cuts

To quickly change the orientation of the Fill Bar, just resize it to the desired shape. It will automatically change orientation.

See Also

AlphaNumeric, Color Alarm, Logging AlphaNumeric, Meter, Tank, and Thermometer.


For Count

An object that activates its data output pin a specified number of times.

Supported On

All HP VEE Platforms

Use

Use For Count to execute a subthread a specified number of iterations. The output of a For Count can be used as a value for succeeding objects in the subthread.

Location

Flow ==> Repeat ==> For Count

Open View Parameters

Enter the number of iterations in the entry field or as an input. The value must be an Real.

Notes

The For Count output value is a Real scalar ranging from 0 to n-1 where n is the specified count value. All access to unmapped array objects is zero-based, therefore For Count is ideally suited for traversing the dimensions of such objects when required. The For Count value is the dimension size.

If the specified For Count value is zero or negative, the output is not activated, but the sequence output pin is.

Execution of the subthread hosted by the For Count output continues until one of the following occurs:

All objects that can, have operated. The subthread is deactivated, the iteration counter is incremented, and, if the count value is less than the specified count, the subthread is reactivated by refiring the For Count output with the new iteration value.

A Break object operated.  The subthread is deactivated and the sequence output pin is activated. Note that the value that remains on the For Count output is the same value present when the Break was encountered.

A Next object operated.  The subthread is deactivated and the iteration counter is incremented. If the count value is less than the specified Count, the subthread is reactivated by refiring the Count output with the new iteration value, and execution of the subthread proceeds as usual. If the iteration counter has reached the Count value, the sequence output pin is activated.

When the subthread hosted by the For Count object finishes an iteration, all data containers sent during the previous iteration are invalidated before the next iteration. This prevents "old" data from a previous iteration from being reused in the current iteration. However, if flow branching is present within the iterative subthread, some objects may not execute on every iteration. Thus, data containers sent by those objects may be invalidated before other objects can execute on the data. To obtain the desired propagation in this case, use the Sample & Hold object. For an example and further information about using Sample & Hold, see the How to Use HP VEE manual, in the chapter "Some General Techniques", in the section "Controlling Program Flow".

See Also

Break, For Log Range, For Range, Get Values, Next, On Cycle, Sample & Hold, Set Values, and Until Break.


For Log Range

An object that activates its data output pin a specified number of times.

Supported On

All HP VEE Platforms

Use

Use For Log Range to execute a subthread for a specified number of iterations.  Use For Log Range to specify a beginning, end, and increment, and generate output values that are evenly distributed along the log 10 scale.

Location

Flow ==> Repeat ==> For Log Range

Open View Parameters

From - The beginning value of the iteration loop.

Thru - The ending value of the iteration loop.  When the value of the iterator is greater or equal to the Thru value, the loop is completed.

/Dec - Determines the spacing of values from the iterator. The 0th value is From.  The nth value is From*exp10(n/(/Dec)).

From, Thru, and /Dec may be added as inputs.

Notes

The For Log Range output value is a Real scalar ranging from From to Thru.

Execution of the subthread hosted by the For Log Range output continues until one of the following occurs:

All objects that can, have operated. The subthread is deactivated, the iteration counter is incremented by the /Dec value, and, if the count value is less than the Thru value, the subthread reactivates the For Log Range output with the new iteration value.

A Break object operated.  The subthread is deactivated and the sequence output pin is activated. Note that the value that remains on the For Log Range output is the same value present when the Break was encountered.

A Next object operated.  The subthread is deactivated and the iteration counter is incremented by the /Dec value. If the count value is less than the Thru value, the subthread reactivates the Data output with the new iteration value, and execution of the subthread proceeds as usual. If the iteration counter has reached or exceeded the Thru value, the sequence output pin is activated.  If the counter is exceeded, then the value that remains on the Data output is an out-of-range value.

When you add any of the optional data inputs, they do not necessarily line up with the names of the fields to which they supply a value. Make sure you know which values you are inputting and the pins associated with them. (Use Show Terminals if necessary.)

If the Thru value is less than From value, /Dec must be negative or the loop does not execute.

If /Dec = 0 the loop iterates infinitely or until a Break object is encountered in the subthread.

If From equals Thru, the loop executes once.

When the subthread hosted by the For Log Range object finishes an iteration, all data containers sent during the previous iteration are invalidated before the next iteration. This prevents "old" data from a previous iteration from being reused in the current iteration. However, if flow branching is present within the iterative subthread, some objects may not execute on every iteration. Thus, data containers sent by those objects may be invalidated before other objects can execute on the data. To obtain the desired propagation in this case, use the Sample & Hold object. For an example and further information about using Sample & Hold, see the How to Use HP VEE manual, in the chapter "Some General Techniques", in the section "Controlling Program Flow".

See Also

Break, For Count, For Range, Next, On Cycle, Sample & Hold, Properties (Object), and Until Break.


Formula

An object that performs a user-defined mathematical operation specified by a mathematical formula.

NOTE
Refer to Math Syntax for information about the individual mathematical operations supported by the Formula object.

Supported On

All HP VEE Platforms

Use

Use Formula to execute any desired mathematical formula using the syntax defined in the Math Syntax section. The default Formula object has one input (A) and an example formula (2*A+3). However, the example can be replaced with any desired formula, and any number of inputs can be added as required by the user-defined formula. (If the formula requires no inputs, you may delete all inputs.)

The input(s) can be of any data type. For a relational formula (e.g. A <= B), the resulting output is a scalar Int32 with the value 0 ("false") or 1 ("true"). For other mathematical formulas, the resulting output is of a data type consistent with the inputs and with the formula itself. All nil inputs to formula objects, and to I/O transactions containing formulas are automatically converted to Real numbers with the value of 0.0. Refer to the section "Mathematically Processing Data" in the Math Syntax section for a discussion of the rules that determine the data type and shape of the result of a formula.

Location

Math ==> Formula

Open View Parameters

Formula field (unlabeled) - Default is 2*A+3. You can enter any mathematical formula consisting of the operators and functions described in the Math Syntax section. When you enter a formula, its syntax is automatically checked and any errors are reported. The Formula field can be added as a control input.

Notes

All of the supported dyadic operators and functions are described in the Math Syntax section. Any of these operators and functions, including calls to UserFunctions, compiled functions, and remote functions can be used in a Formula object to construct a mathematical formula using the described syntax.

The other Math and AdvMath objects are really just simple examples of Formula objects, as are the objects Get Field, hidePanel(), showPanel(), whichOS(), whichPlatform(), whichVersion(), errorInfo(), showPanel(), hidePanel(), etc.

Although you could perform a mathematical calculation using several individual Math and AdvMath objects, a single Formula object can perform the same calculation with higher performance. This is because a fixed amount of overhead is associated with each graphical object in the program, so a program with fewer objects will run faster.

See Also

Math Syntax


For Range

An object that activates the data output a specified number of times.

Supported On

All HP VEE Platforms

Use

Use For Range to execute a subthread a specified number of iterations specified by a beginning value, ending value, and increment. Use For Range to generate values that are evenly distributed between the From and Thru values.

Location

Flow ==> Repeat ==> For Range

Open View Parameters

From - The beginning value of the iteration loop.

Thru - The ending value of the iteration loop.  When the value of the iterator is greater than or equal to the Thru value, the loop is completed.

Step - The increment value between the current value of the iterator and its next value.

All open view parameters are available from data inputs.

Notes

The For Range output value is a Real scalar ranging from the From to the Thru value.

Execution of the subthread hosted by the For Range output continues until one of the following occurs:

All objects that can, have operated. The subthread is deactivated, the iteration counter is incremented by the step value, and, if the count value is less than the Thru value, the subthread is reactivated by refiring the For Range output with the new iteration value.

A Break object operated.  The subthread is deactivated and the sequence output pin is activated. Note that the value that remains on the For Range output is the same value present when the Break was encountered.

A Next object operated.  The subthread is deactivated and the iteration counter is incremented by the Step value. If the count value is less than the specified Thru, the subthread is reactivated by refiring the Data output with the new iteration value, and execution of the subthread proceeds as usual. If the iteration counter has reached the Thru value, the sequence output pin is activated.

When you add any of the optional data inputs, they do not necessarily line up with the names of the fields to which they supply a value. Make sure you know which values you are inputting and the pins associated with them. (Use Show Terminals if necessary.)

If the Thru value is less than the From value, Step must be negative, otherwise the output is never activated.

If Step = 0, the loop iterates infinitely or until a Break object is encountered on the subthread.

If From equals Thru, the loop executes once.

When the subthread hosted by the For Range object finishes an iteration, all data containers sent during the previous iteration are invalidated before the next iteration. This prevents "old" data from a previous iteration from being reused in the current iteration. However, if flow branching is present within the iterative subthread, some objects may not execute on every iteration. Thus, data containers sent by those objects may be invalidated before other objects can execute on the data. To obtain the desired propagation in this case, use the Sample & Hold object. For an example and further information about using Sample & Hold, see the How to Use HP VEE manual, in the chapter "Some General Techniques", in the section "Controlling Program Flow".

See Also

Break, For Count, For Log Range, Next, On Cycle, Sample & Hold, Properties (Object), and Until Break.


From

A menu item.

Supported On

All HP VEE Platforms

Use

Use From to access the following objects which are sources for I/O operations:

File

DataSet

String

StdIn (UNIX)

Location

I/O ==> From ==>

See Also

To.


From DataSet

An object that allows the user to conditionally retrieve records from a data set.

Supported On

All HP VEE Platforms

Use

Use From DataSet to find and retrieve from a data set either one record or all records that meet the constraints of a logical expression formula. If the record retrieved meets the constraints of the query expression, the record is output on the Rec output pin.

The default expression in the Formula field is 1, (true). Thus, either the first record found (One), or all records in the data set (All) will be output.

If you want to test values in record fields, you must use the form Rec.A for field A, Rec.B for field B, and so forth. For example, the expression:

Rec.A<10

tests each record to see if field A is less than ten. If Get records: One is specified, the first record in the dataset with field A less than 10 will be output on Rec. If Get records: All is specified, all records with field A less than 10 will be output.  Note that the entire record will be output.

The following control pins may be added:

File Name - This control pin allows the user to change the name of the file from which the records will be read.

Rewind - This control pin "rewinds" the From DataSet file so that it can be re-read from the beginning of the file.

Formula - This control pin allows the user to change the formula which is used to determine which records read from the file will be output by the device.

Close - This control pin closes the file.

Location

I/O ==> From ==> DataSet

Open View Parameters

From DataSet - Click on the name field to display a dialog box, then select the name of the file that contains the DataSet.

Get Records - Select One or All:

If One is selected, the first record found in the data set that meets the constraints of the selection formula will be output, and From DataSet will stop executing. When One is selected, the output shape is always a scalar.

If All is selected, all records found in the data set that meet the constraints of the selection formula will be output. The output shape will always be an array. From DataSet will stop executing when it reaches the end of the file.

Search Specifier - Enter a mathematical expression to test the records in the data set. Either the first One, or All records that satisfy the expression will be output, depending on the Get Records selection. The default expression is 1 (true).

Notes

You may use any valid mathematical expression in the conditional formula. You may add additional inputs for use in the expression, just as for a Formula object. If you want to test values in record fields, express them as Rec.A, Rec.B, and so forth. The expression can be fairly complex, for example:

Rec.A > Rec.B AND Rec.C < 2.3

You must observe the normal stipulations for determining True or False for conditional expressions:

For any relational test (for example, equality between two operands), if one operand is an array, the other must be either a scalar or an array of the same size and shape. If the first operand is equal to the second, the result is True; otherwise it is False.

If both operands are of type Coord, they must have all of their independent variables and dependent variables match exactly for the result to be True. If independent variables do not match, an error is returned. Complex, PComplex, and Spectrum operands must have both parts match for the operation to return True. Enums are converted to Text for comparison.

Arrays must have all the respective values of both operands equal for the operation to return True.

You may wish to bring in a DataSet (an array of records) from a file, edit it, and then save it back to the file. This can be accomplished with a From DataSet, a Record Constant using the Default Value input pin, and a To DataSet. See Record Constant for more information.

You may add an EOF output pin to this object. When the object executes and there are no records meeting the query expression constraints, or you are already at the end of the DataSet, this pin will fire.  Otherwise, an End of file with no Data Found error will result when this condition occurs.

If you have multiple From DataSet objects reading from the same file, they will share the file pointer.  That is, all of the objects read sequentially through the file, no matter how many objects there are reading the file.  See From File for more detail.

See Also

Build Record, Record Constant, To DataSet, and UnBuild Record.


From File

An object that reads data from a file using I/O transactions.

Supported On

All HP VEE Platforms

Use

Use From File object to read a wide variety of file encodings and formats. From File is especially useful for importing data files generated by other software packages.

When several From File objects refer to the same disc file, a single read pointer is maintained for all such objects even if they are in different threads or different contexts. This means that data read by one From File object is not reread by another From File object using the same file unless a REWIND operation has been done on the file. The file is opened and the file pointer is reset to the beginning of the file (implied REWIND) when the first From File object for that file operates after PreRun. All files are closed when the program stops.

From File Actions:

READ - Reads data from a file using the specified encoding and format.

EXECUTE - REWIND repositions the file's read pointer to the beginning of the file without erasing the contents of the file. CLOSE closes an open file.  DELETE deletes the file.

WAIT - Waits the specified number of seconds before executing the next transaction.

From File Encodings:

TEXT - Reads text ASCII files written by HP VEE or other software packages.

BINARY - Reads all data types from a machine-specific binary format.

BINBLOCK - Reads all HP VEE data types from binary files with IEEE 488.2 definite length block headers.

CONTAINER - Reads all data types from a machine-specific text format.

Location

I/O ==> From ==> File

Open View Parameters

Open View provides a field for the data file name, followed by a list of available transactions. The data file name can be added as a control input.

Open View shows the list of file transactions to be executed.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Notes

An EOF (End of File) output terminal can be added with Add Data Output. EOF is a special output terminal that propagates with a nil container when a transaction attempts to read data past the End of File. When an End of File condition is detected and the EOF output is activated, none of the other data outputs are activated, even if they contain newly read data.

If EOF is detected and there is no EOF output pin, an error is returned.

To read all of the data in the file, use a READ ... ARRAY TO END: transaction.

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

To File and To/From Named Pipe (UNIX).

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


From StdIn (UNIX)

An object that reads data from the operating system standard input using transactions.

Supported On

HP-UX

Solaris

Use

Use StdIn object to read a wide variety of file encodings and formats from the standard input of HP VEE.

To place data in HP VEE's standard in pipe, you can either type lines in the shell window where the HP VEE process was started or start the HP VEE process using a pipe command to redirect standard input. For example,

cat someFileName | veetest [-r] veeProgramName

sends the contents of file someFileName into HP VEE's standard input.

All From StdIn objects use the same read pointer, even if they are in different threads or different contexts. This means that data read by one From StdIn object is not re-read by another From StdIn object.

To read all of the data from standard input until standard input is closed use a READ ... ARRAY TO END: transaction.

From StdIn Actions:

READ - Reads data using the specified encoding and format.

WAIT - Waits the specified number of seconds before executing the next transaction.

From StdIn Encodings:

TEXT - Reads all data types from an ASCII-data stream.

BINARY - Reads all data types from an machine-specific binary format.

BINBLOCK - Reads all HP VEE data types from binary data files with IEEE 488.2 definite length block headers.

CONTAINER - Reads all data types from an HP VEE specific text format.

IOSTATUS - Allows you to determine if data is available to read on the interface.

Location

I/O ==> From ==> StdIn

Open View Parameters

The open view shows the list of transactions to be executed.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Notes

To help prevent a READ transaction from hanging until data is available on stdin, use a READ IOSTATUS DATA READY transaction in a separate From StdIn object.  This transaction returns a 1 if there is at least one byte to read, and a 0 if there are no bytes to read.

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

From File, To StdOut (UNIX), and To/From Named Pipe (UNIX).

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


From String

An object that reads data from a string by using transactions.

Supported On

All HP VEE Platforms

Use

Use From String to read a wide variety of encodings and formats from textual data in a string.

If a one-dimension array of Text is passed to the AString input, the From String transactions will act in the same way as if those lines of text were being read from a file with the From File object. That is, an array of Text will be treated as a single stream of text with new-line characters between each string element.

From String Actions:

READ - Reads data using the specified encoding and format.

WAIT - Waits the specified number of seconds before executing the next transaction.

From String Encodings:

TEXT - Reads all data types from the AString input.

CONTAINER - Reads all data types from an HP VEE specific text format.

Location

I/O ==> From ==> String

Open View Parameters

The open view shows the list of transactions to be executed.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Notes

From String is a useful debug tool to explore how READ TEXT transactions operate.  Connect a Text Constant object to the From String input terminal labeled AString, and connect a Logging AlphaNumeric display to the From String output terminal to immediately view the results.  It's also useful to parse a string returned from an instrument.

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

From, From File, From StdIn (UNIX), To/From Named Pipe (UNIX), and To String.

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


Function

A menu item.

Supported On

All HP VEE Platforms

Use

Use Function to access the following objects:

Call

Import Library

Delete Library

Location

Device ==> Function ==>

See Also

Call Function, Delete Library, Edit UserFunction, Import Library, UserFunction, and UserObject.


Function Generator

An object that outputs a Waveform.

Supported On

All HP VEE Platforms

Use

Use Function Generator to generate a Waveform of your own specifications.

Location

Device ==> Virtual Source ==> Function Generator

Properties

General tab:

Error Checking group:

Error on Aliasing - Evaluates whether Num Points divided by Time Span (same frequency) is less than twice the specified frequency. If it is, an error is returned. The purpose of this evaluation is to determine whether the points being generated provide an accurate representation of the function being generated. An selected check box generates a literal presentation of points. Default is on.

Open View Parameters

All of these parameters may be set from the open view or added as data inputs.

Function - The shape of the waveform (Sine, Square, Triangle, and so forth).  Default is Cosine.

Frequency - The frequency of the waveform in Hertz. This parameter is ignored if the Function is set to DcOnly.  Default is 1000 Hertz.

Amplitude - The absolute value of the maximum and minimum values in linear units before any dcOffset is added. Default is 1.

dcOffset - The offset of the waveform (the amount it is shifted up or down).  Default is 0.

Phase Units - Degrees (Deg), radians (Rad), or gradians (Grad).  Phase Units overrides the current Trig Mode for the phase value. Default is Deg.

Phase - The shift of the waveform by a portion of a period. The waveform is shifted toward negative time for positive values of phase.  Phase is ignored when Function is set to DcOnly. Default is 0.

Time Span - The duration of the waveform (in seconds). Default is 20m seconds.

Num Points - The number of points in the waveform. The time between points in the waveform is Time Span/Num Points.  Num Points must be positive.  Default is 256.

Notes

There are the same number of points as sampling intervals. Each point is at the beginning of the sampling interval.

See Also

Build Arb Waveform, Comparator, Noise Generator, and Pulse Generator.


Gate

An object that passes the input data to the data output pin when the sequence in pin is activated.

Supported On

All HP VEE Platforms

Use

Use Gate to hold the container until another action occurs (and activates the sequence input pin).

Location

Flow ==> Gate

Notes

If the sequence input pin is not connected, there is no "holdoff" effect. Therefore, Gate passes the data from data input pin to data output pin whenever the data input pin is activated.

The data that flows into Gate is not stored; the container on the data input pin is the container output when the sequence input pin is activated.

See Also

DeMultiplexer and JCT.


Get Field

An object that allows the user to unbuild a record and recover one of its fields or sub-fields.

Supported On

All HP VEE Platforms

Use

Use Get Field to extract a field or sub-field of a record. The Get Field object is simply a Formula object that is initialized with an input terminal Rec and the expression Rec.A. Use the "dot" syntax to specify the field that you want to extract from the record input. For example, Rec.A extracts the A field from the Rec record input.

Location

Data ==> Access Record ==> Get Field

Open View Parameters

Formula field (unlabeled) - The default is Rec.A. You can enter any mathematical formula allowed in the Formula object, but normally you would want to use the A.B dot syntax to extract a field from a record. You can add a Formula control input.

Notes

The Get Field object is actually just a Formula object that has been initialized with a Rec input and the expression Rec.A. You can use any expression in Get Field that you can use in a Formula object, but to extract a field you will need to use the "dot" syntax like Rec.A or A.B.C.

The A.B dot syntax in Get Field is fully supported in all Formula objects. These include Formula, If/Then/Else, Get Values, Set Field, and all transaction devices (To File, To String, etc.) See "Using Records in Expressions" in chapter 3 of the reference manual for further information about this syntax.

Note the distinction between the Get Field, UnBuild Record, and SubRecord objects.

The Get Field object works like a Formula object, in that it uses dot syntax (A.B) to unbuild a record. Note that Get Field allows you to unbuild a record of records in one step by using an expression such as A.B.C. This process would require two UnBuild Record objects.

The UnBuild Record object has outputs for the Name List and Type List of the input record fields. The other (optional) outputs A, B, etc. of the UnBuild Record object return the same results as would multiple Get Field objects.

The SubRecord object differs from UnBuild Record and Get Field in that its output is always a record. The SubRecord device allows you to either include or exclude a list of fields from a record to form a subrecord.

See Also

Build Record, Formula, Record Constant, Set Field, SubRecord, and UnBuild Record.


Get Global

An object that gets the value of a global variable that has already been created in the execution of the current program.

Supported On

All HP VEE Platforms

Use

Use the Get Global object to get a global variable (by name), for use as data in an HP VEE program. The global variable must have previously been created by a Set Global object within the program.

Global variables created (with Set Global) in one context of a program can be used as data in another context of that program such as UserObjects and UserFunctions. For example, a Set Global in the root context of a program could create a global variable, which could then be used as data by including a Get Global in a UserObject. This is especially useful when the program contains several nested layers of UserObjects.

Global variables that are set with Set Global may also be used by name in the expression fields of the following objects:  Formula, If/Then/Else, Get Values, Get Field, Set Field, and all objects using expressions in transactions, including To File, From File, Direct I/O, From Stdin, To/From Named Pipes, and Sequencer. Refer to "Using Global Variables in Expressions" in chapter 3 for further information.

Location

Data ==> Global ==> Get Global

Open View Parameters

The open view displays a field for the name of the global variable. The name is not case sensitive (either lower-case or upper-case letters may be used). Thus globalA is the same variable as GLOBALa. The name field may be added as a control input.

Notes

To avoid unexpected results, your program must ensure that a global variable is set with Set Global before a Get Global object (or an object that includes the global variable name in an expression) executes. Generally, the best way to ensure this is to connect the sequence output pin of the Set Global object to the sequence input pin of the Get Global object, or other object that uses the global variable. However, there are cases when the sequence input pin need not be connected. For further information about this, refer to "Using Global Variables" in HP VEE Advanced Programming Techniques.

In Edit Default Preferences, if Delete Globals at PreRun is on (the default), all global variables are deleted before your program executes.  If Delete Globals at PreRun is turned off, global variables will not be deleted, and you must program carefully to avoid propagating invalid data.

Global variables are truly global since they are not defined at a UserObject level. A global variable that is defined in one context of a program can be used in any other context within the program. For example, you can define a global variable with a Set Global object in the root context of the program, and then include a Get Global to get that global variable in a UserObject. However, you will need to avoid name conflicts throughout the program:

If two or more Set Global objects attempt to set the same global variable (with the same name), the current value will be overwritten as each Set Global executes. This may result in unexpected behavior if you are unaware of the duplicate names.

If a there is a data terminal variable with the same name as a global variable, the data terminal variable takes precedence.

For further information, refer to "Using Global Variables in UserObjects" in HP VEE Advanced Programming Techniques, and to "Using Global Variables in Expressions" in chapter 3 of the reference manual.

See Also

Edit Default Preferences, Delete Global, Set Global, and View Globals.


Get Mappings

An object that outputs mapping information about a container.

Supported On

All HP VEE Platforms

Use

Use Get Mappings to get information about mapped arrays. Get Mappings outputs the type of mapping (log or linear) and the beginning and ending values of each mapping for each dimension.

Location

Data ==> Access Array ==> Get Mappings

Open View Parameters

NumDims - The number of dimensions in the input array, which is an integer value with a minimum value of 1 and a maximum value of 10.

Notes

If the input array is not mapped, Get Mapping outputs Linear (0,n-1), where "n" is the number of points in that dimension of the input array.

Get Mapping does not allow a Coord as input, because the Coord data type has explicit mappings.

Num Dims must match the number of dimensions in the input array.

If the Num Dims value is changed, the view automatically creates or deletes output terminals so that the number of outputs, three for each dimension, matches the value of the Num Dims value. For each dimension, Get Mappings has three data output terminals.

Short Cuts

To view the mappings of a mapped array, use Line Probe on a line or open the terminal to view the container data.

See Also

Line Probe, Set Mappings, Properties (Object), and UnBuild Data.


Get Values

An object that extracts elements from an array.

Supported On

All HP VEE Platforms

Use

Use Get Values to access particular elements of an array. You can extract single or multiple elements, columns, or rows from one or more arrays.

Use Get Values to get information about a set of data such as: the data type, the number of dimensions, the dimension sizes, and the total size of all the array elements of the input array.

Location

Data ==> Access Array ==> Get Values

Open View Parameters

Formula field (unlabeled) - Specifies the elements of the array that you are extracting. The specific symbols associated with arrays are:

Comma (,) - Separates element dimensions.

Colon (:) - Indicates a set of elements inclusively.

Asterisk (*) - A wild card to indicate the entire column or row.

Example

To extract the 2nd column from a two dimensional array [3,3] elements, keeping in mind that array indices are zero-based:

-      -                        -   -

|1 2 3 |                        | 2 |

|4 5 6 |   Array [*,1] outputs: | 5 |

|7 8 9 |                        | 8 |

-      -                        -   -

Notes

All arrays are zero-based.

There must be exactly one specification for each array dimension.

The Get Values object is actually just a Formula object that has been initialized with an Ary input, the expression Ary, and several outputs.  You can use any expression in Get Values that you can use in a Formula object.

The Ary[2,3] subarray syntax in Get Values is fully supported in all Formula objects. These include Formula, If/Then/Else, Get Field, Set Field, and all transaction devices (To File, To String, etc.) See "Using Arrays in Expressions" in chapter 3 of the reference manual for further information about this syntax.

See Also

Formula, Set Values, and UnBuild Data.

Array (under Math Syntax).


Global

A menu item.

Supported On

All HP VEE Platforms

Use

Use Global to access the following objects which set and get the values of global variables.

Set Global

Get Global

Delete Global

Location

Data ==> Global ==>

Notes

A global variable that is defined in one context of a program can be used in any other context within the program. For example, you can define a global variable with a Set Global object in the root context of the program, and then include a Get Global to get that global variable in a UserObject.  You need to avoid name conflicts throughout the program:

If two or more Set Global objects attempt to set the same global variable (with the same name), the current value will be overwritten as each Set Global executes. This may result in unexpected behavior if you are unaware that duplicate names exist.

If a there is a data terminal variable with the same name as a global variable, the data terminal variable will take precedence.

For further information, refer to "Using Global Variables in UserObjects" in HP VEE Advanced Programming Techniques, and to "Using Global Variables in Expressions" in chapter 3 of the reference manual.

See Also

Edit Default Preferences, Delete Global, Get Global, Set Global, and View Globals.


Help (Object Menu)

Gives help on this object.

Supported On

All HP VEE Platforms

Use

Use Help to view the reference page for this object. To exit help, close the help window.

Location

On each object menu ==> Help

Notes

To get help on multiple objects, terminology, or procedural information, use the Help menu on the HP VEE menu bar.

Help for Instrument Panel or Component Driver contains help about the driver itself.

See Also

Object Menu and Properties (Object).


hidePanel()

An object that hides a UserFunction panel displayed with showPanel().

Supported On

All HP VEE Platforms

Use

Use hidePanel() to stop displaying a UserFunction panel that was shown with showPanel().

Location

Device ==> Panel ==> hidePanel()

Open View

You must include the text hidePanel(). Inside the parenthesis, you type the following parameter:

"UFname" - The name of the UserFunction. You must have double quotes around this name. This parameter is required.

You may add a data input pin to the hidePanel() object to set the UserFunction name, but you must replace "UFname" with the input terminal name.

Notes

The hidePanel() object is simply a Formula object initialized without inputs and containing the hidePanel("UFname") equation. You may also type hidePanel() (and the associated parameter) into any other Formula object.

You may input the entire hidePanel() equation via control pin.

All panels are hidden once the program stops executing.

See Also

Call Function, lockPosition(), showPanel(), panelPosition(), panelSize(), unlockPosition(), and UserFunction.


Horizontal Paddle

See Toggle Control.


Horizontal Rocker

See Toggle Control.


Horizontal Slide

See Toggle Control.


HP BASIC/UX

A menu item.

Supported On

HP-UX

Use

Use HP BASIC/UX to access the following objects that control HP BASIC/UX programs:

Init HP BASIC/UX

To/From HP BASIC/UX

Location

I/O ==> HP BASIC/UX ==>

See Also

Init HP BASIC/UX and To/From HP BASIC/UX.


ID Monitor

An object that can contain Instrument Driver panels to let you monitor and interact with the instrument controls.

Supported On

All HP VEE Platforms

Use

Use ID Monitor during HP VEE program development as a debugging tool to observe and adjust instrument settings. The ID Monitor lets you arrange ID panels called Monitor IDs in the Monitor Window so you can easily view and interact with the instrument states. The ID Monitor is useful when using VXI devices since it gives you a display of an instrument panel.

The ID Monitor requires HP VEE instrument drivers (*.cid files) to communicate with instruments.  It cannot be programmed manually, nor can it use VXIplug&play drivers.

Location

I/O ==> ID Monitor

Open View Parameters

The open view is a window in which you can add Monitor IDs, and provides the following two control buttons:

Update - Starts the update mode that lets each Monitor ID in the window directly read and display the physical instrument's actual settings, and provides a continuous display of the instrument readings.  The Monitor IDs do not interact with the ID states in the HP VEE program.

Suspend - Suspends the update mode.  The Monitor IDs interact with the IDs in the HP VEE program, displaying instrument state changes as the HP VEE program runs.

Object Menu

The following are commands in the Monitor Window object menu:

Find ID - Lets you quickly find a particular ID panel. The selected panel appears in the Monitor Window's upper left corner.

Arrange ==> - Organizes ID panels in the window:

Tile - Arranges the Monitor IDs in a tiled manner.

Cascade - Arranges the Monitor IDs in a cascaded manner.

Store Global State - Stores the current instrument states of all Monitor IDs in the Monitor Window in a state file.

Recall Global State - Recalls a previously stored global state file. Only Monitor IDs contained in the file will appear in the Monitor Window, and are set to the states saved in the file. All other Monitor IDs are removed.

Add ID to Monitor Window - Adds a Monitor ID that you select from a list box to the Monitor Window.  Only configured instruments appear in the list.

Cut - Removes the Monitor Window and all IDs contained in it from the HP VEE program space.

The following are commands in a Monitor ID's object menu:

Show Config - Displays the configuration of an instrument. To edit this configuration use I/O ==> Other Instruments... in the HP VEE menu bar.

Store State - Stores the current state of the Monitor ID to a file.

Recall State - Recalls a previously stored state file for the Monitor ID, immediately setting the Monitor ID to the saved state. The physical instrument is also set to the recalled stated if it is connected to the interface and set to live mode.

Sync - Synchronizes a Monitor ID's state to the state of the physical instrument under the following conditions:

The ID code contains a sync component.

The Monitor ID has live mode turned on.

The Monitor Window is not automatically updating Monitor IDs.

Cut - Removes ID panel from the Monitor Window.

Notes

The Monitor Window can run in a separate utility outside of the HP VEE program space.  Called HP VEE Front Panels, it provides the same functions as the ID Monitor described in the previous sections.  Running the ID Monitor in HP VEE Front Panels provides a convenient environment in which to run programs in the HP VEE window, then monitor and control instrument states in the Front Panelswindow.

To start HP VEE Front Panels on MS Windows systems,

use the following commands:

On Windows 95, select Start, click on Run, then enter the command:

VEE -idmonitor

On Windows NT, select File ==> Run... from the Program Manager. Then enter the command:

"C:\Program Files\Hewlett-Packard\VEE 3.2\VEE.EXE" -idmonitor

Note that command-line options are case sensitive. You may need to include your HP VEE installation directory name if it is different.

On UNIX systems, enter the following command:

veetest -idmonitor

See Also

Other Instruments, Instrument Panel, and Bus I/O Monitor.

HP VEE Advanced Programming Techniques, Chapter 3, "Using Instruments."


If A ~= B

An object that branches output if the data input values are almost equal.

Supported On

All HP VEE Platforms

Use

Use If A ~= B to test for approximate equality and branch based on that test.

Location

Flow ==> Conditional ==> If A ~= B

Notes

If A ~= B is a preconfigured If/Then/Else object that tests the approximate equality of the inputs.

If the inputs are approximately equal, the Then output is propagated with an Int32 scalar 1, else the Else output is propagated with an Int32 scalar 0.

The test for "almost equal" is slightly different for Complex and Polar Complex numbers.  For two Real numbers (a and b) the test for "almost equal" is:

a - b <= a * 10E-7

However, for two Complex values (a and b) the test is:

re(a) - re(b) <= mag(a) * 10E-7

where:

re(a) is the real component of a

re(b) is the real component of b

mag(a) is the vector magnitude of a

See Also

Conditional, If/Then/Else, If A == B, If A != B, If A < B, If A > B, If A <= B, and If A >= B.

Relational (under Math Syntax).


If A == B

An object that branches output if the data input values are equal.

Supported On

All HP VEE Platforms

Use

Use If A == B to test for equality and branch based on that test.

Location

Flow ==> Conditional ==> If A == B

Notes

If A == B is a preconfigured If/Then/Else object that tests the equality of the inputs.

If the inputs are equal, the Then output is propagated with an Int32 scalar 1, else the Else output is propagated with an Int32 scalar 0.

See Also

Conditional, If/Then/Else, If A ~= B, If A != B, If A < B, If A > B, If A <= B, and If A >= B.

Relational (under Math Syntax).


If A >= B

An object that branches output if one input is greater than or equal to the other.

Supported On

All HP VEE Platforms

Use

Use If A >= B to test for one input being greater than or equal to the other, and branch based on that test.

Location

Flow ==> Conditional ==> If A >= B

Notes

If A >= B is a preconfigured If/Then/Else object.

If the value of A is greater than or equal to the value of B, the Then output is propagated with an Int32 scalar 1, else the Else output is propagated with an Int32 scalar 0.

See Also

Conditional, If/Then/Else, If A ~= B, If A == B, If A != B, If A < B, If A > B, and If A <= B.

Relational (under Math Syntax).


If A > B

An object that branches output if one input is greater than the other.

Supported On

All HP VEE Platforms

Use

Use If A > B to test for one input being greater than the other and branch based on that test.

Location

Flow ==> Conditional ==> If A > B

Notes

If A > B is a preconfigured If/Then/Else object.

If the value of A is greater than the value of B, the Then output is propagated with an Int32 scalar 1, else the Else output is propagated with an Int32 scalar 0.

See Also

Conditional, If/Then/Else, If A ~= B, If A == B, If A != B, If A < B, If A <= B, and If A >= B.

Relational (under Math Syntax).


If A <= B

An object that branches output if one input is less than or equal to the other.

Supported On

All HP VEE Platforms

Use

Use If A <= B to test for one input being less than or equal to the other, and branch based on that test.

Location

Flow ==> Conditional ==> If A <= B

Notes

If A <= B is a preconfigured If/Then/Else object which tests for the inequality of the inputs.

If the value of A is less than or equal to the value of B, the Then output is propagated with an Int32 scalar 1, else the Else output is propagated with an Int32 scalar 0.

See Also

Conditional, If/Then/Else, If A ~= B, If A == B, If A != B, If A < B, If A > B, and If A >= B.

Relational (under Math Syntax).


If A < B

An object that branches output if one input is less than the other.

Supported On

All HP VEE Platforms

Use

Use If A < B to test for one input being less than the other, and branch based on that test.

Location

Flow ==> Conditional ==> If A < B

Notes

If A < B is a preconfigured If/Then/Else object.

If the value of A is less than the value of B, the Then output is propagated with an Int32 scalar 1, else the Else output is propagated with an Int32 scalar 0.

See Also

Conditional, If/Then/Else, If A ~= B, If A == B, If A != B, If A > B, If A <= B, and If A >= B.

Relational (under Math Syntax).


If A != B

An object that branches output if the inputs are not equal.

Supported On

All HP VEE Platforms

Use

Use If A != B to test for inequality and branch based on that test.

Location

Flow ==>  Conditional ==> If A != B

Notes

If A != B is a preconfigured If/Then/Else object which tests for the inequality of the inputs.

If the value of A is not equal to the value of B, the Then output is propagated with an Int32 scalar 1, else the Else output is propagated with an Int32 scalar 0.

See Also

Conditional, If/Then/Else, If A ~= B, If A == B, If A < B, If A > B, If A <= B, and If A >= B.

Relational (under Math Syntax).


If/Then/Else

An object that branches execution flow based on the values of its input(s).

Supported On

All HP VEE Platforms

Use

Use If/Then/Else to make decisions about which subthread branch to execute. You may enter any legal math expression in the formula boxes on the open view.

Only the output pin associated with a true condition is activated. The container output is the value of the expression.

If/Then/Else evaluates the expressions in the If/Else If clauses (top to bottom) until one evaluates to a non-zero value. This non-zero container is copied to that expression's corresponding output and that one output is propagated. Only one output is propagated. If none of the expressions evaluate to a non-zero value, then the Else output is propagated with the zero value of the last evaluated expression.

If any of the expressions evaluate to a value that is an array, the array values are checked to see if they are either all zero or all non-zero. If the values are mixed, an error is returned since it cannot be determined whether the array is true or false. To produce a scalar, use expr == 0 or expr!=0 since the equality relationals always return a scalar.

Location

Flow ==> If/Then/Else

Open View Parameters

Enter an expression in the edit field.

Object Menu

Add Else/If - Adds a condition that is tested if the previous condition is not met and an output pin that is activated if the condition is true.

Delete Else/If - Deletes a condition.  After selecting Delete Else/If, select a condition to delete from a dialog box that is displayed.

Delete Else/If is not available when only one condition is displayed.  This feature is only available if you have at least two Else/If conditions.

Notes

You may use any legal mathematical statements in the conditional statement. You may add additional inputs for use in the expressions, just as in the Formula object.

To output a value when it meets a condition, multiply the condition statement by the value. For example, to output the value in the variable A when A is less than 10, use the following expression in the edit field:

(A<10)*A

When this condition is true, the value of A is output on the Then data output pin. This technique works only for true statements (which output to Then or Else If data output pins). The Else data output pin will always return zero if the condition is false.

The objects under Conditional are preconfigured If/Then/Else objects that test for a specific condition.

To get a TRUE|FALSE (1|0) output, use the Relational objects. They are available under the Math menu.

Also note the difference between menu items under Relational and under Conditional. Relationals are formulas with output 0 or 1. Conditionals are If/Then/Else and have two outputs, of which one activates.

See Also

Conditional.

Relational and Triadic Operator (under Math Syntax).


Import Library

An object that loads a library of UserFunctions, Compiled Function definitions, or Remote Function definitions into a running HP VEE program.

Supported On

All HP VEE Platforms

Use

Use Import Library to load a library of one of the following kinds of functions into your HP VEE program at run time:

UserFunction - Import Library loads all of the UserFunctions from a specified file. (UserFunctions are created by selecting the Make UserFunction selection on the object menu of a UserObject. You create a library by creating several UserFunctions and saving them to a file.)

Compiled Function - Import Library attaches a shared library (for UNIX) or a Dynamically Linked Library, or DLL (for Windows) to the HP VEE process, and parses the Definition File declarations. (Compiled Functions are programs written in a programming language such as C, which are dynamically linked to the HP VEE process. Refer to HP VEE Advanced Programming Techniques for further information.)

Remote Function - Import Library starts an HP VEE process on a remote host and loads the Remote File into the HP VEE process. (Remote Functions are actually UserFunctions loaded by the remote HP VEE process, but callable on the local host. Refer to HP VEE Advanced Programming Techniques for further information.)

Once the library of UserFunctions, Compiled Functions, or Remote Functions is loaded, the functions are executed (called) by name using the Call Function object.

Location

Device ==> Function ==> Import Library

Open View Parameters

Library Type - A dialog box allows you to choose UserFunction, Compiled Function, or Remote Function.

Library Name - Assign a logical name to the library you are loading.

File Name - (UserFunction or Compiled Function only.) Select the file that contains the library to import.

Definition File - (Compiled Function only.) Select the definition file for the Compiled Function.

Host Name - (Remote Function only.) Enter the name of the remote host where the Remote Function will operate.

Remote File Name - (Remote Function only.) Enter the file name (complete path) of the library (e.g. /users/MyUserName/MyDir/MyFile).

Remote Timeout - (Remote Function only.) Set the timeout in seconds for the Remote Function.

X Window Display Server - (Remote Function only.) Enter a resolvable host name or IP address. The host must have an X Server running and permissions must be set to have an X client display on the specified machine. If the service is instantiated on a MS Windows machine, the X Window Display Server field must be the same machine.

Geometry - (Remote Function only.) Enter the initial geometry for the window that contains the view of the remote HP VEE, in the standard geometry format. For example, 800x500+0-0 (widthxheight+/-xoffest+/-yoffset.

Remote Debug - (Remote Function only.) When this checkbox is selected, all of the UserFunctions within the library will execute in debug mode (i.e. you will be able to perform debugging on them such as setting breakpoints and doing line probes). The program will pause just before executing each remote UserFunction. This setting works with UserFunctions whether or not they have panel views.

Object Menu

Load Lib - Immediately loads the specified library into HP VEE. If a library with the same name was previously loaded, that library is deleted and overwritten with the new library.

Delete Lib - Immediately deletes the specified library from HP VEE. (This provides the same functionality as the Delete Library object.)

Notes

The Import Library object is generally used for advanced operations where you have developed sets of UserFunctions, Compiled Functions, or Remote Functions into libraries. Import Library allows you to load such libraries dynamically at run time. For UserFunctions you can save considerable space by creating a library and loading it with Import Library -- you don't have to save copies of the UserFunctions in each individual program. Also, when you develop a library of standard UserFunctions, you can keep the source code for those functions in a single place. Refer to HP VEE Advanced Programming Techniques for a detailed discussion of using UserFunctions, Compiled Functions, and Remote Functions.

UserFunctions loaded at run time by Import Library operate exactly like any locally-created UserFunction within the program. You can execute any UserFunction with the Call Function or Formula object. However, only locally created UserFunctions can be edited within the program. Imported UserFunctions cannot be edited, but they may be viewed for debugging purposes using Edit UserFunction. If you want to edit any of the external UserFunctions, you must open the library file that contains the UserFunctions and use the Edit UserFunctions selection on the Edit menu. Once you have edited the UserFunction, save the file back to the disk.

See Also

Call Function, Delete Library, Edit UserFunction, UserFunction, and UserObject.


Init HP BASIC/UX

An object that spawns an HP BASIC/UX process and runs a specified program.

Supported On

HP-UX

Use

Use Init HP BASIC/UX to begin communications with HP BASIC programs.

Enter the complete path and file name and any options for the HP BASIC program you wish to run in the Program field.  The program may be in either STOREd or SAVEd format. You can use relative paths; these paths are relative from the present working directory where HP VEE started.

Init HP BASIC/UX does not provide any data path to or from the HP BASIC process; use To/From HP BASIC/UX for that purpose.

Location

I/O ==> HP BASIC/UX ==> Init HP BASIC/UX

Notes

You can use more than one Init HP BASIC/UX object in a program and you can use more than one in a single thread.

There is no direct way to terminate an HP BASIC/UX process from an HP VEE program other than deleting the Init object. There are two possible ways to terminate the HP BASIC/UX processes:

Your HP BASIC program runs a QUIT statement when it   receives a certain data value from HP VEE.

An Execute Program object kills the HP BASIC/UX   process using a shell command, such as rmbkill.

When you exit HP VEE, any HP BASIC/UX processes still attached are killed.

See Also

To/From HP BASIC/UX, To/From Named Pipe (UNIX), and Execute Program (UNIX).


Input (Object Menu)

Deletes an input pin from the object.

Supported On

All HP VEE Platforms

Use

Use Input to delete any input pin (data, control, or XEQ) that was added to the object.

After selecting Input, select the pin to be deleted from the dialog box displayed. The pin and any connections to it are deleted. If two pins have identical names, HP VEE deletes the pin based on the order that the pins appear in the list.

Location

On the object menu ==> Delete Terminal ==> Input

Notes

Input is available only if you have pins that may be deleted.  Some pins cannot be deleted.

Short Cuts

You can quickly delete a data input terminal by placing the cursor over the input terminal display area and then pressing CTRL+D.

See Also

Add Terminal, Control Input (Object Menu), Data Input (Object Menu), Data Output (Object Menu), Delete Output (Object Menu), Object Menu, and XEQ Input (Object Menu).


Instrument Panel

An instrument control object that forces all the function settings in the corresponding physical instrument to match the settings in the control panel displayed in the open view of the object.

Supported On

All HP VEE Platforms

Use

Use an Instrument Panel to control the state of an instrument by means of the control panel displayed in the open view. Before you can use an Instrument Panel, the instrument driver for the desired instrument must be installed.

To add an Instrument Panel object to the HP VEE work area, click on I/O ==> Other Instruments ... to display the Instrument Select or Configure dialog box. Check the list of configured instruments to see if there is an entry for the instrument you want to use:

If the instrument you want is in the list, and is properly configured:

1. Click once on the instrument entry to highlight it.

2. Click on the Instrument Panel button if necessary (Instrument Panel is the default selection).

3. Click on Get Instr to add the Instrument Panel for that instrument.

If the instrument you want is in the list, but you need to change its configuration, click on Edit Instrument, change the configuration using the dialog boxes, save the configuration (click on Save Config), and then follow steps 1 through 3 above.

If the instrument you want is not in the list, click on Add Instrument, configure the instrument using the dialog boxes, save the configuration (click on Save Config), and then follow steps 1 through 3 above.

For information about the configuration dialog boxes, refer to Other Instruments and Device Configuration. For further information about using Instrument Panels, refer to chapter 3 in HP VEE Advanced Programming Techniques.

Location

I/O ==> Other Instruments ...

Object Menu

Add Terminal by Component ==> Select Input Component - Use to add fields visible on the panel as inputs to an Instrument Panel.

Add Terminal by Component ==> Select Output Component - Use to add fields visible on the panel as outputs to an Instrument Panel.

Show Config - Displays the configuration of an instrument. (You can edit this configuration using I/O ==> Instrument.)

Sync - Synchronizes an instrument driver's state to the state of the instrument under the following conditions:

The ID code contains a sync component.

The ID has live mode turned on.

Notes

Instrument Panels may be operated with Live Mode off.  This allows you to run your program without communicating with the instrument, even if the instrument is not connected to the computer.  This means that you must set Live Mode to on (refer to Device Configuration) before your program will communicate with the physical instrument.

Instrument Panels can be used interactively or within a program. To set the value of an individual component, click on the field containing the value of the component and complete the resulting dialog box.  To make a measurement and display the result, click on the corresponding numeric readout or XY display inside the Instrument Panel open view.

It is possible to have more than one object controlling a single instrument.  That is, two Instrument Panel objects could control fgen in the same program.  These objects perform state recalls when operated.

You can add inputs and outputs for the components of an Instrument Panel (just as for a Component Driver). Inputs perform the set actions, panel set actions, and coupled actions for the component. Control pins are available as inputs to initialize the instrument, programmatically change the instrument address and timeout period, and for a sync signal. Outputs perform the get actions and panel get actions.

For UNIX systems, your system administrator must configure your computer before it is possible to communicate between HP VEE and any hardware interface. If you believe that you have properly followed all HP VEE procedures and you still cannot achieve any level of communication with an instrument, the problem may be with your computer configuration. Ask your system administrator to read this explanation and verify proper configuration of your system's interface drivers. (These interface drivers are different from the instrument driver files included with HP VEE).

See Also

Add Terminal, Component Driver, Device Configuration, Direct I/O, ID Monitor, Other Instruments, To/From VXIplug&play.

HP VEE Advanced Programming Techniques, Chapter 3.


Integer

An object that outputs a constant integer Scalar or Array 1D.

Supported On

All HP VEE Platforms

Use

Use Integer to set an integer constant or to get user input. Click on the entry field to enter a value.

Location

Data ==> Constant ==> Integer

Example

To use Integer as a prompt on a panel view, change the name of the Integer object to a prompt such as Enter the number of seconds to delay:. The user fills in the requested information in the entry field.

Type in the formula 1024*1024 into the Integer and it will calculate the result.

Properties

General tab:

Configuration group:

Scalar | 1D Array - Sets the initial data shape of the value(s) to be output with this object.

Size: -  When 1D Array is selected, Size sets the length of the array.

Size Fixed - When the check box is selected, the array cannot have lines added or deleted. This selection is only available if 1D Array is selected.

Execution group: (disabled when Configuration is 1D Array)

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is 0.

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Number tab:

Global Format - Use the default format. Default is on.

Integer: - If Global Format is off, specify the number format for integer numbers to be displayed on this object. The choices are Decimal (e.g. 42), Octal (e.g. #Q52), Hexadecimal (e.g. #H2a), and Binary (e.g. #B00101010). Default is Decimal.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin available on most data constants.

Control inputs may be added for Default Value and Reset. The Default Value input allows you to programmatically change the current value(s).  This input requires an Integer value, either a Scalar or an Array 1D.  The Constant is reconfigured to match the shape of the incoming data.  The Reset input allows you to programmatically set the value(s) to zero.  If the Constant is configured as an Array 1D, all values are set to zero.  The actual data on the Reset input is ignored.

Note that the Initial Value field is always a scalar, even if Integer is configured to be an array.

See Also

Alloc Integer, Complex, Constant, Coord, Date/Time, Selection Control, Integer, Edit Default Preferences, PComplex, Real, Text, and Toggle Control.


Integer Input

An object that displays a pop-up dialog box that accepts integer number input.

Supported On

All HP VEE Platforms

Use

Use Integer Input to prompt the user to enter an integer number, accept the number, and check the number with a user-defined test for validity.

In the pop-up dialog box, when the OK button is pressed, the integer number input by the user is output on the Value output pin. When the Cancel button is pressed, a 1 is output on the Cancel output pin.

Location

Data ==> Dialog Box ==> Integer Input

Open View

Prompt/Label - The string that prompts the user to fill in the text field. You may add this parameter as a data input. Default is Enter Integer Value:

Default Value - The text that is in the dialog's input field before anything is typed. If the user presses OK without typing anything, this text is output. You may add this parameter as a data input. Default is 5

Value Constraint - The equation that tests the input text for validity. You can use any mathematical expression or call a UserFunction. You may add this parameter as a data input. Default is 0<=value AND value<=10; which means it checks for user input of a value between 0 and 10. To accept any value, use the expression 1.

Error Message -  The text that is output in a message box if the user input does not meet the Value Constraint. You may add this parameter as a data input. Default is You must enter a integer between 0 and 10.

Properties

General tab:

Pop-Up Panel group:

Pop-Up Title: - Sets the text shown in the title bar of the pop-up dialog box. Default is Integer Input.

Show Title Bar - If the check box is selected, the title bar of the pop-up dialog box and the corresponding error dialog box is shown. If the check box is not selected, the dialog boxes pop up without title bars. Default is on.

Automatic Timeout group:

Timeout Enabled - When the check box is selected, a Timeout output pin is added to the object. Default is off.

Pop-Up Duration: - Sets the length of time the pop-up dialog box is displayed. After this period of time, the dialog box times out and a value of 1 is output on the Timeout output pin. No other outputs pins have data if the Timeout pin executes. This field is only available when the Timeout Enabled check box is selected. Default is 60.

Button Labels group: - Allows you to set alternative wording for the button labels.  This is especially useful if your users are not native English speakers.  The function of the buttons remains the same, no matter what the label.

The buttons are:

OK:

Cancel:

Input Field Attributes group:

Password Masking Enabled - When the check box is selected, the input text is echoed as asterisks (*). This feature is useful when the operator is entering sensitive data such as a password.  The string that is output on the Value output pin is not masked. Default is off.

Minimum Number of Displayed Characters - Sets the input field width to hold at least this number of characters. This is useful when you need a bigger field so a large number can be input. Default is 20.

Colors tab:

Pop-Up Panel group:

Title Bar Background: - Allows you to select the color of the active title bar for the pop-up dialog box and the error dialog box from a palette.

Title Bar Text: - Allows you to select the color of the text in the active title bar for the pop-up dialog box and the error dialog box from a palette.

Prompt Text: - Allows you to select the color of the Prompt/Label text and the Error Message text from a palette.

Fonts tab:

Pop-Up Panel group:

Title Bar Text - Allows you to select the font of the title bars for the pop-up dialog box and the error dialog box from the list of available fonts on your system.

Prompt Text - Allows you to select the font of the Prompt/Label text the Error Message text from the list of available fonts on your system.

Button Text - Allows you to select the font of the text displayed on the buttons of the pop-up dialog box and the error dialog box from the list of available fonts on your system.

The pop-up dialog box and the error dialog are automatically sized based on the font type and size.

Notes

The default location of the pop-up dialog box is approximately at the center of the work area. If you move it, next time it will pop-up to the new location.

The title text of the error message dialog box is the same as the Integer Input object title.

To respond to the pop-up dialog box using only the keyboard: when the dialog box pops up, start typing and use Enter and Esc keys. Use the Tab key to move between the input field and the buttons and then select the buttons with the Space bar.

The pop-up dialog box and the error dialog box are only displayed while the program is running. While the pop-up dialog box is displayed, the entire program pauses execution, then continues when the dialog box is closed.

See Also

File Name Selection, List Box, Message Box, Real Input, Text Input, and UserObject.


Integer Knob

An object that outputs the Integer value of the knob.

Supported On

All HP VEE Platforms

Use

Use Integer Knob to input Int32 values. Integer Knob is particularly useful on a panel view.

Location

Data ==> Continuous ==> Integer Knob

Open View Parameters

The open view displays fields for the knob's current value, minimum, and maximum values, and the knob control.

Properties

General tab:

Layout group:

Horizontal | Vertical - Sets the orientation of how the Knob is displayed.

Show Digital Display - If the check box is selected, the current value of the knob is displayed in an edit field at the bottom of the open view of the object. When you modify this value, the position of the knob changes. Default is on.

Detents: -  Sets the distance between the values that are available from the Knob. If other values are entered, they are rounded to the nearest detent. Any Real Detents are truncated to Int32.

Execution group:

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is 0.

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Number tab:

Global Format - Use the default format. Default is on.

Integer: - If Global Format is off, specify the number format for integer numbers to be displayed on this object. The choices are Decimal (e.g. 42), Octal (e.g. #Q52), Hexadecimal (e.g. #H2a), and Binary (e.g. #B00101010). Default is Decimal.

The number format does not affect the tic mark values.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin.

Control inputs may be added for Default Value, Reset, MaxValue, MinValue, and Detents:

The Default Value input allows you to programmatically change the current value.  This input requires an Int32 Scalar value.

The Reset input allows you to programmatically set the value to zero. The actual data on the Reset input is ignored.

The MaxValue and MinValue inputs allow you to programmatically set the min and max value fields.  These inputs require a Real Scalar value, which is then converted to an Int32.

The Detents input allows you to programmatically set the detent value.

See Also

Complex, Selection Control, Integer, Integer Slider, PComplex, Real, Real Knob, Text, and Toggle Control.


Integer Slider

An object that outputs the Integer value of the slider.

Supported On

All HP VEE Platforms

Use

Use Integer Slider to input Int32 values. Integer Slider is particularly useful on a panel view.

Location

Data ==> Continuous ==> Integer Slider

Open View Parameters

The open view displays fields for slider value, min, max, and slider control.

Properties

General tab:

Layout group:

Horizontal | Vertical - Sets the orientation of how the Slider is displayed.

Show Digital Display - If the check box is selected, the current value of the slider is displayed in an edit field at the top of the open view of the object. When you modify this value, the position of the slider control changes. Default is on.

Detents: -  Sets the distance between the values that are available from the Slider. If other values are entered, they are rounded to the nearest detent. Any Real Detents are truncated to Int32.

Execution group:

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is 0.

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Number tab:

Global Format - Use the default format. Default is on.

Integer: - If Global Format is off, specify the number format for integer numbers to be displayed on this object. The choices are Decimal (e.g. 42), Octal (e.g. #Q52), Hexadecimal (e.g. #H2a), and Binary (e.g. #B00101010). Default is Decimal.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin.

Control inputs may be added for Default Value, Reset, MaxValue, MinValue, and Detents:

The Default Value input allows you to programmatically change the current value.  This input requires an Int32 Scalar value.

The Reset input allows you to programmatically set the value to zero. The actual data on the Reset input is ignored.

The MaxValue and MinValue inputs allow you to programmatically set the min and max value fields.  These inputs require a Real Scalar value, which is then converted to an Int32.

The Detents input allows you to programmatically set the detent value.

See Also

Complex, Selection Control, Integer, Integer Knob, PComplex, Real, Real Knob, Real Slider, Text, and Toggle Control.


Interface Event

An object that captures asynchronous interface events for VXI, HP-IB and serial.

Supported On

Windows

HP-UX (except serial on Series 300/400)

Solaris (except serial and VXI)

Use

The Interface Event object can be configured to detect various interface events. Depending on the configuration, the object may wait for the event, giving up execution to other parallel threads, or it may simply return a boolean (0 or 1) or other indicator of the state of the interface.

If the Interface Event object has been configured to wait for the event, then upon the event the object will execute. Any thread hosted by this object will have priority over any other parallel threads, and will execute to completion. If the Interface Event object has been configured to simply return an indicator of interface state, the thread containing it will have normal priority, and will execute in parallel with any other threads.

Location

I/O ==> Advanced I/O  ==> Interface Event

Open View Parameters

Interface - The currently selected interface is displayed in this field. Click on this field to display a list of the currently configured interfaces. For an interface to appear in this list, at least one device for that interface must be configured using I/O ==> Instrument. Multiple interfaces of the same type are distinguished by the select code (e.g.: "hpib7" and "hpib8").

Action - Determines the execution behavior of the Interface Event object upon detection of the event.

Wait - Wait for the event to occur. The object will execute when the event occurs. Any thread hosted by this object will have priority over any other parallel threads, and will execute to completion when the event occurs, but is "blocked" until the event occurs. When the event occurs, a boolean TRUE (1) or an interface-event-specific bit pattern is output.

No Wait - Execute immediately, placing the current state of the configured event, as specified by a 32-bit integer, on the event output pin. This value is the boolean value FALSE (0) if the event has not occurred. If the event has occurred, a TRUE (1) or an interface-event-dependent bit pattern is returned. In the No Wait configuration, any thread hosted by the Interface Event object will have normal execution priority, and will execute in parallel with any other threads.

Event - Allows selection of specific interface events. Click on this field to display the choices. For each choice below, both the Wait and the No Wait actions are described. Note that in each case, the thread propagation priorities for Wait and No Wait are as described above.

SRQ - This is the only choice for the HP-IB interface:
 -- If the Action choice is Wait, when an HP-IB device "pulls" on the service request line the Interface Event object will execute, placing a boolean value TRUE (1) on the event output pin.
 -- If the Action choice is No Wait, a boolean value FALSE (0) is output if the event has not occurred. If the event has occurred, a boolean TRUE (1) will be output on the event pin.

DAV - (Data Available) This is the only choice for the serial interface.
 -- If the Action choice is Wait, the Interface Event object will delays execution until data arrives in the receive buffer. The number of bytes in the receive buffer is placed on the event output pin, alerting the following object to read those bytes from the buffer.
 -- If the Action choice is No Wait, the Interface Event object executes immediately giving out the number of bytes in the receive buffer from the event output pin.

Sys Reset - The Interface Event object will execute when a system reset occurs on the VXI interface:
 -- If the Action choice is Wait, a boolean TRUE (1) will be output on the event pin when the system reset occurs.
 -- If the Action choice is No Wait, a FALSE (0) is output if the system reset has not occurred.

Sys Active - When the VXI Resource Manager has finished its VXI initialization and management, it sends a Begin Normal Operation (BNO) command to the VXI interface. If Sys Active is configured, the Interface Event object will execute when this occurs:
 -- If the Action choice is Wait, a boolean TRUE (1) will be output on the event pin when the BNO command occurs.
 -- If the Action choice is No Wait, a FALSE (0) is output if the event has not occurred.

Sys Deactive - When normal VXI operation is aborted an Abort Normal Operation (ANO) or End Normal Operation (ENO) command is sent to the interface. If Sys Deactive is configured, the Interface Event object will execute when this occurs:
 -- If the Action choice is Wait, a boolean TRUE (1) will be output on the event pin when the ANO or ENO command occurs.
 -- If the Action choice is No Wait, FALSE (0) is output if the event has not occurred.

TTL Trig - When TTL Trig is configured, the Interface Event object "monitors" the VXI TTL trigger lines:
 -- If the Action choice is Wait, the Interface Event object executes when a VXI device "pulls" on one or more of the eight TTL trigger lines in the VXI backplane, placing a 32-bit integer on the event output pin. Only the low byte of this integer is significant. It is a bit pattern showing which of the eight TTL trigger lines are active (bit 0 corresponds to trigger line 0, bit 7, to trigger line 7). Each bit set (1) indicates that the corresponding line has been triggered. For example, 00010001 indicates that TTL lines 0 and 4 have been triggered.
 -- If the Action choice is No Wait, the boolean FALSE (0) is output if no triggers have occurred.

ECL Trig - When ECL Trig is configured, the Interface Event object "monitors" the VXI ECL trigger lines:
 -- If the Action choice is Wait, the Interface Event object executes when a VXI device "pulls" on one or more of the four ECL trigger lines in the VXI backplane, placing a 32-bit integer on the event output pin. The low byte of this integer is a bit pattern showing which of the four ECL trigger lines are active. (Bit 0 corresponds to trigger line 0, bit 3, to trigger line 3.) Each bit set (1) indicates that the corresponding line has been triggered. For example, 00001001 indicates that ECL lines 0 and 3 have been triggered.
 -- If the Action choice is No Wait, the boolean FALSE (0) is output if no triggers have occurred. Note that some VXI card cages may choose to implement only two ECL trigger lines.

EXT Trig - When EXT Trig is configured, the Interface Event object "monitors" the VXI EXT trigger lines:
 -- If the Action choice is Wait, the Interface Event object will execute when an external device "fires" on an embedded controller's "Trig In" input. Up to four external trigger inputs can occur. A 32-bit integer is output on the event pin when the Interface Event object executes. The low byte of this integer is a bit pattern showing which of the four EXT trigger lines are active. (Bit 0 corresponds to external trigger 0, bit 3, to external trigger 3.) Each bit set (1) indicates that the corresponding trigger has occurred. For example, 00001001 indicates that EXT trigger lines 0 and 3 have been triggered.
 -- If the Action choice is No Wait, the boolean FALSE (0) is output if no triggers have occurred. Some controller implementations may have no external trigger inputs. The HP 75000 Series C Model V382 embedded controller has one trigger input, which corresponds to the least significant bit of the returned 32-bit integer.

Unknown Interrupt - If Unknown Interrupt is configured, the Interface Event object checks for any VME interrupts from a VME or VXI device not in the VXI controller's servant area:
 -- If the Action choice is Wait, such an interrupt will cause the Interface Event object to execute. The 32-bit value returned is the value placed on the VXI Bus when the device does an interrupt acknowledge (IACK).
 -- If the Action choice is No Wait, the boolean FALSE (0) is output if no interrupt has occurred.

Unknown Signal - If Unknown Signal is configured, the Interface Event object checks for any signal register write from a VXI device not in the VXI controller's servant area:
 -- If the Action choice is Wait, such a signal will cause the Interface Event object to execute. The 32-bit value returned is the contents of the signal write register.
 -- If the Action choice is No Wait, the boolean FALSE (0) is output if no signal has occurred.

Properties

General tab:

Interface Config group:

Timeout: - Sets timeout period the object waits trying to acquire a locked interface to service an event.  An error occurs if no interface is acquired.  Can be set with a control pin.

Notes

The execution behavior of the Interface Event object can either be asynchronous or synchronous, as determined by the choice of the Action parameter. NO WAIT specifies a synchronous, polling behavior. The object executes immediately, and any attached thread will have the same priority as all other threads currently executing. Choosing WAIT causes the Interface Event object to wait until the event has occurred. Any thread hosted by the object will have a higher priority, and will execute to completion, blocking all other concurrently executing threads.

See Also

Device Event, and Interface Operations.


Interface Operations

An object that uses transactions to send low-level interface commands and data by way of HP-IB, VXI, and serial.

Interface Operations should be used for interface-specific tasks, or for special cases where communication with devices via Direct I/O or an Instrument Driver does not afford the necessary level of control.

Supported On

Windows

HP-UX (except serial for Series 300/400)

Solaris (except serial)

Use

Use Interface Operations for low-level operations such as:

Sending non-standard HP-IB addressing sequences.

Sending an HP-IB group trigger message, or pulling on VXI trigger lines.

Sending arbitrary bytes via HP-IB, with or without ATN true.

Sending clear and reset commands to either the VXI or HP-IB interfaces.

Sending IEEE 488.1 defined multi-line messages.

Sending interface lock and unlock messages to the serial interface.

To use Interface Operations you must add one or more transactions. To do this, click on Add Trans in the object menu. Transactions are listed as lines of text in the open view of the object. To edit a transaction, double click on the transaction and complete the resulting dialog box.

Location

I/O ==> Advanced I/O ==> Interface Operations

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

General tab:

Interface Config group:

Interface: - Displays the bus configuration and allows you to change to another interface . Multiple interfaces of the same type are distinguished by their select codes (e.g., "hpib7" and "hpib8").

Timeout: - Sets the timeout period.  Can be set with a control input pin.

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

Advanced I/O, Bus I/O Monitor, and Other Instruments.

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


JCT

An object that outputs the value from the most recent data input (one of multiple inputs) that is activated.

Supported On

All HP VEE Platforms

Use

Use JCT like a wired OR to connect the data output pins of two or more objects to one data input pin of another object. JCT is often used in feedback loops for data initialization. JCT passively transmits data.

Location

Flow ==> Junction

Notes

JCT is useful for setting up initial conditions.

Inputs to JCT are asynchronous data inputs.  This means that JCT operates any time any of its data inputs is activated. When more than one pin on the JCT is activated before the JCT can operate, the incoming data is queued up in the order in which it was received.  The JCT then activates its output repeatedly much like an iterator until the data queue is empty. If the input data pin is activated by a feedback loop, multiple activations are ignored.

One of the common uses of JCT is in a feedback loop where an initial value is first supplied through one of the inputs, and feedback values are then supplied through one or more of the other data inputs.

See Also

DeMultiplexer.


Junction

See JCT.


Label

An object that is used to put a text label on the Panel View.

Supported On

All HP VEE Platforms

Use

Use Label to create labels or headings on the Panel View. This object does not need to execute, and its background color blends into the background color of the Panel View.

Location

Display ==> Label

Open View

 The current Label string is shown.  Default is Label. To change the Label, change the object's title using Edit Properties in the object menu, or use a data input.

Properties

General tab:

Label Justification group:

Left Justify | Center Justify | Right Justify - Specifies the layout of the text within the object border. Default is Left Justify

Notes

The default object color for the Label is the same as the default Panel View color so that the Label background blends into the Panel View.

The default Border setting for the Label object on the Panel View is None.

See Also

Beep and Text.


Line Probe

Displays the container information that is transmitted on a line between two objects.

Supported On

All HP VEE Platforms

Use

Use Line Probe as a debugging tool to examine the container transmitted on a line.  When you select Line Probe, the cursor changes to crosshairs. Click on the line you wish to examine.  A dialog box displays the current container on the line.

If the container on the line is not nil, the dialog box displays the current type, shape, and size of the containers. Data values of up to Array 2D are shown. If any of the dimensions of the container are mapped, the mapping values are shown for each dimension.

Control inputs often have no data on them.  Sequence output pins never have data on them.  If an object has not yet operated, the lines connected to its inputs and outputs may show nil or old data.

Location

Debug ==> Line Probe

Line Probe is also located on the toolbar.

Notes

Check the endpoints of a line by selecting Line Probe and dragging the pointer to the line. When you release the mouse button over the highlighted line, current attributes of the line are displayed.

Also, to view the endpoints of a line without showing its data, select Line Probe and hold down the mouse button when the pointer is over the line.  Move the pointer away from the line before releasing the button.

You can check the data inside terminals of an object by double-clicking on the terminals in the open view.

Short Cuts

Press Shift.  Place pointer over line and click left mouse button. You can look at the data on series of lines this way, one at a time.

See Also

Edit Default Preferences, and Properties (Object).


List Box

An object that displays a pop-up dialog box that displays a list to the user.

Supported On

All HP VEE Platforms

Use

Use List Box to display a list message to the user. The user responds by selecting one (or more) of the choices on the dialog box. You may customize the text on the buttons.

In the pop-up dialog box, when a selection is made, the selection is output on the Text output pin and its index into the list is output on the Index output pin. When multiple selections are made, an array of text is output on the Text output pin and an array of indices is output on the Indices output pin.

Location

Data ==> Dialog Box ==> List Box

Open View

List Entries  Edit ... - Allows you to edit the list of choices displayed on the List Box pop-up dialog box. You may add this parameter as a data input.

Default Entry - Allows you to select the default entry from the choices in List Entries to appear on the pop-up dialog box. You may add this parameter as a data input.

Allow Multiple Selections - When the check box is selected, the user may choose one or more selections from the list.  Also two additional buttons are added to the pop-up dialog box: Select All and Clear All.

Properties

General tab:

Pop-Up Panel group:

Pop-Up Title: - Sets the text shown in the title bar of the pop-up dialog box. Default is List Box.

Show Pop-Up Title Bar - If the check box is selected, the title bar of the pop-up dialog box is shown. If the check box is not selected, the dialog box pops up without title bars. Default is on.

List Entries group:

Maximum Number Displayed - Sets the maximum number of lines the List Box will display without a scroll bar. If this value is greater than the number of list entries, the dialog pop-up is sized to contain the number of list entries (no blank lines). Default is 10.

Automatic Timeout group:

Timeout Enabled - When the check box is selected, a Timeout output pin is added to the object. Default is off.

Pop-Up Duration: - Sets the length of time the pop-up dialog box is displayed. After this period of time, the dialog box times out and a value of 1 is output on the Timeout output pin. No other outputs pins have data if the Timeout pin executes. This field is only available when the Timeout Enabled check box is selected. Default is 60.

Button Labels group: - Allows you to set alternative wording for the button labels. This is especially useful if your users are not native English speakers. The function of the buttons remains the same, no matter what the label.

The buttons are:

OK:

Cancel:

Select All: (available only when Allow Multiple Selections is selected)

Clear All: (available only when Allow Multiple Selections is selected)

Colors tab:

Pop-Up Panel group:

Title Bar Background: - Allows you to select the color of the active title bar for the pop-up dialog box from a palette.

Title Bar Text: - Allows you to select the color of the text in the active title bar for the pop-up dialog box from a palette.

Background: - Allows you to select the color of the background of the pop-up dialog box from a palette.

Fonts tab:

Pop-Up Panel group:

Title Bar Text - Allows you to select the font of the title bar for the pop-up dialog box from the list of available fonts on your system.

List Entry Text - Allows you to select the font of the list entries from the list of available fonts on your system.

Button Text - Allows you to select the font of the text displayed on the buttons of the pop-up dialog box from the list of available fonts on your system.

The pop-up dialog box is automatically sized based on the font type and point size.

Notes

The default location of the pop-up dialog box is approximately at the center of the work area. If you move it, next time it will pop-up to the new location.

To respond to the pop-up dialog box using only the keyboard: when the dialog box pops up, use Enter and Esc keys. Or use the Tab key to move between the buttons and the selection area; select the choice(s) with the Space bar.

The pop-up dialog box is only displayed while the program is running. While the pop-up dialog box is displayed, the entire program pauses execution, then continues when the dialog box is closed.

See Also

File Name Selection, Message Box, Integer Input, Real Input, Text Input, and UserObject.


List

See Selection Control.


lockPosition()

An object that prevents the UserFunction panel that is being shown from being moved.

Supported On

All HP VEE Platforms

Use

When you use showPanel() to display a UserFunction panel, and have used unlockPosition() or have unchecked the Lock Panel Position property to allow the user to move the panel, use lockPosition() to prevent the user from moving the panel.

Location

Device ==> Panel ==> lockPosition()

Open View

You must include the text lockPosition(). Inside the parenthesis, you type the following parameter:

"UFname" - The name of the UserFunction. You must have double quotes around this name. This parameter is required.

You may add a data input pin to the lockPosition() object to set the UserFunction name, but you must replace "UFname" with the input terminal name.

Notes

The lockPosition() object is simply a Formula object initialized without inputs and containing the lockPosition() equation. You may also type lockPosition() into any other Formula object or expression.

See Also

Call Function, hidePanel(), panelPosition(), panelSize(), showPanel(), unlockPosition(), and UserFunction.


Logging AlphaNumeric

An object that displays a Scalar or Array 1D of alphanumeric data. Logging AlphaNumeric allows data to be displayed without overwriting the display.

Supported On

 All HP VEE Platforms

Use

Use Logging AlphaNumeric to display consecutive input (either Scalar or Array 1D) as a history of previous values.

Location

Display ==> Logging AlphaNumeric

Object Menu

Clear - Clears all the data that was displayed on Logging AlphaNumeric. Clear may be added as a control input.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the contents of the Logging AlphaNumeric are cleared at PreRun.  Default is on.

Clear At Activate -  When the check box is selected, the contents of the Logging AlphaNumeric are cleared at Activate.  Default is on.

Buffer Size group:

Lines: - Specifies the number of lines that the display buffer holds. If more than that number of lines is input to Logging AlphaNumeric the last values are kept and the previous are overwritten.  Default is 256.

Number tab:

Global Format - Use the default format. Default is on.

Integer: - If Global Format is off, specify the number format for integer numbers to be displayed on this object. The choices are Decimal (e.g. 42), Octal (e.g. #Q52), Hexadecimal (e.g. #H2a), and Binary (e.g. #B00101010). Default is Decimal.

Real: - If Global Format is off, specify the number format for real numbers to be displayed on this object. The choices are Fixed (e.g. 98.6000), Scientific (e.g. 9.8600E+01), Engineering (e.g. 98.6000E0), Standard (e.g. 98.6), and Time Stamp (e.g. Sat 01/Jan/1994 17:01:38). Default is Standard.

Notes

A row of asterisks *** is displayed if the current width of the Logging AlphaNumeric object is too small to display the default precision of the numeric type. Resize the object and rerun the program to display the data.

See Also

AlphaNumeric and Edit Default Preferences.


Magnitude Spectrum

An object that graphically displays a spectrum.

Supported On

All HP VEE Platforms

Use

Use Magnitude Spectrum to display Spectrums or Waveforms in the frequency domain.  Waveforms are automatically converted to spectrums by way of a Fourier Transform.  The X axis is in the sampling units of the input Spectrum (typically frequency).

Location

Display ==> Spectrum (Frequency) ==> Magnitude Spectrum

Open View Parameters

Auto Scale - Automatically scales the display to show the entire trace.

Mag - The name of the Y axis.

Trace1 - The name of the first trace.

Freq - The name of the X axis.

Object Menu

Auto Scale ==> - Automatically scales the display to show the entire trace. (Can be added as control pins.)

Auto Scale - Automatically scales both axes.

Auto Scale X -  Automatically scales the X axis.

Auto Scale Y -  Automatically scales the Y axis.

Zoom ==> - Scales the display.

In - Magnifies the display to contain only the rectangular region that you selected with the pointer. You select the region after selecting this feature by dragging on the graph area.  This action outlines the information with a "rubber band" box.

Out 2|5|10|20|50|100X - Expands the scales of the display by a factor in both the X and Y directions about the center.

Clear Control ==> - Parameters that specify when to clear the display.

Display - Clears the displayed trace(s).  This parameter may be added as a control input.

Next Curve - Resets the pen to display the next curve in a family of curves (data from the next time the display operates) without clearing the previous curve. Next Curve must be selected (or activated) before each new curve in the family. This parameter may be added as a control input.

Center Markers - If markers are available, brings them to the center of the visible part of the trace.  This is useful if you've scrolled the display and markers are not visible.

Add Right Scale - Adds up to two additional scales to permit traces to have different scale ranges. After adding a right scale, assign a trace to the scale using Traces & Scales button in the object's Properties dialog box (object menu ==> Edit Properties).

Plot - Presents the Plotter Setup control panel.  When OK is pressed, a copy of the device's entire display is plotted on the selected plotter.  This parameter may be added as a control input. If the current Plotter Setup is in Plot to File mode, you may specify the destination file or directory name as string data on the Plot control input. If no control input value is given, the file or directory name specified in Plotter Setup will be used.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the display is cleared at PreRun time.  Default is on.

Clear At Activate - When the check box is selected, the display is cleared at Activate time.  Default is on.

Layout group:

Graph Only - The open view shows only the graph area and the marker information (if it exists).  No buttons, scales, scale names, or traces names are shown. This layout redraws quickest and provides the largest display area.

Scales - The open view shows the graph area, the scales, the scale names, and trace names.  These fields are not recessed and may not be edited. This layout is useful when recessed fields might be distracting, such as printing graphs, or when the fields should be protected from editing on a User Panel.

Scales & Sliders - The open view shows all information about the graph.  It includes the most information and allows you to modify the most elements interactively.  It is the default.

Traces & Scales... - A dialog box that allows you to specify values such as the names, colors, line and point characteristics, minimum values, and maximum values for the traces and/or scales.

 Traces:

  - Name: - The name of the trace that is displayed to the left of the graph area and the name of the corresponding input terminal.
 - Scale: - If you have multiple Y scales, selects which Y scale is to be used for this trace.
 -  Color: - The color of the trace. Each added trace has a different color than the existing traces.  Default for Trace1 is Pen 4 (yellow).
 - Lines: - The format of the line connecting data points. Default is a continuous line.
 - Points: - The symbol that marks each data point. To show unconnected data points, select the single dot Lines format and the desired Points symbol. Default is a dot.

 Scales:

 - Show Scale: - If you have multiple Y scales, a selection (using a check box) to specify if the end points and an axis of each additional right scale is displayed to the right of the graph area.
 -  Scale Name: - The names of the scales.  They may be set here or on the Scales & Sliders layout.
 - Maximum: - The maximum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Minimum: - The minimum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Mapping: -  The way the x and y data is mapped to the display.  The mapping may be linear or log.  To make a log-log plot, change both X and Y axes to Log. Default is Linear.
 - Log Cycles: - The maximum number of decades shown (counting down from the maximum x and y values) when AutoScale is activated.  Log Cycles is only used when the Mapping is Log. Log Cycles is useful when a trace contains a large dynamic range in the data. Default is 4.
 - Scale Colors - The color of any background grid or tic marks. Default is Gray.

Grid Type group:

None - No grid lines are shown.

Tic Marks -  Shows tic marks at the major and minor divisions on all four sides of the graph.

Axis - Shows tic marks at the major and minor divisions on the X and Y axes of the graph.  If the actual axes are scrolled off the graph area, axis lines are drawn on the edge closest to the axes.

Lines - Shows lines at the major divisions and tic marks at the minor divisions.  The X and Y axes are shown as thick lines.

Markers group: - Allows you to find the exact value of a data point on the displayed curve. If the data is plotted on a log scale, the values shown on the marker are the linear data points.

To move markers to a different trace, click on the button to the left of the marker values near the bottom of the display. The button cycles through the different line types and colors of the different traces.

Off - No markers are shown. This selection is the default.

One - One marker is available.

Two - Two markers are available.

Delta - Two markers are available and the x and y differences between them are displayed.

Interpolate - When the check box is selected, you can place markers between the displayed data points. The marker values displayed are calculated by linear interpolation.  Default is off.

Notes

Inputs must be of type Spectrum, Waveform, or Coord (Scalar or Array 1D).

Input data of type Coord is plotted by simply using its x and y values without first being converted to type Spectrum.

 Add traces with the Add Terminal ==> Data Input object menu selection.  Up to twelve traces are allowed.

A Title control input may be added, which sets the title bar name to the specified text value. This allows programmatic control over the title shown when the display is printed or plotted.

You can add a Traces control input pin. The control input data must be an array of records (or a record scalar if you only want to control one trace).  Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A field named TraceNum with an integer value (1 is the first trace).  The TraceNum field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name

Pen

LineType

PointType

The Name field must have a text value.  The Pen, LineType and PointType values must be integers from 0 to n, where 0 draws nothing and n is the number of choices available.

Refer to "Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

You can add a Scales control input pin to control the scales parameters listed above.  The control input data must be an array of records (or a record scalar, if you only want to control one scale). Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A Text field named Scale with a value X, Y (or Y1), Y2, or Y3. The Scale field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name - Must be a text value.

Min - Must be an integer or real value.

Max - Must be an integer or real value.

Mapping - Must have a text value of  Linear or Log.

Refer to "Using Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

See Also

Magnitude vs Phase, Phase Spectrum, Edit Default Preferences, Spectrum (Freq), and Waveform (Time).


Magnitude vs Phase

An object that displays a polar plot of Magnitude against Phase of a complex Spectrum.

Supported On

All HP VEE Platforms

Use

Use Magnitude vs Phase to display Spectrums or Waveforms. Waveforms are automatically converted to spectrums by way of a Fourier Transform. The Radius of each data point is the spectrum's magnitude; the Angle is the Spectrum's phase in the current trig units.

You can change the display between Polar and Smith Chart modes by using Edit Properties on the Object Menu.

Marker values are displayed in polar format (r:radius, a:angle) for the Polar grid type and complex impedance or admittance format for Smith Chart and Inverse Smith Chart grid type.

Location

Display ==> Spectrum (Freq) ==> Magnitude vs Phase (Polar)

Display ==> Spectrum (Freq) ==> Magnitude vs Phase (Smith)

Open View Parameters

Auto Scale - Automatically scales the display to show the entire trace. Auto Scale resets the polar reference location to Center.

Mag - The name of the radius scale.

Trace1 - The name of the first trace.

Polar Reference Location - Specifies the part of the polar plot displayed.  This is quicker than scrolling to the area. Changing the reference point in the entry field scrolls the part of the graph specified (such as Center) to the location specified (such as (0, @0)).

Span: - The vertical dimension of the display. When the origin is centered on the display, the Span is twice the radius. This parameter controls the scaling of the display.  Default is 2.

Ref Radius:  - The radius value of the bold graticule circle.

Object Menu

Auto Scale ==> - Automatically scales the display to show the entire trace. (Can be added as control pins.)

Auto Scale - Automatically scales both axes.

Auto Scale X -  Automatically scales the X axis.

Auto Scale Y -  Automatically scales the Y axis.

Zoom ==> - Scales the display.

In - Magnifies the display to contain only the rectangular region that you selected with the pointer. You select the region after selecting this feature by dragging on the graph area.  This action outlines the information with a "rubber band" box.

Out 2|5|10|20|50|100X - Expands the scales of the display by a factor in both the X and Y directions about the center.

Clear Control ==> - Parameters that specify when to clear the display.

Display - Clears the displayed trace(s).  This parameter may be added as a control input.

Next Curve - Resets the pen to display the next curve in a family of curves (data from the next time the display operates) without clearing the previous curve. Next Curve must be selected (or activated) before each new curve in the family. This parameter may be added as a control input.

Center Markers - If markers are available, brings them to the center of the visible part of the trace.  This is useful if you've scrolled the display and markers are not visible.

Add Right Scale - Adds up to two additional scales to permit traces to have different scale ranges. After adding a right scale, assign a trace to the scale using Traces & Scales button in the object's Properties dialog box (object menu ==> Edit Properties).

Plot - Presents the Plotter Setup control panel.  When OK is pressed, a copy of the device's entire display is plotted on the selected plotter.  This parameter may be added as a control input. If the current Plotter Setup is in Plot to File mode, you may specify the destination file or directory name as string data on the Plot control input. If no control input value is given, the file or directory name specified in Plotter Setup will be used.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the display is cleared at PreRun time.  Default is on.

Clear At Activate - When the check box is selected, the display is cleared at Activate time.  Default is on.

Layout group:

Graph Only - The open view shows only the graph area and the marker information (if it exists).  No buttons, scales, scale names, or traces names are shown. This layout redraws quickest and provides the largest display area.

Scales - The open view shows the graph area, the scales, the scale names, and trace names.  These fields are not recessed and may not be edited. This layout is useful when recessed fields might be distracting, such as printing graphs, or when the fields should be protected from editing on a User Panel.

Scales & Sliders - The open view shows all information about the graph.  It includes the most information and allows you to modify the most elements interactively.  It is the default.

Traces & Scales... - A dialog box that allows you to specify values such as the names, colors, line and point characteristics, minimum values, and maximum values for the traces and/or scales.

 Traces:

  - Name: - The name of the trace that is displayed to the left of the graph area and the name of the corresponding input terminal.
 - Scale: - If you have multiple Y scales, selects which Y scale is to be used for this trace.
 - Color: - The color of the trace. Each added trace has a different color than the existing traces.  Default is Pen 4 (yellow).
 - Lines: - The format of the line connecting data points. Default is a continuous line.
 - Points: - The symbol that marks each data point. To show unconnected data points, select the single dot Lines format and the desired Points symbol. Default is a dot.

 Scales:

 - Show Scale: - If you have multiple Y scales, a selection (using a check box) to specify if the end points and an axis of each additional right scale is displayed to the right of the graph area.
 - Scale Name: - The names of the scales.  They may be set here or on the Scales & Sliders layout.
 - Maximum: - The maximum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Minimum: - The minimum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Mapping: -  The way the x and y data is mapped to the display.  The mapping may be linear or log.  To make a log-log plot, change both X and Y axes to Log. Default is Linear.
 - Log Cycles: - The maximum number of decades shown (counting down from the maximum x and y values) when AutoScale is activated.  Log Cycles is only used when the Mapping is Log. Log Cycles is useful when a trace contains a large dynamic range in the data. Default is 4.
 - Scale Colors - The color of any background grid or tic marks. Default is Gray.

Grid Type group:

None - No grid lines are shown.

Tic Marks -  Shows tic marks at the major and minor divisions on all four sides of the graph.

Axis - Shows tic marks at the major and minor divisions on the X and Y axes of the graph.  If the actual axes are scrolled off the graph area, axis lines are drawn on the edge closest to the axes.

Lines - Shows lines at the major divisions and tic marks at the minor divisions.  The X and Y axes are shown as thick lines.

Smith Chart - Displays data in a Smith Chart (also called an "impedance chart").  Marker values are given as real and imaginary impedances.  The bold circle is the "reference radius" and its linear radius value is shown in the lower right corner of the display. The Smith Chart grid and markers only represent properly scaled values if the input data has been normalized. To normalize the data, divide all magnitudes by the characteristic impedance.

Inv Smith Chart - Displays data in an Inverse Smith Chart (also called an "admittance chart").  An Inverse Smith Chart is used in the same way as a Smith Chart except grid and marker values are admittance values rather than impedance values.

Markers group: - Allows you to find the exact value of a data point on the displayed curve. If the data is plotted on a log scale, the values shown on the marker are the linear data points.

To move markers to a different trace, click on the button to the left of the marker values near the bottom of the display. The button cycles through the different line types and colors of the different traces.

Off - No markers are shown. This selection is the default.

One - One marker is available.

Two - Two markers are available.

Delta - Two markers are available and the x and y differences between them are displayed.

Interpolate - When the check box is selected, you can place markers between the displayed data points. The marker values displayed are calculated by linear interpolation.  Default is off.

Notes

Inputs must be of the type Spectrum, Waveform, or Coord (Scalar or Array 1D).

Input data of type Coord is plotted by simply using its x and y values as rectangular coordinates without first being converted to type Spectrum.

 Add traces with the Add Terminal ==> Data Input object menu selection.  Up to twelve traces are allowed.

A Title control input may be added, which sets the title bar name to the specified text value. This allows programmatic control over the title shown when the display is printed or plotted.

You can add a Traces control input pin. The control input data must be an array of records (or a record scalar if you only want to control one trace).  Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A field named TraceNum with an integer value (1 is the first trace).  The TraceNum field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name

Pen

LineType

PointType

The Name field must have a text value.  The Pen, LineType and PointType values must be integers from 0 to n, where 0 draws nothing and n is the number of choices available.

Refer to "Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

You can add a Scales control input pin to control the scales parameters listed above.  The control input data must be an array of records (or a record scalar, if you only want to control one scale). Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A Text field named Scale with a value X, Y (or Y1), Y2, or Y3. The Scale field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name - Must be a text value.

Min - Must be an integer or real value.

Max - Must be an integer or real value.

Mapping - Must have a text value of  Linear or Log.

Refer to "Using Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

See Also

Magnitude Spectrum, Phase Spectrum, Spectrum (Freq), and Edit Default Preferences.


Make UserFunction (Object menu)

A menu selection, found only in the object menu for a UserObject, which converts the UserObject into a UserFunction.

Supported On

All HP VEE Platforms

Use

Use Make UserFunction to convert a UserObject into a UserFunction.  The name displayed in the title area of the UserObject becomes the UserFunction name.  The UserObject disappears and is replaced with a Call Function object.

Location

On the object menu (UserObjects only) ==> Make UserFunction

Notes

If the name in the UserObject title area is not a valid name for a UserFunction, or if you haven't changed the name from "UserObject", you will be prompted for a new name for the UserObject.

A valid UserFunction name must begin with an alpha character, followed by alphanumeric characters or underscores.

See Also

Call Function, Edit UserFunction, hidePanel(), showPanel(), UserFunction, and UserObject.


Make UserObject

A menu selection, found only under Edit UserFunction, which re-converts a UserFunction back into a UserObject.

Supported On

All HP VEE Platforms

Use

Use Make UserObject to convert a UserFunction back into a UserObject.

Location

Edit ==> Edit UserFunction ==> Make UserObject

Notes

Make UserObject is almost the inverse of Make UserFunction. Although Make UserObject converts the UserFunction back into a UserObject, any Call Function objects remain present, and remain connected in the main context of the program. However, the UserFunction itself is gone.

See Also

Edit UserFunction, Make UserFunction (Object menu), UserFunction, and UserObject.


Merge

Adds the contents of a program or set of saved objects into the work area while keeping the existing contents of the work area.

Supported On

All HP VEE Platforms

Use

Use Merge to combine a previously saved program or set of objects into an existing program in the HP VEE work area. Merge is useful for bringing in previously created programs or sets of objects from a library of functions that are used often.

Location

File ==> Merge

Notes

Any Default Preferences (for example, the Trig Mode) that are saved with a program will not be loaded or used when you Merge that program into the HP VEE work area. The currently active Default Preferences for the work area will remain unchanged.

You cannot use Merge for UserFunctions.  Use Merge Library instead.

Merge presents a dialog box that lets you select the name of the file you want to open. When you use Merge, the dialog box points to the lib directory under the HP VEE program installation directory.

You use Merge to load a file that was saved with Save or Save As.

If the program saved has a panel view, the panel is not imported into the program.  The panel views of UserObject are input.

See Also

Merge Library, Open, Save, and Save Objects.


Merge Library

Loads a library of UserFunctions into the work area.

Supported On

All HP VEE Platforms

Use

Use Merge Library to merge UserFunctions previously saved in a library file of functions, into the current work area.

Merge Library loads all of the UserFunctions from a specified file. (UserFunctions are created by selecting the Make UserFunction selection on the object menu of a UserObject. You create a library by creating several UserFunctions and saving them to a file.)

Once the library of UserFunctions is loaded, the functions are executed (called) by name using the Call Function object.

Location

File ==> Merge Library

Notes

Merge Library is used for advanced operations where you have developed sets of UserFunctions into libraries.   When you develop a library of UserFunctions, you can keep the source code for those functions in a single place.  Refer to HP VEE Advanced Programming Techniques for a detailed discussion of using UserFunctions.

UserFunctions loaded by Merge Library operate exactly like any locally-created UserFunction within the program. You can execute any UserFunction with the Call Function object, or by including the UserFunction in any object that takes an expression (for example, Formula). You can edit any of the merged UserFunctions, loaded by Merge Library, as they are now merged into the HP VEE work area.

Any Default Preferences (for example, the Trig Mode) that are saved with a function will not be loaded or used. The currently active Default Preferences for the work area will remain unchanged.

Merge Library presents a dialog box that allows you to select the name of the file you wish to open.  The dialog box points to the lib directory under the HP VEE program installation directory.

See Also

Call Function, Delete Library, Edit UserFunction, Import Library, Open, Save, Save Objects, UserFunction, and UserObject.


Merge Record

An object that allows the user to merge two or more records of the same shape into a single record.

Supported On

All HP VEE Platforms

Use

Use Merge Record to merge two or more records into a single record. Any number of scalar records can be merged.  Any number of record arrays can be merged so long as all arrays have the same number of elements.

Location

Data ==> Access Record ==> Merge Record

Notes

Any number of input pins (A, B, and so forth) may be added, but each must be of the Record data type. The merged record is output on the Record output pin.

The records to be merged must not have any duplicate field names. The field names are taken from the input records (the input terminal names are ignored).

See Also

Build Record, From DataSet, Record Constant, Set Field, To DataSet, and UnBuild Record.


Message Box

An object that displays a pop-up dialog box that contains a message to the user.

Supported On

All HP VEE Platforms

Use

Use Message Box to display an informational message to the user. The user responds by pressing one of the buttons on the dialog box. The text on the buttons may be customized.

In the pop-up dialog box, when a button is pressed, a 1 is output on the output pin associated with (having the same name as) the button.

Location

Data ==> Dialog Box ==> Message Box

Open View

Message - The string of information displayed on the Message Box pop-up dialog box. Use \n to start a new line in the text in this field. You may add this parameter as a data input. Default is User Message

Symbol - The graphical image displayed on the left side of the Message Box pop-up dialog box. You may add this parameter as a data input.

Question - A white question mark within a green circle.

Exclamation - A black exclamation mark within a yellow circle.

Information - A white letter "i" within a blue circle.

Stop - A white text "STOP" within a red hexagon.

Blank - Use this when you do not want a graphic on the pop-up.

<Custom...> - Gives you a dialog box allowing you to select a picture from graphics files to use as your symbol.
 In the dialog box:
 - Picture - Enter the file name of a graphics file from your file system. The directory shown is the bitmaps directory under the installation directory.  To choose a file from another directory, press the Browse... button.
 - Actual (default) automatically resizes the object to fit the graphic image's actual size.
 The image does not scale if the object is resized. - Scaled rescales the graphic image's size as the object is resized.

You may add this parameter as a data input. Default is Information

Buttons - The text shown on the buttons displayed at the bottom of the Message Box pop-up dialog box. Choices are

OK

OK Cancel

Abort Retry Ignore

Yes No

Yes No Cancel

Retry Cancel

<Custom ...> - Gives you a dialog box in which to input text for the button labels for up to three buttons. If you leave an input field blank, you will not get a button for that field.

The data output pins are automatically configured to correspond to your choice for Buttons.

Default -  The button that is selected when the user presses Enter. The choices displayed depend on the Buttons chosen. You may add this parameter as a data input. Default is OK.

Properties

General tab:

Pop-Up Panel group:

Pop-Up Title: - Sets the text shown in the title bar of the pop-up dialog box. Default is Message Box.

Show Pop-Up Title Bar - If the check box is selected, the title bar of the pop-up dialog box and the corresponding error dialog box is shown. If the check box is not selected, the dialog boxes pop up without title bars. Default is on.

Automatic Timeout group:

Timeout Enabled - When the check box is selected, a Timeout output pin is added to the object. Default is off.

Pop-Up Duration: - Sets the length of time the pop-up dialog box is displayed. After this period of time, the dialog box times out and a value of 1 is output on the Timeout output pin. No other outputs pins have data if the Timeout pin executes. This field is only available when the Timeout Enabled check box is selected. Default is 60.

Colors tab:

Pop-Up Panel group:

Title Bar Background: - Allows you to select the color of the active title bar for the pop-up dialog box from a palette.

Title Bar Text: - Allows you to select the color of the text in the active title bar for the pop-up dialog box from a palette.

Message Background: - Allows you to select the color of the background of the pop-up dialog box from a palette.

Message Text: - Allows you to select the color of the Message text.

Fonts tab:

Pop-Up Panel group:

Title Bar Text - Allows you to select the font of the title bar for the pop-up dialog box from the list of available fonts on your system.

Message Text - Allows you to select the font of the Message text from the list of available fonts on your system.

Button Text - Allows you to select the font of the text displayed on the buttons of the pop-up dialog box from the list of available fonts on your system.

The pop-up dialog box is automatically sized based on the font type and size.

Notes

The default location of the pop-up dialog box is approximately at the center of the work area. If you move it, next time it will pop-up to the new location.

To respond to the pop-up dialog box using only the keyboard: when the dialog box pops up, use Enter key to select the leftmost button and Esc key to select the rightmost button. Or use the Tab key to move between the buttons and select the buttons with the Space bar.

The pop-up dialog box is only displayed while the program is running. While the pop-up dialog box is displayed, the entire program pauses execution, then continues when the dialog box is closed.

See Also

File Name Selection, List Box, Integer Input, Real Input, Text Input, and UserObject.


Meter

An object that graphically displays a Scalar numeric value.

Supported On

All HP VEE Platforms

Use

Use Meter to display a value on an analog scale and digital numeric field.

Location

Display ==> Indicator ==> Meter

Open View

The minimum and maximum values of the Meter are set on the open view of the object by clicking on the present value and typing in a new value. If minimum value is greater than the maximum value, the Meter needle's operation direction is changed (i.e., right to left instead of left to right).

These values may also be added as control inputs.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the contents of the Meter are cleared at PreRun.  Default is on.

Clear At Activate - When the check box is selected, the contents of the Meter are cleared at Activate.  Default is on.

Layout group:

Horizontal | Vertical - Sets the orientation of how the Meter is displayed. If the orientation of the Meter is vertical, the minimum value is at the top and the maximum is at the bottom. Default is Horizontal.

Show Digital Display  - If the check box is selected, a digital display of the displayed value is added to the bottom of the open view of the object.  If the check box is not selected, the digital display is not displayed and the object operates faster. Default is on.

Sub-Range Configuration group: - Sets different colors for different ranges of the display. The color ranges overlay each other with red on the bottom and green on top. This allows red (default) sub-ranges at each end of the scale.

Enable - When the check box is selected, the sub-range color is displayed on the object.

Min - Sets the lower limit of the sub-range. Min does not need to be less than Max.

Max - Sets the upper limit of the sub-range. Max does not need to be greater than Min.

Number tab:

Global Format - Use the default format. Default is on.

Integer: - If Global Format is off, specify the number format for integer numbers to be displayed on this object. The choices are Decimal (e.g. 42), Octal (e.g. #Q52), Hexadecimal (e.g. #H2a), and Binary (e.g. #B00101010). Default is Decimal.

Real: - If Global Format is off, specify the number format for real numbers to be displayed on this object. The choices are Fixed (e.g. 98.6000), Scientific (e.g. 9.8600E+01), Engineering (e.g. 98.6000E0), Standard (e.g. 98.6), and Time Stamp (e.g. Sat 01/Jan/1994 17:01:38). Default is Standard.

Notes

The input data must be Scalar and able to be converted to Real (Complex, PComplex, Spectrum, and Coord must be first "unbuilt".)

See Also

AlphaNumeric, Logging AlphaNumeric, and Edit Default Preferences.


Minimize (Object Menu)

Iconizes the open view of an object.

Supported On

All HP VEE Platforms

Use

Use Minimize to show the icon view of an object.

Location

On the object menu ==> Minimize

Notes

Minimize is available from the open view of all objects.

Short Cuts

To minimize an object, press the minimize button on the upper right of the object (on the right side of the title bar).

See Also

Restore (Object Menu).


Move (Object Menu)

Moves this object.

Supported On

All HP VEE Platforms

Use

Use Move to reposition the object on the work area by dragging it.

Location

On each object menu ==> Move

Notes

Move retains the connections with other objects. If Automatic Line Routing is set, it may take a few moments to redraw lines.

To move multiple objects, use the Move Objects selection from the Edit menu.

Short Cuts

Instead of selecting Move, you can move an object by positioning the pointer over the object and dragging it (using the left mouse button). The pointer must not be over a action area of the object (like a button or a entry field).

See Also

Move Objects, and Object Menu.


Move Objects

Moves selected objects.

Supported On

All HP VEE Platforms

Use

Use Move Objects to change the arrangement of a set of selected objects in your program.

Location

Edit ==> Move Objects

Notes

Move Objects retains all connections between objects. If Automatic Line Routing is set, lines between selected objects and unselected objects will be re-routed.

If you want to move a single object, use the Move feature on its object menu.

See Also

Move (Object Menu) and Select Objects.


MultiDevice Direct I/O

An object that writes data to and reads data from more than one instrument in the same transaction box.

Supported On

All HP VEE Platforms

Use

Use MultiDevice Direct I/O to output and input a variety of encodings and formats to instruments at various I/O addresses.

Location

I/O ==> Advanced I/O ==> MultiDevice Direct I/O

Open View Parameters

The open view shows the list of transactions to be executed.

Direct I/O Actions:

READ: Reads data from an instrument using the specified encoding and format.

WRITE: Writes data to an instrument using the specified encoding and format.

EXECUTE: For an HP-IB instrument, sends either a Selected Device Clear, Go To Local, Remote, or Group Execute Trigger command. For a serial instrument, sends Break or Reset. For a GPIO instrument, sends Reset. For a VXI message-based instrument, sends either a Selected Device Clear, Go To Local, Remote, Trigger, Lock Device, or Unlock Device command.

WAIT: Waits the specific number of seconds before executing the next transaction. For an HP-IB instrument or a VXI message-based instrument, wait until the bitwise AND of the serial poll response with the mask is either zero (ALL CLEAR) or non-zero (ANY SET).

For GPIO instruments only, the READ action allows IOSTATUS and the WRITE action allows IOCTL.

For VXI instruments only, the READ and WRITE action allows REGISTER: and MEMORY:.  The WAIT action also supports the ability to wait until the value in a memory or register offset AND a mask value satisfy the ANYSET, ALL CLEAR, or EQUAL.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Short Cuts

You can quickly add a data terminal by placing the cursor over the input or output terminal display area and then pressing CTRL+A. Each press of CTRL+A adds an additional data terminal.

You can quickly delete a data terminal by placing the cursor over the terminal view area and then pressing CTRL+D.

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

Notes

MultiDevice Direct I/O is very similar to Direct I/O.  However, MultiDevice Direct I/O is not dedicated to any specific instrument. Each transaction can communicate with any configured instrument at various I/O addresses. The transaction dialog box lets you specify the intended instrument from the available configured instruments.

You can use an instrument's default address originally entered during instrument configuration, or specify another address. In cases where an instrument address is different, click on the Default Address button to reveal an additional text box. Enter the new address value or variable name in the box.

See Also

Advanced I/O, Component Driver, Direct I/O, Other Instruments, Instrument Panel, and To/From VXIplug&play.

HP VEE Advanced Programming Techniques, Chapter 3.


New

Clears the work area.

Supported On

All HP VEE Platforms

Use

Use New to clear the work area.

Location

File ==> New

New is also located on the toolbar.

Notes

If your program has not been saved, New prompts you to save your changes.

New does not clear the Paste buffer. New reads in the default Preferences settings from the defaults file (.veerc for UNIX or VEE.RC for Windows).

New maintains the directory paths that the Save and Open commands use.

Short Cuts

Press Clear display to clear the program (HP-UX only).

Press CTRL+N to clear the program.

See Also

Edit Default Preferences.


Next

An object that causes a Repeat ==> object to immediately start the next iteration.

Supported On

All HP VEE Platforms

Use

Use Next to skip to the next iteration of the current loop without executing the remaining objects on the iteration subthread.

If Next is not on an iteration subthread, it stops all execution on the subthread.

Location

Flow ==> Repeat ==> Next

Notes

Next is often used with an If/Then object to conditionally control iteration.

See Also

Break, For Count, For Log Range, For Range, If/Then/Else, On Cycle, and Until Break.


Noise Generator

An object that generates a waveform of noise data.

Supported On

All HP VEE Platforms

Use

Use Noise Generator to generate a waveform of simulated white noise.

Location

Device ==> Virtual Source ==> Noise Generator

Open View Parameters

All of these parameters may be set from the open view or added as data inputs.

Amplitude - The absolute value of the maximum and minimum values. Default is 1.  No value is greater than Amplitude.  No value is less than -Amplitude.

Time Span: - The duration of the waveform (in seconds) Default is 20m.

Num Points: - The number of points in the waveform. The time between points in the waveform is Time Span/N. Num Points must be positive.  Default is 256.

See Also

Build Arb Waveform, Build Waveform, Comparator, Function Generator, and Pulse Generator.


Note Pad

An object that displays a block of text.

Supported On

All HP VEE Platforms

Use

Use Note Pad to document your program, label the panel view, or write notes.

Location

Display ==> Note Pad

Open View Parameters

To enter information in the Note Pad, click on the panel, then type the note.

Object Menu

Insert File... - Gives you a dialog box that lets you select an existing text file to insert into Note Pad.

Clear All - Clears all text from Note Pad, with a dialog box to confirm or reject the action.

Properties

General tab:

Editing group:

Enabled - When the check box is selected, allows you to edit the text in the panel.  When not selected, no editing is allowed.  This is useful when a Note Pad is on a panel view and you don't want other users to modify your note.

Notes

Each Note Pad is a stand-alone object and is not connected to any other objects.

After editing or resizing, scroll bars are added or removed from the Note Pad as required.

You can use all the usual HP VEE edit functions to edit the text area.

See Also

Show Description.


Object Menu

The menu associated with every object that contains selections that affect that object.

Supported On

All HP VEE Platforms

Use

Use the object to set status, edit, set controls, and add and delete the terminals of an object.

Use Object Menu to access the following object actions:

Restore

Move

Size

Minimize

Clone

Replace

Help

Edit Properties ...

Edit Description ...

Add Terminal ==>

Data Input

Control Input

XEQ Input

Data Output

Error Output

Delete Terminal ==>

Input

Output

Cut

Use the Object Menu to access the following object actions on the panel view:

Move

Size

Edit Properties ...

Delete

Location

To access an object's Object Menu, position the pointer over the object and click the right mouse button. Note that to access the object menu of the open view of a UserObject you must position the pointer over the title bar or terminals, otherwise, the Edit Menu is presented.

You can also access the Object Menu from the open view by positioning the pointer over the object menu button (the square with a bar in the middle to the left of the title bar) and pressing the left mouse button.

Notes

Many object menus have additional menu features specific to that object. Refer to information on the object for details about those object menu choices.

Most objects have additional options specific to that object on their Properties dialog box (which is accessed via Edit Properties on the object menu). Refer to information on the object for details about those object properties.

Short Cuts

You can quickly delete an object by double-clicking on the object menu button (available in the open view).

You can quickly access the Properties dialog box by double-clicking on the object's title bar (available in the open view).

See Also

Move (Object Menu), Size (Object Menu), Minimize (Object Menu), Restore (Object Menu), Replace, Clone (Object Menu), Help (Object Menu), Properties (Object), Edit Description, Add Terminal, Delete Terminal, Control Input (Object Menu), Data Input (Object Menu), Data Output (Object Menu), Error Output (Object Menu), XEQ Input (Object Menu) Input (Object Menu), Delete Output (Object Menu), and Cut (Object Menu).


OK

An object that pauses the execution flow of a subthread until it is pressed.

Supported On

All HP VEE Platforms

Use

Use OK to wait for a user response.

OK allows the addition of XEQ input.  If the XEQ input is activated, OK operates even if the button has not been pressed by the user.

Location

Flow ==> Confirm (OK)

Properties

General tab:

Function Keys group:

Assign to Function Key - When the check box is selected, this object will execute when the specified function key is pressed from the detail view or the panel view. You can assign a function key to multiple OK objects. Default is off.

F1 - This field becomes enabled when Assign to Function Key is selected. You select the function key to assign to the OK object. F10 should not be used on MS Windows, because it is a synonym for Alt.

Panel View Operation group:

Assign to [Enter] Key - When this check box is selected and the program is being run from the panel view, pressing the Enter (the Return key for UNIX) on your keyboard will execute the object. You can have only one OK assigned to Enter per context. If you try to set it for more than one OK, the previous setting is unselected.  This property is useful when you use an OK object as the OK button on a custom dialog box. Default is off.

Assign to [Esc] Key - When this check box is selected and the program is being run from the panel view, pressing the Esc key on your keyboard will execute the object. You can have only one OK assigned to Esc per context. If you try to set it for more than one OK, the previous setting is unselected.  This property is useful when you use an OK object as the Cancel button on a custom dialog box. Default is off.

Notes

OK often is used when creating a dialog box or with the Selection Control constant.

The button part of the OK doesn't become active until the object operates.

You can use either the Go data output pin or the sequence output pin to continue the thread.

Another way to pause the execution flow of a thread when using objects under Data ==> Constant is to use the Wait for Input property.

See Also

Gate, JCT, Start and Stop.


On Cycle

An object that begins execution of a subthread at a specified interval.

Supported On

All HP VEE Platforms

Use

Use On Cycle to execute a subthread that must be repeated periodically. The output of On Cycle is the current date and time. This date and time can be displayed on any object that supports a Time Stamp number format.

Use On Cycle to trigger instruments at specific intervals.

Location

Flow ==> Repeat ==> On Cycle

Open View Parameters

Enter the number of seconds per iteration period in the entry field or as an input. If this value is 0 or -1, On Cycle operates continuously (the same as Until Break).

Notes

Execution of the subthread hosted by the On Cycle output continues until one of the following occurs:

All objects that can, have operated. The subthread is deactivated, the iteration timer is reset, and the subthread is reactivated after the number of seconds have elapsed.

A Break object operates.  The subthread is deactivated and the sequence output pin is activated. Note that the value that remains on the On Cycle output is the same value present when the Break was encountered.

A Next object operates.  The subthread is deactivated and the iteration timer is reset.

On Cycle starts operation at the specified time period.  If the thread takes longer to complete than the period of the On Cycle object, then the next iteration starts at the next period synchronization point. For example, if the period in the On Cycle is 1 second and the thread it hosts takes 1.5 seconds to complete, the next iteration starts .5 seconds after the thread completes.

While waiting for the next time period to begin, On Cycle "sleeps" allowing other objects on this or other threads to operate.

When the subthread hosted by the On Cycle object finishes an iteration, all data containers sent during the previous iteration are invalidated before the next iteration. This prevents "old" data from a previous iteration from being reused in the current iteration. However, if flow branching is present within the iterative subthread, some objects may not execute on every iteration. Thus, data containers sent by those objects may be invalidated before other objects can execute on the data. To obtain the desired propagation in this case, use the Sample & Hold object. For an example and further information about using Sample & Hold, see the How to Use HP VEE manual, in the chapter "Some General Techniques", in the section "Controlling Program Flow".

See Also

AlphaNumeric, Break, For Count, For Log Range, For Range, Next, Sample & Hold, and Until Break.


Open

Loads a program file into the work area, replacing the existing program.

Supported On

All HP VEE Platforms

Use

Use Open to bring a previously saved program into HP VEE for running or editing. Move to the directory where the file is located, click on the file name, and press OK.  The program is displayed on your screen.

Location

File ==> Open

Open is also located on the toolbar.

Notes

Open presents a dialog box that allows you to select the name of the program file you wish to open.  When HP VEE is loading in the file, the pointer icon changes to a pair of glasses.

You can Open a file that was saved with Save Objects, Save or Save As.

Short Cuts

CTRL+O opens files.

The Spacebar completes filenames (UNIX only).

See Also

Merge, Save, and Save Objects.


Other Instruments

Displays the Instrument Select or Configure dialog box.

Supported On

All HP VEE Platforms

Use

Click on I/O ==> Other Instruments to display the Instrument Select or Configure dialog box.  Use this dialog box to add, edit, and delete instruments from the list of configured instruments, and to select and display the three types of instrument I/O objects:  Instrument Panels, Component Drivers, and Direct I/O objects.

Location

I/O ==> Other Instruments ...

Dialog Information

The Instrument Select or Configure dialog box provides four buttons at the bottom: Get Instr, Save Config, Cancel, and Help. The dialog box is divided into three areas:

A scrollable list of instruments. - Click on an instrument in the list to select it.  Click on it again, or click on the Get Instr button to add an instrument I/O object to the work area.  The type of the object will depend on which radio button has been pressed in the Instrument Type area, described below.

Instrument Type - This area determines the type of instrument I/O object that is added to the work area when you click on the Get Instr button.  There are radio buttons for Instrument Panel, Component Driver, and Direct I/O. (The default is Instrument Panel.)

Instrument Configure - This area allows you to change instrument configurations.  There are three selections:

Add Instrument - This selection allows you to add an instrument to the list.  When you click on Add Instrument, the Device Configuration dialog box appears.  You can configure the instrument that you want to add by filling out the fields in this dialog box.

Delete Instrument - This selection deletes the currently highlighted instrument from the list.  If you make a mistake, just click on the Cancel button to recover.

Edit Instrument - This selection allows you to edit an existing instrument configuration.  When you click on Edit Instrument, the Device Configuration dialog box appears, and you can make changes.

Notes

When you click on Get Instr, a Save Config also occurs.

An I/O object may be operated with or without actual instruments connected to the computer.  If you wish to control a live instrument, you must set a correct, non-zero address and enable Live Mode.  The address and Live Mode setting are controlled by way of the Device Configuration dialog box.  If the address is zero or if Live Mode is off, the instrument object operates but does not attempt to communicate with a physical instrument.

For instrument-specific help, select Help from the object menu of an Instrument Panel or Component Driver object, or select Help ==> Instruments.

Instrument Panels can be used interactively or within a program. To set the value of an individual component, click on the field containing the value of the component and complete the resulting dialog box.  To make a measurement and display the result, click on the corresponding numeric readout or XY display inside the Instrument Panel open view.

It is possible to have more than one object controlling a single instrument.  It is also possible to have multiple copies of the same driver, each controlling a different physical instrument. In either case, it is the configured name that determines which object controls which instrument.

Before HP VEE can communicate with your physical instruments, the instruments and your hardware interfaces must be properly configured. Refer to your HP VEE installation instructions for further information. For UNIX systems, your system administrator will need to verify the proper configuration of your system's interface drivers.  (These interface drivers are different from the instrument driver files included with HP VEE.)

See Also

Advanced I/O, Bus I/O Monitor, Component Driver, Device Configuration, Direct I/O, ID Monitor, Instrument Panel, VXIplug&play Instrument Configuration, and To/From VXIplug&play.

HP VEE Advanced Programming Techniques, Chapter 3, "Using Instruments."


panelPosition()

An object that outputs the location of a UserFunction panel.

Supported On

All HP VEE Platforms

Use

When you use showPanel() to display a UserFunction panel, use panelPosition() to output the location of the panel. The output is a Coord that contains the location of the upper-left corner of the UserFunction panel (excluding the border and title area, if they exist on the panel) as the number of pixels from the upper-left corner of the work area.

Location

Device ==> Panel ==> panelPosition()

Open View

You must include the text panelPosition(). Inside the parenthesis, you type the following parameter:

"UFname" - The name of the UserFunction. You must have double quotes around this name. This parameter is required.

You may add a data input pin to the panelPosition() object to set the UserFunction name, but you must replace "UFname" with the input terminal name.

Notes

If the UserFunction does not have a panel view or the panel view has not yet been shown in the program, panelPosition() returns the Coord (0, 53).

If the UserFunction panel is not currently shown, panelPosition() returns the panel position of the last time it was shown.

The panelPosition() object is simply a Formula object initialized without inputs and containing the panelPosition() equation. You may also type panelPosition() into any other Formula object or expression.

See Also

Call Function, hidePanel(), lockPosition(), panelSize(), showPanel(), unlockPosition(), and UserFunction.


panelSize()

An object that outputs the size of a UserFunction panel.

Supported On

All HP VEE Platforms

Use

When you use showPanel() to display a UserFunction panel, use panelSize() to output the size of the panel. The output is a Coord that contains the size of the UserFunction panel in pixels. The size does not include the size of the border and title area (if they exist on the panel).

Location

Device ==> Panel ==> panelSize()

Open View

You must include the text panelSize(). Inside the parenthesis, you type the following parameter:

"UFname" - The name of the UserFunction. You must have double quotes around this name. This parameter is required.

You may add a data input pin to the panelSize() object to set the UserFunction name, but you must replace "UFname" with the input terminal name.

Notes

If the UserFunction does not have a panel view or the panel view has not yet been shown in the program, panelSize() returns the Coord (0, 0).

If the UserFunction panel is not currently shown, panelSize() returns the panel size from the last time it was shown.

The panelSize() object is simply a Formula object initialized without inputs and containing the panelSize() equation. You may also type panelSize() into any other Formula object or expression.

See Also

Call Function, hidePanel(), lockPosition(), panelPosition(), showPanel(), unlockPosition(), and UserFunction.


Paste

Places a copy of the Paste buffer on the work area.

Supported On

All HP VEE Platforms

Use

After using Cut, Copy, or Clone, use Paste to retrieve a copy of a set of objects.

Paste allows you to recover objects that have been accidentally Cut. Connections to and from these objects are also restored.

Location

Edit ==> Paste

Paste is also located on the toolbar.

Notes

The Paste buffer only holds one set of objects.  The Paste buffer is replaced each time you Clone, Cut or Copy.

The Paste buffer is not cleared when you use Open, Merge, or New.

See Also

Clone, Clone (Object Menu), Copy, Cut, Cut (Object Menu), and Replace.


Pause

A button that temporarily causes all threads to stop running.

Supported On

All HP VEE Platforms

Use

Use Pause to temporarily suspend program execution.  After Pause is selected, select Resume to continue execution.

Location

Debug ==> Pause

Pause is also located on the toolbar.

Notes

Selecting Pause puts the program in the "paused" state.  Both Step and Resume are active and can be used to proceed.

Short Cuts

Press CTRL+C to pause a running program or cancel an edit.

See Also

Line Probe, Edit Default Preferences, Resume, Run, Show Data Flow, Show Execution Flow, Step, Stop, Stop (Object), and Toggle Breakpoints.


PComplex

An object that outputs a constant PComplex number.

Supported On

All HP VEE Platforms

Use

Use PComplex to set a PComplex constant or to get user input. Click on the entry field to enter a value.

Location

Data ==> Constant ==> PComplex

Example

To use PComplex as a prompt on a panel view, change the name of the PComplex object to a prompt such as Enter the AC voltage:. The user fills in the requested information in the entry field.

Type in (2,@PI/2) and it will calculate the PComplex Constant formula.

Properties

General tab:

Configuration group:

Scalar | 1D Array - Sets the initial data shape of the value(s) to be output with this object.

Size: -  When 1D Array is selected, Size sets the length of the array.

Size Fixed - When the check box is selected, the array cannot have lines added or deleted. This selection is only available if 1D Array is selected.

Execution group: (disabled when Configuration is 1D Array)

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is (0, @0).

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Number tab:

Global Format - Use the default format. Default is on.

Real: - If Global Format is off, specify the number format for real numbers to be displayed on this object. The choices are Fixed (e.g. 98.6000), Scientific (e.g. 9.8600E+01), Engineering (e.g. 98.6000E0), Standard (e.g. 98.6), and Time Stamp (e.g. Sat 01/Jan/1994 17:01:38). Default is Standard.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin.

Control inputs may be added for Default Value and Reset. The Default Value input allows you to programmatically change the current value(s).  This input requires a PComplex value, either a Scalar or an Array 1D.  The Constant is reconfigured to match the shape of the incoming data.  The Reset input allows you to programmatically set the value(s) to zero.  If the Constant is configured as an Array 1D, all values are set to zero.  The actual data on the Reset input is ignored.

Note that the Initial Value field is always a scalar, even if the PComplex is configured to be an array. Trig Mode specifies phase value units.

You can enter Magnitude and Phase values (separated by commas) and HP VEE formats automatically.

See Also

Alloc PComplex, Complex, Constant, Coord, Date/Time, Selection Control, Integer, Real, Text, Edit Default Preferences, and Toggle Control.


Phase Spectrum

An object that graphically displays the magnitude of a spectrum as a function of its phase angle.

Supported On

All HP VEE Platforms

Use

Use Phase Spectrum to display phase against frequency of Spectrums or Waveforms (in the frequency domain). Waveforms are automatically converted to spectrums by way of a Fourier Transform.  The X axis is in the sampling units of the input spectrum. The Y axis units are the current Trig Mode setting.

Location

Display ==> Spectrum (Frequency) ==> Phase Spectrum

Open View Parameters

Auto Scale - Automatically scales the display to show the entire trace.

Phase - The name of the Y axis.

Trace1 - The name of the first trace.

Freq - The name of the X axis.

Object Menu

Auto Scale ==> - Automatically scales the display to show the entire trace. (Can be added as control pins.)

Auto Scale - Automatically scales both axes.

Auto Scale X -  Automatically scales the X axis.

Auto Scale Y -  Automatically scales the Y axis.

Zoom ==> - Scales the display.

In - Magnifies the display to contain only the rectangular region that you selected with the pointer. You select the region after selecting this feature by dragging on the graph area.  This action outlines the information with a "rubber band" box.

Out 2|5|10|20|50|100X - Expands the scales of the display by a factor in both the X and Y directions about the center.

Clear Control ==> - Parameters that specify when to clear the display.

Display - Clears the displayed trace(s).  This parameter may be added as a control input.

Next Curve - Resets the pen to display the next curve in a family of curves (data from the next time the display operates) without clearing the previous curve. Next Curve must be selected (or activated) before each new curve in the family. This parameter may be added as a control input.

Center Markers - If markers are available, brings them to the center of the visible part of the trace.  This is useful if you've scrolled the display and markers are not visible.

Add Right Scale - Adds up to two additional scales to permit traces to have different scale ranges. After adding a right scale, assign a trace to the scale using Traces & Scales button in the object's Properties dialog box (object menu ==> Edit Properties).

Plot - Presents the Plotter Setup control panel.  When OK is pressed, a copy of the device's entire display is plotted on the selected plotter.  This parameter may be added as a control input. If the current Plotter Setup is in Plot to File mode, you may specify the destination file or directory name as string data on the Plot control input. If no control input value is given, the file or directory name specified in Plotter Setup will be used.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the display is cleared at PreRun time.  Default is on.

Clear At Activate - When the check box is selected, the display is cleared at Activate time.  Default is on.

Layout group:

Graph Only - The open view shows only the graph area and the marker information (if it exists).  No buttons, scales, scale names, or traces names are shown. This layout redraws quickest and provides the largest display area.

Scales - The open view shows the graph area, the scales, the scale names, and trace names.  These fields are not recessed and may not be edited. This layout is useful when recessed fields might be distracting, such as printing graphs, or when the fields should be protected from editing on a User Panel.

Scales & Sliders - The open view shows all information about the graph.  It includes the most information and allows you to modify the most elements interactively.  It is the default.

Traces & Scales... - A dialog box that allows you to specify values such as the names, colors, line and point characteristics, minimum values, and maximum values for the traces and/or scales.

 Traces:

  - Name: - The name of the trace that is displayed to the left of the graph area and the name of the corresponding input terminal.
 - Scale: - If you have multiple Y scales, selects which Y scale is to be used for this trace.
 -  Color: - The color of the trace. Each added trace has a different color than the existing traces.  Default for Trace1 is Pen 4 (yellow).
 - Lines: - The format of the line connecting data points. Default is a continuous line.
 - Points: - The symbol that marks each data point. To show unconnected data points, select the single dot Lines format and the desired Points symbol. Default is a dot.

 Scales:

 - Show Scale: - If you have multiple Y scales, a selection (using a check box) to specify if the end points and an axis of each additional right scale is displayed to the right of the graph area.
 -  Scale Name: - The names of the scales.  They may be set here or on the Scales & Sliders layout.
 - Maximum: - The maximum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Minimum: - The minimum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Mapping: -  The way the x and y data is mapped to the display.  The mapping may be linear or log.  To make a log-log plot, change both X and Y axes to Log. Default is Linear.
 - Log Cycles: - The maximum number of decades shown (counting down from the maximum x and y values) when AutoScale is activated.  Log Cycles is only used when the Mapping is Log. Log Cycles is useful when a trace contains a large dynamic range in the data. Default is 4.
 - Scale Colors - The color of any background grid or tic marks. Default is Gray.

Grid Type group:

None - No grid lines are shown.

Tic Marks -  Shows tic marks at the major and minor divisions on all four sides of the graph.

Axis - Shows tic marks at the major and minor divisions on the X and Y axes of the graph.  If the actual axes are scrolled off the graph area, axis lines are drawn on the edge closest to the axes.

Lines - Shows lines at the major divisions and tic marks at the minor divisions.  The X and Y axes are shown as thick lines.

Markers group: - Allows you to find the exact value of a data point on the displayed curve. If the data is plotted on a log scale, the values shown on the marker are the linear data points.

To move markers to a different trace, click on the button to the left of the marker values near the bottom of the display. The button cycles through the different line types and colors of the different traces.

Off - No markers are shown. This selection is the default.

One - One marker is available.

Two - Two markers are available.

Delta - Two markers are available and the x and y differences between them are displayed.

Interpolate - When the check box is selected, you can place markers between the displayed data points. The marker values displayed are calculated by linear interpolation.  Default is off.

Notes

Inputs must be of the type Spectrum, Waveform, or Coord (Scalar or Array 1D).

Input data of type Coord is plotted by simply using its x and y values without first being converted to type Spectrum.

 Add traces with the Add Terminal ==> Data Input object menu selection.  Up to twelve traces are allowed.

A Title control input may be added, which sets the title bar name to the specified text value. This allows programmatic control over the title shown when the display is printed or plotted.

You can add a Traces control input pin. The control input data must be an array of records (or a record scalar if you only want to control one trace).  Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A field named TraceNum with an integer value (1 is the first trace).  The TraceNum field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name

Pen

LineType

PointType

The Name field must have a text value.  The Pen, LineType and PointType values must be integers from 0 to n, where 0 draws nothing and n is the number of choices available.

Refer to "Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

You can add a Scales control input pin to control the scales parameters listed above.  The control input data must be an array of records (or a record scalar, if you only want to control one scale). Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A Text field named Scale with a value X, Y (or Y1), Y2, or Y3. The Scale field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name - Must be a text value.

Min - Must be an integer or real value.

Max - Must be an integer or real value.

Mapping - Must have a text value of  Linear or Log.

Refer to "Using Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

See Also

Magnitude Spectrum, Magnitude vs Phase, Spectrum (Freq), and Edit Default Preferences.


Picture

An object that is used to display a graphic image.

Supported On

All HP VEE Platforms

Use

Use Picture to display a graphic image on the Detail or Panel View. It allows you to tile, stretch, and clip your picture.  The graphics file name may be added as a data input to the Picture object.

Location

Display ==> Picture

Properties

General tab:

Picture group:

Use Picture to choose a graphics file from your file system to be displayed on this object.  The directory shown is the bitmaps directory under the installation directory. To choose a file from another directory, press the Browse ... button. You may add the file name as a data input.

Actual | Centered | Scaled | Tiled
 -- Select Actual to specify automatic resizing of the object to fit the actual size of the graphic image. If the object is resized, the image does not scale, and is displayed in the upper left corner of the object.
 -- Select Centered to specify that the image is kept fixed size and always centered on the object, even if the size of the object is changed.
 -- Select Scaled to specify that the image is scaled as the size of the object is changed.  Rescaling may take a few moments to complete.
 -- Select Tiled to duplicate the image horizontally and vertically on the object to create a "wallpaper" effect.

Preview - Displays the current graphic image selected.

HP VEE examines the file to determine the file format. The currently supported formats are:

Bitmaps (*.BMP) - Windows and UNIX

X11 Bitmap (*.ICN) - Windows and UNIX

GIF87a (*.GIF) - Windows and UNIX

X11 Window Dump (*.xwd) - UNIX only

Default bitmaps are located in the bitmaps directory under the HP VEE program installation directory.

Notes

If the size property is set to a choice other than Actual, the default background color for the object is the same as the default Panel View color so that the background blends into the Panel View.

A background graphic can be added to any UserObject or UserFunction panel, as well as having Picture objects on their panels.

See Also

Label, Beep, and UserObject.


Polar Plot

An object that displays a graphical plot in polar coordinates.

Supported On

All HP VEE Platforms

Use

Use Polar Plot to display a value on a polar scale when separate polar information is available for radius and angle data.

When more than one trace is to be plotted, each execution of the Polar Plot object uses the single angle input data with each trace's Radius input data, therefore, all traces share the single angle input.

Location

Display ==> Polar Plot

Open View Parameters

Auto Scale - Automatically scales the display to show the entire trace.  Auto Scale resets the polar reference location to Center.

R name - The name of the radius scale.

RData1 - The name of the first trace.

Polar Reference Location - Specifies the part of the polar plot displayed.  This is quicker than scrolling to the area. Changing the reference point in the entry field scrolls the point of the display specified (such as Center) to the coordinate specified (such as (0,@0)).

Span: - The vertical dimension of the display. When the origin is centered on the display, the Span is twice the radius. This parameter controls the scaling of the display.  Default is 2.

Ref Radius: - The radius value of the bold graticule circle.

Object Menu

Auto Scale ==> - Automatically scales the display to show the entire trace. (Can be added as control pins.)

Auto Scale - Automatically scales both axes.

Auto Scale X -  Automatically scales the X axis.

Auto Scale Y -  Automatically scales the Y axis.

Zoom ==> - Scales the display.

In - Magnifies the display to contain only the rectangular region that you selected with the pointer. You select the region after selecting this feature by dragging on the graph area.  This action outlines the information with a "rubber band" box.

Out 2|5|10|20|50|100X - Expands the scales of the display by a factor in both the X and Y directions about the center.

Clear Control ==> - Parameters that specify when to clear the display.

Display - Clears the displayed trace(s).  This parameter may be added as a control input.

Next Curve - Resets the pen to display the next curve in a family of curves (data from the next time the display operates) without clearing the previous curve. Next Curve must be selected (or activated) before each new curve in the family. This parameter may be added as a control input.

Center Markers - If markers are available, brings them to the center of the visible part of the trace.  This is useful if you've scrolled the display and markers are not visible.

Add Right Scale - Adds up to two additional scales to permit traces to have different scale ranges. After adding a right scale, assign a trace to the scale using Traces & Scales button in the object's Properties dialog box (object menu ==> Edit Properties).

Plot - Presents the Plotter Setup control panel.  When OK is pressed, a copy of the device's entire display is plotted on the selected plotter.  This parameter may be added as a control input. If the current Plotter Setup is in Plot to File mode, you may specify the destination file or directory name as string data on the Plot control input. If no control input value is given, the file or directory name specified in Plotter Setup will be used.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the display is cleared at PreRun time.  Default is on.

Clear At Activate - When the check box is selected, the display is cleared at Activate time.  Default is on.

Layout group:

Graph Only - The open view shows only the graph area and the marker information (if it exists).  No buttons, scales, scale names, or traces names are shown. This layout redraws quickest and provides the largest display area.

Scales - The open view shows the graph area, the scales, the scale names, and trace names.  These fields are not recessed and may not be edited. This layout is useful when recessed fields might be distracting, such as printing graphs, or when the fields should be protected from editing on a User Panel.

Scales & Sliders - The open view shows all information about the graph.  It includes the most information and allows you to modify the most elements interactively.  It is the default.

Traces & Scales... - A dialog box that allows you to specify values such as the names, colors, line and point characteristics, minimum values, and maximum values for the traces and/or scales.

 Traces:

  - Name: - The name of the trace that is displayed to the left of the graph area and the name of the corresponding input terminal.
 - Scale: - If you have multiple Y scales, selects which Y scale is to be used for this trace.
 - Color: - The color of the trace. Each added trace has a different color than the existing traces.  Default is Pen 4 (yellow).
 - Lines: - The format of the line connecting data points. Default is a continuous line.
 - Points: - The symbol that marks each data point. To show unconnected data points, select the single dot Lines format and the desired Points symbol. Default is a dot.

 Scales:

 - Show Scale: - If you have multiple Y scales, a selection (using a check box) to specify if the end points and an axis of each additional right scale is displayed to the right of the graph area.
 - Scale Name: - The names of the scales.  They may be set here or on the Scales & Sliders layout.
 - Maximum: - The maximum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Minimum: - The minimum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Mapping: -  The way the x and y data is mapped to the display.  The mapping may be linear or log.  To make a log-log plot, change both X and Y axes to Log. Default is Linear.
 - Log Cycles: - The maximum number of decades shown (counting down from the maximum x and y values) when AutoScale is activated.  Log Cycles is only used when the Mapping is Log. Log Cycles is useful when a trace contains a large dynamic range in the data. Default is 4.
 - Scale Colors - The color of any background grid or tic marks. Default is Gray.

Grid Type group:

None - No grid lines are shown.

Tic Marks -  Shows tic marks at the major and minor divisions on all four sides of the graph.

Axis - Shows tic marks at the major and minor divisions on the X and Y axes of the graph.  If the actual axes are scrolled off the graph area, axis lines are drawn on the edge closest to the axes.

Lines - Shows lines at the major divisions and tic marks at the minor divisions.  The X and Y axes are shown as thick lines.

Smith Chart - Displays data in a Smith Chart (also called an "impedance chart").  Marker values are given as real and imaginary impedances.  The bold circle is the "reference radius" and its linear radius value is shown in the lower right corner of the display. The Smith Chart grid and markers only represent properly scaled values if the input data has been normalized. To normalize the data, divide all magnitudes by the characteristic impedance.

Inv Smith Chart - Displays data in an Inverse Smith Chart (also called an "admittance chart").  An Inverse Smith Chart is used in the same way as a Smith Chart except grid and marker values are admittance values rather than impedance values.

Markers group: - Allows you to find the exact value of a data point on the displayed curve. If the data is plotted on a log scale, the values shown on the marker are the linear data points.

To move markers to a different trace, click on the button to the left of the marker values near the bottom of the display. The button cycles through the different line types and colors of the different traces.

Off - No markers are shown. This selection is the default.

One - One marker is available.

Two - Two markers are available.

Delta - Two markers are available and the x and y differences between them are displayed.

Interpolate - When the check box is selected, you can place markers between the displayed data points. The marker values displayed are calculated by linear interpolation.  Default is off.

Notes

Inputs must be Scalar or Array 1Ds that can be converted to the type Real.

Angle units are in the current Trig Mode.

All inputs must be the same size and shape.  Mapping information on the inputs data is ignored.

 Add traces with the Add Terminal ==> Data Input object menu selection.  Up to twelve traces are allowed.

A Title control input may be added, which sets the title bar name to the specified text value. This allows programmatic control over the title shown when the display is printed or plotted.

You can add a Traces control input pin. The control input data must be an array of records (or a record scalar if you only want to control one trace).  Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A field named TraceNum with an integer value (1 is the first trace).  The TraceNum field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name

Pen

LineType

PointType

The Name field must have a text value.  The Pen, LineType and PointType values must be integers from 0 to n, where 0 draws nothing and n is the number of choices available.

Refer to "Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

You can add a Scales control input pin to control the scales parameters listed above.  The control input data must be an array of records (or a record scalar, if you only want to control one scale). Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A Text field named Scale with a value X, Y (or Y1), Y2, or Y3. The Scale field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name - Must be a text value.

Min - Must be an integer or real value.

Max - Must be an integer or real value.

Mapping - Must have a text value of  Linear or Log.

Refer to "Using Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

See Also

Complex Plane, Magnitude Spectrum, Polar Plot, Strip Chart, Waveform (Time), and Edit Default Preferences.


Pop-Up List

See Selection Control.


Print (PC)

A dialog box that allows you to print using standard Microsoft Windows printing conventions.

Supported On

Windows

Use

Use the Print dialog box to select the print quality and number of copies to print from HP VEE for Windows.

Location

File ==> Print Screen

File ==> Print All

File ==> Print Objects

Dialog Information

Printer - Identifies the current Windows system printer.  To change the printer, click on the Setup button to display the Print Setup dialog box.

Print Range - Fixed at All for HP VEE.

Print Quality - Selections are printer specific.  For HP LaserJet Printers, it defaults to 300 dpi (300 dots-per-inch).

Copies - Enter the number of copies to print (default = 1).

Collate Copies - Defaults to off (no checkmark).  Click on the check box to turn Collate Copies on.

When you are done, click on OK if you are ready to print or Cancel to stop without printing. Or, click on Setup if you want to display the Print Setup dialog box, which allows you to change additional parameters.

Notes

Refer to your Microsoft Windows documentation for further information about setting up printers for Windows applications.

See Also

Print All, Print Objects, Print Screen, and Print Setup (PC).


Print All

Outputs the entire detail view of the program to a printer or a print file.

Supported On

All HP VEE Platforms

Use

Use Print All to get hardcopy of your entire program to document it. Print All displays a dialog box that allows you to specify what to output, followed by the printer configuration dialog box.

Print All produces pages that can be assembled to show programs. The output includes a total view of the top-level program, and a page for each object in the program, which shows all views of the object and its Description data. If the object contains transactions, the detailed dialog box describing the transaction is also printed. Each page of the output contains information describing the image's place in the program.

All aspects of the printing process may be controlled independently.

Location

File ==> Print All

Dialog Information

The Print All dialog box displays four fields:

Print Complete Network - If the check box is selected, HP VEE prints the detail view of the entire program (even if the entire detail view is not visible). If the printout will not fit on one page, multiple pages are generated. Default is on. If Include All UserObjects is also selected, complete detail views for each UserObject in the program are also printed. If Include All UserFunctions is also selected, complete detail views for each local UserFunction in the program are also printed.

Print All Objects - If the check box is selected, HP VEE prints a page containing the icon and open view and a description of each object. If the object is a UserObject or a UserFunction, it's panel view will also be printed.  If the object contains transactions, the detailed dialog box describing the transaction is also printed. Multiple objects will be placed on a page if they will fit. If Include All UserFunctions is also selected, the detail view for each local UserFunction in the program is also printed. This option may cause a large number of pages to be output (especially if Include All UserObjects is also selected). The default is off.

Include All UserObjects - If the check box is selected, the objects within each UserObject are printed. If not selected, UserObjects are treated just like other objects in the program. Default is on.

Include All UserFunctions - If the check box is selected, the entire detail view and the object information of each UserFunction (its background functionality) will be included in the printout. Default is on.

When you press OK, the appropriate dialog box appears for your system.  For Microsoft Windows systems, the Print dialog box appears; see Print (PC).  For UNIX systems, the Printer Setup dialog box appears; see Edit Default Preferences.

Notes

Print All takes a few moments to capture the image of your program.  While the image is being captured, the pointer changes to an hourglass.  You can't use HP VEE until the capture is completed (the pointer changes back to a crosshair).

HP VEE saves only one configuration for printing, which stays constant from one printing operation to the next.

If you are using an HP-UX system and you print to a file in xwd format, HP VEE prints to multiple files. To print the files, first convert them to Starbase format, then to PCL. The following HP-UX command is an example of how to do the conversions and print the resulting PCL file to an HP LaserJet printer (or other PCL printer).

cat myfile.xwd | xwd2sb | pcltrans -r300 -e2 | lp -oraw

If you print to a file in PostScript format, HP VEE prints to a single file. To print the file to a PostScript printer, use the following HP-UX command:

lp -d<PostscriptPrinter> filename

where <PostscriptPrinter> is the device name for your PostScript printer.

See Also

Edit Default Preferences, Print (PC), Print Screen, Print Objects, and Save Documentation.


Print Objects

Outputs a page for each of the selected objects, containing all views and Description data, to a printer or a print file.

Supported On

All HP VEE Platforms

Use

Use Print Objects to get hardcopy of selected objects. Print Objects displays a dialog box that specifies information about the printer configuration.

Print Objects will print all views (icon, open, detail, or panel), along with Description data, for each object. If the object contains transactions, the detailed dialog box describing each transaction is also printed.

If no objects are currently selected, the Print Objects menu item will be grayed out.

Location

File ==> Print Objects

Dialog Information

Print Objects displays the appropriate dialog box for your system.  For Microsoft Windows systems, the Print dialog box appears; see Print (PC).  For UNIX systems, the Printer Setup dialog box appears; see Edit Default Preferences.

Notes

Print Objects may take a few moments to capture the image of the objects, particularly if you select a large number of objects. While the image is being captured, the pointer changes to an hourglass. You can't use HP VEE until the capture is completed (the pointer changes back to a crosshair).

HP VEE saves only one configuration for printing, which stays constant from one printing operation to the next.

If you are using an HP-UX system and HP VEE prints to a file in xwd format, you can print the file by first converting it to Starbase format, then to PCL. The following HP-UX command is an example of how to do the conversions and print the resulting PCL file to an HP LaserJet printer (or other PCL printer).

cat myfile.xwd | xwd2sb | pcltrans -r300 -e2 | lp -oraw

If HP VEE prints to a file in PostScript format, you can print it to a PostScript printer using the following HP-UX command:

lp -d<PostscriptPrinter> filename

where <PostscriptPrinter> is the device name for your PostScript printer.

See Also

Print (PC), Print All, Print Screen, Edit Default Preferences, and Select Objects.


Print Screen

Outputs the contents of the HP VEE window to a printer or a print file.

Supported On

All HP VEE Platforms

Use

Use Print Screen to get hardcopy of the portion of your program that is visible on your screen.  Print Screen displays a dialog box that specifies information about the printer configuration.

Location

File ==> Print Screen

Print Screen is also located on the toolbar.

Dialog Information

Print Screen displays the appropriate dialog box for your system. For Microsoft Windows systems, the Print dialog box appears; see Print (PC).  For UNIX systems, the Printer Setup dialog box appears; see Edit Default Preferences.

Notes

Print Screen takes a few moments to capture the image in the window.  While the image is being captured, the pointer changes to an hourglass.  You can't use HP VEE until the capture is completed (the pointer changes back to a crosshair).

The size of the HP VEE display window determines the size of the print area.  To get a large output, maximize the HP VEE window (but too large an image gets clipped). Larger images take longer to scan and print.

HP VEE saves only one configuration for printing, which stays constant from one printing operation to the next.

If you are using an HP-UX system and HP VEE prints to a file in xwd format, you can print the file by first converting it to Starbase format, then to PCL. The following HP-UX command is an example of how to do the conversions and print the resulting PCL file to an HP LaserJet printer (or other PCL printer).

cat myfile.xwd | xwd2sb | pcltrans -r300 -e2 | lp -oraw

If HP VEE prints to a file in PostScript format, you can print it to a PostScript printer using the following HP-UX command:

lp -d<PostscriptPrinter> filename

where <PostscriptPrinter> is the device name for your PostScript printer.

Short Cuts

On UNIX systems, there is a short cut for Print Screen - Just press Shift+Print to cause an immediate Print Screen. The current options specified in Printer Setup will be used. This is useful for printing open dialog boxes.

See Also

Print (PC), Print All, Print Objects, and Edit Default Preferences.


Print Screen Object

An object that prints a copy of the visible portion of the HP VEE window on the system printer.

Supported On

All HP VEE Platforms

Use

Use Print Screen to print a copy of the visible work area while the program is running.

Location

I/O ==> Print Screen

Notes

The printer used by Print Screen (the HP VEE system printer) is configured by:

File ==> Print Setup (Windows only)

File ==> Edit Default Preferences ==> Printer Config (UNIX only)

Print Screen directs output to the configured graphics printer or directory.

A running program is paused when Print Screen operates. It resumes when Print Screen is finished.

See Also

Print (PC), Print All, Print Screen, Print Objects, and Edit Default Preferences.


Print Setup (PC)

A dialog box that allows you to set up your printer using standard Microsoft Windows printing conventions.

Supported On

Windows

Use

Use the Print Setup dialog box to select a printer, the printing orientation, and the paper size and source.

Location

File ==> Print Setup

(Or click on Setup from the Print dialog box.)

Dialog Information

Printer - Select either Default Printer or Specific Printer. If you select Specific Printer, you can select from a list of printers configured on your Windows system.

Paper - Select the paper Size and Source from the lists of supported choices.

Orientation - Select either Portrait or Landscape.

If you click on Properties, an additional (the standard Windows) dialog box prompts you for further selections.

Notes

Refer to your Microsoft Windows documentation for further information about setting up printers for Windows applications.

When running HP VEE under Windows 95, Print True Type as graphics on the Font tab and Use raster graphics on the Graphics tab should be selected for almost all HP VEE printing situations.

When running HP VEE under Windows NT, Print Text as Graphics should be selected in the Advanced Document Options dialog box. This dialog box is accessed from File ==> Print Setup/ Properties/ Options.

See Also

Print (PC), Print All, Print Objects, and Print Screen.


Properties (Object)

The dialog box associated with every object containing selections that affect that object. This page describes only the general properties that are available on every object.  Due to characteristics of some objects, certain options and tabs are not available.

Supported On

All HP VEE Platforms

Use

Use the Properties dialog box to edit the title, set a breakpoint, set object colors and fonts, change the appearance of the icon and the open view, and perform other object-specific actions.

Location

On each object menu ==> Edit Properties ...

Dialog Information

General tab:

Title: - Displays the current title of the object and allows you to edit it.

Open View group:

Show Title Bar - When the check box is selected, the title bar on the open view of the object is displayed.

Show Terminals - When the check box is selected, Show Terminals displays the input and output terminals on the open view. The displayed terminals show the terminal name. To access complete terminal information, double-click on the object's terminal.

Debug group:

Breakpoint Enabled - Enables the breakpoint on the object when the check box is selected; disables the breakpoint on the object when the check box is not selected.  Use Breakpoint Enabled as a debugging tool to stop the execution of the program before this object executes. The object that is next to execute has a yellow border (by default). To continue execution, press the Cont or Step button in the upper right corner of the HP VEE window on the title bar.  When a breakpoint is set in the Properties dialog or selected from the Debug menu, the breakpoint is enabled and the object is highlighted with a orange (by default) border.  When a breakpoint is set on an object in a UserObject (that is displayed as an icon and Show Panel On Execute is off), Step ignores the breakpoint.

Colors tab:

Title group:

Background: - Allows you to select the color of the title bar (open view) and the title (icon view) from a palette.

Text: - Allows you to select the color of the text used in the title bar (open view) and the title (icon view) from a palette.

Object group:

Background: - Allows you to to select the color of the open view of the object from a palette.

Text: - Allows you to select the color of the text used in the open view from a palette. This choice is not available if there is no text in the body of the open view of the object.

Fonts tab:

Title group:

Text: - Allows you to select the font of the title bar (open view) and the title (icon view) from the list of available fonts on your system.

Object group:

Text: - Allows you to select the font of the text used in the open view from the list of available fonts on your system. This choice is not available if there is no text in the body of the open view of the object.

Automatically Resize Object on Font Change - When the check box is selected, you've changed a font, and pressed OK, the object resizes to fit the new font. When the check box is not selected, the object remains the same size, no matter how large or small the font is.  This choice is not available if there is no Object Text font selction.

Icon tab:

Show Title - When the check box is selected, the object name on the icon view of the object is displayed. When the Show Title check box is not checked, the object name is not displayed on the icon. This feature is generally used if you want only a bitmap to be displayed on the icon.

Picture - Use Picture to choose a graphics file from your file system to be displayed on this icon.

The directory shown is the bitmaps directory under the installation directory. To choose a file from another directory, press the Browse ... button.

Select Centered to specify that the image is kept fixed size and always centered in the icon, even if the size of the icon is changed.

Select Scaled to specify that the image is scaled as the size of the icon is changed.

Preview - Displays the current graphic image selected.

HP VEE examines the file to determine the file format. The currently supported formats are:

Bitmaps (*.BMP) - Windows and UNIX

X11 Bitmap (*.ICN) - Windows and UNIX

GIF87a (*.GIF) - Windows and UNIX

X11 Window Dump (*.xwd) - UNIX only

Default bitmaps are located in the bitmaps directory under the HP VEE program installation directory.

Appearance tab: (available only from objects on the panel view)

Border group:

None | Flat | Sunken | Raised - Select the border characteristics of the object displayed on the panel.

Size & Position group:

X: - The horizontal location (in pixels) of the upper left corner of the object. 0 is located at the upper left of the work area.

Y: - The vertical location (in pixels) of the upper left corner of the object. 0 is located at the upper left of the work area.

Width: - The distance between the left and right sides of the object. This number includes the width of any object border.

Height: - The distance between the top and bottom sides of the object. This number includes the width of any object border.

Notes

Any changes you make in the Properties dialog box from the panel view of the object, only affect the panel view of that object. The Properties choices available from the panel view of an object are a subset of the detail view choices.

Most objects have additional options specific to that object on their Properties dialog box (which is accessed via Edit Properties on the object menu).  Refer to information on that object for details about those object properties.

Short Cuts

You can quickly access the Properties dialog box by double-clicking on the object's title bar (available in the open view).

See Also

Edit Default Preferences, Object Menu, and Properties (Program).


Properties (Program)

The dialog box associated with the program properties that contains selections that affect the program.

Supported On

All HP VEE Platforms

Use

Use the Properties dialog box to set the program title, set colors and fonts, or trig mode for this program.

Location

File ==> Edit Properties ...

Dialog Information

General tab:

Title: - Displays the current title of the program and allows you to edit it. This title is displayed in the title bar of the program when the program is run with the -r command-line option. The default is Untitled.

Trig Mode group:

Degrees | Radians | Gradians - specifies the trigonometric units used in the main program. If you select Radians, your trigonometric calculations will execute the fastest. The Trig Mode used by UserObjects is not affected by this setting.

Convert Infinity to 9.9E37 on Binary Reads - If the check box is selected, when an instrument (or a file containing instrument data) returns +INF (+infinity), -INF (-infinity), or NAN (not a number) on a binary read, HP VEE converts it. This conversion will slow down I/O somewhat on every binary read.

You may want to select the check box if you're getting data from an instrument that follows the SCPI standard and you're outputting that data to a graphical display object. If the check box is not selected, and +INF, -INF, or NAN is sent to a display object, you will get a floating-point exception error. If the check box is selected, you'll be aware of the +INF, -INF, or NAN value by a spike in the graph.

Colors tab:

Title group:

Background: - Allows you to select the color of the program's main title bar from a palette.

Text: - Allows you to select the color of the text used in the program's main title bar from a palette.

Panel View group: (Available only when Panel View exists.)

Background: - Allows you to select the color of the main panel view background from a palette.

Fonts tab:

Title group:

Text: - Allows you to select the font of the main title bar of the program from the list of available fonts on your system.

Panel tab: (Available only when Panel View exists.)

Grid Size: - Specifies the number of pixels between squares on the alignment grid for the panel view. An object's upper-left corner snaps to the grid as the object is moved. An object's lower-left corner snaps to the grid as the object is resized.

Picture - Use Picture to choose a graphics file from your file system to be displayed on the background of the main panel view.

The directory shown is the bitmaps directory under the installation directory. To choose a file from another directory, press the Browse ... button.

Select Actual to specify resizing the panel view to fit the actual size of the graphic image. If the panel view is resized, the image does not scale, and is displayed in the upper left corner of the panel view.

Select Centered to specify that the image is kept fixed size and always centered in the panel view.

Select Scaled to specify that the image is scaled to fit the size of the panel view.

Select Tiled to duplicate the image horizontally and vertically on the panel view background to create a "wallpaper" effect.

HP VEE examines the file to determine the file format. The currently supported formats are:

Bitmaps (*.BMP) - Windows and UNIX

X11 Bitmap (*.ICN) - Windows and UNIX

GIF87a (*.GIF) - Windows and UNIX

X11 Window Dump (*.xwd) - UNIX only

Default bitmaps are located in the bitmaps directory under the HP VEE program installation directory.

See Also

Edit Default Preferences and Properties (Object).


Pulse Generator

An object that generates and outputs a pulse waveform.

Supported On

All HP VEE Platforms

Use

Use Pulse Generator to generate a pulse waveform using your own specifications.

Location

Device ==> Virtual Source ==> Pulse Generator

Properties

General tab:

Error Checking group:

Error on Aliasing - If the check box is selected, returns an error if the period of any high or low pulse state is less than twice the sampling period (Time Span/Num Points). The purpose of this evaluation is to determine whether the points being generated provide an accurate representation of the pulse being generated. An unselected check box generates a literal presentation of points. Default is on.

Open View Parameters

All of these parameters may be set from the open view or added as data inputs.

Frequency -  The rate in Hertz at which pulses are generated.

Pulse Width - The width, in time, of the pulses.  The time is measured from the mid-point of the low-to-high transition to the mid-point of the high-to-low transition.  Pulse width must be a positive Real number.  Default is 5m seconds.

Pulse Delay - The time from the start of the waveform to the beginning of the first transition.  Pulse Delay must be a positive Real number.  Default is 0.

Thresholds - Determine the thresholds used by Rise Time and Fall Time.
 Low Threshold = (first percentage) * (high - low)
 High Threshold = (second percentage) * (high - low)

0%-100%

10%-90%

20%-80%

Rise Time - The time, in seconds, to make the transition from the low threshold to the high threshold. Rise Time must be a positive Real number.

Fall Time - The time, in seconds, to make the transition from the high threshold to the low threshold. Fall Time must be a positive Real number.

High - The value of the waveform when the pulse is active. High must be a Real number.  Default is 1.

Low - The value of the waveform when the pulse is not active. Low must be a Real number.  If the value of Low is greater then the value of High the pulse generated is inverted. Default is 0.

Burst Mode - Enables or disables multiple pulses being generated at the Frequency.  When Burst Rate is OFF, only one pulse is generated at the Frequency.  When Burst Mode is On, a Burst Count number of pulses is generated at the Frequency.  Default is OFF.

Burst Count - The number of pulses generated at the Rep Rate.  Burst Count must be a positive integer. Default is 2.

Burst Rep Rate - The rate at which the Burst Count pulses are generated.  Burst Rep Rate must be a Real number greater than 1/pulse width.

Time Span: - The duration of the waveform (in seconds). Default is 20m seconds.

Num Points: - The number of points in the waveform. The time between points in the waveform is Time Span/numPoints.  Num Points must be positive. Default is 256.

See Also

Build Arb Waveform, Build Waveform, Comparator, Function Generator, and Noise Generator.


Radio Buttons

See Selection Control.


Raise Error

Generates a user-defined error condition with associated error number (escape code) and text message. (This object was formerly called Escape.)

Supported On

All HP VEE Platforms

Use

Use Raise Error to stop execution of the current UserObject and generate an error that may be trapped by the error pin of an enclosing UserObject or the main work area. If the error is not trapped (by an error pin on a UserObject) and the escape code is non-zero, Raise Error stops the program and generates an error dialog box.

Raise Error may also be used in a UserFunction to generate an error trapped by an error pin on the object that called the UserFunction.

Location

Flow ==> Raise Error

Open View Parameters

Code - An error number; it must be an Int32. HP VEE uses error numbers between 300 and 1,000; it is best to use error numbers exclusive of this range. You can enter the Code in the entry box or add it as a data input.

Message - The text message to output. You can enter the Message in the entry box or add it as a data input.

Notes

If HP VEE is invoked with the -r command line option, an untrapped error generated by Raise Error causes HP VEE to terminate.  The Code and Message are written to stderr and 255 is returned to the operating system as the exit code.

To generate a specific exit code, use the Stop object.

See Also

Error Output (Object Menu), Create UserObject, Exit UserObject, Exit Thread, Start, and Stop.


Random Number

An object that outputs a random number.

Supported On

All HP VEE Platforms

Use

Use Random Number to get a uniform random distribution.

Location

Device ==> Random Number

Open View Parameters

Range from - The lower limit of the random number distribution (inclusive). Range From may be added as an input.  Default is 0.

Range to - The upper limit of the random number distribution (exclusive). Range To may be added as an input. Default is 1.

See Also

Random Seed.

randomize (x,low,high) and random (low,high) (under Math Syntax).


Random Seed

An object that accepts a new seed for the random number generator.

Supported On

All HP VEE Platforms

Use

Use Random Seed to get a set of repeatable random numbers from Random Number.

Location

Device ==> Random Seed

Notes

If you have more than one Random Seed operating in your program, the Random Seed resets the seed value for the random number generator each time the Random Seed object operates.

The same Random Seed value is used for the Random Number object and the random(low,high) and randomize(x) functions.

See Also

Random Number.

randomize (x,low,high) and random (low,high) (under Math Syntax).


Real

An object that outputs a constant Real number.

Supported On

All HP VEE Platforms

Use

Use Real to set a real constant or to get user input. Click on the entry field to enter a value.

Location

Data ==> Constant ==> Real

Example

To use Real as a prompt on a panel view, change the name of the Real object to a prompt such as Enter the offset:. The user fills in the requested information in the entry field.

Type in 100M*PI to have the Real Constant evaluate this formula and display the Real number answer.

Properties

General tab:

Configuration group:

Scalar | 1D Array - Sets the initial data shape of the value(s) to be output with this object.

Size: -  When 1D Array is selected, Size sets the length of the array.

Size Fixed - When the check box is selected, the array cannot have lines added or deleted. This selection is only available if 1D Array is selected.

Execution group: (disabled when Configuration is 1D Array)

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is 0.

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Number tab:

Global Format - Use the default format. Default is on.

Real: - If Global Format is off, specify the number format for real numbers to be displayed on this object. The choices are Fixed (e.g. 98.6000), Scientific (e.g. 9.8600E+01), Engineering (e.g. 98.6000E0), Standard (e.g. 98.6), and Time Stamp (e.g. Sat 01/Jan/1994 17:01:38). Default is Standard.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin.

Control inputs may be added for Default Value and Reset. The Default Value input allows you to programmatically change the current value(s).  This input requires a Real value, either a Scalar or an Array 1D.  The Constant is reconfigured to match the shape of the incoming data.  The Reset input allows you to programmatically set the value(s) to zero.  If the Constant is configured as an Array 1D, all values are set to zero.  The actual data on the Reset input is ignored.

Note that the Initial Value field is always a scalar, even if Real is configured to be an array.

See Also

Alloc Real, Complex, Constant, Coord, Date/Time, Selection Control, Integer, PComplex, Text, and Toggle Control.


Real Input

An object that displays a pop-up dialog box that accepts real number input.

Supported On

All HP VEE Platforms

Use

Use Real Input to prompt the user to enter a real number, accept the number, and check the number with a user-defined test for validity.

In the pop-up dialog box, when the OK button is pressed, the real number input by the user is output on the Value output pin. When the Cancel button is pressed, a 1 is output on the Cancel output pin.

Location

Data ==> Dialog Box ==> Real Input

Open View

Prompt/Label - The string that prompts the user to fill in the text field. You may add this parameter as a data input. Default is Enter Real Value:

Default Value - The text that is in the dialog's input field before anything is typed. If the user presses OK without typing anything, this text is output. You may add this parameter as a data input. Default is 5

Value Constraint - The equation that tests the input text for validity. You can use any mathematical expression or call a UserFunction. You may add this parameter as a data input. Default is 0<=value AND value<=10; which means it checks for user input of a value between 0 and 10. To accept any value, use the exression 1.

Error Message -  The text that is output in a message box if the user input does not meet the Value Constraint. You may add this parameter as a data input. Default is You must enter a real number between 0 and 10.

Properties

General tab:

Pop-Up Panel group:

Pop-Up Title: - Sets the text shown in the title bar of the pop-up dialog box. Default is Real Input.

Show Pop-Up Title Bar - If the check box is selected, the title bar of the pop-up dialog box and the corresponding error dialog box is shown. If the check box is not selected, the dialog boxes pop up without title bars. Default is on.

Automatic Timeout group:

Timeout Enabled - When the check box is selected, a Timeout output pin is added to the object. Default is off.

Pop-Up Duration: - Sets the length of time the pop-up dialog box is displayed. After this period of time, the dialog box times out and a value of 1 is output on the Timeout output pin. No other outputs pins have data if the Timeout pin executes. This field is only available when the Timeout Enabled check box is selected. Default is 60.

Button Labels group: - Allows you to set alternative wording for the button labels.  This is especially useful if your users are not native English speakers.  The function of the buttons remains the same, no matter what the label.

The buttons are:

OK:

Cancel:

Input Field Attributes group:

Password Masking Enabled - When the check box is selected, the input text is echoed as asterisks (*). This feature is useful when the operator is entering sensitive data such as a password.  The string that is output on the Value output pin is not masked.  Default is off.

Minimum Number of Displayed Characters - Sets the input field width to hold at least this number of characters. This is useful when you need a bigger field so a long number can be input. Default is 20.

Colors tab:

Pop-Up Panel group:

Title Bar Background: - Allows you to select the color of the active title bar for the pop-up dialog box and the error dialog box from a palette.

Title Bar Text: - Allows you to select the color of the text in the active title bar for the pop-up dialog box and the error dialog box from a palette.

Prompt Text: - Allows you to select the color of the Prompt/Label text and the Error Message text from a palette.

Fonts tab:

Pop-Up Panel group:

Title Bar Text - Allows you to select the font of the title bars for the pop-up dialog box and the error dialog box from the list of available fonts on your system.

Prompt Text - Allows you to select the font of the Prompt/Label text the Error Message text from the list of available fonts on your system.

Button Text - Allows you to select the font of the text displayed on the buttons of the pop-up dialog box and the error dialog box from the list of available fonts on your system.

The pop-up dialog box and the error dialog are automatically sized based on the font type and size.

Notes

The default location of the pop-up dialog box is approximately at the center of the work area. If you move it, next time it will pop-up to the new location.

The title text of the error message dialog box is the same as the Real Input object title.

To respond to the pop-up dialog box using only the keyboard: when the dialog box pops up, start typing and use Enter and Esc keys. Use the Tab key to move between the input field and the buttons and then select the buttons with the Space bar.

The pop-up dialog box and the error dialog box are only displayed while the program is running. While the pop-up dialog box is displayed, the entire program pauses execution, then continues when the dialog box is closed.

See Also

File Name Selection, Integer Input, List Box, Message Box, Text Input, and UserObject.


Real Knob

An object that outputs the Real value of the knob.

Supported On

All HP VEE Platforms

Use

Use Real Knob to input values. Real Knob is particularly useful on a panel.

Location

Data ==> Continuous ==> Real Knob

Open View Parameters

The open view displays fields for the knob's current value, minimum, and maximum values, and the knob control.

Properties

General tab:

Layout group:

Horizontal | Vertical - Sets the orientation of how the Knob is displayed.

Show Digital Display - If the check box is selected, the current value of the knob is displayed in an edit field at the bottom of the open view of the object. When you modify this value, the position of the knob changes. Default is on.

Detents: -  Sets the distance between the values that are available from the Knob. If other values are entered, they are rounded to the nearest detent.

Execution group:

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is 0.

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Number tab:

Global Format - Use the default format. Default is on.

Real: - If Global Format is off, specify the number format for real numbers to be displayed on this object. The choices are Fixed (e.g. 98.6000), Scientific (e.g. 9.8600E+01), Engineering (e.g. 98.6000E0), Standard (e.g. 98.6), and Time Stamp (e.g. Sat 01/Jan/1994 17:01:38). Default is Standard.

The number format does not affect the tic mark values.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin.

Control inputs may be added for Default Value, Reset, MaxValue, MinValue, and Detents:

The Default Value input allows you to programmatically change the current value.  This input requires a Real Scalar value.

The Reset input allows you to programmatically set the value to zero. The actual data on the Reset input is ignored.

The MaxValue and MinValue inputs allow you to programmatically set the min and max value fields.  These inputs require a Real Scalar value.

The Detents input allows you to programmatically set the detent value.

See Also

Complex, Selection Control, Integer, Integer Slider, Integer Knob, PComplex, Real, Real Slider, Text, and Toggle Control.


Real Slider

An object that outputs the Real value of the slider.

Supported On

All HP VEE Platforms

Use

Use Real Slider to input values. Real Slider is particularly useful on a panel.

Location

Data ==> Continuous ==> Real Slider

Open View Parameters

The open view displays a field for min, max, slider value, and slider control.

Properties

General tab:

Layout group:

Horizontal | Vertical - Sets the orientation of how the Slider is displayed.

Show Digital Display - If the check box is selected, the current value of the slider is displayed in an edit field at the top of the open view of the object. When you modify this value, the position of the slider control changes. Default is on.

Detents: -  Sets the distance between the values that are available from the Slider. If other values are entered, they are rounded to the nearest detent.

Execution group:

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is 0.

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Number tab:

Global Format - Use the default format. Default is on.

Real: - If Global Format is off, specify the number format for real numbers to be displayed on this object. The choices are Fixed (e.g. 98.6000), Scientific (e.g. 9.8600E+01), Engineering (e.g. 98.6000E0), Standard (e.g. 98.6), and Time Stamp (e.g. Sat 01/Jan/1994 17:01:38). Default is Standard.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin.

Control inputs may be added for Default Value, Reset, MaxValue, MinValue, and Detents:

The Default Value input allows you to programmatically change the current value.  This input requires a Real Scalar value.

The Reset input allows you to programmatically set the value to zero. The actual data on the Reset input is ignored.

The MaxValue and MinValue inputs allow you to programmatically set the min and max value fields.  These inputs require a Real Scalar value.

The Detents input allows you to programmatically set the detent value.

See Also

Complex, Selection Control, Integer, Integer Knob, Integer Slider, PComplex, Real, Real Knob, Text, and Toggle Control.


Record Constant

An object that outputs a constant of the Record data type.

Supported On

All HP VEE Platforms

Use

Use the Record Constant object to define and build a Record constant, or to interactively edit an existing record or array of records.

Location

Data ==> Constant ==> Record

Open View Parameters

In the open view there is a Field name button and a Value button (or type-in field) for every field in the record. (By default, the Field name buttons A and B correspond to the Value fields "Text field" and "1.25", respectively.) If the record is an Array 1D (that is, Array Elements is non-zero), there is an additional field in the open view for the index into the array (0, 1, etc.) To step through the array values, First, Prev, Next, and Last buttons are provided.

Field name -- A button that, when pressed, pops up a dialog box that allows the user to re-name the record field, and change its type and shape. An error will occur if you attempt to rename a field to an existing field name. Field names are not case sensitive (lowercase and uppercase letters are equivalent). When changing the data type, HP VEE will attempt to coerce the data into the new data type, subject to the existing rules about data type coercion. Refer to the section "Converting Data Types on Input Terminals" in How to Use HP VEE.

Value -- Allows you to edit the values in the field. If the field is a scalar container of a data type other than Enum, Value is a type-in field. That is, you can click on the field and type in the desired value. If the field is an Enum or Array 1D container, the Value field is a button, which brings up a dialog box to allow you to select the values. If the field is an array of two or more dimensions, the values may not be edited.

Object Menu

Add Record -- Adds a record at the end of the record array. The new record is a copy of the last record in the array. (This menu selection is not active for record scalars.)

Insert Record -- Inserts a record at the position in the record array that you are currently viewing. The new record is a copy of the record that you were viewing. (This menu selection is not active for record scalars.)

Delete Record -- Deletes the record that you are currently viewing from the array. (This menu selection is not active for record scalars. Also, for record arrays, the selection is active only if there is more than one record in the array.)

Add Field -- Adds a new field to the record at the end of the field list. A dialog box will allow you to define the name, type, and shape of the new field.

Insert Field -- Inserts a new field to the record at a specified position. A dialog box allows you to define the name, type, and dimension of the new field.  A second dialog box allows you to specify the insertion point.

Delete Field -- Allows you to delete record fields. A dialog box will list the available fields to delete. This selection is available only if the record has more than one field.

Properties

General tab:

Configuration group:

Scalar | 1D Array - Sets the initial data shape of the value(s) to be output with this object.

Size: -  When 1D Array is selected, Size sets the length of the array.

Size Fixed - When the check box is selected, the array cannot have lines added or deleted. This selection is only available if 1D Array is selected.

Schema Fixed - When the check box is selected, the format ("schema") of the record is fixed, and may not be modified.  This is useful when allowing users to modify Record values interactively on a pop-up panel.

Number tab:

Select Field to Edit: - Allows you to select the field name corresponding to the field to change the number format of.

Number Format for Field group:

Global Format - Use the default format. Default is on.

Integer: - If Global Format is off, specify the number format for integer numbers to be displayed on this object. The choices are Decimal (e.g. 42), Octal (e.g. #Q52), Hexadecimal (e.g. #H2a), and Binary (e.g. #B00101010). Default is Decimal.

Real: - If Global Format is off, specify the number format for real numbers to be displayed on this object. The choices are Fixed (e.g. 98.6000), Scientific (e.g. 9.8600E+01), Engineering (e.g. 98.6000E0), Standard (e.g. 98.6), and Time Stamp (e.g. Sat 01/Jan/1994 17:01:38). Default is Standard.

Notes

Control inputs may be added for Default Value and Reset. The Default Value input allows you to programmatically change the current value(s).  This input requires a Record value, either a Scalar or an Array 1D.  The Constant is reconfigured to match the shape of the incoming data.  The Reset input allows you to programmatically set the value(s) to zero.  If the Constant is configured as an Array 1D, all values are set to zero. (Numeric fields become zero and Text fields become null strings.) The actual data on the Reset input is ignored.

The Default Value pin is useful for editing large record arrays (for example, a record array "pulled in" with the From DataSet object). Just send the record array into the Default Value pin to set the initial value for the Record Constant. You can then view and interactively edit the entire record. The data values may be changed, and also the type, shape, and mappings of the fields may be changed (unless the field is itself a record). Once you have edited the record, it can be output to a new dataset or file (using To DataSet or To File). The Record Constant object does not allow you to edit a field that is itself a record -- it will only allow you to view the field and its data.

Note that the Record Constant object does not allow you to create a record of records. That is, the Record Constant does not allow you to add a field that is a record.  However, all other HP VEE record devices (such as Build Record and Set Field) do allow this. Recursion is allowed up to the limit of available user memory. That is, a record may have a field that is a record, which has a record field within it, and so forth. The shape of a record container may only be either a scalar or a one-dimensional array.

See Also

Build Record, From DataSet, Merge Record, Set Field, To DataSet, and UnBuild Record.


Repeat

A menu item.

Supported On

All HP VEE Platforms

Use

Use Repeat to access the following iterators and iteration-control objects:

For Count

For Range

For Log Range

Until Break

On Cycle

Next

Break

Location

Flow ==> Repeat ==>

Notes

You can nest iterators.

Execution of the subthread hosted by the iterator continues until one of the following occurs:

All objects that can, have operated. The subthread iterations have been completed.

A Break object operated.  The subthread is deactivated and the sequence output pin is activated.

A Next object operated.  The subthread is deactivated and the iteration counter is incremented.

When the iteration subthread has completed, the sequence output pin is activated.

See Also

Break, For Count, For Range, For Log Range, Next, On Cycle, and Until Break.


Replace

Replaces this object and its connections with another object.

Supported On

All HP VEE Platforms

Use

Use Replace to replace an object while retaining the connections.

Replace puts a copy of the object that is replaced in the Paste buffer.

Location

On each object menu ==> Replace

Notes

Each Replace overwrites the previous content of the Paste buffer with the original object.

Pins are connected from top to bottom. If there were more lines connected to the original object than there are pins on the new object, the extra lines are deleted. If there were fewer lines connected to the original object than pins on the new object, the bottommost pins on the new object are left unconnected.

Replace works only within a single context. For example, to Replace an object in a UserObject, first place the replacement object in the UserObject context.

Replace is not available unless an object is connected to one or more objects.

See Also

Object Menu, Cut (Object Menu), Copy, and Paste.


Restore (Object Menu)

Restores the object to its open view.

Supported On

All HP VEE Platforms

Use

Use Restore to show the open view of an object.

Location

On the object menu ==> Restore

Notes

Restore is available from the icon view of all objects.

From a maximized UserObject, Restore will resize the open view to its non-maximized size.

Short Cuts

To restore an object, double-click on the icon.

See Also

Minimize (Object Menu).


Resume

Causes all suspended threads to continue running after the program has been paused.

Supported On

All HP VEE Platforms

Use

Use Resume to resume program execution after the program has been paused.  The program pauses if the Pause button is pressed, if a breakpoint is reached, or if Step is used.

Resume is primarily used to continue execution between breakpoints and is usually used in conjunction with the other debugging tools.

Location

Debug ==> Resume

Resume is also located on the toolbar.

Notes

The Resume button on the toolbar is the same as the Run button. Resume is not available if Stop has been pressed.

See Also

Pause, Run, Start, Step, Stop, and Toggle Breakpoints.


Run

Starts the execution of all threads in a program.

Supported On

All HP VEE Platforms

Use

Use Run to begin the program execution.  If Start objects are used on threads in the main work area, execution begins with those objects.

When you select Run, HP VEE PreRuns all threads to clear data and check for feedback.

Location

Debug ==> Run

Run is also located on the toolbar.

Notes

If you have several threads in your program and want to run only one of them, connect a Start object to that thread. Press the Start object on the thread you want to run.

Short Cuts

Press CTRL+G to run the program.

See Also

Pause, Resume, Start, Step, and Stop.


Sample & Hold

An object that stores the most recently received data container. Activating the XEQ pin outputs the stored container.

Supported On

All HP VEE Platforms

Use

Use Sample & Hold to capture the last data present on the input pin when XEQ is activated.

Location

Flow ==> Sample & Hold

Example

Use Sample & Hold to preserve data generated by objects in subsequent thread segments of either If/Then/Else or Conditional flow objects that are also in an iteration sub-thread.

For an example and further information about using Sample & Hold, see the How to Use HP VEE manual, in the chapter "Some General Techniques", in the section "Controlling Program Flow".

Notes

The Sample & Hold is generally not needed unless both iteration and flow branching are present in a thread. Objects will normally retain the most recently received data container on their input pin(s) by default.

Only the most recent data container arriving at the InData input will be saved by the Sample & Hold.  As new data arrives, it over-writes the existing data.

If the Sequence In pin is connected, both the InData input and the Sequence In pin must be activated before a data container will be accepted to replace the existing stored data.

The Sample & Hold operates when the XEQ pin is activated.  Propagation will proceed as far as possible before the Sequence Out pin is activated.

The contents of the Sample & Hold are cleared by PreRun and Activate.  If XEQ is activated with no stored data, a nil (empty) container is generated.

Because XEQ is required on the Sample & Hold, you cannot delete it or add another XEQ pin.

Multiple XEQ activations each re-send the most recent stored data if no new data has arrived.

See Also

Repeat, If/Then/Else, Conditional, UserObject.


Save

Copies the program in the work area to a previously specified filename.

Supported On

All HP VEE Platforms

Use

Use Save periodically to write your program to a file.

Location

File ==> Save

Save is also located on the toolbar.

Notes

Save writes your program to the file name specified in Save As or Open. If a program was created from a New work area and no Save As was done, Save prompts you for a file name.  As the program is being written, the pointer changes to a pencil.

Save does not ask for confirmation when overwriting a file.

Short Cuts

Press CTRL+S to save a program.

See Also

Merge, Open, Save As, and Save Objects.


Save As

Copies the program in the work area to a specific file.

Supported On

All HP VEE Platforms

Use

Use Save As to specify a file name for your program and write the program to that file.

Location

File ==> Save As

Notes

If you attempt to overwrite an existing file, you are asked to confirm that action. As the program is being written, the pointer changes to a pencil.

The file name specified in Save As becomes the name used in subsequent Save operations.

The current file is saved as filename.bak; the new saved version is just filename.  Note that if the filename already includes an extension (such as .vee) that extension is replaced with .bak.

Short Cuts

Press CTRL+W to Save As.

See Also

Merge, Open, Save, and Save Objects.


Save Documentation

Creates a text file containing a description of the current program.

Supported On

All HP VEE Platforms

Use

Use Save Documentation to get a listing of your program for documentation purposes. The output file from Save Documentation includes the following information: 	Source file name.

Documentation date.

Current version number of HP VEE.

Save file version.

System preferences (except colors and fonts).

Object names and types.

Open view information on objects (such as a Constant value or transactions).

Object description text entered from Edit Description.

Location

File ==> Save Documentation

Notes

Save Documentation replaces the veedoc utility.

Do, Junction, and Gate objects are not included in the Save Documentation file unless they have description text entered from Edit Description.

The numbers assigned to each object in the Save Documentation file correspond to the numbers printed next to the object when Print All is used.

Because constant data is printed on a single line, arrays and records are not printed so that the file can be read by commonly-used word processors.

The saved program file and the HP VEE defaults file (.veerc or VEE.RC) contain color and font information for the program.

See Also

Edit Default Preferences, Print All, and Save.


Save Objects

Copies the selected objects to a specific file.

Supported On

All HP VEE Platforms

Use

Use Save Objects to specify a file name for a set of objects and write the objects to that file.  Save Objects is generally used to save a group of objects into a library of common functions that is included in other programs.

Location

File ==> Save Objects

Notes

Use Save Objects to copy a set of objects from your program that you use in other programs.  Save Objects allows you to build up a library of your own functions. As the objects are being written, the pointer changes to a pencil.

If you attempt to overwrite an existing file, you are asked to confirm that action.

See Also

Merge, Open, Save, and Select Objects.


Secure

Locks the panel view of a program or UserObject.

Supported On

All HP VEE Platforms

Use

Use Secure to lock the main panel view or a UserObject after it is completed and before users have access to it. Access to the detail view is no longer available.

When you use Secure, you are prompted to save the unsecured program.  After the unsecured program is saved, save the secured program under another name.  There is no UnSecure, so be sure to save your program or UserObject before securing it.

Location

UserObject (Object Menu) ==> Secure

File ==> Secure

Notes

A secured program loads and runs faster than an unsecured program.

You can Secure an individual UserObject panel view, too.

See Also

UserObject.


Selection Control

Object that outputs an enumerated value from a user-defined list. Selection Control objects have a variety of display formats, but they all work the same way.

Supported On

All HP VEE Platforms

Use

Use Selection Control objects to set an enumerated constant or to get user input that is chosen from a list of acceptable choices. The first item in the list is assigned ordinal position 0; the nth item in the list is assigned ordinal position n-1.

Location

Data ==> Selection Control ==>

Object Menu

Edit Enum Values - Allows you to add valid selections to the enumerated list of choices or edit existing choices. Add a choice, and then press the Tab key to move to the next entry in the list.  You can move back up in the list by pressing Shift+Tab.

Properties

General tab:

Format group: - Specifies the appearance of the Selection Control object and the method of selecting a choice. The default format is whichever object you chose from the menu.

Radio Buttons - The choices are all displayed.  The selection is made when the radio button next to the choice is pressed.

Cyclic Button - The choices cycle as the button field is clicked on.  This choice is best used if there are two choices such as On/Off or Stop/Go or in a dialog box where the choice is confirmed by another button.

List - The choices are presented in a list box with scroll bar if all choices can't be shown at once The selection is made when the choice is clicked on.

Drop-Down List - The choices are presented in a list box that drops down when the arrow to the right of the field is pressed. The selection is made when the choice is clicked on.

Pop-Up List - The enumerated choices are presented in a list box in a dialog box that is displayed when the button field is pressed.  The selection is made when the choice is clicked on and OK is pressed.

Slider List - The enumerated choices are presented as tic labels on a slider. The selection is made when the slider button or the label is clicked on.

Execution group:

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Slider Layout group:

Horizontal | Vertical - Sets the orientation of how the slider is displayed.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is the first selection from the list.

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting an initial value is the Default Value control pin.

Control inputs may be added for Default Value, Reset, and Enum Values:

The Default Value input allows you to programmatically change the current value.  This input requires a Text Scalar value (or any data that can be converted to a Text Scalar, including an Enum). This value must match one of the possible Enum values (case sensitive).

The Reset input allows you to programmatically set the current value to the first (0 ordinal) value in the list. The actual data on the Reset input is ignored.

The Enum Values input allows you to programmatically set the list of possible values for the Selection Control.  This input requires Enum, a Text Array 1D, or any data that can be converted to a Text Array.

Enum containers are automatically converted into Text for many objects, including Collector, Concatenator, Sliding Collector, and most Math objects.

To get the ordinal value of the selected value, rather than the selected string, use ordinal().

Example

To use a Selection Control as a prompt on a user panel, change the name of the object to a prompt such as "Choose the type of test:".

See Also

Complex, Constant, Coord, Date/Time, Integer, PComplex, Real, Text, Toggle Control, and List Box.

ordinal(x) (under Math Syntax).


Select Objects

Selects a set of objects to be acted on.

Supported On

All HP VEE Platforms

Use

Before you use the object features in the Edit menu, you must select a set of objects to be acted on. After selecting Select Objects, rubberband select the objects by dragging an outline box around the objects to select. After you release the mouse button, then choose an editing function such as Cut or Copy.

When an object is selected, it has a shadow highlight.

Location

Edit ==> Select Objects

Notes

Any objects previously selected are deselected when Select Objects is used.

If you select objects by mistake, deselect all objects by clicking on the work area. Or press the CTRL key while clicking on the unwanted objects to deselect them.

Only objects in the same HP VEE context (UserObject, UserFunction, etc) can be selected together.

Short Cuts

Press CTRL key while clicking the left mouse button on objects. Or press the CTRL key while dragging (with the left mouse button down) to rubberband select objects.

These shortcuts allow you to toggle the selection of objects.  These methods do not deselect all previously selected objects before selecting other objects (as Select Object does).

Clicking the left button on an object selects it, however it also deselects any objects already selected.

See Also

Add To Panel, Clone, Copy, Create UserObject, Cut, Move Objects, Replace, and Paste.


Sequencer

An object that executes a series of sequence transactions, each of which may call a UserFunction, Compiled Function, or Remote Function.

Supported On

All HP VEE Platforms

Use

Use the Sequencer to control the order of calling of a series of UserFunctions, Compiled Functions, Remote Functions or any other HP VEE function by specifying a series of sequence transactions. Typically, the Sequencer is used to perform a series of tests.

The Sequencer contains a list of sequence transactions. Each of these transactions evaluates an HP VEE expression, which may contain a call to a UserFunction, Compiled Function, or Remote Function. After evaluating the HP VEE expression, a transaction compares the value returned by that expression against a test specification. Depending on whether the test passes or fails, the transaction then evaluates different expressions and selects the next transaction to be executed. Transactions may optionally log their results to the Log output pin, or to a UserFunction, Compiled Function, or Remote Function specified on the Logging tab of the Properties dialog box.

The Return output pin of the Sequencer can be used for returning a result when the sequence has completed.  By default the Return output pin has a value of zero, but a transaction with a Next Operation of Then Return will set the Return output pin to the specified value.

The Log output pin of the sequencer contains a record that contains one logging record for each transaction that has logging enabled. See "Properties" below under "Logging tab" for more information.

Location

Device ==> Sequencer

Open View Parameters

The open view shows the list of transactions to be executed.

Dialog Information

You can change the parameters for an individual transaction. Just double-click on a transaction to display the Sequence Transaction dialog box for that transaction. The available parameters are as follows:

Sequence Mode:

TEST - Executes the specified expression and tests the result against a specification. (If the expression calls a UserFunction, a compiled function or Remote Function, the result on the top-most output pin of the corresponding UserObject is used.)

EXEC - Executes the specified expression without performing a pass/fail test against a specification. Logging is never performed on EXEC transactions.

Transaction Name - Unique name of this transaction. Must be a valid HP VEE variable name (must begin with a letter, but may include letters and numbers). This name can be referenced by expressions in this or other transactions, and will contain the logging record for the most recent execution of this transaction.

Enable Condition Type:

ENABLED - Sequencer unconditionally executes this transaction.

DISABLED - Sequencer never executes this transaction.

ENABLED IF: - Sequencer executes this transaction only if the given expression is non-zero.

DISABLED IF: - Sequencer does not execute this transaction if the given expression is non-zero.

SPEC NOMINAL: - Nominal (expected) value of the test result. This value is not used in calculating RANGE or LIMIT specification tests, but may be included in the logging record.

Spec Type - All specification tests are done in the same manner as the Comparator object. Thus, the test result may be a waveform, and the test limit(s) may be another waveform or an array of type Coord. The spec test will automatically perform the necessary interpolation to determine if each data point is in or out of specification. Also, all tests use an "almost equal" algorithm that checks equality or inequality to at least six significant digits.  See the Comparator object description for more information.  Options include:

RANGE: - Specifies a lower and upper limit and the comparison operators that apply.

LIMIT: - Specifies a single limit and the comparison operator that applies. May be used to test for an upper or lower limit, or for an exact match. The limit value will be logged in the HighLimit record field.

TOLERANCE: - Specifies a plus and minus tolerance from the Nominal value. A tolerance of zero is permitted. HighLimit and LowLimit logging record fields contain the specification range after the tolerance has been applied to the Nominal value.

%TOLERANCE: - Specifies a plus and minus percent tolerance of and from the Nominal value.  A tolerance of zero is permitted. HighLimit and LowLimit logging record fields contain the specification range after the tolerance has been applied to the Nominal value.

FUNCTION - An HP VEE expression that specifies the test. The expression may just be a call to a UserFunction, Compiled Function, or Remote Function. Or it may be a larger expression of input pin names, UserFunctions, Compiled Functions, Remote Functions, global variables, and test records from previous transactions in this Sequencer. If this is a test transaction, the single result from this field will be tested against the specification. The result of a UserFunction or Remote Function call is the value of the top-most output pin of the corresponding UserObject, or nil if no output pins are present.

Logging Mode:

LOGGING ENABLED - Add a field for this transaction to the Log record output pin (if present). If a "Log Each Transaction To:" procedure has been specified on the Logging tab in the Properties dialog box, that logging procedure will be called immediately after this transaction is completed.

LOGGING DISABLED - A log record will not be generated for this transaction, and the "Log Each Transaction To:" procedure will not be called. (See "Logging tab" under "Properties" below for options and more information.)

Pass Operation:

IF PASS - If the spec test passes (test value within limits), the specified "then" action will be performed.

IF PASS CALL: - If the spec test passes (test value within limits), the specified HP VEE expression -- which may include a call to a UserFunction, Compiled Function, or Remote Function -- will be evaluated and the specified "then" action will be performed. (The return value from IF PASS CALL is ignored.)

Fail Operation:

IF FAIL - If the spec test fails (test value outside of limits), the specified "then" action will be performed.

IF FAIL CALL: - If the spec test fails (test value outside of limits), the specified HP VEE expression -- which may include a call to a UserFunction, Compiled Function, or Remote Function -- will be evaluated and the specified "then" action will be performed.

Next Operation: (Applies to EXEC transactions, or to either "Pass" or "Fail" operations in TEST transactions.)

THEN CONTINUE - Goes to the next transaction in the Sequencer list. (This is the default operation.)

THEN RETURN - Quits executing transactions in this Sequencer and places the value of the specified expression (which can call a function) on the Return output pin of the Sequencer. The Sequencer object will then fire its output pins and execution flow within the program will continue normally.

THEN GOTO - Goes to the transaction in this Sequencer with the specified transaction name.

THEN REPEAT - Executes this transaction again, repeating up to the specified number of times. If the Pass/Fail condition still exists after the maximum number of repeats, continues to the next transaction.

THEN ERROR - Stops execution of the Sequencer by generating an error condition with the given error number.  An error can be trapped with an Error output pin on this Sequencer, or on any enclosing UserObject.

THEN EVALUATE - Evaluates the given expression -- which may call a UserFunction, Compiled Function, or Remote Function -- and uses the string result to determine the next operation. Valid string results from the expression are:

CONTINUE
RETURN <expr>
GOTO <name>
REPEAT <expr>
ERROR <expr>

Where <expr> is any valid HP VEE expression and <name> is the name of a transaction in this Sequencer. This operation can be useful when a UserFunction, possibly with user interaction, needs to determine what action the Sequencer should perform next.

DESCRIPTION - "Comment" field for this transaction. Text entered into this field will be shown at the end of the transaction's abbreviated text in the Sequencer open view.

Object Menu

Step Trans - Causes the currently highlighted transaction to be executed, using the last data sent to the input pins. The IF PASS or IF FAIL expressions are executed as usual, and the next transaction specified by these rules will be highlighted. (Note that CTRL+X is a shortcut for Step Trans when the cursor is over the Sequencer.)

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

Logging tab:

Record Fields To Log group: Selects which fields will be generated in the logging record for each transaction. (The Log output pin contains a record of records -- one logging record for each transaction with logging enabled. In each transaction logging record the selected fields, specified below, may be present.) The names (without spaces) are the field names of the logging record. The choices are:

Name - A unique string that identifies this transaction (not the procedure name).

Result - The value returned from the evaluation of the test procedure.

Nominal - The nominal test value.

High Limit - The upper limit used in the specification test. Actual limit values, not offsets are given for Tolerance and %Tolerance specifications.

Low Limit - Lower limit used in specification test. Actual limit values, not offsets, are given for Tolerance and %Tolerance specifications.

Pass - An Int32 with value "1" for "Pass", "0" for "Fail".

Time Stamp - A Real value containing day, date, and time of completion of the test.

Description - A Text value containing the description "comment" field in the Transaction.

Logging Mode group:

Log to Output Pin Only - A logging record will be present in the record on the Log output pin for each transaction that has Logging Enabled. If a transaction is executed more than once during one execution of the Sequencer, only the last logging record for that transaction will be present in the record on the Log output pin. If a transaction has not been executed during an execution of the Sequencer, the logging record for that transaction will contain "0" (Real) values for each field except the Name and Description fields, which contain null strings, and Pass which contains an Int32.

Log Each Transaction To: - Specify a UserFunction, Compiled Function, or Remote Function expression that will be called after each transaction that has Logging Enabled. To pass the logging record for the current transaction to the UserFunction, Compiled Function, or Remote Function, use the reserved variable name "ThisTest". The Log output pin will continue to operate in the same manner as for the "Log to Output Pin Only" mode.

Notes

You can add an ExecTrans data input pin. The ExecTrans data input executes only the transaction(s) with the specified name(s) in the order given by a Text scalar or 1D array on the data input.  The highlight bar will be moved to the transaction currently being executed.  The If Pass or If Fail expressions will be evaluated as usual, but the result of the Then field will have no effect on the next transaction to be executed.

All field expressions (such as ENABLED IF, FUNCTION, or spec limits) may contain input pin names, UserFunction calls, Compiled Function calls, Remote Function calls, HP VEE math functions, or record names of previously run transactions. In test transactions with LOGGING ENABLED, the reserved variable, thisTest will contain a record of the logging fields that have been calculated. For example, to use the test value from transaction test4, which had logging enabled, use the name test4.result in any expression.  Or to use the current test name in any expression, use thisTest.name.  Or, an Enabled If expression might be random()<0.25 to cause the test to be executed only 25 percent of the time.

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

CTRL+X is a shortcut for Step Trans when the cursor is over the Sequencer.

See Also

Build Record, Call Function, Comparator, Raise Error, UnBuild Record, and UserObject.


Set Field

An object that allows you to modify a field of an existing record.

Supported On

All HP VEE Platforms

Use

Use Set Field to modify the value of a field of an existing record. The Set Field object is actually an assignment object that assigns the value specified by the right-hand expression to the field specified by the left-hand expression. The value in the right hand expression can evaluate to a scalar, an array, another record, or a field in a record.

Set Field is a short-cut for un-building a record, changing one field, and re-building the data into a record. Note that the output terminal name must match the name of the input record to be modified. Also, the left and right-hand expression results must match in type and shape. You cannot use Set Field to change the "schema" (type and shape) of the input record.

Location

Data ==> Access Record ==> Set Field

Open View Parameters

Left-hand expression -- The left-hand expression allows a subset of Formula mathematical syntax, which allows you to specify a field of a record. The A.B dot syntax, as well as a subset of the A[2] sub-array syntax, is supported to specify a particular field of the record to be changed. See "Notes" below for further details of the allowed syntax.

Right-hand expression -- The right-hand expression allows any mathematical expression that is allowed in a Formula object. This expression has access to all input containers, global variables, and functions. The right-hand expression is evaluated and the resulting value is stored in the field of the record specified by the left-hand expression.

Notes

The name of the record output pin must match the name of the input record to be modified, and the left-hand expression must begin with that name. For example, if the record pins are named Rec, the left-hand expression must be something like Rec.A or Rec[1]. The left-hand expression must be a single expression that specifies which field of the input container is to be modified.

There may be confusion over the names of inputs, outputs, and record fields. For example, if the name of the record input pin and the record output pin is Rec (they must match), the expression Rec.A specifies the A field in the input record. On the other hand, the expression A*2 refers to the A data input of the Set Field object. Thus, Rec.B=A*2 sets the B field of the output record equal to twice the value of the A data input. On the other hand, Rec.B=Rec.A sets the B field of the output record equal to the value of the A field of the input record.

The complete input record container is output on the record output pin, but the specified field is modified. For example, suppose the input Rec is a record with two fields x and y, where x is a Text scalar with value "hello" and y is a Real scalar with the value 1.2. If the left-hand expression specifies Rec.y, and the right-hand expression evaluates to 5.6, the output container will be a record with two fields x and y, where x is a Text scalar with value "hello" and y is a Real scalar with the value 5.6.

The field specified by the left-hand expression and the result of the right-hand expression must match in type and shape ("schema"). That is, the operation of the Set Field object cannot change the schema of the input record -- only the data in the specified field can be changed. For example, suppose input Rec is a record with two fields x (a Text scalar) and y (a Real scalar). If the left-hand expression specifies Rec.y, the right-hand expression must result in either a Real scalar, or something that can promote to a Real scalar. Otherwise, an error will result.

Record arrays require special attention. A record array is an array consisting of individual record elements, each consisting of fields. You can use Set Field to change one field of one element in a record array. For example, if you create a record 1D array and you want to change the f field of the third record element of the array, specify Rec[2].f (for a zero-based array) in the left-hand expression. In this case, the result of the right-hand expression is placed in the f field of the third element of the record 1D array. None of the other fields of Rec[2] are changed, nor are any fields of the other record elements of the array (for example, Rec[0].f and Rec[1].f).

On the other hand, you can use Set Field to modify a particular field in every record element of a record array. For example, suppose you specify Rec.f in the left-hand expression where Rec is a record 1D array with n elements. In this case, the result of the right-hand expression is copied into every Rec[x].f field, where x is from 0 through n-1. In other words, the f field is changed in every record element of the array.

The left-hand expression must be a single expression specifying which part of the input record is to be modified. For example, Rec+2 and sine(Rec) are not valid as left-hand expressions. Also global variables are not allowed in the left-hand expression.

The syntax allowed for the left-hand expression is limited:

The A.B dot sub-record syntax may be used any number of times for record of record containers (there is no limit on recursion). Suppose that record A has a field b, which is itself a record. The record field b has a field c, which is a record containing field d. To specify that lowest level field d, you can use A.b.c.d as the left-hand expression.

The A[x] sub-array syntax is more limited, and may be used only once, before the last dot. For example, A.b.c[1].d is valid as a left-hand expression, but A[2].b.c.d and A[2].b[2].c are not allowed. Also, A[1] and A.b.c[1:2] are not allowed. However, the A[x] sub-array syntax, supported before the last dot, does support the "colon and asterisk" syntax. For example A[1:2].b and a.b.c[2:*].d are valid left-hand expressions.

Note the difference between A[1].b and A.b[1]. The first is a record 1D with a field b. The second is a scalar record containing a field b, which is a 1D array.

See Also

Build Record, Formula, Get Field, Record Constant, SubRecord, and UnBuild Record.


Set Global

An object that sets the data value of a global variable.

Supported On

All HP VEE Platforms

Use

Use the Set Global object to set the data container (type, shape, and values) of a global variable (by name). This global variable can then be used by name in other parts of the HP VEE program.

Global variables created (with Set Global) in one context of a program can be used as data in another context of that program. For example, a Set Global in the root context of a program could create a global variable, which could then be used as data by including a Get Global in a UserObject. This is especially useful when the program contains several nested layers of UserObjects.

Global variables that are set with Set Global may also be used by name in the expression fields of the following devices:  Formula, If/Then/Else, Get Values, Get Field, Set Field, From DataSet and all devices using expressions in transactions, including To File, From File, Direct I/O, From Stdin, To/From Named Pipes, and Sequencer. Refer to "Using Global Variables in Expressions" in chapter 3 of the <book>HP VEE Reference<\book> for further information.

Location

Data ==> Global ==> Set Global

Open View Parameters

The open view displays a field for the name of the global variable. The name is not case sensitive (either lower-case or upper-case letters may be used). Thus globalA is the same variable as GLOBALa. The name field may be added as a control input.

Notes

To avoid unexpected results, your program must ensure that a global variable is set with Set Global before a Get Global object (or an object that includes the global variable name in an expression) executes. Generally, the best way to ensure this is to connect the sequence output pin of the Set Global object to the sequence input pin of the Get Global object, or other object that uses the global variable. However, there are cases when the sequence input pin need not be connected. For further information about this, refer to "Using Global Variables" in HP VEE Advanced Programming Techniques.

If Delete Globals at PreRun is on (the default), all global variables are deleted before your program executes.  If Delete Globals at PreRun is turned off, global variables will not be deleted, and you must program carefully to avoid propagating invalid data.

Global variables are truly global since they are not defined at a UserObject level. A global variable that is defined in one context of a program can be used in any other context within the program. For example, you can define a global variable with a Set Global object in the root context of the program, and then include a Get Global to get that global variable in a UserObject or UserFunction. However, you will need to avoid name conflicts throughout the program:

If two or more Set Global objects attempt to set the same global variable (with the same name), the current value will be overwritten as each Set Global executes. This may result in unexpected behavior if you are unaware of the duplicate names.

If there is a data terminal variable with the same name as a global variable, the data terminal variable will take precedence.

For further information, refer to "Using Global Variables in UserObjects" in HP VEE Advanced Programming Techniques, and to "Using Global Variables in Expressions" in chapter 3 of the reference manual.

See Also

Edit Default Preferences, Delete Global, Get Global, and View Globals.


Set Mappings

An object that assigns mapping to an array.

Supported On

All HP VEE Platforms

Use

Use Set Mappings to map one or more dimensions of an array linearly or logarithmically over a range of real values.

Location

Data ==> Access Array ==> Set Mappings

Open View Parameters

Num Dimensions - The number of dimensions in the input array. Num Dimensions must be an integer. Minimum is 1.  Maximum is 10.  Default is 1.  Changing the value of Num Dimensions affects Mapping, From, and To by corresponding adding or deleting open view fields.

Mapping - Linear or Log for each dimension. Default is Linear.

From - The lower limit of the mapping range (inclusive) for each dimension.

To - The upper limit of the mapping range (inclusive) for each dimension.

From and To may be added as data inputs.

Notes

If a Waveform or Spectrum is input, its elements are remapped to your specifications.  Log mapping is not allowed on a Waveform.

There are the same number of points as sampling intervals. Each point is at the beginning of the sampling interval.

Set Mappings does not allow an array of Coord as input because the Coord array is already explicitly mapped.

The mappings on arrays are used in the XY displays for Autoscale and various math functions.

The From and To values must be different.

The value of the Num Dimensions field must match the number of dimensions of the input array.

See Also

Allocate Array, Collector, Get Mappings, Line Probe, and Sliding Collector.

How to Use HP VEE.


Set Values

An object that allows you to change an element of an array container.

Supported On

All HP VEE Platforms

Use

Use Set Values to modify elements of an array of any type and size. The new array is generated only when the XEQ pin is activated.

You can connect several containers to the inputs on the Set Values object: the array to be changed, the scalar data to be added, and the indices specifying the array location to put the scalar data.

Input new values for the array and the index of the element you wish to replace.  When all changes are done, activate the XEQ pin.

Location

Data ==> Access Array ==> Set Values

Open View Parameters

Num Dimensions - The number of dimensions in the input array. Num Dimensions is an integer from 1 through 10.  Default is 1.

Notes

All arrays are zero-based; all indices for arrays are zero based.

To initially create an array use the Allocate Array ==> objects.

The open view of the Set Values object has a field on it for the number of dimensions of the array coming in. This allows the object to add or delete input pins to give you the correct number of inputs for the indices needed. For example, if you change the number of dimensions field to 2, the object automatically adds an input for the second index into the array.

The Set Values object begins with its internal buffer cleared. When the first three data pins are activated, it starts to operate. It copies the array container on the first input pin into its internal buffer, making sure the number of dimensions match the field on the open view. It then takes the second data input and makes sure it can be converted to the same type as the input array. Then, HP VEE takes the value(s) on the index input(s) and makes sure they are within range of the array sizes. Finally, HP VEE places the data value in the array at the appropriate indices. When the XEQ pin is activated, the Set Values box sends the modified array out the output pin.  The Set Values object clears its internal buffer.

The Set Values object always clears its internal buffer at PreRun and at Activate time.

See Also

Allocate Array, Build Data, Collector, Get Values, ramp (numElem, from,thru), Set Mappings, and Sliding Collector.


Shift Register

An object that outputs the previous values of the inputs.

Supported On

All HP VEE Platforms

Use

Use Shift Register to access the previous values of the input.

Location

Device ==> Shift Register

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the contents of the Shift Register are cleared at PreRun.  Default is on.

Clear At Activate - When the check box is selected, the contents of the Shift Register are cleared at Activate.  Default is on.

Notes

Add outputs to Shift Register to access previous values.

The Shift Register starts with all its outputs set to nil.  Each time the object is activated, the data from the input is copied to the "current" output terminal.  Data that was in the current output is moved to the 1 Prev output.  The data from previous executions is shifted down the output terminals to the last output terminal.

Additional outputs may be added so the user may access the data from the "n" previous executions of a thread or program. Turn Clear at PreRun and Clear at Activate off from the Properties dialog box to retain data over successive program executions.

See Also

Logging AlphaNumeric and Sliding Collector.


Show Config (Object Menu)

Displays a dialog box that shows the I/O configuration of an instrument driver panel or a direct I/O object.

Supported On

All HP VEE Platforms

Use

From the object menu of an instrument driver panel or a direct I/O object, select Show Config to view the configuration specified with I/O ==> Instrument.

To change any configuration parameter use I/O ==> Instrument. Note that any change will affect all other objects using that instrument with Direct I/O.  To change the device in a Direct I/O object, edit the name field to choose a new device.  Note that the transactions in the Direct I/O object may not be compatible with the new device.

Location

On an instrument driver panel or a direct I/O object:

From the object menu ==> Show Config

See Also

Other Instruments.


Show Description

Displays a dialog box that shows user-supplied information about the program.

Supported On

All HP VEE Platforms

Use

Use Show Description to get information about a program from its Panel View.

Location

File ==> Show Description (Panel View only)

Notes

The information displayed in Show Description was input from File ==> Edit Description. Show Description is available from secured programs (Edit Description is not).

See Also

Edit Description, Note Pad, and Secure.


Show Data Flow

Shows the route that data takes through the program.

Supported On

All HP VEE Platforms

Use

Use Show Data Flow as a debugging tool to show the flow of data between input and output pins.  A small square marker is used to trace the flow of data propagation along the lines.  Even nil data is shown this way.

When Show Data Flow is set, the menu selection has a checkmark on its left.

Location

Debug ==> Show Data Flow

Show Data Flow is also located on the toolbar.

Notes

Show Data Flow is often used with Show Execution Flow. These debugging tools will slow the execution of your program.

You can change the rate at which the marker moves by selecting File ==> Edit Default Preferences. In the Default Preferences dialog box, in the Debug group, set the Data Flow Rate.

See Also

Line Probe, Edit Default Preferences, Show Execution Flow, Step, and Toggle Breakpoints.


Show Execution Flow

Highlights the object that is currently executing.

Supported On

All HP VEE Platforms

Use

Use Show Execution Flow as a debugging tool to show the currently operating object.  A highlighted color border (the default is light green) appears around the object and remains until the operation is complete. The currently executing transaction will also be highlighted in objects that include a list of transactions, such as Direct I/O, Sequencer, To File, From File, etc.

When Show Execution Flow is on, the menu selection has a checkmark on its left.

Location

Debug ==> Show Execution Flow

Show Execution Flow is also located on the toolbar.

Notes

Show Execution Flow is often used with Show Data Flow. These debugging tools will slow the execution of your program.

See Also

Line Probe, Show Data Flow, Step, and Toggle Breakpoints.


showPanel()

An object that displays a UserFunction panel.

Supported On

All HP VEE Platforms

Use

Use showPanel() to display a UserFunction panel until hidePanel() is executed or the program finishes running. showPanel() allows you to have a status panel up for as long as you need it. To use showPanel(), Show Panel on Execute must not be selected on the UserFunction.

Location

Device ==> Panel ==> showPanel()

Open View

The three versions of showPanel() objects exist to show you the syntax to use.  You must include the text showPanel() in the edit field.  Inside the parenthesis, you can type the following parameters in any of the objects:

"UFname" - The name of the UserFunction.  You must have double quotes around this name.  This parameter is required.

x, y - The location (in pixels) for the upper-left corner of the UserFunction panel (including the area for the border and title bar if they exist).  This parameter is optional; if you do not specify the x and y coordinates, the panel is displayed in the center of the work area.

width, height - The size of the panel (in pixels).  This parameter is optional; if you specify width and height, you must specify the x, y parameters.  If you do not specify width and height, the current panel size is used.  width and height settings add and delete space from the right and lower sides of the panel view and include the title bar and border if they exist.

You may add data input pins to the showPanel() object to set any of the parameters if you replace the parameter with the input terminal name.

Notes

showPanel() does not run the UserFunction, it only displays the Panel View.  To see the panel and run the UserFunction, first use showPanel() and then call the UserFunction.

If you only want to see the Panel View when the UserFunction operates, select Show Panel on Execute from the UserFunction Properties dialog box instead of using showPanel().

The showPanel() object is simply a Formula object initialized without inputs and containing the showPanel(...) equation.  You may also type showPanel() (and the associated parameters) into any objects that allow expressions, such as the Formula and Sequencer objects.

You may input the entire showPanel() equation via control pin.

HP VEE does not limit the location of the pop-up panel to the size of your work area, it is possible to specify an x and y that are "off screen" (out of the visible window).

All panels shown with showPanel() are only shown while the program is running.

You can have only one copy of a UserFunction panel showing at a time.  If you call showPanel() additional times with the same UserFunction name, the latest call of the panel is shown and the previous is hidden.

To find the name of a panel that is showing, click the right mouse button on the panel and the panel name pops up. See Also

Call Function, hidePanel(), lockPosition(), panelPosition(), panelSize(), unlockPosition(),  and UserFunction.


Size (Object Menu)

Changes the size of this object.

Supported On

All HP VEE Platforms

Use

Use Size to change the size of the icon or the open view. After you select Size the pointer changes shape to a right angle bracket.  Click and drag the bracket to the new size of the object; an outline rectangle shows you the size of the object. Another way to resize is to position the bracket pointer to where you want the lower right corner of the object and click.

Location

On the object menu ==> Size

Notes

Size retains the connections with other objects. If Automatic Line Drawing is set, it may take a few moments to redraw lines.

Short Cuts

Place the cursor over the bottom right corner of an object.  After the cursor changes shape to a right angle bracket, click the left mouse button and drag the bracket to the new object size.

You may resize an object before you place it on the work area by positioning the outline rectangle at the desired location, pressing the left mouse button, then dragging the bracket pointer to the position you want for the lower right corner of the object.  Release the mouse button and you  have the size and placement you need.

See Also

Object Menu.


Sliding Collector

An object that outputs an Array 1D.

Supported On

All HP VEE Platforms

Use

Use Sliding Collector to create an Array 1D from scalar input data.

Location

Data ==> Sliding Collector

Object Menu

Clear - Clears the contents of the Sliding Collector.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the contents of the Sliding Collector are cleared at PreRun.  Default is on.

Clear At Activate - When the check box is selected, the contents of the Sliding Collector are cleared at Activate.  Default is on.

Open View Parameters

Array Size - The number of elements in the output array. Array Size can be a data input.  Default is 10.

Trigger Every - The number of times the input pin must be activated before an array is output. Default is 10.

Both parameters may be set from the open view or from data input pins.  Parameters must be integers.

Enum inputs are converted to type Text before the data is placed into the array.

Notes

Sliding Collector builds an Array 1D by automatically sequencing through the array index. Generally, Array Size and Trigger Every are the same size.

The output array is always an Array 1D of length Array Size. The type of the output array is determined by the first input data after a Clear.

If Trigger Every is smaller than Array Size, Sliding Collector generates intermediate outputs. For example, if Array Size is 4 and Trigger Every is 2, the Sliding Collector outputs an array four long after two data inputs.  The first two elements of the output are the data elements input; the last two elements of the output are 0.

If Trigger Every is larger than Array Size, some of the input elements are discarded. For example, if Array Size is 2 and Trigger Every is 4, the output is an array two long with the last two pieces of data in it. The first two pieces of data input are discarded.

See Also

Allocate Array, Collector, Concatenator, Get Values, and Set Values.


Spectrum (Freq)

A menu item that contains frequency-domain displays.

Supported On

All HP VEE Platforms

Use

Use Spectrum (Freq) to access the following frequency-domain displays:

Magnitude Spectrum

Phase Spectrum

Magnitude vs Phase (Polar)

Magnitude vs Phase (Smith)

Location

Display ==> Spectrum (Freq) ==>

Notes

Inputs must be Waveform, Spectrum, or an array of Coords.

If a Waveform is input to a Spectrum display, it is automatically transformed into a Spectrum by way of a Fast Fourier Transform (fft).

See Also

Magnitude Spectrum, Magnitude vs Phase, Phase Spectrum, and Waveform (Time).


Start

An object that, when its button is pressed, starts the execution of a thread.

Supported On

All HP VEE Platforms

Use

The Start object is normally used to define where to initiate execution in a thread that includes feedback.

The Start object, when its button is pressed, begins the execution of the thread to which it is connected, but has no effect on other threads. (Pressing Run starts the execution of all threads in the program, regardless of whether they have Start objects.)

Location

Flow ==> Start

Notes

The Start object is not required, except for threads that include feedback. In a feedback thread, the Start button is necessary to specify where execution is to begin.

If a program includes more than one independent thread, you can use Start to initiate a single thread without running the other threads.

When you press Run or Start, propagation begins with Start object(s).  If more than one Start object is on a thread, propagation begins at each Start and proceeds in parallel as far as allowed by the propagation rules.

If you press Start inside a UserObject, the UserObject runs but its data output pins do not activate; therefore, propagation does not continue.

See Also

Raise Error, Exit Thread, Exit UserObject, and Stop.


Step

Executes a program by operating one primitive object at a time.

Supported On

All HP VEE Platforms

Use

Use Step to debug your program.  Step operates one primitive object every time it is selected. The next object to execute has a yellow border (by default).

Location

Debug ==> Step

Step is also located on the toolbar.

Notes

All objects except UserObjects are primitive objects. A UserObject is not treated as a primitive object when its open view is displayed as a detail view, and Show Panel On Execute is not selected.

Step is not available from the panel view.

PreRun occurs the first time you select Step.

See Also

Edit Default Preferences, Pause, Resume, Run, Show Data Flow, Show Execution Flow, Start, Stop, and Toggle Breakpoints.


Stop

Stops all threads in a program.

Supported On

All HP VEE Platforms

Use

Use Stop to stop program execution.  After Stop is selected, press Resume to continue execution.

Location

Debug ==> Stop

Stop is also located on the toolbar.

Notes

When Stop is selected, the program goes to the "stopped" state which clears any highlighting, and closes any open files and I/O channels.

See Also

Edit Default Preferences, Pause, Resume, Run, Step, Stop (Object), and Toggle Breakpoints.


Stop (Object)

An object that stops the execution of a program.

Supported On

All HP VEE Platforms

Use

Use Stop to pause the execution of all threads in the program and return an error code. Stop is usually used after testing for a certain condition.

Location

Flow ==> Stop

Open View Parameters

Exit Code - A number that indicates the status of the program. You can  type the Exit Code in the recessed rectangle or add it as a data input. The Exit Code is an 8-bit integer that is output to the operating system; if the output is greater than 255, it is output modulo 256 (256 is output as 0).

If you run HP VEE with the -r option, Stop exits HP VEE.

See Also

Exit Thread, Exit UserObject, Raise Error, Start, and Stop.


Strip Chart

An object that displays continuously-generated data.

Supported On

All HP VEE Platforms

Use

Use Strip Chart to display the recent history of data that is continuously generated.  For each y input value, the x value is incremented by the specified Step size.  When new data runs off the right side of the display, the display automatically scrolls to show you the latest data.

Strip Chart saves all data sent to it until it's cleared, unless the buffer size is set to a finite value.

Unlike other graphical displays, array data will be appended to the end of the Strip Chart trace, rather than first clearing the trace.

Location

Display ==> Strip Chart

Object Menu

Auto Scale ==> - Automatically scales the display to show the entire trace. (Can be added as control pins.)

Auto Scale - Automatically scales both axes.

Auto Scale X -  Automatically scales the X axis.

Auto Scale Y -  Automatically scales the Y axis.

Zoom ==> - Scales the display.

In - Magnifies the display to contain only the rectangular region that you selected with the pointer. You select the region after selecting this feature by dragging on the graph area.  This action outlines the information with a "rubber band" box.

Out 2|5|10|20|50|100X - Expands the scales of the display by a factor in both the X and Y directions about the center.

Clear Control ==> - Parameters that specify when to clear the display.

Display - Clears the displayed trace(s).  This parameter may be added as a control input.

Next Curve - Resets the pen to display the next curve in a family of curves (data from the next time the display operates) without clearing the previous curve. Next Curve must be selected (or activated) before each new curve in the family. This parameter may be added as a control input.

Center Markers - If markers are available, brings them to the center of the visible part of the trace.  This is useful if you've scrolled the display and markers are not visible.

Add Right Scale - Adds up to two additional scales to permit traces to have different scale ranges. After adding a right scale, assign a trace to the scale using Traces & Scales button in the object's Properties dialog box (object menu ==> Edit Properties).

Plot - Presents the Plotter Setup control panel.  When OK is pressed, a copy of the device's entire display is plotted on the selected plotter.  This parameter may be added as a control input. If the current Plotter Setup is in Plot to File mode, you may specify the destination file or directory name as string data on the Plot control input. If no control input value is given, the file or directory name specified in Plotter Setup will be used.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the display is cleared at PreRun time.  Default is on.

Clear At Activate - When the check box is selected, the display is cleared at Activate time.  Default is on.

Layout group:

Graph Only - The open view shows only the graph area and the marker information (if it exists).  No buttons, scales, scale names, or traces names are shown. This layout redraws quickest and provides the largest display area.

Scales - The open view shows the graph area, the scales, the scale names, and trace names.  These fields are not recessed and may not be edited. This layout is useful when recessed fields might be distracting, such as printing graphs, or when the fields should be protected from editing on a User Panel.

Scales & Sliders - The open view shows all information about the graph.  It includes the most information and allows you to modify the most elements interactively.  It is the default.

Traces & Scales... - A dialog box that allows you to specify values such as the names, colors, line and point characteristics, minimum values, and maximum values for the traces and/or scales.

 Traces:

  - Name: - The name of the trace that is displayed to the left of the graph area and the name of the corresponding input terminal.
 - Scale: - If you have multiple Y scales, selects which Y scale is to be used for this trace.
 -  Color: - The color of the trace. Each added trace has a different color than the existing traces.  Default for Trace1 is Pen 4 (yellow).
 - Lines: - The format of the line connecting data points. Default is a continuous line.
 - Points: - The symbol that marks each data point. To show unconnected data points, select the single dot Lines format and the desired Points symbol. Default is a dot.

 Scales:

 - Show Scale: - If you have multiple Y scales, a selection (using a check box) to specify if the end points and an axis of each additional right scale is displayed to the right of the graph area.
 -  Scale Name: - The names of the scales.  They may be set here or on the Scales & Sliders layout.
 - Maximum: - The maximum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Minimum: - The minimum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Mapping: -  The way the x and y data is mapped to the display.  The mapping may be linear or log.  To make a log-log plot, change both X and Y axes to Log. Default is Linear.
 - Log Cycles: - The maximum number of decades shown (counting down from the maximum x and y values) when AutoScale is activated.  Log Cycles is only used when the Mapping is Log. Log Cycles is useful when a trace contains a large dynamic range in the data. Default is 4.
 - Scale Colors - The color of any background grid or tic marks. Default is Gray.

Grid Type group:

None - No grid lines are shown.

Tic Marks -  Shows tic marks at the major and minor divisions on all four sides of the graph.

Axis - Shows tic marks at the major and minor divisions on the X and Y axes of the graph.  If the actual axes are scrolled off the graph area, axis lines are drawn on the edge closest to the axes.

Lines - Shows lines at the major divisions and tic marks at the minor divisions.  The X and Y axes are shown as thick lines.

Markers group: - Allows you to find the exact value of a data point on the displayed curve. If the data is plotted on a log scale, the values shown on the marker are the linear data points.

To move markers to a different trace, click on the button to the left of the marker values near the bottom of the display. The button cycles through the different line types and colors of the different traces.

Off - No markers are shown. This selection is the default.

One - One marker is available.

Two - Two markers are available.

Delta - Two markers are available and the x and y differences between them are displayed.

Interpolate - When the check box is selected, you can place markers between the displayed data points. The marker values displayed are calculated by linear interpolation.  Default is off.

 	Buffer Size group:

Infinite | Finite - Select Infinite to retain all the data in memory; this may slow down your program's operation and your program may run out of memory. Select Finite to limit the number of points saved.

Size - Specifies the number of points stored in memory. This field is only available when Finite is selected,

Notes

Inputs must be Scalar or Array 1D that can be converted to type Real. Complex, PComplex, and Spectrum values must be "unbuilt" to Real Values before being input to a Strip Chart.

To get the best update speed on the Strip Chart, set the grid type to No Grid. Use a Panel Layout of Graph Only or Scales and set the X scale maximum value so display scrolling is infrequent. Set the Buffer Size as small as possible.

 Add traces with the Add Terminal ==> Data Input object menu selection.  Up to twelve traces are allowed.

A Title control input may be added, which sets the title bar name to the specified text value. This allows programmatic control over the title shown when the display is printed or plotted.

You can add a Traces control input pin. The control input data must be an array of records (or a record scalar if you only want to control one trace).  Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A field named TraceNum with an integer value (1 is the first trace).  The TraceNum field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name

Pen

LineType

PointType

The Name field must have a text value.  The Pen, LineType and PointType values must be integers from 0 to n, where 0 draws nothing and n is the number of choices available.

Refer to "Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

You can add a Scales control input pin to control the scales parameters listed above.  The control input data must be an array of records (or a record scalar, if you only want to control one scale). Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A Text field named Scale with a value X, Y (or Y1), Y2, or Y3. The Scale field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name - Must be a text value.

Min - Must be an integer or real value.

Max - Must be an integer or real value.

Mapping - Must have a text value of  Linear or Log.

Refer to "Using Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

See Also

Complex Plane, Edit Default Preferences, Magnitude Spectrum, Polar Plot, Waveform (Time), XY Trace, and X vs Y Plot.


SubRecord

An object that allows the user to cut out a number of fields from a record.

Supported On

All HP VEE Platforms

Use

Use SubRecord to output a subset of the original record, with specified fields "cut" from the record, on the Record output pin. The record to be edited is input on the Record input pin. The list of fields to be "included" or "excluded" in the output record is input on the Fields input pin.

If Include fields is selected in the open view, the output record will consist only of those fields in the Fields input.

If Exclude fields is selected in the open view, the output record will consist of all fields in the original record excluding those listed in the Fields input.

Location

Data ==> Access Record ==> SubRecord

Open View Parameters

Include fields -- (The default mode.) The output record is constructed from the input record with only those fields in the list of field names on the Fields data input pin. This selection toggles with Exclude fields.

Exclude fields -- The output record is constructed from the input record with only those fields that are not in the list of field names on the Fields data input pin.

Notes

The Fields input pin can be a text array consisting of the names of the record fields to include/exclude in the output record.

If you attempt to include/exclude a field that is not in the input record, an error will occur. If you exclude all the fields of the record, a nil output signal is sent.

Note the distinction between the UnBuild Record, SubRecord, and Get Field objects.

The UnBuild Record object has outputs for the Name List and Type List of the input record fields. The other (optional) outputs A, B, etc. of the UnBuild Record object return the same results as would multiple Get Field objects.

The Get Field object works like a Formula object, in that it uses dot syntax (A.B) to unbuild a record. Note that Get Field allows you to unbuild a record of records in one step by using an expression such as A.B.C. This process would require two UnBuild Record objects.

The SubRecord object differs from UnBuild Record and Get Field in that its output is always a record. The SubRecord device allows you to either include or exclude a list of fields from a record to form a subrecord.

See Also

Build Record, From DataSet, Get Field, Record Constant, Set Field, To DataSet, and UnBuild Record.


System Info

A menu item.

Supported On

All HP VEE Platforms

Use

Use System Info to access the following objects that determines information about HP VEE and the environment in which it is running.

whichOS()

whichPlatform()

whichVersion()

errorInfo()

Location

Data ==> System Info ==>

Notes

All of the objects accessed by System Info are Formula objects with a function specified.

See Also

errorInfo(), whichOS(), whichPlatform(), and whichVersion().


Tank

An object that displays a Scalar numeric value graphically using a color bar inside a graphical tank.

Supported On

All HP VEE Platforms

Use

Use Tank to display a numeric value on a analog scale with a color bar inside a graphical tank, and an optional digital numeric field.

Location

Display ==> Indicator ==> Tank

Open View

The minimum and maximum values of the Tank are set on the open view of the object by clicking on the present value and typing in a new value. Tic marks and their labels are automatically calculated and displayed. The minimum value must be less than the maximum value.

These values may also be added as control inputs.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the contents of the Tank are cleared at PreRun.  Default is on.

Clear At Activate - When the check box is selected, the contents of the Tank are cleared at Activate.  Default is on.

Layout group:

Horizontal | Vertical - Selects the orientation of how the Tank is displayed. Default is Vertical.

Show Digital Display  - If the check box is selected, a digital display of the input value is displayed at the bottom of the open view of the object.  If the check box is not selected, the digital display is not displayed and the object operates faster. Default is on.

Limits group:

High Color - Specifies the color used for the highest range (i.e., greater than High Limit).

High Limit - Defines the numeric lower limit for the highest range. This value must be greater than or equal to the Low Limit. You may add this value as a control input, which disables this property's edit field.

Mid Color - Specifies the color used for the middle range (i.e., less than or equal to High Limit and greater than Low Limit).

Low Limit - Defines the numeric upper limit for the lowest range. This value must be less than or equal to the High Limit. You may add this value as a control input, which disables this property's edit field.

Low Color - Specifies the color used for the lowest range (i.e., less than or equal to the Low Limit).

Notes

The input data must be Scalar and able to be converted to Real (Complex, PComplex, Spectrum, and Coord must be first "unbuilt".)

The Low Limit must be less than the High Limit.

To use only 2 ranges of color, set the Low Limit equal to the High Limit.

To use only 1 color, set the Low Color, Mid Color, and High Color to the same color.

Short Cuts

To quickly change the orientation of the Tank, just resize it to the desired shape. It will automatically change orientation.

See Also

AlphaNumeric, Color Alarm, Fill Bar, Logging AlphaNumeric, Meter, and Thermometer.


Text

An object that outputs a constant string Scalar or Array 1D.

Supported On

All HP VEE Platforms

Use

Use Text to set a string constant or to request user input. Click on the entry field to enter a value.

Location

Data ==> Constant ==> Text

Example

To use Text as a prompt on a panel view, change the name of the Text object to a prompt such as What is your name? The user fills in the requested information in the entry field.

Properties

General tab:

Configuration group:

Scalar | 1D Array - Sets the initial data shape of the value(s) to be output with this object.

Size: -  When 1D Array is selected, Size sets the length of the array.

Size Fixed - When the check box is selected, the array cannot have lines added or deleted. This selection is only available if 1D Array is selected.

Password Masking - When the check box is selected, the text in the edit field of the open view is echoed as asterisks (*).

Execution group: (disabled when Configuration is 1D Array)

Wait for Input - When the check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When the check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is a null string.

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Notes

Initialize is most often used for initializing values inside a UserObject. The other method for setting an initial value is the Default Value control pin.

Control inputs may be added for Default Value and Reset. The Default Value input allows you to programmatically change the current value(s).  This input requires a Text value, either a Scalar or an Array 1D.  The Constant is reconfigured to match the shape of the incoming data.  The Reset input allows you to programmatically set the value(s) to zero.  If the Constant is configured as an Array 1D, all values are set to a null string.  The actual data on the Reset input is ignored.

There is no interpretation of escaped characters in this constant.  Your entry is replicated exactly on the output pin.

Note that the Initial Value field is always a scalar, even if Text is configured to be an array.

See Also

Complex, Constant, Coord, Date/Time, Integer, PComplex, Real, Selection Control, and Toggle Control.


Text Input

An object that displays a pop-up dialog box that accepts text input.

Supported On

All HP VEE Platforms

Use

Use Text Input to prompt the user to enter text, accept the text, and check the text with a user-defined test for validity.

In the pop-up dialog box, when the OK button is pressed, the text input by the user is output on the Value output pin. When the Cancel button is pressed, a 1 is output on the Cancel output pin.

Location

Data ==> Dialog Box ==> Text Input

Open View

Prompt/Label - The string that prompts the user to fill in the text field. You may add this parameter as a data input. Default is Enter Text:

Default Value - The text that is in the dialog's input field before anything is typed. If the user presses OK without typing anything, this text is output. You may add this parameter as a data input. Default is blank.

Value Constraint - The equation that tests the input text for validity. You can use any mathematical expression or call a UserFunction. You may add this parameter as a data input. Default is strLen(value)>0; which means it checks for user input of one or more characters - a null string is not acceptable.  To accept any value, use the exression 1.

Error Message -  The text that is output in a message box if the user input does not meet the Value Constraint. You may add this parameter as a data input. Default is You must enter text.

Properties

General tab:

Pop-Up Panel group:

Pop-Up Title: - Sets the text shown in the title bar of the pop-up dialog box. Default is Text Input.

Show Pop-Up Title Bar - If the check box is selected, the title bar of the pop-up dialog box and the corresponding error dialog box is shown. If the check box is not selected, the dialog boxes pop up without title bars. Default is on.

Automatic Timeout group:

Timeout Enabled - When the check box is selected, a Timeout output pin is added to the object. Default is off.

Pop-Up Duration: - Sets the length of time the pop-up dialog box is displayed. After this period of time, the dialog box times out and a value of 1 is output on the Timeout output pin. No other outputs pins have data if the Timeout pin executes. This field is only available when the Timeout Enabled check box is selected.  Default is 60.

Button Labels group: - Allows you to set alternative wording for the button labels.  This is especially useful if your users are not native English speakers.  The function of the buttons remains the same, no matter what the label.

The buttons are:

OK:

Cancel:

Input Field Attributes group:

Password Masking Enabled - When the check box is selected, the input text is echoed as asterisks (*). This feature is useful when the operator is entering sensitive data such as a password.  The string that is output on the Value output pin is not masked.  Default is off.

Minimum Number of Displayed Characters - Sets the input field width to hold at least this number of characters. This is useful when you need a bigger field so a long text string can be input. Default is 20.

Password Masking Enabled - When the check box is selected, the input text is echoed as asterisks (*). This feature is useful when the operator is entering sensitive data such as a password. The string that is output on the Value output pin is not masked. Default is off.

Colors tab:

Pop-Up Panel group:

Title Bar Background: - Allows you to select the color of the active title bar for the pop-up dialog box and the error dialog box from a palette.

Title Bar Text: - Allows you to select the color of the text in the active title bar for the pop-up dialog box and the error dialog box from a palette.

Prompt Text: - Allows you to select the color of the Prompt/Label text and the Error Message text from a palette.

Fonts tab:

Pop-Up Panel group:

Title Bar Text - Allows you to select the font of the title bars for the pop-up dialog box and the error dialog box from the list of available fonts on your system.

Prompt Text - Allows you to select the font of the Prompt/Label text the Error Message text from the list of available fonts on your system.

Button Text - Allows you to select the font of the text displayed on the buttons of the pop-up dialog box and the error dialog box from the list of available fonts on your system.

The pop-up dialog box and the error dialog are automatically sized based on the font type and size.

Notes

The default location of the pop-up dialog box is approximately at the center of the work area. If you move it, next time it will pop-up to the new location.

The title text of the error message dialog box is the same as the Text Input object title.

To respond to the pop-up dialog box using only the keyboard: when the dialog box pops up, start typing and use Enter and Esc keys. Use the Tab key to move between the input field and the buttons and then select the buttons with the Space bar.

The pop-up dialog box and the error dialog box are only displayed while the program is running. While the pop-up dialog box is displayed, the entire program pauses execution, then continues when the dialog box is closed.

See Also

File Name Selection, Integer Input, List Box, Message Box, Real Input, and UserObject.


Thermometer

An object that displays a Scalar numeric value graphically using a color bar inside a graphical thermometer.

Supported On

All HP VEE Platforms

Use

Use Thermometer to display a numeric value on a analog scale with a color bar inside a graphical thermometer, and an optional digital numeric field.

Location

Display ==> Indicator ==> Thermometer

Open View

The minimum and maximum values of the Thermometer are set on the open view of the object by clicking on the present value and typing in a new value. Tic marks and their labels are automatically calculated and displayed. The minimum value must be less than the maximum value.

These values may also be added as control inputs.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the contents of the Thermometer are cleared at PreRun.  Default is on.

Clear At Activate - When the check box is selected, the contents of the Thermometer are cleared at Activate.  Default is on.

Layout group:

Horizontal | Vertical - Selects the orientation of how the Thermometer is displayed. Default is Vertical.

Show Digital Display  - If the check box is selected, a digital display of the input value is displayed at the bottom of the open view of the object.  If the check box is not selected, the digital display is not displayed and the object operates faster. Default is on.

Limits group:

High Color - Specifies the color used for the highest range (i.e., greater than High Limit).

High Limit - Defines the numeric lower limit for the highest range. This value must be greater than or equal to the Low Limit. You may add this value as a control input, which disables this property's edit field.

Mid Color - Specifies the color used for the middle range (i.e., less than or equal to High Limit and greater than Low Limit).

Low Limit - Defines the numeric upper limit for the lowest range. This value must be less than or equal to the High Limit. You may add this value as a control input, which disables this property's edit field.

Low Color - Specifies the color used for the lowest range (i.e., less than or equal to the Low Limit).

Notes

The input data must be Scalar and able to be converted to Real (Complex, PComplex, Spectrum, and Coord must be first "unbuilt".)

The Low Limit must be less than the High Limit.

To use only 2 ranges of color, set the Low Limit equal to the High Limit.

To use only 1 color, set the Low Color, Mid Color, and High Color to the same color.

Short Cuts

To quickly change the orientation of the Thermometer, just resize it to the desired shape. It will automatically change orientation.

See Also

AlphaNumeric, Color Alarm, Fill Bar, Logging AlphaNumeric, Meter, and Tank.


Timer

An object that outputs the difference in seconds between the activation times of the top and bottom data input pins.

Supported On

All HP VEE Platforms

Use

Use Timer to measure how much time passes between two events, such as objects operating. This happens when the first and second inputs are activated. If the second input is activated before the first, the container on the second input is ignored and the Timer object does not execute.

Location

Device ==> Timer

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the contents of the Timer are cleared at PreRun.  Default is on.

Clear At Activate - When the check box is selected, the contents of the Timer are cleared at Activate.  Default is on.

Notes

Time is displayed in seconds.

See Also

Date/Time, Do.


To

A menu item.

Supported On

All HP VEE Platforms

Use

Use To for accessing the following objects which are destinations for I/O operations:

To File

To DataSet

To Printer

To String

To StdOut (UNIX)

To StdErr (UNIX)

Location

I/O ==> To ==>

See Also

From.


To DataSet

An object that allows the user to collect records into a file.

Supported On

All HP VEE Platforms

Use

Use To DataSet to collect records that have the same schema definition into a file for later retrieval. The following control pins can be added:

File Name -- This control pin allows the user to change the name of the file that the records will be written to.

Rewind -- This control pin "rewinds" the file and makes it available for rewriting with an entirely new record type. The effect is the same as sending the first record to the file with the Clear File At PreRun selection check box selected.

Close -- This control pin closes the file.

Location

I/O ==> To ==> DataSet

Open View Parameters

To DataSet: -- Click on the name field to display a dialog box, then select the name of the file that contains the DataSet.

Clear File At PreRun -- If this check box is selected, the entire DataSet is cleared and rewritten the first time To DataSet executes (when it receives the first record). Because the DataSet is completely erased, records with a new schema definition can be sent -- the first record establishes the new schema definition.

Notes

The records going into the To DataSet file must have the same schema (data shape and type). The first record written to the file will define the schema that all subsequent records must have.

Every time the To DataSet object executes with its one input (only one input is allowed), the new record is appended to the file.  If the new record is an array, every record element of it is appended.  The schema (number of fields, and each field name, type, and shape) must match for every record, but the shape of the record (scalar/array) does not matter. The To DataSet object will continue appending to the file until either a Rewind control input is activated, or Clear File At PreRun is selected and PreRun occurs.  The next time the To DataSet object executes, it begins writing to the file at its beginning, again starting with the schema of the first record. This schema may be different than what was in the file.

See Also

Build Record, From DataSet, Record Constant, and UnBuild Record.


To File

An object that writes data to a file using transaction statements.

Supported On

All HP VEE Platforms

Use

Use To File to output a wide variety of encodings and formats to allow flexible output to files. A single pointer is maintained for each file; therefore, data output by different To File objects is written to the file in the order that the objects operated.

To File Actions:

WRITE - Writes data to a file using the specified encoding and format.

EXECUTE - Repositions the file's write pointer to the beginning of the file with (CLEAR) or without (REWIND) erasing the contents of the file. EXECUTE REWIND can only be used when Clear File at PreRun & Open is selected. Note that the file is automatically closed when the HP VEE program stops. However, you may use the EXECUTE CLOSE transaction to close the file during program execution. EXECUTE DELETE deletes the file.

WAIT - Waits the specified number of seconds before executing the next transaction.

To File Encodings;

TEXT - Writes all data types to human-readable files that are easily edited or ported to other software applications. HP VEE numeric data is automatically converted to text as it is written.

BYTE - Converts numeric data to binary integer and writes the least significant byte.

CASE - Maps an enumerated value or an integer to a string and writes the string.  For example, you could use CASE to accept error numbers and write error messages.

BINARY - Writes all data types in an machine-specific binary format.

BINBLOCK - Writes all HP VEE data types in binary files with IEEE 488.2 definite length block headers.

CONTAINER - Writes all data types in an HP VEE specific text format.  Use CONTAINER to export data via the "To File" object directly into PV-WAVE to perform visual data analysis.

Location

I/O ==> To ==> File

Open View Parameters

Clear at PreRun & Open  - Erases file contents and sets file pointer to the beginning of the file. When the check box is not selected, data is appended to the end of the file.

If you have multiple To File objects pointing to the same file, the check boxes are linked so that if you change it in one place, it changes in all of them.

The open view shows the list of transactions to be executed.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

Data Format tab:

Separator Sequence group:

End Of Line (EOL) - Specifies the characters sent at the end of WRITE transactions that use EOL ON. The entry in this field must contain zero or more ASCII characters surrounded by double quotes.  Default is "\n".

Array Separator - Specifies the character string used to separate elements of an array written by WRITE TEXT transactions. The entry in this field must be surrounded by double quotes.

Multi-Field Format group: Specifies the following two formatting styles for multi-field data types for WRITE TEXT transactions. The affected data types are Coord, Complex, PComplex, and Spectrum.

Data Only - Separates each multi-field item with a comma without surrounding the group with parentheses. The complex number 2+2j would be formatted as 2,2.

(...) Syntax - (default) Separates each multi-field item with a comma and surrounds the group with parentheses. The complex number 2+2j would be formatted as (2,2).

Array Format group: Determines how multidimensional arrays are formatted.

Linear - Arranges array elements linearly.

Block - (default)  Arranges array elements in a block of two or more dimensions using the EOL character at the end of each row.

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

From File and  To/From Named Pipe (UNIX).

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


To/From DDE (PC)

An object that exchanges data through transactions to and from a Microsoft Windows application that supports Dynamic Data Exchange (DDE).

Supported On

Windows

Use

DDE is a tool for programmers who wish to implement interprocess communication.

You must add one or more transactions to To/From DDE (PC) to read or write data.  To do this, click on Add Trans in the object menu.

Location

I/O ==> To/From DDE (PC)

Open View Parameters

Application - The name of the Windows application supporting DDE. (For example, Excel.)

Topic - The application-specific identifier for the kind of data. (For example, Sheet1.)

In addition, the open view shows the list of transactions to be executed.

The Application and Topic fields can be added as control inputs.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

Data Format tab:

Separator Sequence group:

End Of Line (EOL) - Specifies the characters sent at the end of WRITE transactions that use EOL ON. The entry in this field must contain zero or more ASCII characters surrounded by double quotes.  Default is "\n".

Array Separator - Specifies the character string used to separate elements of an array written by WRITE TEXT transactions. The entry in this field must be surrounded by double quotes.

Multi-Field Format group: Specifies the following two formatting styles for multi-field data types for WRITE TEXT transactions. The affected data types are Coord, Complex, PComplex, and Spectrum.

Data Only - Separates each multi-field item with a comma without surrounding the group with parentheses. The complex number 2+2j would be formatted as 2,2.

(...) Syntax - (default) Separates each multi-field item with a comma and surrounds the group with parentheses. The complex number 2+2j would be formatted as (2,2).

Array Format group: Determines how multidimensional arrays are formatted.

Linear - Arranges array elements linearly.

Block - (default)  Arranges array elements in a block of two or more dimensions using the EOL character at the end of each row.

Notes

To/From DDE (PC) provides for communication with Windows applications that support Dynamic Data Exchange.  However, the user is responsible for determining the application-specific protocols necessary for successful DDE communication from HP VEE to a particular application.  This is an advanced programming capability.

A Windows application that supports DDE may act as either a client, a server, or both.  However, HP VEE provides only client capabilities.

To/From DDE (PC) uses four types of transactions:

READ(REQUEST) - Reads data from a DDE transfer.

WRITE(POKE) - Writes (pokes) data to a DDE transfer.

EXECUTE - Sends a command to the DDE server that HP VEE is communicating with.  The server then executes the command.

WAIT - Waits for the specified time (in seconds).

To/From DDE (PC) initiates and terminates DDE operations as part of its function.  You do not need to explicitly initiate and terminate these transactions.

For examples of using DDE, refer to HP VEE Advanced Programming Techniques.

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

From, From File, From StdIn (UNIX), To File, To/From Named Pipe (UNIX), To StdOut (UNIX), and To.

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


To/From HP BASIC/UX

An object that communicates with an HP BASIC/UX process using transactions by way of specified named pipes.

Supported On

HP-UX

Use

Use To/From HP BASIC/UX to communicate with an HP BASIC/UX program. Be certain that you understand how to use named pipes in the HP-UX environment.

Type in the names of the pipes you wish to use in the Read Pipe and Write Pipe fields.  Be certain that they match the names of the pipes used by your HP BASIC/UX program and that the read and write names are not inadvertently swapped.  Use different pipes for the To/From HP BASIC/UX objects in different threads.

A To/From HP BASIC/UX object is generally preceded by an Init HP BASIC/UX object.

Location

I/O ==> HP BASIC/UX ==> To/From HP BASIC/UX

Open View Parameters

The open view shows the list of transactions to be executed.

The Write Pipe and Read Pipe fields can be added as control inputs.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

Data Format tab:

Separator Sequence group:

End Of Line (EOL) - Specifies the characters sent at the end of WRITE transactions that use EOL ON. The entry in this field must contain zero or more ASCII characters surrounded by double quotes.  Default is "\n".

Array Separator - Specifies the character string used to separate elements of an array written by WRITE TEXT transactions. The entry in this field must be surrounded by double quotes.

Multi-Field Format group: Specifies the following two formatting styles for multi-field data types for WRITE TEXT transactions. The affected data types are Coord, Complex, PComplex, and Spectrum.

Data Only - Separates each multi-field item with a comma without surrounding the group with parentheses. The complex number 2+2j would be formatted as 2,2.

(...) Syntax - (default) Separates each multi-field item with a comma and surrounds the group with parentheses. The complex number 2+2j would be formatted as (2,2).

Array Format group: Determines how multidimensional arrays are formatted.

Linear - Arranges array elements linearly.

Block - (default)  Arranges array elements in a block of two or more dimensions using the EOL character at the end of each row.

Notes

Because of the behavior of named pipes, it is easiest to structure your HP VEE transactions and corresponding HP BASIC/UX OUTPUTs and ENTERs to transmit known or easily parsed data blocks.  For example, if you are transmitting strings, determine the maximum length block you wish to transmit and pad shorter strings with blanks.  This avoids the problems of trying to read more data from a pipe than is available and of leaving unwanted data in a pipe.

To help prevent a READ transaction from hanging until data is available, use a READ IOSTATUS DATA READY transaction in separate To/From HP BASIC/UX object.  This transaction returns a 1 if there is at least one byte to read, and a 0 if there are no bytes to read.

To read all the data available on the read pipe until the read pipe is closed, use a READ ... ARRAY TO END transaction.

If you are running discless, be certain you Read and Write to uniquely named pipes.

Example

Here are typical To/From HP BASIC/UX settings and the corresponding HP BASIC/UX program:

To/From HP BASIC/UX Object

   Write Pipe : /tmp/to_rmb

   Read Pipe  : /tmp/from_rmb

(These default pipes are created for you the first time the object operates.)

HP BASIC/UX Program

   100  ASSIGN @From_vee TO "/tmp/to_rmb"

   110  ASSIGN @To_vee TO "/tmp/from_rmb"

   120  ! Your code here

   130  ENTER  @From_vee;Vee_data

   140  OUTPUT @To_vee;Rmb_data

   150  END

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

Init HP BASIC/UX and To/From Named Pipe (UNIX).

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


To/From Named Pipe (UNIX)

An object that creates and uses named pipes for I/O within UNIX systems.

Supported On

HP-UX

Solaris

Use

Named pipes are tools for programmers who wish to implement interprocess communication.

You must add one or more transactions to To/From Named Pipe to read or write data.  To do this, click on Add Trans in the object menu.

Location

I/O ==> To/From Named Pipe

Open View Parameters

The open view shows the list of transactions to be executed.

The Write Pipe and Read Pipe fields can be added as control inputs.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

Data Format tab:

Separator Sequence group:

End Of Line (EOL) - Specifies the characters sent at the end of WRITE transactions that use EOL ON. The entry in this field must contain zero or more ASCII characters surrounded by double quotes.  Default is "\n".

Array Separator - Specifies the character string used to separate elements of an array written by WRITE TEXT transactions. The entry in this field must be surrounded by double quotes.

Multi-Field Format group: Specifies the following two formatting styles for multi-field data types for WRITE TEXT transactions. The affected data types are Coord, Complex, PComplex, and Spectrum.

Data Only - Separates each multi-field item with a comma without surrounding the group with parentheses. The complex number 2+2j would be formatted as 2,2.

(...) Syntax - (default) Separates each multi-field item with a comma and surrounds the group with parentheses. The complex number 2+2j would be formatted as (2,2).

Array Format group: Determines how multidimensional arrays are formatted.

Linear - Arranges array elements linearly.

Block - (default)  Arranges array elements in a block of two or more dimensions using the EOL character at the end of each row.

Notes

All To/From Named Pipe objects contain the same default names for read and write pipes.  Be certain that you know which pipe you really want to read or write.

If the pipes do not exist before To/From Named Pipe operates, then they are created. However, there are some overhead costs; if the pipes exist beforehand, the program runs quicker. These pipes are created for you automatically if they do not already exist:

/tmp/read_pipe

/tmp/write_pipe

To create additional pipes, use the operating system command mknod.

Named pipes are opened when the first Read or Write transaction to that pipe operates after PreRun.  All named pipes are closed at PostRun.  The EXECUTE CLOSE READ PIPE and EXECUTE CLOSE WRITE PIPE transactions allow the named pipes to be closed at any time.

Because of the behavior of named pipes, it is easiest to structure your ToFrom Named Pipe transactions to transmit known or easily parsed data blocks.  For example, if you are transmitting strings, determine the maximum length block you wish to transmit and pad shorter strings with blanks.  This avoids the problems of trying to read more data from a pipe than is available and of leaving unwanted data in a pipe.

To help prevent a READ transaction from hanging until data is available, use a READ IOSTATUS DATA READY transaction in a separate To/From Named Pipe object.  This transaction returns a 1 if there is at least one byte to read, and a 0 if there are no bytes to read. Note that the writing end of the pipe must be opened for this transaction to complete.

To read all the data available on the read pipe until the read pipe is closed, use a READ ... ARRAY TO END transaction.

If you are running diskless, be certain you Read and Write to uniquely named pipes. Otherwise several workstations on the same diskless cluster may attempt to read/write to the same named pipe, which will cause contention problems.

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

From, From File, From StdIn (UNIX), To File, To/From DDE (PC), To StdOut (UNIX), and To.

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


To/From Socket

An object that uses sockets for I/O within networked computer systems.

Supported On

All HP VEE Platforms

Use

Sockets are tools for programmers who want to implement interprocess communication. To/From Socket uses transaction I/O.

You must identify the port you want to connect or bind, and add one or more transactions to To/From Socket to read or write data.

To/From Socket Actions:

READ - Reads data using the specified encoding and format.

WRITE - Writes data using the specified encoding and format.

EXECUTE - Use the EXECUTE CLOSE transaction to specifically terminate a socket connection.

WAIT - Waits the specified number of seconds before executing the next transaction.

To/From Socket Encodings:

TEXT - Reads and writes all data types to human-readable files that are easily edited or ported to other software applications. HP VEE numeric data is automatically converted to text as it is written.

BYTE - Converts numeric data to binary integer and writes the least significant byte.

CASE - Maps an enumerated value or an integer to a string and writes the string.  For example, you could use CASE to accept error numbers and write error messages.

BINARY - Reads and writes all data types in an machine-specific binary format.

BINBLOCK - Reads and writes all HP VEE data types in binary files with IEEE 488.2 definite length block headers.

CONTAINER - Reads and writes all data types in an HP VEE specific text format.

Location

I/O ==> To/From Socket

Open View Parameters

The open view shows the fields identifying port connections or bindings, the timeout period, and the list of transactions to be executed.

Connect/Bind Port - This button toggles between bind and connect modes. Bind Port binds a socket on the computer on which HP VEE is running and waits for a connection to occur.  Connect Port connects to a bound socket on a remote computer.  In the associated text field, enter the port number.  Use port numbers between 5000 and 6000.

Host Name - In Bind Port mode, displays the name of host computer on which HP VEE is running. In Connect Port mode, enter the specific host name or Internet Protocol (IP) address of the remote computer to which you want to connect.

Timeout - Integer value representing the timeout period in seconds allowed for bindings to occur or connections to be accepted. After connections are made, this is the period allowed for all READ and WRITE transactions.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

Data Format tab:

Separator Sequence group:

End Of Line (EOL) - Specifies the characters sent at the end of WRITE transactions that use EOL ON. The entry in this field must contain zero or more ASCII characters surrounded by double quotes.  Default is "\n".

Array Separator - Specifies the character string used to separate elements of an array written by WRITE TEXT transactions. The entry in this field must be surrounded by double quotes.

Multi-Field Format group: Specifies the following two formatting styles for multi-field data types for WRITE TEXT transactions. The affected data types are Coord, Complex, PComplex, and Spectrum.

Data Only - Separates each multi-field item with a comma without surrounding the group with parentheses. The complex number 2+2j would be formatted as 2,2.

(...) Syntax - (default) Separates each multi-field item with a comma and surrounds the group with parentheses. The complex number 2+2j would be formatted as (2,2).

Array Format group: Determines how multidimensional arrays are formatted.

Linear - Arranges array elements linearly.

Block - (default)  Arranges array elements in a block of two or more dimensions using the EOL character at the end of each row.

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

Notes

A To/From Socket object set to bind a socket or make a connection will block all threads in HP VEE while waiting the allowed timeout period for the connection to occur.

Multiple To/From Socket objects that are binding an identical port number will share the same socket.  Likewise, all objects configured with identical port numbers and host names to attempt connection to the same bound socket will share the same socket. The overhead of establishing the connection is incurred in the first execution of one of the commonly configured objects.

Setting the timeout value to zero disables timeouts, making the periods waiting for connections infinitely long. Timeout violations cause errors, and halt HP VEE execution.

All socket connections established in a HP VEE program are broken when a program stops executing.  When connections are broken, the server and client objects must repeat the bind/connect protocols to re-establish connections.

All READ operations will block for the timeout period waiting for the amount and type of data specified in the transaction. To avoid blocking threads, use the READ IOSTATUS transaction to detect when data is available on the socket.

See Also

To/From Named Pipe (UNIX).

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


To/From VXIplug&play

An object that writes data to and reads data from an instrument using transaction statements which call VXIplug&play drivers.

Supported On

All HP VEE Platforms

Note that not all VXIplug&play drivers support all platforms. Also certain versions of VTL/VISA (supplied with your GPIB card) may not be supported on all platforms. Please check with the appropriate vendor.

Use

Use To/From VXIplug&play to communicate with an instrument that has a VXIplug&play driver.  This instrument may be a "rack-and-stack" instrument as well as a VXI instrument.

After you select this menu item, you'll see a dialog box titled Select VXIplug&play Instrument which contains the list of currently configured VXIplug&play drivers. Click on the desired driver and click OK. You'll see the outline of the To/From VXIplug&play object. Click to place it.

This menu item is grayed out if no VXIplug&play drivers have been configured.

Location

I/O ==> VXIplug&play Instruments ==> To/From VXIplug&play

Open View Parameters

The open view shows the list of transactions to be executed. Each transaction is a VXIplug&play command (a call to a C function in the VXIplug&play driver).

When an empty transaction is double-clicked on, the Select a Function Panel dialog box appears.

This dialog box allows you to select the function to execute. The text area at the bottom of the dialog box gives a description of the currently selected function panel.  The hierarchical tree view of the functions shows you the different categories of function panels. A folder with a + to its left indicates there are more folders or function panels available. A folder with a - to its left indicates the folders or function panels are shown.  f(x) on the left side, indicates a function panel. To completely expand a branch of the tree, select the item to expand and press the * key.

After selecting the function and clicking OK, the Edit Function Panel dialog box appears. This dialog box lets you edit the values on the function panel, set up variables, and automatically create input and output terminals. Click the right mouse button on any non-control area of this dialog box to get help about the function call. Click the right mouse button on any control to get a description of the control.

Clicking Cancel at this point will cancel the entire function panel selection process.

The Edit Function Panel dialog box contains the following fields:

Panel tab:

Controls (at the top of the dialog box) - Each control represents a parameter to the function. Editing the value in a control lets you specify a constant value for the parameter. The names of the controls are labels specified from the function panel file. To get help on a control, click the right mouse button on it. There may not be any controls for certain function panels.

Session Handle - Displays the unique session handle of each instrument.

Status - Displays a non-zero value if an error occurred when executing this function panel.

Function call (at the bottom of the dialog box) - The C function (and its parameters) that are called when the object executes. This command string is also shown as a transaction on the open view of the object.

Parameters tab: (this tab may not exist for all drivers) - Allows you to specify variables for the parameters to the function.

label name group: The name of the control as specified from the function panel file.

Parameter Type: Constant | Variable - Specifies if the parameter is set as a constant value (from the Panel tab) or is input to the C function as a variable. Parameter Type is grayed out if the parameter must be a Variable (such as for an array type).  If Variable is selected, the Name and Create Terminal fields are enabled.

Name - The name of the variable passed by the C function.  By default, Name is set to the label name as specified from the function panel file. If the variable is an input variable, this field can also contain calls to UserFunctions that return a value (that then would be passed to the function call), global variables, and expressions to be evaluated at run time.

Create Terminal - When the check box is selected, the input and/or output terminal is created if it does not currently exist. If the Name field is set to an invalid terminal name (such as a UserFunction call or an expression) this field is grayed out.

When you double-click on an existing transaction, the Edit Function Panel dialog box will appear and then you can edit the currently selected call to the function.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Instrument Help - Gives you the help information associated with the VXIplug&play driver. This information was provided by the hardware manufacturer and is included with each driver.

Short Cuts

You can quickly add a data terminal by placing the cursor over the input or output terminal display area and then pressing CTRL+A. Each press of CTRL+A adds an additional data terminal.

You can quickly delete a data terminal by placing the cursor over the terminal view area and then pressing CTRL+D.

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

Properties

 General tab:

Caution Reporting group:

Ignore Cautions Returned - When the check box is selected, any cautions that are returned from transaction calls to some manufacturers' VXIplug&play drivers will not cause a caution dialog box to pop-up and pause the program. Generally, this check box should only be checked after you have gotten a caution from a VXIplug&play and modified your program to handle the caution condition.

Notes

When in the Edit Function Panel dialog box, click the right mouse button on the background of the Panel tab for help on the function panel.

Click the right mouse button on a control for an explanation of the parameter.

VXIplug&play does not support any of the Advanced I/O features.

VXIplug&play function calls cannot be mixed with Direct I/O or Instrument Panels to communicate with the same instrument in a program. You can, however, use different types of I/O to different instruments in the same program.

You must allocate memory for array and text parameters passed into the VXIplug&play drivers. If not enough memory is allocated for these parameters, the function could overwrite memory and may cause a a General Protection Fault or Segmentation Violation.  Since the VXIplug&play shared library is linked directly into HP VEE, this situation can cause HP VEE to crash and exit.

See Also

Advanced I/O, Component Driver, Other Instruments, Instrument Panel, and VXIplug&play Instrument Configuration.

Using VXIplug&&play Drivers with HP VEE


Toggle Control

Object that output a 1 (pressed, checked, or selected) or a 0. Toggle Control objects have a variety of display formats, but they all work the same way.

Supported On

All HP VEE Platforms

Use

Use Toggle Control objects to set a one or a zero output. Toggle Control objects are commonly used with an If/Then object that contains an A==1 condition.

Location

Data ==> Toggle Control ==>

Properties

General tab:

Format group: - Specifies the appearance of the Toggle Control object and the method of selecting a choice. The default format is whichever object you chose from the menu.

Button - The choice is made by pressing a button.

Check Box - The choice is made by clicking on a recessed box. A check mark indicates on (1).

Vertical Paddle - A vertical paddle switch. A green dot indicates on (1).

Horizontal Paddle - A horizontal paddle switch. A green dot indicates on (1).

Vertical Rocker - A vertical rocker switch. A green dot indicates on (1).

Horizontal Rocker - A horizontal rocker switch. A green dot indicates on (1).

Vertical Slide - A vertical slide switch. A green dot indicates on (1).

Horizontal Slide - A horizontal slide switch. A green dot indicates on (1).

<Custom> - When selected, you can specify your own bitmaps for on and off. Select the bitmaps from the Custom tab.

Execution group:

Wait for Input - When this check box is selected, the object does not operate until the object's value is changed. When the check box is not selected, the object operates as soon as any constraints are met, and the currently selected value is output. Default is off.

Auto Execute - When this check box is selected, the object operates and starts the rest of the program when a value is selected. If the program is already running, Auto Execute is ignored. Default is off.

Layout group:

Scaled - If the check box is selected, the toggle images are scaled to the size of the object.  If the check box is not selected, the toggle images are left-justified.  Default is off.

Show Caption - When the check box is selected, the caption on the open view of the object is shown. The caption contains the same text as on the title bar.

Initialization group:

Initial Value - Specifies the value to be set.  Default value is 0 (zero).

Initialize At PreRun - When the check box is selected, the Initial Value is set at PreRun time.  Default is off.

Initialize At Activate - When the check box is selected, the Initial Value is set at Activate time.  Default is off.

Custom tab:

The selections on this tab are only available if <Custom> is selected from the General tab, Format group.

On Picture - Select the graphical image file you want displayed when the Toggle Control outputs a value of 1.

Off Picture - Select the graphical image file you want displayed when the Toggle Control outputs a value of 0.

Preview - Displays the current graphic images selected.

The directory shown is the bitmaps directory under the installation directory. To choose a file from another directory, press the Browse ... button.

HP VEE examines the file to determine the file format. The currently supported formats are:

Bitmaps (*.BMP) - Windows and UNIX

X11 Bitmap (*.ICN) - Windows and UNIX

GIF87a (*.GIF) - Windows and UNIX

X11 Window Dump (*.xwd) - UNIX only

Default bitmaps are located in the bitmaps directory under the HP VEE program installation directory.

Note

Initialize is most often used for initializing values inside a UserObject. The other method for setting initial values is the Default Value control pin.

Control inputs may be added for Default Value and Reset. The Default Value input allows you to programmatically change the current value.  This input requires an Int32 Scalar value. A value of 0 is a toggle off.  Any other value is a toggle on.  The Reset input allows you to programmatically set the value to zero. The actual data on the Reset input is ignored.

See Also

Complex, Constant, Coord, Date/Time, Selection Control, If/Then/Else, Integer, PComplex, Real, and Text.


Toggle Breakpoints

Sets or clears execution breakpoints at the selected objects.

Supported On

All HP VEE Platforms

Use

Use Toggle Breakpoints as a debugging tool to set or clear breakpoints. Select the objects and then select Toggle Breakpoints. This action sets breakpoints on any selected objects without breakpoints, and clears the breakpoint on any selected objects with breakpoints.

Setting a breakpoint on an object stops the execution of the program before this object. To continue execution, press the Resume button on the HP VEE toolbar; to operate only the object with the breakpoint, press Step.

After the breakpoint is set, the object is highlighted with a colored outline border (orange, by default).

Location

Debug ==> Toggle Breakpoints

Toggle Breakpoints is also located on the toolbar.

Notes

To set the breakpoint of a single object, use the Breakpoint selection on the object properties dialog box.

When an object has a breakpoint set via Toggle Breakpoints, the Breakpoint selection is checked on the General tab in the Properties dialog box.

Breakpoints are saved with the program.  If you do not want the breakpoints to reappear when the program is opened, use Clear Breakpoints before saving.

See Also

Activate Breakpoints, Properties (Object), Clear All Breakpoints, Resume, Select Objects, Show Data Flow, Show Execution Flow, and Step.


To Printer

An object that sends data to a printer.

Supported On

All HP VEE Platforms

Use

Use To Printer to output data to a printer using a wide variety of encodings and formats.

To Printer Actions:

WRITE - Prints data using the specified encoding and format.

WAIT - Waits the specified number of seconds before executing the next transaction.

To Printer Encodings:

In almost all cases, you should use TEXT or CASE encoding to print data. Other encodings should be used by advanced users only.

TEXT - Writes all data types in human-readable form. HP VEE numeric data is automatically converted to text as it is written.

BYTE - Converts numeric data to binary integer and writes the least significant byte.

CASE - Maps an enumerated value or an integer to a string and writes the string.  For example, you could use CASE to accept error numbers and write error messages.

BINARY - Writes all data types in an machine-specific binary format.

BINBLOCK - Writes all HP VEE data types in binary files with IEEE 488.2 definite length block headers.

CONTAINER - Writes all data types in a machine-specific text format.

Location

I/O ==> To ==> Printer

Open View Parameters

The open view shows the list of transactions to be executed.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

Data Format tab:

Separator Sequence group:

End Of Line (EOL) - Specifies the characters sent at the end of WRITE transactions that use EOL ON. The entry in this field must contain zero or more ASCII characters surrounded by double quotes.  Default is "\n".

Array Separator - Specifies the character string used to separate elements of an array written by WRITE TEXT transactions. The entry in this field must be surrounded by double quotes.

Multi-Field Format group: Specifies the following two formatting styles for multi-field data types for WRITE TEXT transactions. The affected data types are Coord, Complex, PComplex, and Spectrum.

Data Only - Separates each multi-field item with a comma without surrounding the group with parentheses. The complex number 2+2j would be formatted as 2,2.

(...) Syntax - (default) Separates each multi-field item with a comma and surrounds the group with parentheses. The complex number 2+2j would be formatted as (2,2).

Array Format group: Determines how multidimensional arrays are formatted.

Linear - Arranges array elements linearly.

Block - (default)  Arranges array elements in a block of two or more dimensions using the EOL character at the end of each row.

Notes

If you are printing from a PC using a WRITE TEXT transaction, To Printer cannot print ASCII text with embedded control characters. Use the To File object instead, and in the file name text field, enter a port name such as LPT1.

To configure the destination printer, use Print Setup on the PC, or Printer Config on the UNIX workstation.

When the first To Printer object in a program operates, it starts a print job. The print job is shared by all To Printer objects in the program, therefore their output appears in sequence on the same printout.

The print job remains open until PostRun, or until an EXECUTE CLOSE transaction is executed or the End Job control input on any To Printer is activated.  PostRun occurs when all the threads in a program complete execution or when you press Stop twice.  You access the End Job control input pin by way of the Add Control Input selection in the object menu.

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

Edit Default Preferences, To, To File, To/From Named Pipe (UNIX), and To StdOut (UNIX).

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


To StdErr (UNIX)

An object that uses transactions to transmit data to the operating system standard error output.

Supported On

HP-UX

Solaris

Use

Use To StdErr to output a wide variety of file encodings and formats to the standard error output of HP VEE.

To StdErr Actions:

All ToStdErr objects use the same write pointer, even if they are in different threads or different contexts.  Data written by different ToStdErr objects appears on stderr in the order the objects operated.

WRITE - Writes data to standard error using the specified encoding and format.

WAIT - Waits the specified number of seconds before executing the next transaction.

To StdErr Encodings:

TEXT - Writes all data types in a human-readable form. HP VEE numeric data is automatically converted to text as it is written.

BYTE - Converts numeric data to binary integer and writes the least significant byte.

CASE - Maps an enumerated value or an integer to a string and writes the string.  For example, you could use CASE to accept error numbers and write error messages.

BINARY - Writes all data types in an machine-specific binary format.

BINBLOCK - Writes all HP VEE data types in binary form with IEEE 488.2 definite length block headers.

CONTAINER - Writes all data types in a machine-specific text font.

Location

I/O ==> To ==> StdErr

Open View Parameters

The open view shows the list of transactions to be executed.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

Data Format tab:

Separator Sequence group:

End Of Line (EOL) - Specifies the characters sent at the end of WRITE transactions that use EOL ON. The entry in this field must contain zero or more ASCII characters surrounded by double quotes.  Default is "\n".

Array Separator - Specifies the character string used to separate elements of an array written by WRITE TEXT transactions. The entry in this field must be surrounded by double quotes.

Multi-Field Format group: Specifies the following two formatting styles for multi-field data types for WRITE TEXT transactions. The affected data types are Coord, Complex, PComplex, and Spectrum.

Data Only - Separates each multi-field item with a comma without surrounding the group with parentheses. The complex number 2+2j would be formatted as 2,2.

(...) Syntax - (default) Separates each multi-field item with a comma and surrounds the group with parentheses. The complex number 2+2j would be formatted as (2,2).

Array Format group: Determines how multidimensional arrays are formatted.

Linear - Arranges array elements linearly.

Block - (default)  Arranges array elements in a block of two or more dimensions using the EOL character at the end of each row.

Notes

In general, the standard error output for HP VEE is the terminal window in which you ran HP VEE. You can redirect the standard error output by starting the HP VEE process using a command that redirects standard error, such as

veetest 2> someFileName       (For sh and ksh)

veetest >& someFileName       (For csh)

to send the stderr data to the file "someFileName".

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

From File, From StdIn (UNIX), To/From Named Pipe (UNIX), and To StdOut (UNIX).

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


To StdOut (UNIX)

An object that uses transactions to transmit data to the operating system standard output.

Supported On

HP-UX

Solaris

Use

Use To StdOut to output a wide variety of file encodings and formats to standard output of HP VEE.

To StdOut objects use the same write pointer, even if they are in different threads or different contexts.  Data written by different To StdOut objects appears on stdout in the order the objects operated.

To StdOut Actions:

WRITE - Writes data to standard output using the specified encoding and format.

WAIT - Waits the specified number of seconds before executing the next transaction.

To StdOut Encodings:

TEXT - Writes all data types in a human-readable form. HP VEE numeric data is automatically converted to text as it is written.

BYTE - Converts numeric data to binary integer and writes the least significant byte.

CASE - Maps an enumerated value or an integer to a string and writes the string.  For example, you could use CASE to accept error numbers and write error messages.

BINARY - Writes all data types in an machine-specific binary format.

BINBLOCK - Writes all HP VEE data types in binary files with IEEE 488.2 definite length block headers.

CONTAINER - Writes all data types in a machine-specific text format.

Location

I/O ==> To ==> StdOut

Open View Parameters

The open view shows the list of transactions to be executed.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

Data Format tab:

Separator Sequence group:

End Of Line (EOL) - Specifies the characters sent at the end of WRITE transactions that use EOL ON. The entry in this field must contain zero or more ASCII characters surrounded by double quotes.  Default is "\n".

Array Separator - Specifies the character string used to separate elements of an array written by WRITE TEXT transactions. The entry in this field must be surrounded by double quotes.

Multi-Field Format group: Specifies the following two formatting styles for multi-field data types for WRITE TEXT transactions. The affected data types are Coord, Complex, PComplex, and Spectrum.

Data Only - Separates each multi-field item with a comma without surrounding the group with parentheses. The complex number 2+2j would be formatted as 2,2.

(...) Syntax - (default) Separates each multi-field item with a comma and surrounds the group with parentheses. The complex number 2+2j would be formatted as (2,2).

Array Format group: Determines how multidimensional arrays are formatted.

Linear - Arranges array elements linearly.

Block - (default)  Arranges array elements in a block of two or more dimensions using the EOL character at the end of each row.

Notes

In general, the standard output for HP VEE is the terminal window in which you ran HP VEE. You can redirect standard output by starting the HP VEE process using a command that redirects standard output, such as

veetest > someFileName

to send the stdout data to the file "someFileName".

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

From File, From StdIn (UNIX), To/From Named Pipe (UNIX), and To StdErr (UNIX).

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


To String

An object that uses transactions to write formatted text to a string.

Supported On

All HP VEE Platforms

Use

Use To String to create formatted text using transactions.

If only one string is generated by the To String transactions, the output container is a string scalar.  When more than one string is generated, the output container is an Array 1D.

WRITE transactions ending with "EOL ON" will terminate the current output string, causing the next transaction in the To String list to write data to the next array element in the output container. You cannot specify the data format's separator sequence for the End Of Line (EOL) property.

WRITE Transactions ending with "EOL OFF" will not terminate the output string, causing the characters generated by the next WRITE transaction in the To String list to be appended to the end of the current output string. The last transaction in the To String list will always terminate the output string, regardless of that transaction's "EOL" mode.

To String Actions:

WRITE - Writes data using the specified encoding and format.

WAIT - Waits the specified number of seconds before executing the next transaction.

To String Encodings:

In almost all cases, you should use TEXT encoding to write data.

TEXT - Writes all data types in human-readable form. HP VEE numeric data is automatically converted to text as it is written.

BYTE - Converts numeric data to binary form and writes the ASCII text equivalent that maps to the least significant byte.  For example, the following transaction writes the character A (ASCII 65 decimal):

WRITE BYTE 65

CASE - Maps an enumerated value or an integer to a string and writes the string.  For example, you could use CASE to accept error numbers and write error messages.

Location

I/O ==> To ==> String

Open View Parameters

The open view shows the list of transactions to be executed.

Object Menu

Add Trans - Adds a transaction to the end of the list.

Insert Trans - Inserts a transaction before the currently highlighted transaction.

Cut Trans - Cuts (deletes) the currently highlighted transaction, but saves it in the transaction "cut-and-paste" buffer.

Copy Trans - Copies the currently highlighted transaction to the transaction "cut-and-paste" buffer.

Paste Trans - Pastes the transaction that had been previously "cut" or "copied".

Print Trans - Prints the detailed dialog box that describes the currently highlighted transaction.

Properties

Data Format tab:

Separator Sequence group:

End Of Line (EOL) - Specifies the characters sent at the end of WRITE transactions that use EOL ON. The entry in this field must contain zero or more ASCII characters surrounded by double quotes.  Default is "\n".

Array Separator - Specifies the character string used to separate elements of an array written by WRITE TEXT transactions. The entry in this field must be surrounded by double quotes.

Multi-Field Format group: Specifies the following two formatting styles for multi-field data types for WRITE TEXT transactions. The affected data types are Coord, Complex, PComplex, and Spectrum.

Data Only - Separates each multi-field item with a comma without surrounding the group with parentheses. The complex number 2+2j would be formatted as 2,2.

(...) Syntax - (default) Separates each multi-field item with a comma and surrounds the group with parentheses. The complex number 2+2j would be formatted as (2,2).

Array Format group: Determines how multidimensional arrays are formatted.

Linear - Arranges array elements linearly.

Block - (default)  Arranges array elements in a block of two or more dimensions using the EOL character at the end of each row.

Example

To String is a useful debug tool to explore how TEXT transactions operate. Connect a Logging AlphaNumeric display to the To String output terminal to immediately view the results.

Short Cuts

To quickly insert a transaction, place the cursor on a transaction.  Press CTRL+O to insert a transaction over the transaction where you placed the cursor.

To quickly delete ("kill") a transaction, place the cursor on that transaction and press CTRL+K.

To paste a transaction from the "kill" buffer press CTRL+Y.

To quickly move to the next or previous transaction, press CTRL+N or CTRL+P respectively.

See Also

To, To File, To/From Named Pipe (UNIX), To StdOut (UNIX), and To StdErr (UNIX).

HP VEE Advanced Programming Techniques, Chapter 6, "Using Transaction I/O."


UnBuild Complex

An object that outputs the real and imaginary components of a Complex number as Real numbers.

Supported On

All HP VEE Platforms

Use

Use UnBuild Complex to extract the real and imaginary components from a rectangular Complex number.

Location

Data ==> UnBuild Data ==> Complex

Notes

You can also get the components of a Complex number by using the re(x) and imag(x) functions or objects.

Even if inputs are mapped, the outputs are not.

See Also

Build Complex, UnBuild Data, and UnBuild PComplex.


UnBuild Coord

An object that outputs the values of a Coord as Real numbers.

Supported On

All HP VEE Platforms

Use

Use UnBuild Coord to extract the x, y, z ... values of a Coord data type.  Additional outputs can be added for the z and other coordinate dimensions. The number of outputs must match the number of coordinate dimensions of the input data.

Location

Data ==> UnBuild Data ==> Coord

See Also

Build Coord and UnBuild Data.


UnBuild Data

A menu item.

Supported On

All HP VEE Platforms

Use

Use UnBuild to access the following data type conversion objects:

Coord

Complex

PComplex

Waveform

Spectrum

Record

Location

Data ==> UnBuild Data

See Also

Access Array, Build Data, UnBuild Complex, UnBuild Coord, UnBuild PComplex, UnBuild Record, UnBuild Spectrum, and UnBuild Waveform.


UnBuild PComplex

An object that extracts the magnitude and phase components of a PComplex number and outputs them as Real numbers.

Supported On

All HP VEE Platforms

Use

Use UnBuild PComplex to extract the magnitude and phase components from a PComplex number.

Location

Data ==> UnBuild Data ==> PComplex

Notes

You can also get the components of a PComplex number by using the mag(x) and phase(x) functions or objects.

Even if inputs are mapped, the output are not.

See Also

Build PComplex, Edit Default Preferences, UnBuild Complex, and UnBuild Data.


UnBuild Record

An object that allows the user to unbuild a record and recover its components.

Supported On

All HP VEE Platforms

Use

Use UnBuild Record to extract the data components from a record (A, B, and so forth), and to obtain a Name List and Type List for those components.

The Name List output pin outputs a Text array of all the names of the input record field names.

The Type List output pin outputs a Text array of all the data types of the input record.

The A, B, etc. output pins output the individual data components unbuilt from the record.

Location

Data ==> UnBuild Data ==> Record

Notes

You may add an arbitrary number of output pins to this object. Each output pin name must correspond to a name of a record field. Field names are not case sensitive (lowercase and uppercase letters are equivalent).

Note the distinctions between the UnBuild Record, SubRecord, Get Field, and From DataSet objects.

The UnBuild Record object has outputs for the Name List and Type List of the input record fields. The other (optional) outputs A, B, etc. of the UnBuild Record object return the same results as would multiple Get Field objects.

The Get Field object works like a Formula object, in that it uses dot syntax (A.B) to unbuild a record. Note that Get Field allows you to unbuild a record of records in one step by using an expression such as A.B.C. This process would require two UnBuild Record objects.

The SubRecord object differs from UnBuild Record and Get Field in that its output is always a record. The SubRecord device allows you to either include or exclude a list of fields from a record to form a subrecord.

From DataSet lets you read records from a file of records (a "data set") based on the constraints of a logical expression. For example, you could extract all records that have the value PASS in a record field.

See Also

Build Record, From DataSet, Get Field, Record Constant, Set Field, SubRecord, and To DataSet.


UnBuild Spectrum

An object that outputs the PComplex values and frequency range of a Spectrum.

Supported On

All HP VEE Platforms

Use

Use UnBuild Spectrum to extract an Array 1D of PComplex values and interval information from a Spectrum.

Location

Data ==> UnBuild Data ==> Spectrum

Open View Parameters

Start/Stop | Center/Span - Changes the values in the outputs that describe the frequency range of the Spectrum.

See Also

Build Spectrum, UnBuild Data, and UnBuild Waveform.


UnBuild Waveform

An object that outputs the amplitude values and time span of a Waveform.

Supported On

All HP VEE Platforms

Use

Use UnBuild Waveform to extract an Array 1D of the amplitude values and a real value for the time span from a Waveform.

Location

Data ==> UnBuild Data ==> Waveform

Notes

The Real array output will be unmapped.

See Also

Build Waveform, UnBuild Data, and UnBuild Spectrum.


unlockPosition()

An object that allows a user to move the UserFunction panel that is currently being shown.

Supported On

All HP VEE Platforms

Use

When you use showPanel() to display a UserFunction panel, and have used lockPosition() or have checked the Lock Panel Position property to prevent the user from moving the panel, use unlockPosition() to allow the user to move the panel.

Location

Device ==> Panel ==> unlockPosition()

Open View

You must include the text unlockPosition(). Inside the parenthesis, you type the following parameter:

"UFname" - The name of the UserFunction. You must have double quotes around this name. This parameter is required.

You may add a data input pin to the unlockPosition() object to set the UserFunction name, but you must replace "UFname" with the input terminal name.

Notes

The unlockPosition() object is simply a Formula object initialized without inputs and containing the unlockPosition() equation. You may also type unlockPosition() into any other Formula object or expression.

See Also

Call Function, hidePanel(), lockPosition(), panelPosition(), panelSize(), showPanel(), and UserFunction.


Unpack (Object Menu)

A menu selection, found only in the object menu for a UserObject, which "unpacks" the UserObject.  The UserObject disappears, but the objects within it become part of the main context of the program.

Supported On

All HP VEE Platforms

Use

Use Unpack to remove a UserObject and place its contents into the main context of the program.  Or in the case of a nested UserObject, to place its contents into the context of the UserObject in which the unpacked UserObject resided.  The functionality within the UserObject is maintained because the objects that made it up retain their lines of connection within the new context.

Location

On the object menu (UserObjects only) ==> Unpack

Notes

Unpack is the reverse of Create UserObject.  If you select objects and execute Create UserObject, those objects and their connections become part of the new UserObject.  If you then execute Unpack on the UserObject, the objects are returned to the main context of the program, as if you had never created the UserObject.

See Also

Create UserObject and UserObject.


Until Break

An object that repeats execution of a subthread until a Break is encountered.

Supported On

All HP VEE Platforms

Use

Use Until Break to start a set of operations that is repeated until a Break is encountered.

Location

Flow ==> Repeat ==> Until Break

Notes

Execution of the subthread hosted by the Until Break output continues until one of the following occurs:

All objects that can, have operated; the subthread is deactivated. The subthread is reactivated by refiring the Until Break output until a Break object is encountered.

A Break object operates .  The subthread is deactivated and the sequence output pin is activated.

A Next object operates.  The subthread is deactivated then reactivated by refiring the Until Break output until a Break object is encountered.

Until Break outputs an output execution signal that has no value (nil).

When the subthread hosted by the Until Break object finishes an iteration, all data containers sent during the previous iteration are invalidated before the next iteration. This prevents "old" data from a previous iteration from being reused in the current iteration. However, if flow branching is present within the iterative subthread, some objects may not execute on every iteration. Thus, data containers sent by those objects may be invalidated before other objects can execute on the data. To obtain the desired propagation in this case, use the Sample & Hold object. For an example and further information about using Sample & Hold, see the How to Use HP VEE manual, in the chapter "Some General Techniques", in the section "Controlling Program Flow".

See Also

Break, For Count, For Log Range, For Range, Next, On Cycle, and Sample & Hold.


UserFunction

A user-defined function created from a UserObject.

Supported On

All HP VEE Platforms

Use

You can create a UserFunction by creating a UserObject and then executing Make UserFunction (refer to UserObject for details). You can use Edit UserFunction to edit the UserFunction once it has been created. UserFunctions exist in the "background" and can be called with Call Function or from certain expressions.

An advantage of making a UserFunction out of a UserObject is that the same UserFunction can be called multiple times within the program, but it exists as source code only in one place.

Location

Select the UserFunction name from Edit ==> Edit UserFunction or from a Call Function object menu ==> Edit UserFunction.

Object Menu

Make UserObject - The opposite operation from Make UserFunction. Turns the UserFunction back into a UserObject.

Delete - Deletes the UserFunction from HP VEE and from memory. Before the deletion takes place, you'll get a dialog box that prompts you to save the UserFunction to a file. To save a UserFunction to a file, you must select Delete to do so. If you execute any objects that refer to a deleted UserFunction (such as Call or showPanel()), the program will error.

Edit ==> - A parent menu that leads to the UserFunction's context Edit menu. This menu contains the same choices as the main menu's Edit menu. You can get the pop-up Edit menu by clicking the right mouse button on the UserFunction work area.

The following choices are context sensitive to the UserFunction:

Clean Up Lines - Routes the lines in the UserFunction around objects.

Move Objects - Moves several objects at once.

Add To Panel - Creates a panel view for the UserFunction (if a panel view does not currently exist) containing the selected objects.

Create UserObject - Creates a UserObject of the currently selected objects.

Close - Hides the UserFunction edit window. The UserFunction still resides in memory. You do not need to Close the UserFunction edit window before running the program.

Notes

You can create a library of UserFunctions by creating several UserObjects, turning them into UserFunctions, and then saving them all to a file. This library then can be imported into a program using Import Library, and deleted with Delete Library.

Not only can you call a UserFunction with Call Function, but you can call it from any expression whose evaluation is delayed until run time. These include expressions in Formula, If/Then/Else, Get Values, Get Field, Set Field, or From DataSet devices, or expressions in Sequencer or I/O transactions. However, the syntax of function calls in an expression allows only a single return value. Thus, a call to a UserFunction from such an expression will return only the value on the first output. If there are additional outputs (excluding the sequence output) their values will be dropped. If there are no outputs, the returned value will be undefined.

To find the name of a panel that is showing (via showPanel() or Show Panel on Execute), click the right mouse button on the panel and the panel name will pop up.

See Also

Call Function, Delete Library, Edit UserFunction, Formula, hidePanel(), If/Then/Else, Import Library, lockPosition(), panelPosition(), panelSize(), Sequencer, showPanel(), unlockPosition(), and UserObject.


UserObject

An object that may contain other objects.

Supported On

All HP VEE Platforms

Use

Use UserObject to logically and physically group objects together. A UserObject constitutes a separate "context" from the root context of a program. You can use multiple UserObjects, or nested UserObjects within a program.

To create the desired UserObject, you can move other objects into the work area of the open view of the UserObject, or you can select objects and use Create UserObject from the Edit menu.

The Make UserFunction item in the object menu allows you to make the UserObject into a UserFunction, which can then be called using the Call Function object, or from certain expressions.

Operation:

A UserObject operates just like any other object -- no objects inside of a UserObject operate until all data inputs to the UserObject are activated.  All operations inside of the UserObject must be completed before the data outputs are activated.

The right-most button on the title bar of the open view is a maximize button -- it increases the size of the UserObject to the full size of the HP VEE work area.

When objects inside the UserObject are connected to objects outside the UserObject, input and output pins are automatically created.

Creating a UserFunction:

Once you have created a UserObject, you can use Make UserFunction (see "Object Menu," below) to create a UserFunction with the same functionality. The UserObject will disappear from the screen and will be replaced with a Call Function object containing a call to the new UserFunction.  The UserFunction will be added to the list of available User Functions, which exists in the "background" within the program. You can call the UserFunction using the Call Function object, or from certain expressions. You can edit the UserFunction by using Edit UserFunction in the Edit menu.

Location

Device ==> UserObject

Object Menu

You can select the object menu of the UserObject from the object menu button, but you cannot select it from within the work area of the UserObject open view. From within the work area, the right mouse button provides a pop-up Edit menu, just like the one available in the main work area.  When the pointer is over an object within the UserObject, the right mouse button gives the object menu for that object.  You can also get UserObject object menu by placing the pointer over the borders of the UserObject and clicking the right mouse button.

Maximize - Resizes the open view of the UserObject to occupy the entire HP VEE work area. Return to the previous open view size with Restore.

Make UserFunction - Converts the UserObject into a UserFunction. The UserObject will disappear from the work area and it is replaced with a Call Function object containing a call to the new UserFunction. Before you do this operation, enter a unique name into the title field. This name will become the UserFunction name, which will be the name by which Call Function or certain expressions can call the UserFunction. If the name is the original "UserObject" or is not unique, you will be prompted for a function name.

Unpack - Deletes the UserObject, but not the objects contained in it.

Secure - Prevents the UserObject from being modified by anyone. There is no UnSecure command.  You will be prompted to save a copy before securing. Be sure to save a copy before securing so you can make changes if necessary.

Edit ==> - A parent menu that leads to the UserObject context Edit menu. This menu contains the same choices as the main menu Edit menu. You can get the pop-up Edit menu by clicking the right mouse button on the UserObject work area.

The following choices are context sensitive to the UserObject:

Clean Up Lines - Routes the lines in the UserObject around objects.

Move Objects - Moves several objects at once.

Create UserObject - Creates a UserObject of the currently selected objects.

Add To Panel - Creates a panel view (for the UserObject) containing the selected objects.

The following choices are available when editing a UserFunction:

Make UserObject - The opposite operation from Make UserFunction. Turns the UserFunction back into a UserObject

Delete - Deletes the UserFunction from the HP VEE program.

Properties

General tab:

Trig Mode group:

Degrees | Radians | Gradians - specifies the default for trigonometric units used throughout this program.

Pop-Up Panel group:

Show Panel on Execute - When the check box is selected, shows the panel view associated with the UserObject when the UserObject operates. This is only available after the UserObject panel view has been created (using Add To Panel). Default is off.

Lock Panel Position - When the check box is selected, the pop-up panel is not movable by the user.  Default is on.

Show Title Bar - When the check box is selected, the title bar on the pop-up panel is displayed. Default is on.

Show Border - When the check box is selected, the border around the pop-up panel is displayed. Default is on.

Notes

To create a UserObject of the currently selected objects, use Create UserObject.

It is convenient to save UserObjects of common functions (using Save Objects) to create a library of functions to be used again.

You can create a library of UserFunctions by creating several UserObjects, turning them into UserFunctions, and then saving them all to a file. This library then can be imported into a program using Import Library, and deleted with Delete Library.

UserObject allows the addition of XEQ inputs.

If the XEQ input is activated, UserObject operates even if all its data input elements are not satisfied.

When a breakpoint is set on an object in a UserObject that is displayed as an icon view and Show Panel on Execute is off, Step ignores the breakpoint.

To find the name of a panel that is showing (via Show Panel on Execute), click the right mouse button on the panel and the panel name will pop up.

See Also

Add To Panel, Call Function, Create UserObject, Delete Library, Direct I/O, Edit UserFunction, Formula, If/Then/Else, Import Library, Secure, Sequencer, and UserFunction.


Vertical Paddle

See Toggle Control.


Vertical Rocker

See Toggle Control.


Vertical Slide

See Toggle Control.


View Detail

Switches the view displayed from the panel view to the detail view.

Supported On

All HP VEE Platforms

Use

When pressed, View Detail shows the detail view of the program, UserObject, or UserFunction.

Location

The toolbar of the main HP VEE window and on the title bar of UserObjects and UserFunctions (when an associated panel has been created).

Notes

On UserObjects and UserFuntions, View Detail is only visible after you've created a panel view.

After you've secured a panel view, the View Detail button is not visible.

See Also

Add To Panel, View Panel, and Secure.


View Globals

A menu item that allows you to view the list of global variables that are currently defined.

Supported On

All HP VEE Platforms

Use

Use View Globals to look at the type, shape, and data values of any currently defined global variables. (This menu item is "grayed" if no globals exist.)

Location

Debug ==> View Globals

View Globals is also located on the toolbar.

Notes

Before you may view any global variables, one or more must have been created by running a program with one or more Set Global objects.

All global variables are deleted at the beginning of every Run, Start, or auto-execution, provided Delete Globals at PreRun is on.  Global variables are always deleted by either File ==> New or File ==> Open. Global variable values are not saved with the program.

See Also

Edit Default Preferences, Delete Global, Get Global, and Set Global.


View Panel

Switches the view displayed from the detail view to the panel view.

Supported On

All HP VEE Platforms

Use

When pressed, View Panel shows the panel view you created as an interface to your program on either the main HP VEE window, a UserObject, or UserFunction.

Location

The toolbar of the main HP VEE window and on the title bar of UserObjects and UserFunctions (when an associated panel has been created).

Notes

On UserObjects or UserFunctions, View Panel is only visible when you've created a panel view.

After you've secured a panel view, the View Panel button is not visible.

See Also

Add To Panel, View Detail, and Secure.


Virtual Source

A menu item.

Supported On

All HP VEE Platforms

Use

Use Virtual Source to access the following virtual signal generators.

Function Generator

Pulse Generator

Noise Generator

Location

Device ==> Virtual Source ==>

Notes

Virtual Source objects output Waveforms.

See Also

Build Arb Waveform, Function Generator, Other Instruments, Noise Generator, and Pulse Generator.


VXIplug&play Device Configuration

Allows you to specify or modify the configuration for a VXIplug&play instrument to be used from HP VEE

Supported On

All HP VEE Platforms

Note that not all VXIplug&play drivers support all platforms. Also, certain versions of VTL/VISA may not be supported on all platforms. Please check with the appropriate vendor.

Use

Use this dialog box to add or edit instruments from the list of configured instruments.

Location

I/O ==> VXIplug&play Instruments ==> Configuration. Then press the Add Instrument or Edit Instrument button.

Dialog Information

The VXIplug&play Device Configuration dialog box is divided into these areas:

HP VEE Name: - Enter a unique name for this instrument. Note that spaces are significant and HP VEE Name does not distinguish between upper- and lower-case letters. Typical entries are Scope and dmm. This name must not duplicate any Name set under I/O ==> Other Instruments.

VXIplug&play Driver Name: - Select the name of the driver. The selections available are the drivers which have been installed. This is also the directory where the driver is located. This field is required.  The default location of these drivers are:

Windows 95: C:\VXIPNP\WIN95

Windows NT: C:\VXIPNP\WINNT

HP-UX: /opt/vxipnp/hpux

Solaris: /opt/vxipnp/sun

Parameters to init() call

Address: - Enter the digits of the address that identifies the instrument.  The address format depends on the interface that the instrument is connected to:

 - VXI address string. For a VXI instrument with an embedded or MXIbus controller, the address string takes the form VXI[board]::VXI logical address[::INSTR]. An example is VXI::24::INSTR for an instrument at logical address 24.

 - GPIB-VXI address string. For a VXI instrument that is being controlled from a GPIB card to a command module, the address string takes the form GPIB-VXI[board]::VXI logical address [::INSTR] . An example is GPIB-VXI0::24:INSTR for an instrument at VXI logical address 24.

 - GPIB address string. For a non-VXI instrument being controlled from a GPIB card, the address string takes the form GPIB[board]::GPIB primary address::[GPIB secondary address ][::INSTR] An example is GPIB0::4::24:INSTR for an instrument at primary address 4 and secondary address 24.

Perform Identification Query - When the check box is selected, the identity of the instrument is checked the first time a function panel for this driver is executed. Generally, you want to select this check box.

Perform Reset - When the check box is selected, the instrument is initialized to a pre-defined state the first time a function panel for this driver is executed. Generally, you want to select this check box.

Notes

The VXIplug&play Driver Name field allows you to select the driver name from those drivers that have already been installed. To install the set of files needed for each driver, follow the instructions included with the instrument driver. Each VXIplug&play driver was written by the hardware vendor and shipped with the instrument.

It is possible to have more than one object controlling a single instrument.  It is also possible to have multiple copies of the same driver, each controlling a different physical instrument. In either case, it is the configured name that determines which object controls which instrument. See Also

Device Configuration, Direct I/O, Other Instruments, Instrument Panel, and To/From VXIplug&play.


VXIplug&play Instrument Configuration

Displays the VXIplug&play Instrument Configuration dialog box.

Supported On

All HP VEE Platforms

Note that not all VXIplug&play drivers support all platforms. Also certain versions of VTL/VISA may not be supported on all platforms. Please check with the appropriate vendor. Use

Click on I/O ==> VXIplug&play Instruments ==> Configuration to display the VXIplug&play Instrument Configuration dialog box. Use this dialog box to add, edit, and delete instruments from the list of configured instruments.

Location

I/O ==> VXIplug&play Instruments ==>Configuration

Dialog Information

The VXIplug&play Instrument Configuration dialog box is divided into two areas:

Currently Configured Instruments: -  A scrollable list of currently configured VXIplug&play instruments is displayed. Click on an instrument in the list to select it for editing or deletion.

The other area affects instrument configurations.  There are three selections:

Add Instrument - This selection allows you to add an instrument to the list.  When you click on Add Instrument, the VXIplug&play Device Configuration dialog box appears.  You configure the instrument that you want to add by filling out the fields in this dialog box.

Delete Instrument - This selection deletes the currently highlighted instrument from the list.  If you make a mistake, click the Cancel button to recover.

Edit Instrument - This selection allows you to edit the currently highlighted instrument from the list. When you click on Edit Instrument, the VXIplug&play Device Configuration dialog box appears. You make changes to an existing instrument configuration by modifying the fields in this dialog box.

Notes

For instrument-specific help, select Instrument Help from the object menu of a To/From VXIplug&play object.

It is possible to have more than one object controlling a single instrument.  It is also possible to have multiple copies of the same driver, each controlling a different physical instrument. In either case, it is the configured name that determines which object controls which instrument.

Before HP VEE can communicate with your physical instruments, the instruments and your hardware interfaces must be properly configured. Refer to your HP VEE installation instructions for further information. For UNIX systems, your system administrator will need to verify the proper configuration of your system's interface drivers.

If you are using HP's VTL/VISA, you must configure your instruments with the hardware configuration utility installed with the HP I/O libraries before HP VEE will recognize the instruments.

See Also

Device Configuration, VXIplug&play Device Configuration, Direct I/O, Other Instruments, Instrument Panel, and To/From VXIplug&play.


VXIplug&play Instruments

A menu item.

Supported On

All HP VEE Platforms

Note that not all VXIplug&play drivers support all platforms. Also certain versions of VTL/VISA may not be supported on all platforms. Please check with the appropriate vendor.

Use

Use VXIplug&play Instruments to access the following menu items:

Configuration..

To/From VXIplug&play...

Location

I/O ==> VXIplug&play Instruments ==>

See Also

Other Instruments, VXIplug&play Instrument Configuration, and To/From VXIplug&play.


Waveform (Time)

An object that displays time-domain information (waveforms) on a two-dimensional graphical display.

Supported On

All HP VEE Platforms

Use

Use Waveform (Time) to display Waveforms or Spectrums in the time domain.  Spectrums are automatically converted to waveforms by way of an Inverse Fast Fourier Transform (ifft).  The X axis is in the sampling units of the input waveform (typically, seconds).

Location

Display ==> Waveform (Time)

Open View Parameters

Auto Scale - Automatically scales the display to show the entire trace.

Mag - The name of the Y axis.

Trace1 - The name of the first trace.

Time - The name of the X axis.

Object Menu

Auto Scale ==> - Automatically scales the display to show the entire trace. (Can be added as control pins.)

Auto Scale - Automatically scales both axes.

Auto Scale X -  Automatically scales the X axis.

Auto Scale Y -  Automatically scales the Y axis.

Zoom ==> - Scales the display.

In - Magnifies the display to contain only the rectangular region that you selected with the pointer. You select the region after selecting this feature by dragging on the graph area.  This action outlines the information with a "rubber band" box.

Out 2|5|10|20|50|100X - Expands the scales of the display by a factor in both the X and Y directions about the center.

Clear Control ==> - Parameters that specify when to clear the display.

Display - Clears the displayed trace(s).  This parameter may be added as a control input.

Next Curve - Resets the pen to display the next curve in a family of curves (data from the next time the display operates) without clearing the previous curve. Next Curve must be selected (or activated) before each new curve in the family. This parameter may be added as a control input.

Center Markers - If markers are available, brings them to the center of the visible part of the trace.  This is useful if you've scrolled the display and markers are not visible.

Add Right Scale - Adds up to two additional scales to permit traces to have different scale ranges. After adding a right scale, assign a trace to the scale using Traces & Scales button in the object's Properties dialog box (object menu ==> Edit Properties).

Plot - Presents the Plotter Setup control panel.  When OK is pressed, a copy of the device's entire display is plotted on the selected plotter.  This parameter may be added as a control input. If the current Plotter Setup is in Plot to File mode, you may specify the destination file or directory name as string data on the Plot control input. If no control input value is given, the file or directory name specified in Plotter Setup will be used.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the display is cleared at PreRun time.  Default is on.

Clear At Activate - When the check box is selected, the display is cleared at Activate time.  Default is on.

Layout group:

Graph Only - The open view shows only the graph area and the marker information (if it exists).  No buttons, scales, scale names, or traces names are shown. This layout redraws quickest and provides the largest display area.

Scales - The open view shows the graph area, the scales, the scale names, and trace names.  These fields are not recessed and may not be edited. This layout is useful when recessed fields might be distracting, such as printing graphs, or when the fields should be protected from editing on a User Panel.

Scales & Sliders - The open view shows all information about the graph.  It includes the most information and allows you to modify the most elements interactively.  It is the default.

Traces & Scales... - A dialog box that allows you to specify values such as the names, colors, line and point characteristics, minimum values, and maximum values for the traces and/or scales.

 Traces:

  - Name: - The name of the trace that is displayed to the left of the graph area and the name of the corresponding input terminal.
 - Scale: - If you have multiple Y scales, selects which Y scale is to be used for this trace.
 -  Color: - The color of the trace. Each added trace has a different color than the existing traces.  Default for Trace1 is Pen 4 (yellow).
 - Lines: - The format of the line connecting data points. Default is a continuous line.
 - Points: - The symbol that marks each data point. To show unconnected data points, select the single dot Lines format and the desired Points symbol. Default is a dot.

 Scales:

 - Show Scale: - If you have multiple Y scales, a selection (using a check box) to specify if the end points and an axis of each additional right scale is displayed to the right of the graph area.
 -  Scale Name: - The names of the scales.  They may be set here or on the Scales & Sliders layout.
 - Maximum: - The maximum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Minimum: - The minimum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Mapping: -  The way the x and y data is mapped to the display.  The mapping may be linear or log.  To make a log-log plot, change both X and Y axes to Log. Default is Linear.
 - Log Cycles: - The maximum number of decades shown (counting down from the maximum x and y values) when AutoScale is activated.  Log Cycles is only used when the Mapping is Log. Log Cycles is useful when a trace contains a large dynamic range in the data. Default is 4.
 - Scale Colors - The color of any background grid or tic marks. Default is Gray.

Grid Type group:

None - No grid lines are shown.

Tic Marks -  Shows tic marks at the major and minor divisions on all four sides of the graph.

Axis - Shows tic marks at the major and minor divisions on the X and Y axes of the graph.  If the actual axes are scrolled off the graph area, axis lines are drawn on the edge closest to the axes.

Lines - Shows lines at the major divisions and tic marks at the minor divisions.  The X and Y axes are shown as thick lines.

Markers group: - Allows you to find the exact value of a data point on the displayed curve. If the data is plotted on a log scale, the values shown on the marker are the linear data points.

To move markers to a different trace, click on the button to the left of the marker values near the bottom of the display. The button cycles through the different line types and colors of the different traces.

Off - No markers are shown. This selection is the default.

One - One marker is available.

Two - Two markers are available.

Delta - Two markers are available and the x and y differences between them are displayed.

Interpolate - When the check box is selected, you can place markers between the displayed data points. The marker values displayed are calculated by linear interpolation.  Default is off.

Notes

Inputs must be Scalar or Array 1D.

Input data of type Coord is plotted by simply using its x and y values without first being converted to type Waveform.

 Add traces with the Add Terminal ==> Data Input object menu selection.  Up to twelve traces are allowed.

A Title control input may be added, which sets the title bar name to the specified text value. This allows programmatic control over the title shown when the display is printed or plotted.

You can add a Traces control input pin. The control input data must be an array of records (or a record scalar if you only want to control one trace).  Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A field named TraceNum with an integer value (1 is the first trace).  The TraceNum field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name

Pen

LineType

PointType

The Name field must have a text value.  The Pen, LineType and PointType values must be integers from 0 to n, where 0 draws nothing and n is the number of choices available.

Refer to "Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

You can add a Scales control input pin to control the scales parameters listed above.  The control input data must be an array of records (or a record scalar, if you only want to control one scale). Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A Text field named Scale with a value X, Y (or Y1), Y2, or Y3. The Scale field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name - Must be a text value.

Min - Must be an integer or real value.

Max - Must be an integer or real value.

Mapping - Must have a text value of  Linear or Log.

Refer to "Using Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

See Also

Complex Plane, Magnitude Spectrum, Polar Plot, Strip Chart, X vs Y Plot, XY Trace, and Edit Default Preferences.


whichOS()

An object that outputs the operating system on which HP VEE is currently running.

Supported On

All HP VEE Platforms

Use

Use whichOS() to determine the operating system on which HP VEE is running.  Returns one of the following strings:

Windows (returned for Windows version 3.1. Note that Windows 3.1 is not supported for HP VEE version 3.2 or greater)

Windows_95

Windows_NT

HP-UX

SunOS

Location

Data ==> System Info ==> whichOS()

Examples

HP VEE for Windows 95 on a PC:  whichOS() returns Windows_95.

HP VEE for UNIX on an HP 9000 workstation:  whichOS() returns HP-UX.

HP VEE for UNIX on a Sun SPARCstation:  whichOS() returns SunOS.

Notes

The whichOS() object is simply a Formula object initialized without inputs and containing the whichOS() equation. You may also type whichOS() into any other Formula object or expression.

See Also

Formula, whichPlatform() and whichVersion().


whichPlatform()

An object that outputs the hardware platform on which HP VEE is currently running.

Supported On

All HP VEE Platforms

Use

Use whichPlatform() to determine the hardware system on which HP VEE is running.  Returns one of the following strings:

PC

HP9000s700

HP9000s300 (not supported for HP VEE version 3.2 or greater)

SPARCstation

Location

Data ==> System Info ==> whichPlatform()

Examples

HP VEE for Windows on a PC:  whichPlatform() returns PC.

HP VEE for HP-UX on a HP 9000 Series 700 workstation:  whichPlatform() returns HP9000s700.

HP VEE for SunOS on a Sun SPARCstation:  whichPlatform() returns SPARCstation.

Notes

The whichPlatform() object is simply a Formula object initialized without inputs and containing the whichPlatform() equation. You may also type whichPlatform() into any other Formula object or expression.

See Also

Formula, whichOS(), and whichVersion().


whichVersion()

An object that outputs the version of HP VEE that is currently running.

Supported On

All HP VEE Platforms

Use

Use whichVersion() to determine the version of HP VEE that is running. This is the same string that appears in the Help ==> About dialog box.

Location

Data ==> System Info ==> whichVersion()

Examples

For HP VEE version 3.2, whichVersion() returns the text string 3.2.

Notes

The whichVersion() object is simply a Formula object initialized without inputs and containing the whichVersion() equation. You may also type whichVersion() into any other Formula object or expression.

See Also

Formula, whichOS(), and whichPlatform().


XEQ Input (Object Menu)

Adds an XEQ input pin to the object.

Supported On

All HP VEE Platforms

Use

Use XEQ Input to add an XEQ pin to the object. When this pin is activated, the object operates using the data that is currently on its inputs (even if some inputs are nil or contain old data).

The terminal for XEQ is a different color than that of a data input.

Location

On each object menu ==> Add Terminal ==> XEQ Input

Notes

You can only add an XEQ input terminal to Confirm (OK) and UserObject objects.

Set Values and Collector already have XEQ inputs.

See Also

Control Input (Object Menu), Data Input (Object Menu), Data Output (Object Menu), Collector, Input (Object Menu), Object Menu, OK, Set Values, Add Terminal and UserObject.


X vs Y Plot

An object that displays a Cartesian plot.

Supported On

All HP VEE Platforms

Use

Use X vs Y plot to graphically display  values when separate data information is available for X and Y data. When you plot more than one trace, each execution of the X vs Y Plot object uses the single X input data with each trace's Y input data, therefore all traces share the same X input data. If you want different X data values, you must build coordinates or mapped arrays for each trace and use the X-Y Trace object.

All inputs must be the same size and shape.  Mapping information on the input's data is ignored.

Location

Display ==> X vs Y Plot

Open View Parameters

Auto Scale - Automatically scales the display to show the entire trace.

Y name - The name of the Y axis.

YData1 - The name of the first trace.

X name - The name of the X axis.

Object Menu

Auto Scale ==> - Automatically scales the display to show the entire trace. (Can be added as control pins.)

Auto Scale - Automatically scales both axes.

Auto Scale X -  Automatically scales the X axis.

Auto Scale Y -  Automatically scales the Y axis.

Zoom ==> - Scales the display.

In - Magnifies the display to contain only the rectangular region that you selected with the pointer. You select the region after selecting this feature by dragging on the graph area.  This action outlines the information with a "rubber band" box.

Out 2|5|10|20|50|100X - Expands the scales of the display by a factor in both the X and Y directions about the center.

Clear Control ==> - Parameters that specify when to clear the display.

Display - Clears the displayed trace(s).  This parameter may be added as a control input.

Next Curve - Resets the pen to display the next curve in a family of curves (data from the next time the display operates) without clearing the previous curve. Next Curve must be selected (or activated) before each new curve in the family. This parameter may be added as a control input.

Center Markers - If markers are available, brings them to the center of the visible part of the trace.  This is useful if you've scrolled the display and markers are not visible.

Add Right Scale - Adds up to two additional scales to permit traces to have different scale ranges. After adding a right scale, assign a trace to the scale using Traces & Scales button in the object's Properties dialog box (object menu ==> Edit Properties).

Plot - Presents the Plotter Setup control panel.  When OK is pressed, a copy of the device's entire display is plotted on the selected plotter.  This parameter may be added as a control input. If the current Plotter Setup is in Plot to File mode, you may specify the destination file or directory name as string data on the Plot control input. If no control input value is given, the file or directory name specified in Plotter Setup will be used.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the display is cleared at PreRun time.  Default is on.

Clear At Activate - When the check box is selected, the display is cleared at Activate time.  Default is on.

Layout group:

Graph Only - The open view shows only the graph area and the marker information (if it exists).  No buttons, scales, scale names, or traces names are shown. This layout redraws quickest and provides the largest display area.

Scales - The open view shows the graph area, the scales, the scale names, and trace names.  These fields are not recessed and may not be edited. This layout is useful when recessed fields might be distracting, such as printing graphs, or when the fields should be protected from editing on a User Panel.

Scales & Sliders - The open view shows all information about the graph.  It includes the most information and allows you to modify the most elements interactively.  It is the default.

Traces & Scales... - A dialog box that allows you to specify values such as the names, colors, line and point characteristics, minimum values, and maximum values for the traces and/or scales.

 Traces:

  - Name: - The name of the trace that is displayed to the left of the graph area and the name of the corresponding input terminal.
 - Scale: - If you have multiple Y scales, selects which Y scale is to be used for this trace.
 -  Color: - The color of the trace. Each added trace has a different color than the existing traces.  Default for Trace1 is Pen 4 (yellow).
 - Lines: - The format of the line connecting data points. Default is a continuous line.
 - Points: - The symbol that marks each data point. To show unconnected data points, select the single dot Lines format and the desired Points symbol. Default is a dot.

 Scales:

 - Show Scale: - If you have multiple Y scales, a selection (using a check box) to specify if the end points and an axis of each additional right scale is displayed to the right of the graph area.
 -  Scale Name: - The names of the scales.  They may be set here or on the Scales & Sliders layout.
 - Maximum: - The maximum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Minimum: - The minimum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Mapping: -  The way the x and y data is mapped to the display.  The mapping may be linear or log.  To make a log-log plot, change both X and Y axes to Log. Default is Linear.
 - Log Cycles: - The maximum number of decades shown (counting down from the maximum x and y values) when AutoScale is activated.  Log Cycles is only used when the Mapping is Log. Log Cycles is useful when a trace contains a large dynamic range in the data. Default is 4.
 - Scale Colors - The color of any background grid or tic marks. Default is Gray.

Grid Type group:

None - No grid lines are shown.

Tic Marks -  Shows tic marks at the major and minor divisions on all four sides of the graph.

Axis - Shows tic marks at the major and minor divisions on the X and Y axes of the graph.  If the actual axes are scrolled off the graph area, axis lines are drawn on the edge closest to the axes.

Lines - Shows lines at the major divisions and tic marks at the minor divisions.  The X and Y axes are shown as thick lines.

Markers group: - Allows you to find the exact value of a data point on the displayed curve. If the data is plotted on a log scale, the values shown on the marker are the linear data points.

To move markers to a different trace, click on the button to the left of the marker values near the bottom of the display. The button cycles through the different line types and colors of the different traces.

Off - No markers are shown. This selection is the default.

One - One marker is available.

Two - Two markers are available.

Delta - Two markers are available and the x and y differences between them are displayed.

Interpolate - When the check box is selected, you can place markers between the displayed data points. The marker values displayed are calculated by linear interpolation.  Default is off.

Notes

Inputs must be Scalar or Array 1D.

 Add traces with the Add Terminal ==> Data Input object menu selection.  Up to twelve traces are allowed.

A Title control input may be added, which sets the title bar name to the specified text value. This allows programmatic control over the title shown when the display is printed or plotted.

You can add a Traces control input pin. The control input data must be an array of records (or a record scalar if you only want to control one trace).  Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A field named TraceNum with an integer value (1 is the first trace).  The TraceNum field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name

Pen

LineType

PointType

The Name field must have a text value.  The Pen, LineType and PointType values must be integers from 0 to n, where 0 draws nothing and n is the number of choices available.

Refer to "Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

You can add a Scales control input pin to control the scales parameters listed above.  The control input data must be an array of records (or a record scalar, if you only want to control one scale). Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A Text field named Scale with a value X, Y (or Y1), Y2, or Y3. The Scale field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name - Must be a text value.

Min - Must be an integer or real value.

Max - Must be an integer or real value.

Mapping - Must have a text value of  Linear or Log.

Refer to "Using Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

See Also

Complex Plane, Magnitude Spectrum, Polar Plot, Strip Chart, Waveform (Time), XY Trace, and Edit Default Preferences.


XY Trace

An object that displays a two-dimensional Cartesian plot.

Supported On

All HP VEE Platforms

Use

Use XY Trace to display mapped arrays or a set of values when y data is generated with evenly-spaced x values. An XY Trace is useful for a quick look at data when you don't need (or have) scaled x data values.

The x value that is automatically generated depends on the data type of the trace data. For example, if trace is a Real value, the x values is 0, 1, 2, and so forth.  If the trace is a Waveform, the x values are time values.

Location

Display ==> XY Trace

Open View Parameters

Auto Scale - Automatically scales the display to show the entire trace.

Y name - The name of the Y axis.

Trace1 - The name of the first trace.

X name - The name of the X axis.

Object Menu

Auto Scale ==> - Automatically scales the display to show the entire trace. (Can be added as control pins.)

Auto Scale - Automatically scales both axes.

Auto Scale X -  Automatically scales the X axis.

Auto Scale Y -  Automatically scales the Y axis.

Zoom ==> - Scales the display.

In - Magnifies the display to contain only the rectangular region that you selected with the pointer. You select the region after selecting this feature by dragging on the graph area.  This action outlines the information with a "rubber band" box.

Out 2|5|10|20|50|100X - Expands the scales of the display by a factor in both the X and Y directions about the center.

Clear Control ==> - Parameters that specify when to clear the display.

Display - Clears the displayed trace(s).  This parameter may be added as a control input.

Next Curve - Resets the pen to display the next curve in a family of curves (data from the next time the display operates) without clearing the previous curve. Next Curve must be selected (or activated) before each new curve in the family. This parameter may be added as a control input.

Center Markers - If markers are available, brings them to the center of the visible part of the trace.  This is useful if you've scrolled the display and markers are not visible.

Add Right Scale - Adds up to two additional scales to permit traces to have different scale ranges. After adding a right scale, assign a trace to the scale using Traces & Scales button in the object's Properties dialog box (object menu ==> Edit Properties).

Plot - Presents the Plotter Setup control panel.  When OK is pressed, a copy of the device's entire display is plotted on the selected plotter.  This parameter may be added as a control input. If the current Plotter Setup is in Plot to File mode, you may specify the destination file or directory name as string data on the Plot control input. If no control input value is given, the file or directory name specified in Plotter Setup will be used.

Properties

General tab:

Initialization group:

Clear At PreRun - When the check box is selected, the display is cleared at PreRun time.  Default is on.

Clear At Activate - When the check box is selected, the display is cleared at Activate time.  Default is on.

Layout group:

Graph Only - The open view shows only the graph area and the marker information (if it exists).  No buttons, scales, scale names, or traces names are shown. This layout redraws quickest and provides the largest display area.

Scales - The open view shows the graph area, the scales, the scale names, and trace names.  These fields are not recessed and may not be edited. This layout is useful when recessed fields might be distracting, such as printing graphs, or when the fields should be protected from editing on a User Panel.

Scales & Sliders - The open view shows all information about the graph.  It includes the most information and allows you to modify the most elements interactively.  It is the default.

Traces & Scales... - A dialog box that allows you to specify values such as the names, colors, line and point characteristics, minimum values, and maximum values for the traces and/or scales.

 Traces:

  - Name: - The name of the trace that is displayed to the left of the graph area and the name of the corresponding input terminal.
 - Scale: - If you have multiple Y scales, selects which Y scale is to be used for this trace.
 -  Color: - The color of the trace. Each added trace has a different color than the existing traces.  Default for Trace1 is Pen 4 (yellow).
 - Lines: - The format of the line connecting data points. Default is a continuous line.
 - Points: - The symbol that marks each data point. To show unconnected data points, select the single dot Lines format and the desired Points symbol. Default is a dot.

 Scales:

 - Show Scale: - If you have multiple Y scales, a selection (using a check box) to specify if the end points and an axis of each additional right scale is displayed to the right of the graph area.
 -  Scale Name: - The names of the scales.  They may be set here or on the Scales & Sliders layout.
 - Maximum: - The maximum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Minimum: - The minimum values of the scales.  They may be set here or on the Scales & Sliders layout.
 - Mapping: -  The way the x and y data is mapped to the display.  The mapping may be linear or log.  To make a log-log plot, change both X and Y axes to Log. Default is Linear.
 - Log Cycles: - The maximum number of decades shown (counting down from the maximum x and y values) when AutoScale is activated.  Log Cycles is only used when the Mapping is Log. Log Cycles is useful when a trace contains a large dynamic range in the data. Default is 4.
 - Scale Colors - The color of any background grid or tic marks. Default is Gray.

Grid Type group:

None - No grid lines are shown.

Tic Marks -  Shows tic marks at the major and minor divisions on all four sides of the graph.

Axis - Shows tic marks at the major and minor divisions on the X and Y axes of the graph.  If the actual axes are scrolled off the graph area, axis lines are drawn on the edge closest to the axes.

Lines - Shows lines at the major divisions and tic marks at the minor divisions.  The X and Y axes are shown as thick lines.

Markers group: - Allows you to find the exact value of a data point on the displayed curve. If the data is plotted on a log scale, the values shown on the marker are the linear data points.

To move markers to a different trace, click on the button to the left of the marker values near the bottom of the display. The button cycles through the different line types and colors of the different traces.

Off - No markers are shown. This selection is the default.

One - One marker is available.

Two - Two markers are available.

Delta - Two markers are available and the x and y differences between them are displayed.

Interpolate - When the check box is selected, you can place markers between the displayed data points. The marker values displayed are calculated by linear interpolation.  Default is off.

Notes

Inputs must be Scalar or Array 1D that can be converted to type Real.  You must "unbuild" Complex, PComplex, and Spectrum data before inputting to an XY Trace.

Input data of type Coord is plotted by using its x and y values without first being convert to type Real.

 Add traces with the Add Terminal ==> Data Input object menu selection.  Up to twelve traces are allowed.

A Title control input may be added, which sets the title bar name to the specified text value. This allows programmatic control over the title shown when the display is printed or plotted.

You can add a Traces control input pin. The control input data must be an array of records (or a record scalar if you only want to control one trace).  Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A field named TraceNum with an integer value (1 is the first trace).  The TraceNum field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name

Pen

LineType

PointType

The Name field must have a text value.  The Pen, LineType and PointType values must be integers from 0 to n, where 0 draws nothing and n is the number of choices available.

Refer to "Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

You can add a Scales control input pin to control the scales parameters listed above.  The control input data must be an array of records (or a record scalar, if you only want to control one scale). Use a Record Constant or Build Record object to create an array of records; each record must have the following fields:

A Text field named Scale with a value X, Y (or Y1), Y2, or Y3. The Scale field is required.  An error occurs if it is omitted.

One or more of the following fields:

Name - Must be a text value.

Min - Must be an integer or real value.

Max - Must be an integer or real value.

Mapping - Must have a text value of  Linear or Log.

Refer to "Using Records and DataSets" in HP VEE Advanced Programming Techniques for further information.

See Also

Complex Plane, Magnitude Spectrum, Polar Plot, Strip Chart, Waveform (Time), X vs Y Plot, and Edit Default Preferences.


Math Syntax

This section describes the syntax of each mathematical operation. Select a topic:

abs(x)
acos(x)
acosh(x)
acot(x)
acoth(x)
a + b (add)
Ai(x)
a ~= b (almost equal to)
a AND b
+ - * /
Array
asin(x)
asinh(x)
atan(x)
atan2(y,x)
atanh(x)
bartlet(x)
Bessel
beta(x,y)
Bi(x)
binomial(a,b)
bit(x,n)
bitAnd(x,y)
bitCmpl(x)
bitOr(x,y)
bits(str)
bitShift(x,y)
Bitwise
bitXor(x,y)
blackman(x)
Calculus
ceil(x)
charToInt(a)
clearBit(x,n)
clipLower (x,a)
clipUpper (x,a)
cofactor(x, row,col)
comb(n,r)
Comma Operator
Complex Parts
concat(x,y)
conj(x)
convolve(a,b)
cos(x)
cosh(x)
cot(x)
coth(x)
cubert(x)
Data Filtering
defIntegral (x,a,b)
deriv(x, order)
derivAt(x, order,pt)
det(x)
a div b (truncated division)
a / b (divide)
dmyToDate (d,m,y)
a == b (equal to)
erf(x)
erfc(x)
exp(x)
exp10(x)
a ^ b (exponent)
exponential regression
factorial(n)
fft(x)
floor(x)
fracPart(x)
Freq Distribution
gamma(x)
Generate
a > b (greater than)
a >= b (greater than or equal to)
hamming(x)
hanning(x)
hmsToHour (h,m,s)
hmsToSec (h,m,s)
Hyper Bessel
Hyper Trig
i0(x)
i1(x)
identity(x)
ifft(x)
im(x)
init(x,val)
integral(x)
intPart(x)
intToChar(a)
inverse(x)
j(x)
j0(x)
j1(x)
jn(x,n)
k0(x)
k1(x)
a < b (less than)
a <= b (less than or equal to)
linear regression
log(x)
log10(x)
logarithmic regression
Logical
logMagDist (x,from,thru, logStep)
logRamp (numElem, from,thru)
mag(x)
magDist(x, from,thru, step)
matDivide (numer, denom)
matMultiply (A,B)
Matrix
max(x)
maxIndex(x)
maxX(x)
mday(aDate)
mean(x)
meanSmooth (x,numPts)
median(x)
min(x)
minIndex(x)
minor(x,row, col)
minX(x)
a mod b (modulo)
mode(x)
month(aDate)
movingAvg (x,numPts)
a * b (multiply)
NOT a
a != b (not equal to)
now()
a OR b
ordinal(x)
perm(n,r)
phase(x)
poly(x,vec)
Polynomial
polynomial regression
polySmooth (x)
Power
power curve regression
Probability
prod(x)
ramp (numElem, from,thru)
random (low,high)
randomize (x,low,high)
randomSeed (seed)
re(x)
Real Parts
recip(x)
rect(x)
Regression
Relational
rms(x)
rotate(x, numElem)
round(x)
sdev(x)
setBit(x,n)
Signal Processing
signof(x)
sin(x)
sinh(x)
sort(x, direction, field)
sq(x)
sqrt(x)
Statistics
strDown(str)
strFromLen (str,from,len)
strFromThru (str,from, thru)
String
strLen(str)
strPosChar (str,char)
strPosStr (str1,str2)
strRev(str)
strTrim (str,trimlist)
strUp(str)
a - b (subtract)
sum(x)
tan(x)
tanh(x)
Time & Date
totSize(x)
transpose(x)
Triadic Operator
Trig
vari(x)
wday(aDate)
xcorrelate (a,b)
xlogRamp (numElem, from,thru)
a XOR b
xramp (numElem, from,thru)
y0(x)
y1(x)
year(aDate)
yn(x,n)


abs(x)

An object that returns the absolute value of x.

Supported On

All HP VEE Platforms

Use

Use abs(x) to obtain the absolute value of the number in a container. x may be any shape and of the type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  For types Int32, Real, Coord, and Waveform, the same type is returned.  For types Complex, PComplex, and Spectrum, the absolute value is the magnitude of the complex number; therefore, a Real of the same shape is returned.

Location

Math ==> Real Parts ==> abs(x)

Example

abs(-34) returns 34.

Notes

Mappings are retained in the result. The largest negative Int32 will cause an error.

See Also

Complex Parts, mag(x), Real Parts, and signof(x).


acos(x)

An object that returns the arccosine of x.

Supported On

All HP VEE Platforms

Use

Use acos(x) to generate the arccosine of the x data, with the result in the range of 0 to PI.  x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. The return value will be in the current Trig Mode units. Int32 returns a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Trig ==> acos(x)

Example

acos(1) returns 0 with Trig Mode set to Degrees.

  acos((1.54308, @0)) returns (0.9999, @1.87079) with Trig Mode set to Radians.

Notes

Mappings are retained in the result. Using Trig Mode set to anything except Radians may result in accuracy errors beyond the 12th significant digit.

See Also

acosh(x), cos(x), sin(x), tan(x), and Trig.

  Edit Default Preferences (under On Features).


acosh(x)

An object that returns the hyperbolic arccosine of x.

Supported On

All HP VEE Platforms

Use

Use acosh(x) to generate the hyperbolic arccosine of the x data. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. Int32 returns a Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Hyper Trig ==> acosh(x)

Example

acosh(1) returns 0.

Notes

Mappings are retained in the result.

See Also

acos(x), cosh(x), Hyper Trig, sinh(x), and tanh(x).


acot(x)

An object that returns the arccotangent of x.

Supported On

All HP VEE Platforms

Use

Use acot(x) to generate the arccotangent of the x data, simply returning atan(1/x).  acot(0) will return PI/2. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. The return value will be in the current Trig Mode units. Int32 returns a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Trig ==> acot(x)

Example

acot(1) returns 45 with Trig Mode set to Degrees.

  acot((1.31303, @PI/2)) returns (1.00, @-1.57079) with Trig Mode set to Radians.

Notes

Mappings are retained in the result. Using Trig Mode set to anything except Radians may result in accuracy errors beyond the 12th significant digit.

See Also

acoth(x), atan2(y,x), cos(x), sin(x), tan(x), and Trig.

  Edit Default Preferences (under On Features).


acoth(x)

An object that returns the hyperbolic arccotangent of x.

Supported On

All HP VEE Platforms

Use

Use acoth(x) to generate the hyperbolic arccotangent of the x data. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. Int32 returns a Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Hyper Trig ==> acoth(x)

Example

acoth(1.5) returns 0.8047.

Notes

Mappings are retained in the result.

See Also

acot(x), cosh(x), coth(x), Hyper Trig, sinh(x), and tanh(x).


a + b (add)

An object that performs an arithmetic addition on two operands.

Supported On

All HP VEE Platforms

Use

Use a + b to add the values of two containers.  The two containers may be of any type and of any shape.  If one of the containers is an array, the other must be either a scalar or an array of the same size and shape. The result is a container of the highest type with the same shape as the operands.

If both operands are of type Coord, they must have their independent variable(s) match exactly or an error is returned. The addition is only performed on the dependent (last) variable.

Text performs addition as a concatenation.  Enums convert to Text for the addition.  Note that this addition on two strings is not the same as the concat(x, y) function.  With the concat function, concat("hello","there") yields a one-dimensional array, two long ["hello" "there"].

Location

Math ==> + - * / ==> a + b

Example

Array plus a scalar:  [1 2 3] + 3 returns [4 5 6].

Two Complex scalars:  (2,4) + (1,3) returns (3,7).

Two arrays:  [1 2 3] + [4 5 6] returns [5 7 9].

Two Coord scalars:  coord(1,3) + coord(1,5) returns coord(1,8).

Two Coord scalars:  coord(1,3) + coord(2,5) returns an error.

Two Text:  "hello" + "there" returns "hellothere".

Notes

If either of the containers is mapped (that is, of type Waveform, Spectrum, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings. The return value will have the same mappings as the operands; otherwise an error is returned.

See Also

concat(x,y), a / b (divide), a * b (multiply), and a - b (subtract).


+ - * /

A menu item.

Supported On

All HP VEE Platforms

Use

Use + - * / to access the following objects which perform arithmetic functions on two operands:

a + b

a - b

a * b

a / b

a ^ b

a mod b

a div b

Location

Math ==> + - * / ==>

Notes

Dyadic operations which are given two different types convert the lower type to the higher of the two types.  See the type conversion information and the hierarchy of types in the "Using Dyadic Operators" section at the beginning of this chapter.

  In the dyadic operation example below, adding an array and a scalar performs the operation on each element of the array. The result is an array of the same size and shape as the array operand. For example, a scalar plus a linear array of four elements, 5 + [1 2 3 6], produces the linear array of four elements [6 7 8 11]. The same is true for operations like exponentiation. Thus, 2 ^ [3 4] produces [8 16].

  Dyadic operations which are given two arrays require the operands to be conformant, that is, have the same size and shape. The result is an array with the same size and shape as the operands. The operation is done on an element by element basis.  For example, adding two linear arrays of three elements each results in a linear array of three elements long. [1 2 3] + [4 5 6] produces [5 7 9]. If the two arrays are not conformant, the result is an error.

See Also

a + b (add), a / b (divide), a div b (truncated division), a ^ b (exponent), a mod b (modulo), a * b (multiply), and a - b (subtract).


Ai(x)

An object used to calculate the Airy fractional order Bessel function of x.

Supported On

All HP VEE Platforms

Use

Use Ai(x) to find the Fractional order Bessel function Airy of the x.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types, the same output type is returned, except for Int32 which returns a Real type.  For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Bessel ==> Ai(x)

Example

Ai(10) returns 0.110475325528986.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

See Also

Bi(x), j0(x), j1(x), jn(x,n), y0(x), y1(x), and yn(x,n).


a ~= b (almost equal to)

An object that performs an almost equal to operation on two operands.

Supported On

All HP VEE Platforms

Use

Use a ~= b to determine whether the value(s) of one container is equal to the value(s) of another container for the first seven decimal digits.  The two containers may be of any type and of any shape.  Integer, Enum and Text types will be compared exactly.  If one of the containers is an array (or a record), the other must be either a scalar or an array (or a record) of the same size and shape.  The result is a scalar Int32 with the value 0 or 1.  If the first operand is almost equal to the second, the value of the result is 1; otherwise the value is 0.

The operation of X ~= 0 (zero) is meaningless in this context since zero has an infinite number of digits of precision and no order of magnitude. This requires that any comparison to zero match exactly.  Therefore, comparing any value X to 0 (zero) will always return a 0 (false) unless X exactly equals 0.

Almost equals does not perform the same comparison as Device ==> Comparator.  The Comparator should be used when comparing waveforms or arrays which contain zeros.  The Comparator can derive a value for "virtual zero" from the reference data's magnitude.

If both operands are of type Coord, they must have all their dependent variables match for the first seven decimal digits for the result to be 1.  If independent variables do not match, an error is returned. Complex, PComplex, and Spectrum containers must have both parts almost match for the operation to return 1.  Enums are converted to Text for the comparison.

Arrays must have all the respective values of both containers almost equal for the operation to return 1.

Location

Math ==> Relational ==> a ~= b

Example

Two scalars:  3.1234560 ~= 3.1234559 returns 1.

Two scalars:  3.1234560 ~= 3.1234459 returns 0.

A scalar and an array:  3.1234560 ~= [3.1234559 3.1234562 3.1234563] returns 1.

A scalar and an array:  3.1234560 ~= [3.1234459 3.1234562 3.1234569] returns 0.

Two Complex scalars:  (2.12345,3.12345) ~= (2.12344,3.12345) returns 0.

Two Complex scalars:  (2.1234567,3.12345) ~= (2.1234566,3.12345) returns 1.

Two Coord scalars:  coord(1,3.123456) ~= coord(1,3.123446) returns 0.

Two Coord scalars:  coord(1,3.123456) ~= coord(2,3.123456) returns Values for independent variables must match.

Notes

If either of the containers is mapped (that is, of type Waveform, Spectrum, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings; otherwise an error is returned.

The test for "almost equal" is slightly different for Complex and Polar Complex numbers. For two Real values (a and b) the test for "almost equal" is:

  a - b <= a * 10E-7

However, for two Complex values (a and b) the test is:

  re(a) - re(b) <= mag(a) * 10E-7

  where:

  re(a) is the real component of a

  re(b) is the real component of b

  mag(a)  is the vector magnitude of a

This test is used for both Complex and Polar Complex numbers to avoid any ambiguity with regard the rectangular or polar treatment of "almost equal."

See Also

a AND b, a == b (equal to), a > b (greater than), a >= b (greater than or equal to), a < b (less than), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b, Relational, and a XOR b.

  Comparator, Conditional, and If/Then/Else (under On Features).


a AND b

An object that performs a logical AND operation on two operands.

Supported On

All HP VEE Platforms

Use

Use a AND b to determine whether the value(s) of two containers are both logically true (non-zero). The two containers may be of any type and of any shape. If one of the containers is an array, the other must be either a scalar or an array of the same size and shape. The result is an Int32 of the same shape as the operands, with value(s) 0 or 1.  If both operands are non-zero, the value of the AND operation is 1; otherwise the value is 0.

  If both operands are of type Coord, they must have their independent variable(s) match exactly or an error is returned. Only the dependent (last) variable is considered for the AND operation.

  For Complex, PComplex, and Spectrum containers, the value of the operand is true if either part is non-zero.  Text is true if non-null.  Enums are converted to Text for the operation.

Location

Math ==> Logical ==> a AND b

Example

A scalar and an array: 3 AND [3 3 3] returns [1 1 1].

  A scalar and an array: 3 AND [-3 0 3] returns [1 0 1].

  Two arrays: [1 2 3] AND [0 1 (-1)] returns [0 1 1].

  Two arrays: (1,@90) AND (1,@85) returns 1.

  Two Complex scalars: (2,3) AND (0,1) returns 1.

  Two Complex scalars: (0,1) AND (1,0) returns 1.

  Two Complex scalars: (0,0) AND (0,0) returns 0.

  Two Coord scalars: coord(1,3) AND coord(1,5) returns 1.

  Two Coord scalars: coord(1,3) AND coord(2,3) returns an error.

  A Text scalar and a scalar number: "too" AND 2 returns 1.

  A Text scalar and a scalar number: "" AND 0 returns 0 because one string is null and the other is not ("0").

Notes

If either of the containers is mapped (that is, of type Waveform, Spectrum, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings. The return value will have the same mappings as the operands; otherwise an error is returned.

  Note that the If/Then/Else object requires the expression(s) inside it to evaluate to either a scalar or an array, which is either all zeros or all ones.

See Also

NOT a, a OR b, Relational, and a XOR b.

  Conditional and If/Then/Else (under On Features).


Array

A menu item.

Supported On

All HP VEE Platforms

Use

Use Array to access the following objects which perform miscellaneous functions on arrays.

init(x,val)

totSize(x)

rotate(x,numElem)

concat(x,y)

sum(x)

prod(x)

sort(x)

Location

AdvMath ==> Array ==>

See Also

concat(x,y), init(x,val), prod(x), rotate(x, numElem), sort(x, direction, field), sum(x), and totSize(x).


asin(x)

An object that returns the arcsine of x.

Supported On

All HP VEE Platforms

Use

Use asin(x) to generate the arcsine of the x data with the result in the range of -PI/2 to +PI/2 for Real values.  x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. The return value will be in the current Trig Mode units. Int32 returns a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Trig ==> asin(x)

Example

asin(1) returns 90 with Trig Mode set to Degrees.

  asin((1.1752012, @90)) returns (1, @90) with Trig Mode set to Degrees.

Notes

Mappings are retained in the result. Using Trig Mode set to anything except Radians may result in accuracy errors beyond the 12th significant digit.

See Also

asinh(x), cos(x), sin(x), tan(x), and Trig.

  Edit Default Preferences (under On Features).


asinh(x)

An object that returns the hyperbolic arcsine of x.

Supported On

All HP VEE Platforms

Use

Use asinh(x) to generate the hyperbolic arcsine of the x data. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. Int32 returns a Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Hyper Trig ==> asinh(x)

Example

asinh(0) returns 0.

Notes

Mappings are retained in the result.

See Also

asin(x), cosh(x), Hyper Trig, sinh(x), and tan(x).


atan(x)

An object that returns the arctangent of x.

Supported On

All HP VEE Platforms

Use

Use atan(x) to generate the arctangent of the x data, with the result in the range of -PI/2 to +PI/2 for Real values. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. The return value will be in the current Trig Mode units. Int32 returns a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Trig ==> atan(x)

Example

atan(1) returns 45 with Trig Mode set to Degrees.

  atan((1.5574, @0)) returns (0.999, @0) with Trig Mode set to Radians.

Notes

Mappings are retained in the result. Using Trig Mode set to anything except Radians may result in accuracy errors beyond the 12th significant digit.

See Also

atanh(x), atan2(y,x), cos(x), sin(x), tan(x), and Trig.

  Edit Default Preferences (under On Features).


atan2(y,x)

An object that returns the arctangent of y divided by x.

Supported On

All HP VEE Platforms

Use

Use atan2(y,x) to generate the arctangent of y divided by x, with the proper sign, in the range of -PI to +PI for Real values. x and y can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. If one of the containers is an array, the other must be either a scalar or an array of the same size and shape.  The result is a container of the highest type, with the same shape as the operands. x and y are assumed to be in the current Trig Mode units. Int32 returns a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Trig ==> atan2(y,x)

Example

atan2(1, -1) returns 135 with Trig Mode set to Degrees.

  atan2((1, 1), (5, 5)) returns (0.19739, 0) with Trig Mode set to Radians.

Notes

Mappings are retained in the result. Using Trig Mode set to anything except Radians may result in accuracy errors beyond the 12th significant digit.

See Also

atan(x), cos(x), sin(x), tan(x), and Trig.

  Edit Default Preferences (under On Features).


atanh(x)

An object that returns the hyperbolic arctangent of x.

Supported On

All HP VEE Platforms

Use

Use atanh(x) to generate the hyperbolic arctangent of the x data.  x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. Int32 returns a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Hyper Trig ==> atanh(x)

Example

atanh(0.5) returns 0.5493.

Notes

Mappings are retained in the result.

See Also

atan(x), cosh(x), Hyper Trig, sinh(x), and tanh(x).


bartlet(x)

An object used to apply a Bartlet window to a time series of values.

Supported On

All HP VEE Platforms

Use

Use bartlet(x) to filter the values in x in the same manner as convolving x with the spectral transform of the Bartlet function.  This has the effect of suppressing some of the noise due to the tails of the input sequence and the potential discontinuities they represent when sampling periodic signals.

  The input x must be an Array 1D of type Int32, Real, Coord, or a Waveform, or a Spectrum.  The same type is returned, except for Int32, which returns Real.

  If x is a Spectrum, it is first converted to a Waveform using an ifft(x) before the window is applied.  The result of the window is then converted back to type Spectrum using an fft(x).  A Spectrum is returned.

Location

AdvMath ==> Signal Processing ==> bartlet(x)

Example

bartlet([1 1 1 1 1 1 1 1]) returns [0.125 0.375 0.625 0.875 0.875 0.625 0.375 0.125].

Notes

The Bartlet function in the time domain is represented as 2*(n+0.5)/N, where n is the position (index) in the array, and N is the size of the array.  The result will be an array of the same type as x and will have the same mappings as x (if any).

  For a discussion of sidelobe levels and coherent gains, see: Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983.  ISBN #0-02-431650-4.

See Also

blackman(x), convolve(a,b), fft(x), hamming(x), hanning(x), ifft(x), and rect(x).


Bessel

A menu item.

Supported On

All HP VEE Platforms

Use

Use Bessel to calculate the bessel function of input data.

j0(x)

j1(x)

jn(x,n)

y0(x)

y1(x)

yn(x,n)

Ai(x)

Bi(x)

Location

AdvMath ==> Bessel ==>

See Also

j0(x), j1(x), jn(x,n), y0(x), y1(x), yn(x,n), Ai(x), Bi(x), and Hyper Bessel.


beta(x,y)

An object used to calculate the beta function of the input (x,y).

Supported On

All HP VEE Platforms

Use

Use beta(x,y) to calculate the beta function on x.  The beta function is defined as the:

  ( gamma(x) * gamma(y) ) / gamma(x+y)

  The x and y values must be positive.

  The x input may be of any shape and size and of the type Int32, Real, Coord, or Waveform.  For x input of all types the same output type is returned, except for Int32 which returns a Real type.  The second y parameter must be of the same type or be able to be converted to the same type as the x input value.  If both of the inputs are arrays, they must be of exactly the same shape and size.

Location

AdvMath ==> Probability ==> beta(x,y)

Example

beta(3, 1) returns 0.333333333333333.

  beta(8, 7) returns 4.16250416250416E-05.

  beta(-1, 3) returns an error.

Notes

If both of the inputs are mapped then the mappings must be the same.  The return value has the same mappings as the input if either input is mapped. If neither of the inputs is mapped, then the output is unmapped.

See Also

comb(n,r), factorial(n), gamma(x), and perm(n,r).


Bi(x)

An object used to calculate the B-Airy fractional order Bessel function of the second kind of x.

Supported On

All HP VEE Platforms

Use

Use Bi(x) to find the Fractional order Bessel function B-Airy of the second kind of x.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types, the same output type is returned, except for Int32 which returns a Real type. For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Bessel ==> Bi(x)

Example

Bi(1) returns 1.20742359495287.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

See Also

Ai(x), j0(x), j1(x), jn(x,n), y0(x), y1(x), and yn(x,n).


binomial(a,b)

An object used to calculate the number of combinations of a things taken b at a time.

Supported On

All HP VEE Platforms

Use

Use binomial(a,b) to calculate the number of combinations of a things taken b at a time using the formula:

  binomial(a, b) = a!/((a-b)! * b!)

  The ! symbol means factorial.

  The a input may be of any shape and size and of the type Int32, Real, Coord, or Waveform.  For a input of all types the same output type is returned, except for Int32 which returns a Real type.  The second b parameter must be of the same type or be able to be converted to the same type as the a input value.  If both of the inputs are arrays, they must be of exactly the same shape and size.

  The binomial(a,b) operation is only defined for integer operands so the input numbers, while of unique type, are converted to Int32 type before the calculation is done.

Location

AdvMath ==> Probability ==> binomial(a, b)

Example

binomial(10,3) will return as given by the formula:

  10!/((10-3)!*3!) = 10!/(7!*3!) =(10*9*8)/(3*2*1) = 120.

  binomial(10.4,3.9) will return as given by the formula:

  10!/((10-3)!*3!) = 10!/(7!*3!) = (10*9*8)/(3*2*1) = 120.

  The rule about converting Real to Int32 forces 10.4 to 10 and 3.9 to 3.

Notes

a and b must both be positive and a must be greater than b.

  This function is identical to comb(n,r).

  If both of the inputs are mapped then the mappings must be the same.  The return value has the same mappings as the input if either input is mapped. If neither of the inputs is mapped, then the output is unmapped.

See Also

beta(x,y), comb(n,r), factorial(n), gamma(x), and perm(n,r).


bit(x,n)

An object that returns the binary value in a particular bit position.

Supported On

All HP VEE Platforms

Use

Use bit(x,n) to return the bit value in the nth position of x. x can be any shape and of type Int32, Real, Coord, or Waveform. If x is not of type Int32, it is converted to Int32, retaining shape. The return type is Int32 with a value of zero or one. n must be a container that is, or can be converted to, Int32 and has a value between 0 and 31 inclusive.  n must be either scalar or match the shape of x.

Location

Math ==> Bitwise ==> bit(x,n)

Example

bit(9,0) returns 1 because the binary value of 9 is 1001 and the 0 bit is set.

Notes

The return value has the same mappings as x.  Mappings on n are ignored.

See Also

bits(str), Bitwise, clearBit(x,n), and setBit(x,n).


bitAnd(x,y)

An object that returns the Bitwise AND of x and y.

Supported On

All HP VEE Platforms

Use

Use bitAnd(x,y) to perform a binary AND on two containers. x and y can be any shape.  But if both are arrays, the shape and sizes must match.  x and y may be of types Int32, Real, Coord, or Waveform.  Both x and y are converted to Int32 before doing the bitAnd.  The return value is of type Int32.

Location

Math ==> Bitwise ==> bitAnd(x,y)

Example

bitAnd(5, [3 12]) returns [1 4].

Notes

If any of the input parameters are mapped, then those mappings must be the same.  The resultant container retains the mappings of the input container.  If only one of the inputs is mapped, the resultant container has those mappings.

See Also

a AND b, bit(x,n), bitCmpl(x), bitOr(x,y), Bitwise, bitXor(x,y), NOT a, a OR b, and a XOR b.


bitCmpl(x)

An object that returns the Bitwise 1's complement of x.

Supported On

All HP VEE Platforms

Use

Use bitCmpl(x) to perform a binary 1's complement on a container. x may be any shape and of the type Int32, Real, Coord, or Waveform.  x is converted to Int32 before the operation and the result is of type Int32.

Location

Math ==> Bitwise ==> bitCmpl(x)

Example

bitCmpl(7) returns -8.

Notes

Mappings are retained in the result.

See Also

a AND b, bit(x,n), bitAnd(x,y), bitOr(x,y), Bitwise, bitXor(x,y), NOT a, a OR b, and a XOR b.


bitOr(x,y)

An object that returns the Bitwise OR of x and y.

Supported On

All HP VEE Platforms

Use

Use bitOr(x,y) to perform a binary OR on two containers.  x and y can be any shape.  But if both are arrays, the shapes and sizes must match.  x and y may be of types Int32, Real, Coord, or Waveform. Both x and y are converted to Int32 before the bitOr. The return value is of type Int32.

Location

Math ==> Bitwise ==> bitOr(x,y)

Example

bitOr(5, [3 12]) returns [7 13].

Notes

If any of the input parameters are mapped, then those mappings must be the same. The resultant container retains the mappings of the input container. If only one of the inputs is mapped, the resultant container has those mappings.

See Also

a AND b, bit(x,n), bitAnd(x,y), bitCmpl(x), Bitwise, bitXor(x,y), NOT a, a OR b, and a XOR b.


bits(str)

An object that returns the binary value of a string of 0s and 1s.

Supported On

All HP VEE Platforms

Use

Use bits(str) to return an Int32 with the value of the digits in the Text str, converted to Int32 as base 2.  str must be a Text or Enum container of any shape.  (Enum is converted to Text.) str may only contain leading white space, then 0s and 1s to form a binary number.

Location

Math ==> Bitwise ==> bits(str)

Example

bits("011") returns 3.

Notes

The return value has the same mappings as the input container. The least significant bit is on the right, and the most significant bit is on the left.

See Also

bit(x,n), Bitwise, clearBit(x,n), and setBit(x,n).


bitShift(x,y)

An object that returns x with the bits shifted left or right n places.

Supported On

All HP VEE Platforms

Use

Use bitShift(x,y) to shift the bits of container x by y places.  x may be any shape and of the types Int32, Real, Coord, or Waveform.  x is converted to Int32 before the operation and the result is of type Int32.  y must be a container which is or can be converted to Int32.  If y is negative, the bits are shifted right; otherwise the bits are shifted left. y must be either scalar or match the shape of x. If y is greater than 31 or less than -31, the return value will be zero.

Location

Math ==> Bitwise ==> bitShift(x,y)

Example

bitShift([1 7 7], [3 2 (-2)]) returns [8 28 1].

  bitShift(8,2) returns 32.

  bitShift(8,-2) returns 2.

Notes

Mappings are retained in the result.

See Also

bit(x,n), bitAnd(x,y), bitOr(x,y), Bitwise, bitXor(x,y), clearBit(x,n), rotate(x, numElem), and setBit(x,n).


Bitwise

A menu item.

Supported On

All HP VEE Platforms

Use

Use Bitwise to access the following objects which set, clear, access, or shift bits in an Int32, or perform binary AND, OR, and XORs on Int32s.

bit(x,n)

bits(str)

setBit(x,n)

clearBit(x,n)

bitAnd(x,y)

bitOr(x,y)

bitXor(x,y)

bitCmpl(x)

bitShift(x,y)

Location

Math ==> Bitwise ==>

Notes

The objects on the Bitwise menu make sense only for the type Int32. But for ease of use, most of the objects accept most types, and will convert the arguments to Int32 before performing the function. This means that the values of Reals, Coords, and Waveforms are truncated inside the objects.

  Bits are numbered from zero.

See Also

bit(x,n), bits(str), bitAnd(x,y), bitCmpl(x), bitOr(x,y), bitShift(x,y), bitXor(x,y), clearBit(x,n), setBit(x,n), a AND b, NOT a, a OR b, Relational, and a XOR b.


bitXor(x,y)

An object that returns the Bitwise XOR of x and y.

Supported On

All HP VEE Platforms

Use

Use bitXor(x,y) to perform a binary XOR (exclusive or) on two containers.  x and y can be any shape.  But if both are arrays, the shapes and sizes must match.  x and y may be of the type Int32, Real, Coord, or Waveform.  Both x and y are converted to Int32 before the bitXor().  The return value is of type Int32.

Location

Math ==> Bitwise ==> bitXor(x,y)

Example

bitXor(5, [3 12]) returns [6 9].

Notes

If any of the input parameters are mapped, then those mappings must be the same.  The resultant container retains the mappings of the input container.  If only one of the inputs is mapped, the resultant container has those mappings.

See Also

a AND b, bit(x,n), bitAnd(x,y), bitCmpl(x), bitOr(x,y), Bitwise, NOT a, a OR b, and a XOR b.


blackman(x)

An object used to apply a Blackman window to a time series of values.

Supported On

All HP VEE Platforms

Use

Use blackman(x) to filter the values in x in the same manner as convolving x with the spectral transform of the Blackman function.  This has the effect of suppressing some of the noise due to the tails of the input sequence and the potential discontinuities they represent when sampling periodic signals.

  The input x must be an Array 1D of type Int32, Real, Coord, or a Waveform, or a Spectrum.  The same type is returned, except for Int32, which returns Real.

  If x is a Spectrum, it is first converted to a Waveform using an ifft(x) before the window is applied.  The result of the window is then converted back to type Spectrum using an fft(x).  A Spectrum is returned.

Location

AdvMath ==> Signal Processing ==> blackman(x)

Example

blackman([1 1 1 1 1 1 1 1]) returns [0.014 0.172 0.555 0.938 0.938 0.555 0.172 0.014].

Notes

The Blackman function is represented in the time domain as:

  0.42 - 0.5*cos(2*PI*(n+0.5)/N) + 0.08*cos(4*PI*(n+0.5)/N)

  where n is the position (index) in the array, and N is the size of the array.  The result will be an array of the same type as x and will have the same mappings as x (if any).

   For a discussion of sidelobe levels and coherent gains, see: Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983.  ISBN #0-02-431650-4.

See Also

bartlet(x), convolve(a,b), fft(x), hamming(x), hanning(x), ifft(x), and rect(x).


Calculus

A menu item.

Supported On

All HP VEE Platforms

Use

Use Calculus to take the integral or the derivative of a one-dimensional array of simple numeric values (Int, Real, Waveform, ...) or lists of two-dimensional (two field) coordinates.

integral(x)

deriv(x,1)

deriv(x,2)

deriv(x,order)

defIntegral(x,a,b)

derivAt(x,1,pt)

derivAt(x,2,pt)

derivAt(x,order,pt)

Location

AdvMath ==> Calculus ==>

Notes

The integral and derivative functions are applicable to one-dimensional arrays of simple numeric values (Int, Real, Waveform, and so forth) and lists of two-dimensional (two field) coordinates which represent equally spaced ordered data.  For unmapped arrays, it is assumed that the data is equally spaced and ordered, and a value of 1 is assumed for the interval dx between points. For mapped arrays, the operation is performed with the interval value dx equal to (Xmax-Xmin)/N and is thus automatically scaled appropriately.  For a coordinate list, the independent (first field) values are first checked to be sure that they are ordered and equally spaced, then the operation is performed on the dependent (second field) values using the previously determined spacing as the value for dx.

  If an unmapped array is used, but it is known otherwise that the interval between points is some value dx, then the correct value for the operation can still be obtained.  For the integral, multiply the result by the known dx value.  For the derivative, divide the result by the known dx value.

See Also

defIntegral (x,a,b), deriv(x, order), derivAt(x, order,pt), and integral(x).


ceil(x)

An object that returns the rounded-up value of x to the nearest integer of a container.

Supported On

All HP VEE Platforms

Use

x may be any shape and of the types Int32, Real, Coord, or Waveform. The ceil(x) function returns the smallest integer (as the same type) greater than or equal to x; that is, the value of x rounded to the next larger integer, the nearest integer towards positive infinity.

Location

Math ==> Real Parts ==> ceil(x)

Example

ceil([23.0 23.1 23.9 23.5 (-23.5)]) returns [23 24 24 24 -23].

Notes

Mappings are retained in the result.

See Also

abs(x), Complex Parts, floor(x), fracPart(x), intPart(x), Real Parts, and round(x).


charToInt(a)

An object that converts the first character of the input string into its decimal value.

Supported On

All HP VEE Platforms

Use

Use charToInt(a) to convert the first character of the ASCII input string a into its decimal value.  The allowed characters are those convertible to values within the range 0 through 255.

Location

Math ==> String ==> charToInt(a)

Examples

charToInt("A") returns 65.

charToInt("Arthur") also returns 65.

charToInt("a") returns 97.

See Also

intToChar(a), and String.


clearBit(x,n)

An object that returns x with the nth bit set to 0.

Supported On

All HP VEE Platforms

Use

Use clearBit(x,n) to set a particular binary digit of a container x to 0.  x can be any shape and of types Int32, Real, Coord, or Waveform.  If x is not of type Int32, it is converted to Int32, retaining shape.  The return value is of type Int32.  n must be a container which is, or can be converted to, Int32 and has a value between 0 and 31 inclusive.  n must be either scalar or match the shape of x.

Location

Math ==> Bitwise ==> clearBit(x,n)

Example

clearBit(7,1) returns 5 because the binary value of 7 is 111, and the first bit is cleared yielding 101 (decimal 5). (Bit numbering starts with 0.)

Notes

The mappings of the resultant container are the same as the x parameter.

See Also

bits(str), bit(x,n), Bitwise, and setBit(x,n).


clipLower (x,a)

An object used to clip the input data x to a certain minimum value a.

Supported On

All HP VEE Platforms

Use

Use clipLower(x,a) to clip the data to a minimum value a, that is, any data that is less than a will be changed to a.

  The x input may be of any size and shape and of the type Int32, Real, Coord, Waveform, or Text.  For x input of all types, the same output type is returned.  The clip parameter a must be of the same type, or be able to be converted to the same type, as the x input value and must either be Scalar in shape or the same shape and size as x.   If one of the inputs is Scalar and one of the inputs is non-Scalar, the Scalar input is treated as if it were an array of the same shape and size as the non-Scalar input.

Location

AdvMath ==> Data Filtering ==> clipLower(x,a)

Example

Using the clipLower(x,.5) function on data, where x is the array [.1, .4, .6, .9], returns [.5, .5, .6, .9].

  Using clipLower([.1, .4, .6, .9],[.2, .2, .7, .7]) returns [.2, .4, .7, .9].

  You can use clipLower to clip the values of a Waveform to an arbitrary lower limit.  Use an array of Coords to define the limiting points on the waveform.  The limiting points are the endpoints of line segments that define the limiting waveform shape.  There might be just a few of these points.  Send the Coord array through the Build Arb Waveform object to create a lower limit waveform with the same number of points as your actual waveform.  Send that new waveform into a clipLower function as the a input.  When the clipLower(x,a) is done, the input waveform x will have all values below the lower limit clipped to the minimum allowed by the a input.

Notes

If both of the inputs are mapped, then the mappings must be the same.  The return value has the same mappings as the input if either input is mapped. If neither of the inputs is mapped, then the output is unmapped.

See Also

clipUpper (x,a).

  Build Arb Waveform and Comparator (under On Features).


clipUpper (x,a)

An object used to clip the input data x to a certain maximum value a.

Supported On

All HP VEE Platforms

Use

Use clipUpper(x,a) to clip the  data to a maximum value a.  That is, any data that is greater than a will be changed to a.

  The x input may be of any size and shape and of the type Int32, Real, Coord, Waveform, or Text.  For x input of all types, the same output type is returned.  The clip parameter a must be of the same type, or be able to be converted to the same type, as the x input value and must either be Scalar in shape or the same shape and size as x.  If one of the inputs is Scalar and one of the inputs is non-Scalar, the Scalar input is treated as if it were an array of the same shape and size as the non-Scalar input.

Location

AdvMath ==> Data Filtering ==> clipUpper(x,a)

Example

Using the clipUpper(x,.5) function on data, where x is the array [.1, .4, .6, .9], returns [.1, .4, .5, .5].

  Using clipUpper([.1, .4, .6, .9],[.2, .2, .5, .5]) returns [.1, .2, .5, .5].

  You can use clipUpper to clip the values of a waveform to an arbitrary upper limit.  Use an array of Coords to define the limiting points on the waveform.  The limiting points are the endpoints of line segments that define the limiting waveform shape. Send the Coord array through the Build Arb Waveform object to create an upper limit waveform with the same amount of points as your actual waveform.  Send that new waveform into a clipUpper function as the a input.  When the clipUpper(x,a) is done, the input waveform x will have all values above the upper limit clipped to the maximum allowed by the a input.

Notes

If both of the inputs are mapped then the mappings must be the same.  The return value has the same mappings as the input if either input is mapped. If neither of the inputs is mapped, then the output is unmapped.

See Also

clipLower (x,a).

  Build Arb Waveform and Comparator (under On Features).


cofactor(x, row,col)

An object used to calculate the cofactor of the input matrix x, at row r and column c.

Supported On

All HP VEE Platforms

Use

Use cofactor(x,row,col) to calculate the cofactor of the square matrix x. The cofactor of a matrix is defined as the determinant of the submatrix of the input matrix x obtained by deleting the rth row and cth column, times (-1) raised to the (r+c) power.

  The x input must be a square matrix shape and of the type Int32, Real, Complex or PComplex. For x input of all types the same output type is returned and is Scalar in shape, except for Int32 which returns a Real. The input for the row and column to delete, r and c, must be an Int32 Scalar or be able to be converted to Int32 type.

  A square matrix has the same number of rows as columns.

Location

AdvMath ==> Matrix ==> cofactor(x,row,col)

Example

cofactor(a,1,2), where a is a matrix [ [3 -1 2] [4 5 6] [7 1 2] ], returns 34.

Notes

Mappings on the operand are ignored.

  The r and c inputs are expected to be of Int32 type or be able to be converted to that type. The rows and columns of the matrix are numbered from 0 to n-1.  Therefore, be careful when specifying which row and column to use.

See Also

det(x)and minor(x,row, col).


comb(n,r)

An object used to calculate the number of combinations of n things taken r at a time.

Supported On

All HP VEE Platforms

Use

Use comb(n,r) to calculate the number of combinations of n things taken r at a time using the formula:

  comb(n, r) = n!/((n -r)! * r!)

  The ! symbol means factorial.

  The n input may be of any shape and size and of the type Int32, Real, Coord, or Waveform.  For n input of all types the same output type is returned, except for Int32 which returns a Real type.  The second r parameter must be of the same type or be able to be converted to the same type as the n input value.  If both of the inputs are arrays, they must be of exactly the same shape and size.

  The comb(n, r) operation is only defined for integer operands so the input numbers, while of unique type, are converted to Int32 type before the calculation is done.

Location

AdvMath ==> Probability ==> comb(n, r)

Example

comb(10,3) will return 120 as given by the formula:

  10!/((10-3)!*3!) = 10!/(7!*3!) = (10*9*8)/(3*2*1) = 120.

  comb(10.4,3.9) will return 120 as given by the formula:

  10!/((10-3)!*3!) = 10!/(7!*3!) = (10*9*8)/(3*2*1) = 120.

  The rule about converting Real to Int32 forces 10.4 to 10 and 3.9 to 3.

Notes

Both n and r must be positive and n must be greater than r.

  If both of the inputs are mapped, then the mappings must be the same.  The return value has the same mappings as the input if either input is mapped. If neither of the inputs is mapped, then the output is unmapped.

  This function is identical to binomial(a,b).

See Also

beta(x,y), binomial(a,b), factorial(n), gamma(x), and perm(n,r).


Comma Operator

The "," (comma) can be used in expressions as a dyadic operator. When the "," is used to separate two expressions, the left-hand expression is evaluated, but the result is discarded. The result of the right-hand expression is returned.

Supported On

All HP VEE Platforms

Use

Use the comma operator in a Formula object with the following syntax:

  expression , expression

  The "," ensures that the left-hand expression will be evaluated first, but the result will be discarded.  Then the result of the right-hand expression is returned.

Location

Must be used within a Formula object or other object that takes an expression.

Example

UserFunc(A),A calls the function named UserFunc, discards the result, and then returns the value of A.

See Also

Triadic Operator.


Complex Parts

A menu item.

Supported On

All HP VEE Platforms

Use

Use Complex Parts to access the following objects which return different parts of Complex and PComplex containers.

j(x)

re(x)

im(x)

mag(x)

phase(x)

conj(x)

Location

Math ==> Complex Parts ==>

Notes

The objects on the Complex Parts menu make sense only for the type Complex and PComplex.  But for ease of use, most of the objects accept and return most types.

See Also

conj(x), im(x), j(x), mag(x), phase(x), re(x), and Real Parts.

Build Complex, Build PComplex, Complex, UnBuild Complex, and UnBuild PComplex (under On Features).


concat(x,y)

An object used to concatenate containers.

Supported On

All HP VEE Platforms

Use

Use concat(x,y) to concatenate two containers.  The input parameters can be of any type and any shape.  The concat(x,y) function will flatten arrays that are greater than one dimension into an Array 1D.  The resulting 1D arrays are then concatenated together.  For x and y input of all types, a 1D container of the highest type is returned.

Location

AdvMath ==> Array ==> concat(x,y)

Example

If x is a Real Scalar container with 3 in it, and y is a Text array container with ["This" "is" "a" "test"] in it, then concat(x,y) will return a Text array container ["3" "This" "is" "a" "test"]. In this case, the numeric 3 has been converted to the higher type Text string "3" before the concat operation.

Notes

If the x value is mapped, the y value may be either mapped with the same point spacing, or unmapped.  The result will be mapped from Xmin to Xmin+dx*N, where Xmin is the minimum value of the x mapping, dx is the distance between two consecutive points in x, and N is the size of the resultant array.

Note the difference between the concat(x,y) and sum(x) functions on Text inputs.  The concat(x,y) creates an Array 1D in all cases. The sum(x) function will simply link all the text strings together to form one large output string.  That is, concat(x,y), where x is the Scalar Text value "a" and y is the Scalar Text input "b", yields the Array 1D ["a","b"].  On the other hand, sum(["a","b"]) will return the Scalar container with the text value of "ab" in it.

All nil inputs are automatically converted to Real scalars with the value 0.  Thus, where x is nil and y is an Int32 scalar value 5, concat(x,y) results in the Array 1D two long of Real with values [0 5].  In contrast, the Concatenator object with two inputs with nil and an Int32 scalar value 5 will output an Int32 array one long with value [5].

See Also

sum(x).

Concatenator (under On Features).


conj(x)

An object that returns the complex conjugate of a Complex number x.

Supported On

All HP VEE Platforms

Use

Use conj(x) to generate the complex conjugate of a Complex number x.  x can be any shape and of type Complex, PComplex, or Spectrum.  The complex conjugate of a Complex number simply reverses the sign of the imaginary component.  The complex conjugate of a PComplex number simply reverses the sign of the phase.

Location

Math ==> Complex Parts ==> conj(x)

Example

conj( (2, 3) ) returns (2, -3).

conj( (8, @45) ) returns (8, @-45) with Trig Mode set to Degrees.

Notes

Mappings are retained in the result.

See Also

im(x), j(x), mag(x), phase(x), re(x), and Real Parts.

Build Complex, Edit Default Preferences, and UnBuild Complex (under On Features).


convolve(a,b)

An object used to convolve two arrays of data.

Supported On

All HP VEE Platforms

Use

Use convolve(a,b) to calculate the discrete aperiodic convolution of two 1D arrays a and b.  The result will be an array of the same type and of size (Na+Nb)-1, where Na is the size of input array a, and Nb is the size of input array b.

The input values a and b must be an Array 1D of type Int32, Real, Coord, or Waveform.  The return type is the same as the highest type of the inputs, except Int32, which returns Real.  a and b do not have to be the same size.  The resultant values are not normalized.

Location

AdvMath ==> Signal Processing ==> convolve(a,b)

Example

convolve([1 2 3 4 5],[1 1 1]) returns [1 3 6 9 12 9 5].

Notes

The inputs a and b must represent equally spaced data.  In addition, the interval between any two values of a must be the same as that between any two values of b.  For two unmapped arrays, it is assumed that the interval is always 1.  For mapped arrays, the interval is (Xmax-Xmin)/N, where Xmax and Xmin are the mappings, and N is the size of the array.  When one input is mapped and the other is not, the unmapped input is assumed to be sampled at the same frequency as the mapped input. The resultant values will never be normalized to any scale factor.

See Also

fft(x)and xcorrelate (a,b).


cos(x)

An object that returns the cosine of x.

Supported On

All HP VEE Platforms

Use

Use cos(x) to generate the cosine of the x data. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. x is assumed to be in the current Trig Mode units. Int32 returns a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Trig ==> cos(x)

Example

cos([0 180]) returns [1 -1] with Trig Mode set to Degrees.

cos((1, PI/4)) returns (0.715684, -0.73096) with Trig Mode set to Radians.

Notes

Mappings are retained in the result. Using Trig Mode set to anything except Radians may result in accuracy errors beyond the 12th significant digit.

See Also

acos(x), cosh(x),  sin(x), tan(x), and Trig.

Edit Default Preferences (under On Features).


cosh(x)

An object that returns the hyperbolic cosine of x.

Supported On

All HP VEE Platforms

Use

Use cosh(x) to generate the hyperbolic cosine of the x data. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. Int32 returns a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Hyper Trig ==> cosh(x)

Example

cosh(0) returns 1.

Notes

Mappings are retained in the result.

See Also

acosh(x), cos(x), Hyper Trig, sinh(x), and tanh(x).


cot(x)

An object that returns the cotangent of x.

Supported On

All HP VEE Platforms

Use

Use cot(x) to generate the cotangent of the x data. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  x is assumed to be in the current Trig Mode units.  Int32 returns a Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Trig ==> cot(x)

Example

cot([45 90]) returns [1 61E-18] with Trig Mode set to Degrees.  Note that the second number, which should be zero, is smaller than the system precision.

cot((3, @PI/2)) returns (1.0049698, @-1.57079) with Trig Mode set to Radians.

cot((3, @90)) returns (1.0049698, @-90) with Trig Mode set to Degrees.

Notes

Mappings are retained in the result. Using Trig Mode set to anything except Radians may result in accuracy errors beyond the 12th significant digit.

See Also

acot(x), atan2(y,x), cos(x),  coth(x), sin(x), tan(x), and Trig.

Edit Default Preferences (under On Features).


coth(x)

An object that returns the hyperbolic cotangent of x.

Supported On

All HP VEE Platforms

Use

Use coth(x) to generate the hyperbolic cotangent of the x data. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. Int32 returns a Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Hyper Trig ==> coth(x)

Example

coth(0.4) returns 2.631.

Notes

Mappings are retained in the result.

See Also

acoth(x), cot(x), Hyper Trig, sinh(x), and tanh(x).


cubert(x)

An object that returns the cube root of the value of x.

Supported On

All HP VEE Platforms

Use

Use cubert(x) to generate the cube root of a number x. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  For PComplex, the cubert(x) is defined as the cube root of the magnitude and one third the phase. Complex is converted to PComplex before the function is applied. Int32 arguments will return a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Power ==> cubert(x)

Example

cubert( (8, @90) ) will return (2, @30).

cubert( (1,1) ) will return (1.08, 0.291).

Notes

Mappings are retained in the result.

See Also

a ^ b (exponent), Power, sq(x), and sqrt(x).


Data Filtering

A menu item.

Supported On

All HP VEE Platforms

Use

Use Data Filtering to apply filtering algorithms to the data to smooth it.

polySmooth(x)

meanSmooth(x,numPts)

movingAvg(x,numPts)

clipUpper(x,a)

clipLower(x,a)

minIndex(x)

maxIndex(x)

minX(x)

maxX(x)

Location

AdvMath ==> Data Filtering ==>

See Also

polySmooth (x), meanSmooth (x,numPts), movingAvg (x,numPts), clipUpper (x,a), clipLower (x,a), minIndex(x), maxIndex(x), minX(x), maxX(x), Regression, and Signal Processing.


defIntegral (x,a,b)

An object used to calculate the integral of those values of the input data which are between points a and b (inclusive) using Simpson's 1/3 rule.

Supported On

All HP VEE Platforms

Use

Use defIntegral(x,a,b) to calculate the numerical approximation of the integral of a set of ordered, equally-spaced values (x) between points a and b.  The result is a scalar value of type Real.

Location

AdvMath ==> Calculus ==> defIntegral(x,a,b)

Example

defIntegral([ 0 1 2 3 4 4 3 2 1 0 ], 2, 5) returns 10.12.

Notes

The defIntegral(x,a,b) function is applicable to one-dimensional arrays of simple numeric values (Int32, Real, Waveform) and lists of two-dimensional (two field) coordinates which represent equally spaced ordered data.  For unmapped arrays, the values a and b represent indices in the array (0 to N-1).  For coordinate lists, the values a and b represent real values between the x-values of the first and last point in the coordinate list (inclusive).  For mapped arrays, the values a and b represent real values between the Xmin mapping and Xmax-dx (inclusive), where dx is the interval between consecutive points: (Xmax-Xmin)/N.

For unmapped arrays, it is assumed that the data is equally spaced and ordered, and a value of 1 is assumed for the interval dx between points. For mapped arrays, the operation is performed with the interval value dx equal to (Xmax-Xmin)/N and is thus automatically scaled appropriately.  For a coordinate list, the independent (first field) values are first checked to be sure that they are ordered and equally spaced, then the operation is performed on the dependent (second field) values using the previously determined spacing as the value for dx.

If an unmapped array is used, but it is known otherwise that the interval between points is some value dx, then the correct value for the operation can be obtained by multiplying the result of defIntegral(x,a,b) by the known dx value.

When the values represent noisy data, the result of defIntegral(x) can often be improved (in a pragmatic sense) by first filtering or smoothing the data. Smoothing removes much of the unwanted noise which is superimposed on the underlying values.  See the polySmooth(x) function and related smoothing functions for examples.

See Also

integral(x).


deriv(x, order)

An object used to calculate the derivative of order order across all values of the input data using a sliding fourth-order (five-point) polynomial.

Supported On

All HP VEE Platforms

Use

Use deriv(x,order) to calculate the numerical approximation of the derivative of order order across all points of a set of ordered equally spaced values (x). The result is an array of the same size and shape as the input x.  The result is the same type as x except for Int32. Int32 returns a Real and has the same mappings (if any) as the input x.

Location

AdvMath ==> Calculus ==> deriv(x,order)

Example

deriv([0 1 2 3 3 2 1 0], 1) returns [1.25 0.9167 1.083 0.5833 -0.5833 -1.083 -0.9167 -1.25].

Notes

The deriv(x,order) function is applicable to  one-dimensional arrays of simple numeric values (Int32, Real, Waveform) and lists of two-dimensional (two field) coordinates that represent equally spaced ordered data.  For mapped arrays, the mappings of the resultant array will be identical to those of x. For coordinate lists, the values a and b represent real values between the x-values of the first and last point in the coordinate list (inclusive). For mapped arrays, the values a and b represent real values between the Xmin mapping and Xmax-dx (inclusive), where dx is the interval between consecutive points: (Xmax-Xmin)/N.

For unmapped arrays, it is assumed that the data is equally spaced and ordered, and a value of 1 is assumed for the interval dx between points. For mapped arrays, the operation is performed with the interval value dx equal to (Xmax-Xmin)/N and is thus automatically scaled appropriately.  For a coordinate list, the independent (first field) values are first checked to be sure that they are ordered and equally spaced, then the operation is performed on the dependent (second field) values using the previously determined spacing as the value for dx.

If an unmapped array is used, but it is known otherwise that the interval between points is some value dx, then the correct value for the operation can be obtained by dividing the result of deriv(x,order) by the known dx value.

When the values represent noisy data, the result of deriv(x,order) can often be improved (in a pragmatic sense) by first filtering or smoothing the data. Smoothing removes much of the unwanted noise which is superimposed on the underlying values.  See the polySmooth(x) function and related smoothing functions for examples.

See Also

derivAt(x, order,pt).


derivAt(x, order,pt)

An object used to calculate the derivative of order order at value pt of the input data using a sliding fourth-order (five-point) polynomial.

Supported On

All HP VEE Platforms

Use

Use derivAt(x,order,pt) to calculate the numerical approximation of the derivative of order order at some point pt in the set of ordered equally spaced values (x). The result is a scalar value of type Real, except for Coord, which returns Coord.

Location

AdvMath ==> Calculus ==> derivAt(x,order,pt)

Example

derivAt([ 0 1 2 3 3 2 1 0 ], 1, 3) returns 0.5833.

Notes

The derivAt(x,order,pt) function is applicable to  one-dimensional arrays of simple numeric values (Int32, Real, Waveform) and lists of two-dimensional (two field) coordinates that represent equally spaced ordered data.  For unmapped arrays, the value a represents an index in the array (0 to N-1). For coordinate lists, the values a and b represent real values between the x-values of the first and last point in the coordinate list (inclusive).  For mapped arrays, the values a and b represent real values between the Xmin mapping and Xmax-dx (inclusive), where dx is the interval between consecutive points: (Xmax-Xmin)/N.

For unmapped arrays, it is assumed that the data is equally spaced and ordered, and a value of 1 is assumed for the interval dx between points. For mapped arrays, the operation is performed with the interval value dx equal to (Xmax-Xmin)/N and is thus automatically scaled appropriately.  For a coordinate list, the independent (first field) values are first checked to be sure that they are ordered and equally spaced. Then the operation is performed on the dependent (second field) values using the previously determined spacing as the value for dx.

If an unmapped array is used, but it is known otherwise that the interval between points is some value dx, then the correct value for the operation can be obtained by dividing the result of derivAt(x,order,pt) by the known dx value.

When the values represent noisy data, the result of derivAt(x,order,pt) can often be improved (in a pragmatic sense) by first filtering or smoothing the data. Smoothing remove much of the unwanted noise which is superimposed on the underlying values.  See the polySmooth(x) function and related smoothing functions for examples.

See Also

deriv(x, order).


det(x)

An object used to calculate the determinant of a square matrix.

Supported On

All HP VEE Platforms

Use

Use det(x) to calculate the determinant of the square matrix x. The x input must be a square matrix shape and of the type Int32, Real, Complex or PComplex. For x input of all types, the same output type is returned and is Scalar in shape, except Int32, which returns a Real.  A square matrix has the same number of rows as columns.

Location

AdvMath ==> Matrix ==> det(x)

Example

Where x is a square matrix [ [1 2] [3 4] ], det(x) returns -2.

Notes

Mappings on the operand are ignored.

See Also

identity(x), inverse(x), and transpose(x).


a div b (truncated division)

An object that performs an arithmetic div (truncated division) on two operands.

Supported On

All HP VEE Platforms

Use

Use a div b to determine the number of times one container divides evenly into another container, that is, the truncated division value. The two containers may be of type Int32, Real, Coord, or Waveform. The two containers may be of any shape.  But if one of the containers is an array, the other must be either a scalar or an array of the same size and shape.  The result is a container of the highest type, with the same shape as the operands.

If both operands are of type Coord, they must have their independent variable(s) match exactly or an error is returned. The div is only performed on the dependent (last) variable.

Location

Math ==> + - * / ==> a div b

Example

A scalar div an array: 3.2 DIV [1 2 3 4] returns [3 1 1 0].

An array div a scalar: [1 2 3] DIV 2 returns [0 1 1].

Two scalars: 12.95 DIV 4 returns 3.

Two Coord scalars: coord(1,3) DIV coord(1,5) returns coord(1,0).

Two Coord scalars:  coord(1,3) DIV coord(2,5) returns an error.

Notes

If either of the containers is mapped (that is, of type Waveform, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings.  The return value will have the same mappings as the operands; otherwise an error is returned.

See Also

a + b (add), a / b (divide), a * b (multiply), and a - b (subtract).


a / b (divide)

An object that performs an arithmetic division of two operands.

Supported On

All HP VEE Platforms

Use

Use a / b to divide the value of one container by the value of another container.  The two containers may be of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  The two containers may be of any shape. But if one of the containers is an array, the other must be either a scalar or an array of the same size and shape.  The result is a container of the highest type, with the same shape as the operands.

If both operands are of type Coord, they must have their independent variable(s) match exactly or an error is returned.  The division is only performed on the dependent (last) variable.

This division operation performs a parallel division on all arrays, including matrices.  For a matrix divide, see the function matDivide(numer,denom).

Location

Math ==> + - * / ==> a / b

Example

A scalar divided by an array:  3.0 / [1 2 3] returns [3 1.5 1].

Two arrays:  [4 5 6] / [1 2 3] returns [4 2.5 2].

Two PComplex scalars:  (1,@90) / (2,@30) returns (0.5, @60) with Trig Mode set to Degrees.

Two Coord scalars:  coord(1,3) / coord(1,5) returns coord(1,0.6).

Two Coord scalars:  coord(1,3) / coord(2,5) returns an error.

Notes

If either of the containers is mapped (that is, of type Waveform, Spectrum, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings. The return value will have the same mappings as the operands; otherwise an error is returned.

See Also

a + b (add),  a div b (truncated division), matDivide (numer, denom), a * b (multiply), and a - b (subtract).


dmyToDate (d,m,y)

An object that returns the value of the parameters d, m, and y converted to a date.

Supported On

All HP VEE Platforms

Use

Use dmyToDate(d,m,y) to convert three values, day, month, and year, into the date.  d, m, and y can be any shape. If one of the containers is an array, the other must be either a scalar or an array of the same size and shape.  The result is a container of the highest type, with the same shape as the operands. d, m, and y can be of type Int32, Real, Coord, or Waveform. Int32 arguments will return a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Time & Date ==> dmyToDate(d,m,y)

Example

dmyToDate(25, 12, 1991) returns 62.8293999G.

Notes

If any of the input parameters are mapped, then those mappings must be the same. The resultant container retains the mappings of the input container. If only one of the inputs is mapped, the resultant container has those mappings.

Also note that dmy is specified as modern Gregorian dates.

The value of d (the day) must be in the range 1 through 31.

The value of m (the month) must be in the range 1 through 12.

See Also

hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), month(aDate), now(), Time & Date, wday(aDate), and year(aDate).


a == b (equal to)

An object that performs an is equal to operation on two operands.

Supported On

All HP VEE Platforms

Use

Use a == b to determine whether the value(s) of one container is equal to the value(s) of another container.  The two containers may be of any type and of any shape.  If one of the containers is an array, the other must be either a scalar or an array of the same size and shape.  The result is a scalar Int32 with the value 0 or 1.  If the first operand is equal to the second, the value of the result is 1; otherwise the value is 0.

If both operands are of type Coord, they must have all their independent variable(s) and dependent variables match exactly for the result to be 1. If independent variables do not match, an error is returned. Complex, PComplex, and Spectrum containers must have both parts match for the operation to return 1. Enums are converted to Text for the comparison.

Arrays must have all the respective values of both containers equal for the operation to return 1.

Location

Math ==> Relational ==> a == b

Example

A scalar and an array:  3.0 == [3 3 3] returns 1.

A scalar and an array:  3.0 == [3 1 3] returns 0.

Two arrays:  [1 2 3] == [1 2 4] returns 0.

Two PComplex scalars:  (1,@90) == (1,@85) returns 0.

Two Complex scalars:  (2,3) == (2,4) returns 0.

Two Complex scalars:  (2,3) == (2,3) returns 1.

Two Coord scalars:  coord(1,3) == coord(1,5) returns 0.

Two Coord scalars:  coord(1,3) == coord(2,3) returns an error: Values for independent variables must match.

Notes

If either of the containers is mapped (that is, of type Waveform, Spectrum, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings; otherwise an error is returned.

See Also

a ~= b (almost equal to), a AND b, a > b (greater than), a >= b (greater than or equal to), a < b (less than), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b, Relational, and a XOR b.

Comparator, Conditional, and If/Then/Else (under On Features).


erf(x)

An object used to calculate the error function of the input x.

Supported On

All HP VEE Platforms

Use

Use erf(x) to calculate the error function of x.  The erf function is defined as:

(2/SQRT(PI) ) * [ the integral of ( e^(-t^2)) * dt ]

where the integral is evaluated over the range from zero to x.

The x input may be of any shape and size and of the type Int32, Real, Coord, or Waveform.  For x input of all types the same output type is returned, except for Int32 which returns a Real type.

Location

AdvMath ==> Probability ==> erf(x)

Example

erf(.5) returns 0.52049987781305.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

See Also

erfc(x).


erfc(x)

An object used to calculate the complementary error function of the input x.

Supported On

All HP VEE Platforms

Use

Use erfc(x) to calculate the complementary error function of x.  The erfc function is defined as:

1-(2/SQRT(PI)) * [the integral of ( e^(-t^2)) * dt]

where the integral is evaluated over the range from zero to x.

The x input may be of any shape and size and of the type Int32, Real, Coord, or Waveform.  For x input of all types the same output type is returned, except for Int32 which returns a Real type.

Location

AdvMath ==> Probability ==> erfc(x)

Example

erfc(.5) returns 0.47950012218695.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

The erfc(x) function, which returns 1.0 - erf(x), is provided because of the extreme loss of relative accuracy if a large x is called for in erf(x), the result is subtracted from 1.0 (for example, x=5, twelve places are lost).

See Also

erf(x).


exp(x)

An object that returns the exponential of the value of x.

Supported On

All HP VEE Platforms

Use

Use exp(x) to generate the exponential, or natural antilogarithm (base e), of a number x; that is, e raised to the x power.  x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  Int32 arguments will return a Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Power ==> exp(x)

Example

exp(10) returns 22.0264657948k.

exp((1,2)) returns (-1.131204384, 2.471726672).

Notes

Mappings are retained in the result.

See Also

exp10(x), a ^ b (exponent), log(x), log10(x), and Power.


exp10(x)

An object that returns the exponential base 10 of the value of x.

Supported On

All HP VEE Platforms

Use

Use exp10(x) to generate the common antilogarithm (base 10) of a number x; that is, 10 raised to the x power. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  Int32 arguments will return a Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Power ==> exp10(x)

Example

exp10(10) returns 10G.

exp10((1, 2)) returns (-4.16146837, 9.09297427).

Notes

Mappings are retained in the result.

See Also

exp(x), a ^ b (exponent), log(x), log10(x), and Power.


a ^ b (exponent)

An object that performs an arithmetic exponentiation of two operands.

Supported On

All HP VEE Platforms

Use

Use a ^ b to raise one number to the power of the other number. The two numbers may be of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  The two containers may be of any shape.  But if one of the containers is an array, the other must be either a scalar or an array of the same size and shape.  The result is a container of the highest type, with the same shape as the operands.

If both operands are of type Coord, they must have their independent variable(s) match exactly or an error is returned. The exponentiation is only performed on the dependent (last) variable.

Location

Math ==> + - * / ==> a ^ b

Example

A scalar raised to an array:  3.0 ^ [1 2 3] returns [3 9 27].

An array raised to a scalar:  [1 2 3] ^ 3 returns [1 8 27].

Two arrays:  [4 5 6] ^ [1 2 3] returns [4 25 216].

Two Complex scalars:  (2,3) ^ (4,5) returns (-0.753046, -0.986429).

Two Coord scalars:  coord(4,3) ^ coord(4,2) returns coord(4,9).

Two Coord scalars:  coord(1,3) ^ coord(2,5) returns an error.

Notes

If either of the containers is mapped (that is, of type Waveform, Spectrum, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings. The return value will have the same mappings as the operands; otherwise an error is returned.

See Also

exp(x) and log(x).


exponential regression

An object used to fit an exponential curve to (x,y) data.

Supported On

All HP VEE Platforms

Use

Use the exponential regression to fit the data to the equation y = C0 + exp(C1*x), where x is the x coordinate and C0 and C1 are calculated coefficients.  The exp function is the transcendental number e raised to the (C1*x) power.

The exponential regression object expects an array of Coord type of input with one independent variable, that is, an (x,y) pair.  If the input array is not a Coord type, an attempt is made to convert it to Coord.  If the input data is mapped (Waveform, Spectrum, or a mapped array) then the conversion to Coord uses the mapping information to create the x part of the (x,y) pairs.  If the input data is not mapped (for example, an array), then the x part of the (x,y) pair is implicitly generated from its position in the array.

Location

AdvMath ==> Regression ==> exponential

Open View Parameters

The Fit Type field on the open view is used to change the regression type to linear, logarithmic, exponential, power curve or polynomial regression.  Clicking on the field will bring up a list of the different regression types.

Example

See Regression for a Coord conversion example.

Notes

See Regression for general notes on regression.

See Also

linear regression, logarithmic regression, meanSmooth (x,numPts), movingAvg (x,numPts), polynomial regression, polySmooth (x), and power curve regression.

Build Coord (under On Features).


factorial(n)

An object used to calculate the factorial of the input number n.

Supported On

All HP VEE Platforms

Use

Use factorial(n) to calculate the factorial of the natural number n.  The factorial is defined for any natural number n as n! = (n) * (n-1) * (n-2) . . . (3) * (2) * (1).

The n input may be of any shape and size and of the type Int32, Real, Coord, or Waveform.  For n input of all types the same output type is returned, except for Int32 which returns a Real type.  The n input must not be less than zero.

The factorial(n) operation is only defined for integer operands so the input numbers, while of unique type, are converted to Int32 type before the calculation is done.

Location

AdvMath ==> Probability ==> factorial(n)

Example

factorial(6) returns 720 from the multiplication of 6*5*4*3*2*1.

factorial(6.7) returns 720 from the multiplication of 6*5*4*3*2*1. The rule about converting Real to Int32 forces 6.7 to 6.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

See Also

beta(x,y), binomial(a,b), comb(n,r), gamma(x), and perm(n,r).


fft(x)

An object to compute the Discrete Fourier Transform on the input data.

Supported On

All HP VEE Platforms

Use

Use fft(x) to calculate the Discrete Fourier Transform of the values in x. The result is a Complex array for Int and Real inputs, or a Spectrum for a Waveform input, and represents the positive half of the transformed values.  The size of the resultant array will be (N DIV 2)+1, where N is the size of the input array.

The input x must represent an array of ordered, equally-spaced data.  For non-Waveform inputs, the output will be an unmapped array of Complex values.  For Waveform inputs, the output will be mapped from a minimum frequency of 0 to a maximum frequency of (1+(N DIV 2))/(Tmax-Tmin), where N is the size of the input array, and Tmin and Tmax are the mappings of the input Waveform.  Also note that the output will not be normalized.

Location

AdvMath ==> Signal Processing ==> fft(x)

Example

fft([0 1 2 3 4 5 6 7])

returns [(28,0) (-4,9.657) (-4,4) (-4,1.657) (-4,0)]

Notes

1. Truncation and Periodicity: A basic assumption in the use of the discrete Fourier transform is that the given waveform h(t) is periodic. If this is not the case, then the waveform must be truncated and represented as a periodic function.  For a band-limited periodic function h(t), the waveform must be truncated at an integer multiple of the period; otherwise, the resulting discrete and continuous Fourier transform will differ considerably in that sidelobes, frequency leakage, and sharp discontinuities can appear.  These difficulties are often reduced through the use of windows.  If the waveform is not band-limited, one generally must adjust (increase) the truncation interval and use windows [0,L] to reduce time-domain truncation errors. L is defined as the period of the waveform.

2. Aliasing: The problem of aliasing (frequency folding) occurs when the sampling interval T is chosen too large.  One can expect a degradation in the performance of the discrete Fourier transform when the sampling rate is close to the Nyquist sampling rate.  If the waveform is not periodic or not band-limited, increasing the truncation interval[0,L] and decreasing the sampling interval T can help to control truncation errors and aliasing.

 A reference on the fft can be found in the book: E. Oran Brigham, The Fast Fourier Transform and Its Applications, Second Edition, Prentice-Hall, Inc., Englewood Cliffs, NJ, 1988. ISBN #0-13-307505-2.

See Also

convolve(a,b) and ifft(x).


floor(x)

An object that returns the rounded-down value of x to the nearest integer of a value.

Supported On

All HP VEE Platforms

Use

x may be any shape and of the types Int32, Real, Coord, or Waveform. The floor(x) function returns the largest integer (as the same type) less than or equal to x; that is, the value of x rounded to the next smaller integer, the integer nearest negative infinity.

Location

Math ==> Real Parts ==> floor(x)

Example

floor([23.0 23.1 23.9 23.5 (-23.5)]) returns [23 23 23 23 -24].

Notes

Mappings are retained in the result.

See Also

abs(x), ceil(x), Complex Parts, fracPart(x), intPart(x), Real Parts, and round(x).


fracPart(x)

An object that returns the value of the fractional part of x.

Supported On

All HP VEE Platforms

Use

Use fracPart(x) to obtain the fractional part of a container. x may be any shape and of the type Int32, Real, Coord, or Waveform. The fracPart(x) function returns the fractional part of x with the same sign.  It returns x - intPart(x).

Location

Math ==> Real Parts ==> fracPart(x)

Example

fracPart([23.0 23.1 23.9 23.5 (-23.5)]) returns [0 0.1 0.9 0.5 -0.5].

Notes

Mappings are retained in the result.

See Also

abs(x), ceil(x), Complex Parts, floor(x), intPart(x), Real Parts, and round(x).


Freq Distribution

A menu item.

Supported On

All HP VEE Platforms

Use

Use Freq Distribution to calculate the distribution of values over a range into a fixed number of sub-ranges.

magDist(x,from,thru,step)

logMagDist(x,from,thru,logStep)

Location

AdvMath ==> Freq Distribution ==>

See Also

logMagDist (x,from,thru, logStep), and magDist(x, from,thru, step).


gamma(x)

An object used to calculate the gamma function of the input x.

Supported On

All HP VEE Platforms

Use

Use gamma(x) to calculate the gamma function of x.  The gamma function is defined as:

(the integral of [ t^(x-1) * e^(-t) * dt ])

where the integral is evaluated over the range from 0 to infinity.

The x input may be of any shape and size and of the type Int32, Real, Coord, or Waveform.  For x input of all types, the same output type is returned, except for Int32 which returns a Real type.

Location

AdvMath ==> Probability ==> gamma(x)

Examples

gamma(8) returns (8-1)! = 5040.

gamma(-1) returns an error.

gamma(3.7) returns = 4.17065178379660.

gamma(-3.7) returns = 0.251643995902422.

Notes

The gamma(x) function is not defined for non-positive integral values of x.  When x is a positive integer, gamma(x) is defined as (x-1)! (factorial).

Mappings on the operand are ignored and the output container has the same mappings as the input.

See Also

beta(x,y), comb(n,r), factorial(n), and perm(n,r).


Generate

A menu item.

Supported On

All HP VEE Platforms

Use

Use Generate to access the following objects which generate Real one-dimensional arrays of data with specific values.

ramp(numElem,from,thru)

logRamp(numElem,from,thru)

xramp(numElem,from,thru)

xlogRamp(numElem,from,thru)

Location

Math ==> Generate ==>

See Also

logRamp (numElem, from,thru), ramp (numElem, from,thru), xlogRamp (numElem, from,thru), and xramp (numElem, from,thru).


a > b (greater than)

An object that performs an is greater than operation on two operands.

Supported On

All HP VEE Platforms

Use

Use a > b to determine whether the value(s) of one container is greater than the value(s) of another container. The two containers may be of type Int32, Real, Coord, Waveform, Text, or Enum. The two containers may be of any shape.  But if one of the containers is an array, the other must be either a scalar or an array of the same size and shape. The result is a scalar Int32, with the value 0 or 1. If the first operand is greater than the second, the value of the result is 1; otherwise the value is 0.

If both operands are of type Coord, their independent variable(s) must be identical before the operation is even attempted; if not, an error is returned. Enums are converted to Text for the comparison.  Text is compared using ASCII lexical ordering.

When two arrays are compared to each other, each pair of elements must satisfy the relational operator for the operation to return 1.

Location

Math ==> Relational ==> a > b

Example

A scalar and an array:  3.0 > [1 3 9] returns 0.

An array and a scalar:  [5 9 7] > 4 returns 1.

Two arrays:  [3 4 7] > [2 3 5] returns 1.

Two arrays:  [3 4 3] > [2 3 5] returns 0.

Two Coord scalars:  coord(1,3) > coord(1,5) returns 0.

Two Coord scalars:  coord(1,3) > coord(2,5) returns Values for independent variables must match.

Two Text scalars:  "too" > "zoo" returns 0.

Notes

If either of the containers is mapped (that is, of type Waveform, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings; otherwise an error is returned.

See Also

a ~= b (almost equal to), a AND b, a == b (equal to), a >= b (greater than or equal to), a < b (less than), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b, Relational, and a XOR b.

Comparator, Conditional, and If/Then/Else (under On Features).


a >= b (greater than or equal to)

An object that performs an is greater than or equal to operation on two operands.

Supported On

All HP VEE Platforms

Use

Use a >= b to determine whether the value(s) of one container is greater than or equal to the value(s) of another container. The two containers may be of type Int32, Real, Coord, Waveform, Text, or Enum. The two containers may be of any shape. But if one of the containers is an array, the other must be either be a scalar or an array of the same size and shape.  The result is a scalar Int32, with the value 0 or 1.  If the first operand is greater than or equal to the second, the value of the result is 1; otherwise the value is 0.

If both operands are of type Coord, their independent variable(s) must be identical before the operation is even attempted; if not, an error is returned.  Enums are converted to Text for the comparison.  Text is compared using ASCII lexical ordering.

When two arrays are mapped against each other, each set of elements must satisfy the relational operator for the operation to return 1.

Location

Math ==> Relational ==> a >= b

Example

A scalar and an array: 3.0 >= [1 3 9] returns 0.

An array and a scalar: [4 5 6] >= 4 returns 1.

Two arrays: [3 3 6] >= [2 3 5] returns 1.

Two arrays: [1 4 3] >= [2 3 5] returns 0.

Two Coord scalars: coord(1,3) >= coord(1,5) returns 0.

Two Coord scalars: coord(1,3) >= coord(2,5) returns Values for independent variables must match.

Two Text scalars: "too" >= "zoo" returns 0.

Notes

If either of the containers is mapped (that is, of type Waveform, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings; otherwise an error is returned.

See Also

a ~= b (almost equal to), a AND b, a == b (equal to), a > b (greater than), a < b (less than), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b, Relational, and a XOR b.

Comparator, Conditional, and If/Then/Else (under On Features).


hamming(x)

An object used to apply a Hamming window to a time series of values.

Supported On

All HP VEE Platforms

Use

Use hamming(x) to filter the values in x in the same manner as convolving x with the spectral transform of the Hamming function.  This has the effect of suppressing some of the noise due to the tails of the input sequence and the potential discontinuities they represent when sampling periodic signals.

The input x must be an Array 1D of type Int32, Real, Coord, or a Waveform, or a Spectrum.  The same type is returned, except for Int32, which returns Real.

If x is a Spectrum, it is first converted to a Waveform using an ifft(x) before the window is applied.  The result of the window is then converted back to type Spectrum using an fft(x).  A Spectrum is returned.

Location

AdvMath ==> Signal Processing ==> hamming(x)

Example

hamming([1 1 1 1 1 1 1 1]) returns [0.115 0.364 0.716 0.965 0.965 0.716 0.364 0.115].

Notes

The Hamming function is represented in the time domain as 0.54-0.46*cos(2*PI*(n+0.5)/N), where n is the position (index) in the array, and N is the size of the array.  The result will be an array of the same type as x and will have the same mappings as x (if any).

 For a discussion of sidelobe levels and coherent gains, see: Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983.  ISBN #0-02-431650-4.

See Also

bartlet(x), blackman(x), convolve(a,b), fft(x), hanning(x), ifft(x), and rect(x).


hanning(x)

An object used to apply a Hanning window to a time series of values.

Supported On

All HP VEE Platforms

Use

Use hanning(x) to filter the values in x in the same manner as convolving x with the spectral transform of the Hanning function.  This has the effect of suppressing some of the noise due to the tails of the input sequence and the potential discontinuities they represent when sampling periodic signals.

The input x must be an Array 1D of type Int32, Real, Coord, or a Waveform, or a Spectrum.  The same type is returned, except for Int32, which returns Real.

If x is a Spectrum, it is first converted to a Waveform using an ifft(x) before the window is applied.  The result of the window is then converted back to type Spectrum using an fft(x).  A Spectrum is returned.

Location

AdvMath ==> Signal Processing ==> hanning(x)

Example

hanning([1 1 1 1 1 1 1 1]) returns [0.038 0.309 0.691 0.962 0.962 0.691 0.309 0.038].

Notes

The Hanning function is represented in the time domain as 0.5*(1-cos(2*PI*(n+0.5)/N)), where n is the position (index) in the array, and N is the size of the array.  The result will be an array of the same type as x and will have the same mappings as x (if any).

 For a discussion of sidelobe levels and coherent gains, see: Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983.  ISBN #0-02-431650-4.

See Also

bartlet(x), blackman(x), convolve(a,b), fft(x), hamming(x), ifft(x), and rect(x).


hmsToHour (h,m,s)

An object that returns the value of the parameters h, m, and s converted to hours.

Supported On

All HP VEE Platforms

Use

Use hmsToHour(h,m,s) to convert three values, hours, minutes, and seconds, into hours.  h, m, and s can be any shape. If one of the containers is an array, the others must be either scalar or arrays of the same size and shape.  The result is a container of the highest type, with the same shape as the operands. h, m, and s can be of type Int32, Real, Coord, or Waveform. Int32 arguments will return a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Time & Date ==> hmsToHour(h,m,s)

Example

hmsToHour(1, [0 12 60], 36) returns [1.01 1.21 2.01].

Notes

If any of the input parameters are mapped, then those mappings must be the same. The resultant container retains the mappings of the input container. If only one of the inputs is mapped, the resultant container has those mappings.

See Also

dmyToDate (d,m,y), hmsToSec (h,m,s), mday(aDate), month(aDate), now(), Time & Date, wday(aDate), and year(aDate).


hmsToSec (h,m,s)

An object that returns the value of the parameters h, m, and s converted to seconds.

Supported On

All HP VEE Platforms

Use

Use hmsToSec(h,m,s) to convert three values, hours, minutes, and seconds, into seconds.  h, m, and s can be any shape. If one of the containers is an array, the others must be either scalar or arrays of the same size and shape.  The result is a container of the highest type, with the same shape as the operands. h, m, and s can be of type Int32, Real, Coord, or Waveform. Int32 arguments will return a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Time & Date ==> hmsToSec(h,m,s)

Example

hmsToSec(1,[2 4 6],3) returns [3723, 3843, 3963].

Notes

If any of the input parameters are mapped, then those mappings must be the same. The resultant container retains the mappings of the input container. If only one of the inputs is mapped, the resultant container has those mappings.

See Also

dmyToDate (d,m,y), hmsToHour (h,m,s), mday(aDate), month(aDate), now(), Time & Date, wday(aDate), and year(aDate).


Hyper Bessel

A menu item.

Supported On

All HP VEE Platforms

Use

Use Hyper Bessel to calculate the modified (hyperbolic) bessel function of the input data.

i0(x)

i1(x)

k0(x)

k1(x)

Location

AdvMath ==> Hyper Bessel ==>

See Also

i0(x), i1(x), k0(x), k1(x), and Bessel.


Hyper Trig

A menu item.

Supported On

All HP VEE Platforms

Use

Use Hyper Trig to access the following objects which perform hyperbolic trigonometric functions on data.

sinh(x)

cosh(x)

tanh(x)

coth(x)

asinh(x)

acosh(x)

atanh(x)

acoth(x)

Location

Math ==> Hyper Trig ==>

See Also

acosh(x), acoth(x), asinh(x), atanh(x), cosh(x), coth(x), sinh(x), tanh(x), and Trig.


i0(x)

An object used to calculate the modified (hyperbolic) Bessel function of x of the first kind of order zero.

Supported On

All HP VEE Platforms

Use

Use i0(x) to find the modified (hyperbolic) Bessel function of x of the first kind of order zero.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For all x input types, the same output type is returned, except for Int32 which returns a Real type.  For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Hyper Bessel ==> i0(x)

Example

i0(1) returns 1.26606587775200.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

See Also

i1(x), k0(x), and k1(x).


i1(x)

An object used to calculate the modified (hyperbolic) Bessel function of x of the first kind of order one.

Supported On

All HP VEE Platforms

Use

Use i1(x) to find the modified (hyperbolic) Bessel function of x of the first kind of order one.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For all x input types, the same output type is returned, except for Int32 which returns a Real type.  For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Hyper Bessel ==> i1(x)

Example

i1(1) returns 0.565159103992485.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

See Also

i0(x), k0(x), and k1(x).


identity(x)

An object used to return the identity matrix.

Supported On

All HP VEE Platforms

Use

Use identity(x) to return the identity matrix that is the same size as the square input matrix. The x input must be a square matrix and of the type Int32, Real, Complex or PComplex. For all x input types the same output type is returned. A square matrix has the same number of rows as columns.

Location

AdvMath ==> Matrix ==> identity(x)

Example

Where x is a square matrix [ [1 2] [3 4] ], identity(x) returns [ [1 0] [0 1] ].

Where x is the complex square matrix [ [(1,1) (2,2)] [(3,3) (4,4)] ], identity(x) returns [ [(1,0) (0,0)] [(0,0) (1,0)] ].

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

See Also

det(x), inverse(x), and transpose(x).


ifft(x)

An object to compute the Inverse Discrete Fourier Transform on the input data.

Supported On

All HP VEE Platforms

Use

Use ifft(x) to calculate the Inverse Discrete Fourier Transform of the values in x.  The input x should be the positive half of a symmetric Complex, PComplex, or Spectral sequence. The result is a Real array for Complex or PComplex inputs, or a Waveform, for a Spectrum input.

The size of the resultant array depends on the information used to create the incoming array.  As described for fft(x), an fft done on arrays of 256 and 257 points each results in arrays containing 129 points.  The information in each array differs slightly based on the different number of points.  Using ifft(x) on these 129-point arrays results in the original 256- and 257-point arrays. For non-Spectrum inputs, the output will be an unmapped array of Real values.  For Spectrum inputs, the mapping must be linear (not log), and Fmin must be 0.  The output will be mapped from a minimum time of 0 to a maximum time of N/(Fmax-Fmin), where N is the size of the input array, and Fmin and Fmax are the mappings of the input Spectrum.  Also note that the output will not be normalized.

It is assumed that the values of x represent data that has not been normalized.

Location

AdvMath ==> Signal Processing ==> ifft(x)

Example

ifft([(3.5,0) (-1,2.414) (-1,1) (-1,0.414) (-1,0)]) returns [0 1 2 3 4 5 6 7].

Notes

1. Truncation and Periodicity: A basic assumption in the use of the discrete Fourier transform is that the given waveform h(t) is periodic. If this is not the case, then the waveform must be truncated and represented as a periodic function.  For a band-limited periodic function h(t), the waveform must be truncated at an integer multiple of the period; otherwise, the resulting discrete and continuous Fourier transform will differ considerably since sidelobes, frequency leakage, and sharp discontinuities can appear.  These difficulties are often reduced through the use of windows.  If the waveform is not band-limited, you generally must increase the truncation interval and use windows [0,L] to reduce time-domain truncation errors. L is defined as the period of the waveform.

2. Aliasing: The problem of aliasing (frequency folding) occurs when the sampling interval T is chosen too large.  One can expect a degradation in the performance of the discrete Fourier transform when the sampling rate is close to the Nyquist sampling rate.  If the waveform is not periodic or not band-limited, increasing the truncation interval [0,L] and decreasing the sampling interval T can help to control truncation errors and aliasing.

 A reference on the ifft can be found in the book: E. Oran Brigham, The Fast Fourier Transform and Its Applications, Second Edition, Prentice-Hall, Inc., Englewood Cliffs, NJ, 1988.  ISBN #0-13-307505-2.

See Also

fft(x).


im(x)

An object that returns the imaginary part of a Complex number x.

Supported On

All HP VEE Platforms

Use

Use im(x) to extract the imaginary part of a Complex number x. x can be any shape and of types Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  For types Int32, Real, Coord, and Waveform, the same type with value(s) of zero is returned. For types Complex, PComplex, and Spectrum, im(x) returns a Real container with the value of the imaginary part of the Complex number. (PComplex is first converted to Complex.)

Location

Math ==> Complex Parts ==> im(x)

Example

im( (1,2) ) returns 2.

im( (1,@90) ), with Trig Mode in Degrees, returns 1.

Notes

Mappings are retained in the result.

See Also

conj(x), j(x), mag(x), phase(x), re(x), and Real Parts.

Build Complex and UnBuild Complex (under On Features).


init(x,val)

An object used to initialize an array to a specific value.

Supported On

All HP VEE Platforms

Use

Use init(x,val) to initialize an input array x to a value of val.  The x input may be of any size and shape, and of any type. For all x input types, the same output type is returned (except the Error output, which returns Text).  The second val parameter must be of the same type or be able to be converted to the same type as the x input value.

If the input x is an array then the val init value parameter can be a Scalar value or an array. If val is an array, it must have the same number of dimensions and size as the x input. That is, if x is an Array 1D then val can either be a Scalar or an Array 1D of the same size. For Records, the schema of x and val must match.

Location

AdvMath ==> Array ==> init(x,val)

Example

init(a,5) initializes the input array to a value of 5.

init(a,[1 2 3]) initializes an input array of three elements to the values [1 2 3].

Notes

The init value must be the same type as the input array or be able to be converted to the same type. That is, you cannot initialize a real array to a complex initial value because a complex number cannot be converted to a real number.

The mapping on the output container is the same as the input val.

See Also

ramp (numElem, from,thru) and randomize (x,low,high).

Allocate Array (under On Features).


integral(x)

An object used to calculate the integral across all values of the input data using Simpson's 1/3 rule.

Supported On

All HP VEE Platforms

Use

Use integral(x) to calculate the numerical approximation of the indefinite integral of a set of ordered, equally-spaced values (x). The result is an array of the same size and shape as the input x. The result is the same type as x except for Int32.  Int32 returns a Real and has the same mappings (if any) as the input x.

Location

AdvMath ==> Calculus ==> integral(x)

Example

integral([ 0 1 2 3 3 2 1 0 ]) returns [ 0 0.5 2 4.5 7.667 10.17 11.67 12.17 ].

Notes

The integral(x) function is applicable to one-dimensional arrays of simple numeric values (Int32, Real, Waveform) and lists of two-dimensional (two field) coordinates that represent equally spaced ordered data.  For mapped arrays, the mappings of the resultant array will be identical to those of x.  For coordinate lists, the values of the independent field (first field) of each coordinate will be identical to those of the corresponding values in x.

For unmapped arrays, it is assumed that the data is equally spaced and ordered, and a value of 1 is assumed for the interval dx between points. For mapped arrays, the operation is performed with the interval value dx equal to (Xmax-Xmin)/N and is thus automatically scaled appropriately.  For a coordinate list, the independent (first field) values are first checked to be sure that they are ordered and equally spaced, then the operation is performed on the dependent (second field) values using the previously determined spacing as the value for dx.

If an unmapped array is used, but it is known otherwise that the interval between points is some value dx, then the correct value for the operation can be obtained by multiplying the result of integral(x) by the known dx value.

When the values represent noisy data, the result of integral(x) can often be improved (in a pragmatic sense) by first filtering or smoothing the data.  Smoothing removes much of the unwanted noise which is superimposed on the underlying values.  See the polySmooth(x) function and related smoothing functions for examples.

See Also

defIntegral (x,a,b).


intPart(x)

An object that returns the value of the integer part of x.

Supported On

All HP VEE Platforms

Use

Use intPart(x) to obtain the integer part of a container. x may be any shape and of the type Int32, Real, Coord, or Waveform. The intPart(x) function returns the integer portion of the data. If the data is less than zero, it returns the ceil(x); otherwise it  returns the floor(x).  The result will have the same mappings as x.

Location

Math ==> Real Parts ==> intPart(x)

Example

intPart([23.0 23.1 23.9 23.5 (-23.5)]) returns [23 23 23 23 -23].

Notes

Mappings are retained in the result.

See Also

abs(x), ceil(x), Complex Parts, floor(x), fracPart(x), Real Parts, and round(x).


intToChar(a)

An object that converts the numeric input to an ASCII character.

Supported On

All HP VEE Platforms

Use

Use intToChar(a) to convert a numeric input to an ASCII character. The object converts the input to a long integer first, then converts the integer to a character.

Location

Math ==> String ==> intToChar(a)

Notes

The range of values converted to characters is 0 through 255. The object accommodates inputs outside this range by converting only the low-order byte of a 32-bit integer input. The upper three bytes are ignored.

Examples

intToChar(65) returns A.

See Also

charToInt(a), and String.


inverse(x)

An object used to calculate the inverse of a square matrix.

Supported On

All HP VEE Platforms

Use

Use inverse(x) to calculate the inverse of the square matrix x. The x input must be a square matrix shape and of the type Int32, Real, Complex or PComplex. For x input of all types, the same output type and shape is returned, except for Int32, which returns a Real. A square matrix has the same number of rows as columns.

Location

AdvMath ==> Matrix ==> inverse(x)

Example

Where x is a square matrix [ [1 2] [3 4] ], inverse(x) returns [ [-2 1] [1.5 -0.5] ].

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

See Also

det(x), identity(x), and transpose(x).


j(x)

An object that returns a Complex number with x as the imaginary part.

Supported On

All HP VEE Platforms

Use

Use j(x) to generate a Complex number of the same shape as x, with x as the imaginary part and 0 as the real part. x may be any shape and of the type Int32, Real, or Waveform.

Location

Math ==> Complex Parts ==> j(x)

Example

j(5) returns the Complex number (0,5).

Notes

Mappings are retained in the result. To return a complex number with x as the real part, use the type promotions on input terminals to promote Real to Complex.

See Also

Complex Parts, conj(x), im(x), mag(x), phase(x), re(x), and Real Parts.

Build Complex and UnBuild Complex (under On Features).


j0(x)

An object used to calculate the Bessel function of x of the first kind of order zero.

Supported On

All HP VEE Platforms

Use

Use j0(x) to find the Bessel function of x of the first kind of order zero.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types, the same output type is returned, except for Int32 which returns a Real type.  For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Bessel ==> j0(x)

Example

j0(10) returns -0.245935764451348.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

See Also

Ai(x), Bi(x), j1(x), jn(x,n), y0(x), y1(x), and yn(x,n).


j1(x)

An object used to calculate the Bessel function of x of the first kind of order one.

Supported On

All HP VEE Platforms

Use

Use j1(x) to find the Bessel function of x of the first kind of order one.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types, the same output type is returned, except for Int32 which returns a Real type.  For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Bessel ==> j1(x)

Example

j1(1) returns 0.440050585744933.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

See Also

Ai(x), Bi(x), j0(x), jn(x,n), y0(x), y1(x), and yn(x,n).


jn(x,n)

An object used to calculate the Bessel function of x of the first kind of order n.

Supported On

All HP VEE Platforms

Use

Use jn(x,n) to find the Bessel function of x of the first kind of order n.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types, the same output type is returned, except for Int32 which returns a Real type.  For Coord input types, the operation is done on the dependent variable.

The n parameter must be of Int32 type or be able to be converted to Int32.  The n parameter also has to be a Scalar in shape or the same shape as x.

Location

AdvMath ==> Bessel ==> jn(x,n)

Example

jn(1,2) returns 0.114903484931900.

Notes

If both of the inputs are mapped, then the mappings must be the same.  The return value has the same mappings as the input if either input is mapped. If neither of the inputs is mapped, then the output is unmapped.

See Also

Ai(x), Bi(x), j0(x), j1(x), y0(x), y1(x), and yn(x,n).


k0(x)

An object used to calculate the modified (hyperbolic) Bessel function of x of the second kind of order zero.

Supported On

All HP VEE Platforms

Use

Use k0(x) to find the modified (hyperbolic) Bessel function of x of the second kind of order zero.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For all x input types, the same output type is returned, except for Int32 which returns a Real type.  For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Hyper Bessel ==> k0(x)

Example

k0(1) returns 0.421024438240708.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

The x argument must be positive.

See Also

i0(x), i1(x), and k1(x).


k1(x)

An object used to calculate the modified (hyperbolic) Bessel function of x of the second kind of order one.

Supported On

All HP VEE Platforms

Use

Use k1(x) to find the modified (hyperbolic) Bessel function of x of the second kind of order one.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For all x input types, the same output type is returned, except for Int32 which returns a Real type.  For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Hyper Bessel ==> k1(x)

Example

k1(1) returns 0.601907230197234.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

The x argument must be positive.

See Also

i0(x), i1(x), and k0(x).


a < b (less than)

An object that performs an is less than operation on two operands.

Supported On

All HP VEE Platforms

Use

Use a < b to determine whether the value(s) of one container is less than the value(s) of another container.  The two containers may be of type Int32, Real, Coord, Waveform, Text, or Enum.  The two containers may be of any shape.  But if one of the containers is an array, the other must be either a scalar or an array of the same size and shape.  The result is a scalar Int32, with the value 0 or 1.  If the first operand is less than the second, the value of the result is 1; otherwise the value is 0.

If both operands are of type Coord, their independent variable(s) must be identical before the operation is even attempted; if not, an error is returned. Enums are converted to Text for the comparison.  Text is compared using ASCII lexical ordering.

When two arrays are compared to each other, each pair of elements must satisfy the relational operator for the operation to return 1.

Location

Math ==> Relational ==> a < b

Example

A scalar and an array:  3.0 < [1 3 9] returns 0.

An array and a scalar:  [1 2 3] < 4 returns 1.

Two arrays:  [1 2 3] < [2 3 5] returns 1.

Two arrays:  [1 4 3] < [2 3 5] returns 0.

Two Coord scalars:  coord(1,3) < coord(1,5) returns 1.

Two Coord scalars:  coord(1,3) < coord(2,5) returns Values for independent variables must match.

Two Text scalars:  "too" < "zoo" returns 1.

Notes

If either of the containers is mapped (that is, of type Waveform, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings; otherwise an error is returned.

See Also

a ~= b (almost equal to), a AND b, a == b (equal to), a > b (greater than), a >= b (greater than or equal to), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b, Relational, and a XOR b.

Comparator, Conditional, and If/Then/Else (under On Features).


a <= b (less than or equal to)

An object that performs an is less than or equal to operation on two operands.

Supported On

All HP VEE Platforms

Use

Use a <= b to determine whether the value(s) of one container is less than or equal to the value(s) of another container. The two containers may be of type Int32, Real, Coord, Waveform, Text, or Enum.  The two containers may be of any shape.  But if one of the containers is an array, the other must be either a scalar or an array of the same size and shape. The result is a scalar Int32, with the value 0 or 1. If the first operand is less than or equal to the second, the value of the result is 1; otherwise the value is 0.

If both operands are of type Coord, their independent variable(s) must be identical before the operation is even attempted; if not, an error is returned. Enums are converted to Text for the comparison.  Text is compared using ASCII lexical ordering.

When two arrays are mapped against each other, each set of elements must satisfy the relational operator for the operation to return 1.

Location

Math ==> Relational ==> a <= b

Example

A scalar and an array: 3.0 <= [1 3 9] returns 0.

An array and a scalar: [1 2 4] <= 4 returns 1.

Two arrays: [1 2 3] <= [2 3 3] returns 1.

Two arrays: [1 4 3] <= [2 3 5] returns 0.

Two Coord scalars: coord(1,3) <= coord(1,5) returns 1.

Two Coord scalars: coord(1,3) <= coord(2,5) returns Values for independent variables must match.

Two Text scalars:  "too" <= "zoo" returns 1.

Notes

If either of the containers is mapped (that is, of type Waveform, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings; otherwise an error is returned.

See Also

a ~= b (almost equal to), a AND b, a == b (equal to), a > b (greater than), a >= b (greater than or equal to), a < b (less than), NOT a, a != b (not equal to), a OR b, Relational, and a XOR b.

Comparator, Conditional, and If/Then/Else (under On Features).


linear regression

An object used to fit a linear regression line to (x,y) data.

Supported On

All HP VEE Platforms

Use

Use the linear regression to fit a straight line to the data using the equation y = C0 + C1*x, where x is the x coordinate and C0 and C1 are calculated coefficients.  This type of regression should be thought of as fitting the best straight line through the data.

The linear regression object expects an array of Coord type of input with one independent variable, that is, an (x,y) pair.  If the input array is not a Coord type, an attempt is made to convert it to Coord.  If the input data is mapped (Waveform, Spectrum, or a mapped array) then the conversion to Coord uses the mapping information to create the x part of the (x,y) pairs.  If the input data is not mapped (for example, an array), then the x part of the (x,y) pair is implicitly generated from its position in the array.

Location

AdvMath ==> Regression ==> linear

Open View Parameters

The Fit Type field on the open view is used to change the regression type to linear, logarithmic, exponential, power curve or polynomial regression.  Clicking on the field will bring up a list of the different regression types.

Example

See Regression for a Coord conversion example.

Notes

See Regression for general notes on regression.

See Also

exponential regression, logarithmic regression, meanSmooth (x,numPts), movingAvg (x,numPts), polynomial regression, polySmooth (x), and power curve regression.

Build Coord (under On Features).


log(x)

An object that returns the natural logarithm of the value of x.

Supported On

All HP VEE Platforms

Use

Use log(x) to generate the natural logarithm (base e) of a number x.  x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  Int32 arguments will return a Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Power ==> log(x)

Example

log([10 2]) will return [2.302585092994 0.693147180559945].

log((1,2)) will return (0.804718956, 1.10714872).

Notes

Mappings are retained in the result.

See Also

exp(x), exp10(x), a ^ b (exponent), log10(x), and Power.


log10(x)

An object that returns the common logarithm of the value of x.

Supported On

All HP VEE Platforms

Use

Use log10(x) to generate the common logarithm (base 10) of a number x.  x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  Int32 arguments will return a Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Power ==> log10(x)

Example

log10([10 2]) will return [1 0.301029995663981].

log10((1,2)) will return [0.349485, 0.480828579].

Notes

Mappings are retained in the result.

See Also

exp(x), exp10(x), a ^ b (exponent), log(x), and Power.


logarithmic regression

An object used to fit a logarithmic curve to data.

Supported On

All HP VEE Platforms

Use

Use the logarithmic regression to fit the data to the equation:

y = C0 + C1*log(x)

where x is the x coordinate and C0 and C1 are calculated coefficients.  The log function is the natural logarithm.  The input data (x) must always be greater than zero.

The logarithmic regression object expects an array of Coord type of input with one independent variable, that is, an (x,y) pair.  If the input array is not a Coord type, an attempt is made to convert it to Coord.  If the input data is mapped (Spectrum or a mapped array) then the conversion to Coord uses the mapping information to create the x part of the (x,y) pairs.  If the input data is not mapped (for example, an array), then the x part of the (x,y) pair is implicitly generated from its position in the array.

Location

AdvMath ==> Regression ==> logarithmic

Open View Parameters

The Fit Type field on the open view is used to change the regression type to linear, logarithmic, exponential, power curve or polynomial regression.  Clicking on the field will bring up a list of the different regression types.

Example

See Regression for a Coord conversion example.

Notes

See Regression for general notes on regression.

This function will not work for unmapped arrays.  Unmapped arrays are converted to Coord starting with x=0, which will fail in the log function. This function will not work with a Waveform for the same reason.

See Also

exponential regression, meanSmooth (x,numPts), movingAvg (x,numPts), polynomial regression, polySmooth (x), and power curve regression.

Build Coord (under On Features).


Logical

A menu item.

Supported On

All HP VEE Platforms

Use

Use Logical to access the following objects which perform logical operations on operands:

a AND b

a OR b

a XOR b

NOT a

Location

Math ==> Logical ==>

Notes

If logic requirements are met, a 1 is returned. If logic requirements are not met, a 0 is returned.

Note that the return value is of type Int32 and is the same shape as the operands.  This is different than the conditionals, such as ==, that always return a scalar.

The logical operators are defined for type Text only in the sense of whether the string is null or not.  That is, "zoo" AND "" (null string) is logically false since the second string is null. Remember that when comparing a Text type to a non-string type, the latter is promoted to a Text type. This means that "zoo" AND 0 is true since the Real 0 is promoted to the string "0" and, since both strings are non-null, the AND expression is true and returns 1.

See Also

a AND b, NOT a, a OR b, a XOR b, and Relational.

Conditional and If/Then/Else (under On Features).


logMagDist (x,from,thru, logStep)

An object used to calculate the distribution of numbers in the input container given a logarithmic distribution.

Supported On

All HP VEE Platforms

Use

Use logMagDist(x,from,thru,logStep) to calculate a distribution of the log10 values of the values in the input array.  The distribution is done in the range of from to thru by a size of logStep.  The logStep parameter is the sub-range size in the log10 domain into which the log values are sorted (for example, a logStep of 0.2 would be equivalent to 5 sub-ranges per decade).

The x input may be of any size and of the type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  For Complex, PComplex, and Spectrum type inputs, the magnitude of the complex number is calculated first, then that magnitude is used in determining the frequency distribution. The x input shape must be an Array.

Since log10(x) is not defined for values of x<=0, the input values should be positive.

For input of all types, a Real Array 1D is returned.  Each array element represents how many of the input value will fit in each distribution range.

The from, thru and logStep parameters must be Scalar in shape and of Real type or be able to be converted to Real.

The from parameter must be less than the thru parameter.

The logStep parameter must be greater than zero.

Location

AdvMath ==> Freq Distribution ==> logMagDist(x,from,thru,logStep)

Example

logMagDist(x,1,100,1), where x is the array:

[1 2 3 10 40 50 100 100 100]

returns the array [3 6].  In this example there are 2 sub-ranges ranging from 1 to 2 by 1. The output array shows how many of the input numbers fall into each range.

Notes

 For further information about the sub-ranges for the distribution, refer to the HP VEE Reference manual.

The log10 of the "from" and "thru" parameters is calculated before determining the range distribution.

Mappings on the operands are ignored and the return value is not mapped.

See Also

magDist(x, from,thru, step).


logRamp (numElem, from,thru)

An object that generates a logarithmically ramped array.

Supported On

All HP VEE Platforms

Use

Use logRamp(numElem,from,thru) to generate a Real one-dimensional array of length numElem, with the values logarithmically ramped from from to thru.  numElem must be a scalar container which is, or can be converted to, Int32 and with a value greater than zero. from and thru must be scalar containers which are, or can be converted to, Real.  If from is less than thru the ramping is positive; otherwise it automatically ramps negatively. Both from and thru must have values greater than zero.

Location

Math ==> Generate ==> logRamp(numElem,from,thru)

Example

logRamp(3, 1, 100) returns a 1D Array with values [1 10 100].

Notes

The return value has no mappings.

The algorithm for generating values is:

Y[I]=exp10(log10(from)+I*((log10(thru)-log10(from))/numElem-1))

for I=0..numElem-1

This has the effect that the last element in the resultant array has the value thru.

See Also

Alloc Real and ramp (numElem, from,thru).


mag(x)

An object that returns the magnitude of a PComplex number x.

Supported On

All HP VEE Platforms

Use

Use mag(x) to extract the magnitude of a PComplex number x. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. For types Int32, Real, Coord, and Waveform, the same type with the same value(s) is returned. For types Complex, PComplex, and Spectrum, mag(x) returns a Real container with the value of the magnitude of the PComplex number. (Complex is first converted to PComplex.)

Location

Math ==> Complex Parts ==> mag(x)

Example

mag( (1,@45) ) returns 1.

Notes

Mappings are retained in the result.

See Also

conj(x), im(x), j(x), phase(x), re(x), and Real Parts.

Build Complex, Edit Default Preferences, and UnBuild Complex (under On Features).


magDist(x, from,thru, step)

An object used to calculate the distribution of numbers in the input container.

Supported On

All HP VEE Platforms

Use

Use magDist(x,from,thru,step) to calculate a distribution of numbers in the input array.  The distribution is done in the range of from to thru by a size of step.  The step parameter is the size of the range of the sub-array that the numbers will go into.

The x input may be of any size and of the type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  For Complex, PComplex, and Spectrum type inputs, the magnitude of the complex number is calculated first, then that magnitude is used to calculate the frequency distribution. The x input shape must be an Array.

For input of all types, a Real Array 1D is returned.  Each array element represents how many of the input values will fit in each distribution range.

The from, thru and step parameters must be Scalar in shape and of Real type or be able to be converted to Real.

The from parameter must be less than the thru parameter.

The step parameter must be greater than zero.

Location

AdvMath ==> Freq Distribution ==> magDist(x,from,thru,step)

Example

magDist(x,1,5,1), where x is the array [1 2 3 4 5 5 3 3 3 2 2 2], returns the array [1 4 4 3].  In this example there are four sub-ranges ranging from 1 to 5 by 1. The output array shows how many of the input numbers fall into each sub-range.

Notes

 For further information about the sub-ranges for the distribution, refer to the HP VEE Reference manual.

Mappings on the operands are ignored and the return value is not mapped.

See Also

logMagDist (x,from,thru, logStep).


matDivide (numer, denom)

This object will divide two matrices A and B.  The matDivide(numer,denom) operation is defined in algebraic terms as A/B; but in matrix (linear algebraic) terms, it is defined as inv(B)*A.

Supported On

All HP VEE Platforms

Use

Use the matDivide(numer,denom) to divide one matrix into another. Given the linear system BX=A, where the B and A matrices are known, solve for the solution matrix X.  In algebraic terms the solution is to solve for X by dividing A by B: X = A/B. But, by solving the system of equations with linear algebraic matrix rules, the operation is really X = inv(B)*A. This operation is useful to find the solution of a linear system of n equations in n unknowns.

If B is an n x n (square) matrix, then the linear system BX = A is a system of n equations in n unknowns. Suppose that B is non-singular. Then inv(B) (inverse of B) exists and multiplying BX = A by inv(B) on both sides, obtains X = inv(B)*A.

The solution to the multiplication of inv(B)*A is the solution to the given linear system. If B is nonsingular, then there is a unique solution to the system.

Location

AdvMath ==> Matrix ==> matDivide(numer,denom)

Example

matDivide(numer,denom), where A is an 3x3 matrix [ [1 1 1] [0 2 3] [5 5 1] ] and B is a 3x1 matrix [ [8] [24] [8] ], returns a 3x1 matrix [ [0] [0] [8] ].

Notes

Mappings on the operand are ignored and the return value is not mapped.

matDivide(numer,denom) uses the inverse of B; hence, B must be a square matrix.  The rules for matMultiply(A,B) apply to the inv(B) * A operation.

See Also

a / b (divide) and matMultiply (A,B).


matMultiply (A,B)

An object used to multiply two matrices together according to linear Algebra rules.

Supported On

All HP VEE Platforms

Use

Use matMultiply(A,B) to multiply together the two input matrices A and B.  Let A be an m x p matrix and B be a p x n matrix. The matMultiply of A and B is a new matrix, Z, that is an m x n matrix. Notice that the multiplication is defined if and only if the matrices are of the sizes where A is an m x p matrix and B is a p x n matrix (that is, where the number of rows of the second matrix equals the number of columns of the first).

The input matrices must be of matrix shape and of the type Int32, Real, Complex or PComplex. For all input types the same output type is returned, except for Int32 which returns a Real type. If the two matrices are not of the same type, the lower type matrix is promoted to the higher type and the return value is of the higher type.

Location

AdvMath ==> Matrix ==> matMultiply(A,B)

Example

matMultiply(A,B), where A is an 2x1 matrix [ [3] [1] ] and B is a 1x2 matrix [2 4], returns a 2x2 matrix [ [6 12] [2 4] ].

Notes

Mappings on the operand are ignored and the return value is not mapped.

See Also

matDivide (numer, denom) and a * b (multiply).


Matrix

A menu item.

Supported On

All HP VEE Platforms

Use

Use the Matrix operations to calculate common linear algebra operations on matrices.

det(x)

inverse(x)

transpose(x)

identity(x)

minor(x,row,col)

cofactor(x,row,col)

matMultiply(A,B)

matDivide(numer,denom)

Location

AdvMath ==> Matrix ==>

See Also

cofactor(x, row,col), det(x), identity(x), inverse(x), matMultiply (A,B), matDivide (numer, denom), minor(x,row, col), and transpose(x).


max(x)

An object used to return the maximum value in the input container.

Supported On

All HP VEE Platforms

Use

Use max(x) to return the maximum value in the container.

The x input may be of any size and shape and of the type Int32, Real, Coord, Waveform, or Text.  For x input of all types except Waveform, the same output type is returned, but is Scalar in shape.  A Waveform input type returns a Real Scalar.  For Coord input types, the operation is done on the dependent variable.  For Text input types, the max(x) text string is the one that is the highest lexically ordered string.

Location

AdvMath ==> Statistics ==> max(x)

Example

max(x), where x is the array [5 34 1 54 6 2 9 7 16 42], returns 54.

Notes

Mappings on the operand are ignored.

See Also

maxIndex(x), maxX(x), mean(x), median(x), min(x), mode(x), rms(x), sdev(x), and vari(x).


maxIndex(x)

An object used to return the index in the input array of the largest element.

Supported On

All HP VEE Platforms

Use

Use maxIndex(x) to return the index of the largest element in a 1D array.

The x input must be of Array 1D shape and of the type Int32, Real, Coord, Waveform, or Text.  For all x input types, an Int32 number representing the index of the largest element is returned.

Location

AdvMath ==> Data Filtering ==> maxIndex(x)

Example

Applying the maxIndex(x) to an array, where x is the array [.1, .4, .6, .9] returns 3 because .9 is the largest element of the array.

maxIndex(x) of ["Ken" "Sue" "Randy" "Bill" "Doug"] returns 1 because "Sue" is the highest lexically ordered term.

Notes

Note that array indices start with zero.

Mappings on the operand are ignored.

See Also

max(x), maxX(x), min(x), minIndex(x), and minX(x).


maxX(x)

An object used to return the x value of a maximum point of the input Array 1D where the array is mapped.

Supported On

All HP VEE Platforms

Use

Use maxX(x) to return the Xindex of the largest y element in a 1D (linear) array.  The x input must be of Array 1D shape and of the type Int32, Real, Coord, Waveform, or Text.  For x input of all types, a Real Scalar container is returned.

If the data is mapped, the value returned is the x value corresponding to the maximum y value of the input data.  The x value is calculated using the array mappings.  If the data is not mapped, then the value returned is the index in the array of the maximum y value.  That is, it will return the (implicit) position in the array of maximum x value.

The Coord type returns the independent variable x at the maximum y value.

This function is only useful for mapped data or Coord types, as it is the same as maxIndex(x) for unmapped data.

Location

AdvMath ==> Data Filtering ==> maxX(x)

Example

Take the maxX(x) of a sine waveform type that has 256 points and is mapped over 0 to 20 milliseconds. The return value is .009219.

Take the maxX(x) of an array, where x is the unmapped array. [.1 .4 .6 .9] returns 3 because .9 is the largest element of the array. This is identical to maxIndex(x).

See Also

max(x), maxIndex(x), min(x), minIndex(x), and minX(x).

Get Mappings and Set Mappings (under On Features).


mday(aDate)

An object that returns the day of the month of the time x.

Supported On

All HP VEE Platforms

Use

Use mday(aDate) to transform the given time x into a container of the same shape with value(s) 1 - 31 corresponding to the day of the month.  x must be of type Int32, Real, Coord, or Waveform of any shape. Int32 returns Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Time & Date ==> mday(aDate)

Example

mday(dmyToDate(25,12,1991)) returns 25, the 25th day of the month.

Notes

mday(aDate) returns 1-31, not 0-30.  This is one of the few non-zero based functions in HP VEE.  Mappings are retained in the return value.

See Also

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), month(aDate), now(), Time & Date, wday(aDate), and year(aDate).


mean(x)

An object used to calculate the mean value of the data in the input container.

Supported On

All HP VEE Platforms

Use

Use mean(x) to return the mean (average) value of the container. The numbers in the input container are added, then the sum is divided by the number of elements in the input.

The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types, a Real Scalar container is returned.  For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Statistics ==> mean(x)

Example

Where x is the array [1 2 3 11 12 34], mean(x) returns 10.5.

Notes

Mappings on the operand are ignored.

See Also

max(x), median(x), min(x), mode(x), rms(x), sdev(x), and vari(x).


meanSmooth (x,numPts)

An object used to smooth input data using the mean of a specified number of data points surrounding the data point of interest to calculate the smoothed data point.

Supported On

All HP VEE Platforms

Use

Use meanSmooth(x,numPts) to perform a data smoothing similar to the polySmooth(x) routine.  The algorithm calculates an arithmetic mean of the numPts data points around the point to be smoothed.  For example, if numPts is 5, take the mean of: 2 points before the current point, the current point, and two points after the current point.  If numPts is even, the algorithm will add one more to the number of points to make it odd.

The x input must be of Array 1D shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types, the same output type is returned, except for Int32 which returns a Real type.  The independent variables of a Coord input type must be equidistant, that is, the x-interval between adjacent points must be a constant.  The smoothing is only done on the dependent variable (the y data of the Coord).

The noise suppression capability of this technique is a function of the size numPts of the averaging which you specify.  Large values of numPts will suppress noise to a much greater degree than small values of numPts.  Quite often this function can be used to dramatically improve the results of other functions (like deriv(x,order)) if used to preprocess the data.

Location

AdvMath ==> Data Filtering ==> meanSmooth(x,numPts)

Notes

Mappings on input parameters are ignored and the output has the same mappings as the input parameter x.

See Also

movingAvg (x,numPts), polySmooth (x), Regression types, and Signal Processing.


median(x)

An object used to calculate the median value of the input container.

Supported On

All HP VEE Platforms

Use

Use median(x) to return the middle value of the container.

The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types, a Real Scalar is returned. For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Statistics ==> median(x)

Example

median([1 2 3 8 20]) returns 3.

median(x), where x is the array [1 2 5 11 12 33], returns 8. The median value is the one in the middle of the range of numbers.  In the case where there are an even number of numbers, the median is calculated as the average between the two middle numbers.  In this case, the median value is the average of 5 and 11, which is 8.

median([20 5 10]) returns 10.

Notes

Mappings on the operand are ignored.

See Also

max(x), mean(x), min(x), mode(x), rms(x), sdev(x), and vari(x).


min(x)

An object used to return the minimum value in the input container.

Supported On

All HP VEE Platforms

Use

Use min(x) to return the minimum value in the container.

The x input may be of any size and shape and of the type Int32, Real, Coord, Waveform, or Text.  For x input of all types except Waveform, the same output type is returned, but is Scalar in shape.  A Waveform input type returns a Real Scalar. For Coord input types, the operation is done on the dependent variable.  For Text input types, the min(x) text string is the one that is the lowest lexically ordered string.

Location

AdvMath ==> Statistics ==> min(x)

Example

min(x), where x is the array [5 34 1 54 6 2 9 7 16 42], returns 1.

Notes

Mappings on the operand are ignored.

See Also

max(x), mean(x), median(x), minIndex(x), minX(x), mode(x), rms(x), sdev(x), and vari(x).


minIndex(x)

An object used to return the index in the input array of the smallest element.

Supported On

All HP VEE Platforms

Use

Use minIndex(x) to return the index of the smallest element in a 1D array.

The x input must be of Array 1D shape and of the type Int32, Real, Coord, Waveform, or Text.  For all x input types, an Int32 Scalar number representing the index of the smallest element is returned.

Location

AdvMath ==> Data Filtering ==> minIndex(x)

Example

Applying the minIndex(x) to an array, where x is the array [.1 .4 .6 .9] returns 0 because .1 is the smallest element of the array.

minIndex(x) of ["Ken" "Randy" "Doug" "Bill" "Sue"] returns 3 because "Bill" is the lowest lexically ordered term.

Notes

Note that array indices start with zero.

Mappings on the operand are ignored.

See Also

max(x), maxIndex(x), maxX(x), min(x),  and minX(x).


minor(x,row, col)

An object used to calculate the minor of a matrix x at row r and column c.

Supported On

All HP VEE Platforms

Use

Use minor(x,row,col) to calculate the minor of the square input matrix x. The minor of matrix is defined as the determinant of the submatrix of the input matrix x obtained by deleting the rth row and cth column. The x input must be a square matrix shape and of the type Int32, Real, Complex or PComplex. For x input of all types, output of the same type is returned and is Scalar in shape, except for Int32 which returns a Real.  The input for the row and column to delete, r and c, must be Int32 Scalar or be able to be converted to Int32 type.

A square matrix has the same number of rows as columns.

Location

AdvMath ==> Matrix ==> minor(x,row,col)

Example

minor(a,1,2), where a is a matrix [ [3 -1 2] [4 5 6] [7 1 2] ], returns -34.

Notes

Mappings on the operand are ignored.

The r and c inputs are expected to be of type Int32 or be able to be converted to that type. The rows and columns of the matrix are numbered from 0 to n-1 so be careful when specifying which row and column to use.

See Also

cofactor(x, row,col)and det(x).


minX(x)

An object used to return the x value of the minimum point of the input Array 1D where the array is mapped.

Supported On

All HP VEE Platforms

Use

Use minX(x) to return the Xindex of the smallest y element in an 1D (linear) array.  The x input must be of Array 1D shape and of the type Int32, Real, Coord, Waveform, or Text.  For x input of all types a Real Scalar container is returned.

If the data is mapped, the value returned is the x value corresponding to the minimum y value of the input data.  The x value is calculated using the array mappings.  If the data is not mapped, then the value returned is the index in the array of the minimum y value.  That is, it will return the (implicit) position in the array of minimum x value.

The Coord type returns the independent variable x at the minimum y value.

This function is only useful for mapped data or Coord types. It is the same as minIndex(x) for unmapped data.

Location

AdvMath ==> Data Filtering ==> minX(x)

Example

Take the minX(x) of a sine waveform that has 256 points and is mapped over 0 to 20 milliseconds. The return value is .0107.

Take the minX(x) of an array, where x is the unmapped array. [.1 .4 .6 .9] returns 0 because .1 is the smallest element of the array. This is identical to minIndex(x).

See Also

max(x), maxIndex(x), maxX(x), min(x), and minIndex(x).

Get Mappings and Set Mappings (under On Features).


a mod b (modulo)

An object that performs an arithmetic modulo (remainder) of two operands.

Supported On

All HP VEE Platforms

Use

Use a mod b to determine the remainder of the division of two containers. The two containers may be of type Int32, Real, Coord, or Waveform. The two containers may be of any shape.  But if one of the containers is an array, the other must be either a scalar or an array of the same size and shape.  The result is a container of the highest type, with the same shape as the operands.

If both operands are of type Coord, they must have their independent variable(s) match exactly or an error is returned. The modulo is only performed on the dependent (last) variable.

Location

Math ==> + - * / ==> a mod b

Example

A scalar modulo an array:  3.2 MOD [1 2 3] returns [0.2 1.2 0.2].

An array modulo a scalar:  [1 2 3] MOD 2 returns [1 0 1].

Two Coord scalars: coord(1,3) MOD coord(1,5) returns coord(1,2).

Two Coord scalars: coord(1,3) MOD coord(2,5) returns an error.

Two scalars: 12.95 mod 2 returns 0.95.

Two scalars: 12.95 mod 2.1 returns 0.32.

Notes

If either of the containers is mapped (that is, of type Waveform, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings.  The return value will have the same mappings as the operands; otherwise an error is returned.

See Also

a + b (add), a div b (truncated division), a / b (divide), a * b (multiply), and a - b (subtract).


mode(x)

An object used to calculate the mode of the data in the input container.

Supported On

All HP VEE Platforms

Use

Use mode(x) to return the mode of the value in the container.  The mode value is the one which is found most often in the data.  In case of bimodal data (two numbers represented the same number of times) or higher modes, mode(x) returns the lowest valued mode found in the array container.

In the case where there is no mode value (that is, every number is unique), the first value in the input container is returned.

The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types except Int32, a Real Scalar is returned.  For Coord input types, the operation is done on the dependent variable.  An Int32 input type returns an Int32.

Location

AdvMath ==> Statistics ==> mode(x)

Example

Single mode:  where x is the array [2 1 12 11 2 33], mode(x) returns 2.

Bimodal: where x is the array [2 1 2 12 11 12], mode(x) returns 2.

No mode: where x is the array [3 2 1 11 12 33], mode(x) returns 3.

Notes

Mappings on the operand are ignored.

See Also

max(x), mean(x), median(x), min(x), rms(x), sdev(x), and vari(x).


month(aDate)

An object that returns the month of the year of the time x.

Supported On

All HP VEE Platforms

Use

Use month(aDate) to transform the given time x into a container of the same shape with value(s) 1 - 12 corresponding to the month of the year.  x must be of type Int32, Real, Coord, or Waveform of any shape.  Int32 returns Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Time & Date ==> month(aDate)

Example

month(dmyToDate(25,12,1991)) returns 12, the 12th month of the year.

Notes

month(aDate) returns 1-12, not 0-11. This is one of the few non-zero based functions in HP VEE. Mappings are retained in the return value.

See Also

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), now(), Time & Date, wday(aDate), and year(aDate).


movingAvg (x,numPts)

An object used to smooth the input data using the average of a specified number of data points preceding the data point of interest to calculate the smoothed data point.

Supported On

All HP VEE Platforms

Use

Use movingAvg(x,numPts) to perform a data smoothing similar to the meanSmooth(x,numPts) routine.  The algorithm calculates an arithmetic mean of numPts previous data points.

The x input must be of Array 1D shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types the same output type is returned, except for Int32 which returns a Real type.  The independent variables of a Coord input type must be equidistant, that is, the x-interval between adjacent points must be a constant.  The smoothing is only done on the dependent variable (the y data of the Coord).

This technique tends to represent more of a "historical" view of the data since, for any point in the array, the average value is calculated only from earlier points. This is in contrast to the average value being calculated from points on both sides of the point in question, as is the case for polySmooth(x) and meanSmooth(x,numPts).

Location

AdvMath ==> Data Filtering ==> movingAvg(x,numPts)

Example

If numPts is 5, the average of the 4 previous points and the point of interest are used to determine what the smoothed point should be.

Notes

Mappings on input parameters are ignored and the output has the same mappings as the input parameter x.

See Also

meanSmooth (x,numPts), polySmooth (x), Regression types, and Signal Processing.


a * b (multiply)

An object that performs an arithmetic multiplication on two operands.

Supported On

All HP VEE Platforms

Use

Use a * b to multiply the values of two containers.  The two containers may be of any type and of any shape.  If one of the containers is an array, the other must be either a scalar or an array of the same size and shape. The result is a container of the highest type, with the same shape as the operands.

If both operands are of type Coord, they must have their independent variable(s) match exactly or an error is returned.  The multiplication is only performed on the dependent (last) variable.

If one of the containers is Text, the other must be an Int32. Text multiplication consists of repeating the string the number of times given by the value of the Int32. Enums are converted to Text for multiplication.

This multiplication operation performs a parallel multiplication on all elements of the arrays, including matrices.  For a matrix multiply, see the function matMultiply(A,B).

Location

Math ==> + - * / ==> a * b

Example

Array times a scalar:  [1 2 3] * 3 returns [3 6 9].

Two arrays:  [4 5 6] * [1 2 3] returns [4 10 18].

Two PComplex scalars:  (2,@45) * (3,@90) returns (6,@135) with Trig Mode set to Degrees.

Two Coord scalars:  coord(1,3) * coord(1,5) returns coord(1,15).

Two Coord scalars:  coord(1,3) * coord(2,5) returns an error.

Text times a scalar:  "hello" * 3 returns "hellohellohello".

A Text array times an array:  ["hello" "b"] * [3 2] returns ["hellohellohello" "bb"].

Notes

If either of the containers is mapped (that is, of type Waveform, Spectrum, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings. The return value will have the same mappings as the operands; otherwise an error is returned.

See Also

a + b (add), a / b (divide), matMultiply (A,B), and a - b (subtract).


NOT a

An object that performs a logical NOT operation on one operand.

Supported On

All HP VEE Platforms

Use

Use NOT a to determine the logical opposite of the value(s) of a container.  The container may be of any type and of any shape.  The result is an Int32 of the same shape as the operand, with value(s) 0 or 1. If the operand is false  (zero), the value of the NOT operator is 1; otherwise the value is 0.

For Coord containers, only the dependent (last) variable is considered for the NOT operation.

For Complex, PComplex, and Spectrum containers, the value of the operand is true if either part is non-zero.  Text is true if non-null. Enums are converted to Text for the operation.

Location

Math ==> Logical ==> NOT a

Example

A scalar: NOT 3 returns 0.

A scalar: NOT 0 returns 1.

An array: NOT [-3 0 3] returns [0 1 0].

A PComplex scalar: NOT (1,@90) returns 0.

A Complex scalar: NOT (0,1) returns 0.

A Complex scalar: NOT (0,0) returns 1.

A Coord scalar: NOT coord(1,3) returns 0.

A Coord scalar: NOT coord(1,0) returns 1.

A Text scalar: NOT "too" returns 0.

A Text scalar: NOT "" returns 1.

Notes

The result has the same mapping as the operand.

Note that the If/Then/Else device requires the expression(s) inside it to evaluate to either a scalar or an array, which is either all zeros or all ones.

See Also

Conditional and If/Then/Else (under On Features).


a != b (not equal to)

An object that performs an is not equal to operation on two operands.

Supported On

All HP VEE Platforms

Use

Use a != b to determine whether the value(s) of one container is not equal to the value(s) of another container. The two containers may be of any type and of any shape. If one of the containers is an array, the other must be either a scalar or an array of the same size and shape. The result is a scalar Int32 with the value 0 or 1. If the first operand is not equal to the second, the value of the result is 1; otherwise the value is 0.

For Coord containers, if any of the independent variable(s) do not match exactly, an error is returned. For Complex, PComplex, and Spectrum containers, if either part or both parts do not match, the result is 1. Enums are converted to Text for the comparison.

Arrays must have one or more of their respective values not equal for the result to be 1.

Location

Math ==> Relational ==> a != b

Example

A scalar and an array:  3.0 != [3 3 3] returns 0.

A scalar and an array:  3.0 != [3 1 3] returns 1.

Two arrays:  [1 2 3] != [1 2 4] returns 1.

Two PComplex scalars:  (1,@90) != (1,@85) returns 1.

Two Complex scalars:  (2,3) != (2,4) returns 1.

Two Complex scalars:  (2,3) != (2,3) returns 0.

Two Coord scalars:  coord(1,3) != coord(1,5) returns 1.

Two Coord scalars:  coord(1,3) != coord(2,3) returns Values for independent variables must match.

Notes

If either of the containers is mapped (that is, of type Waveform, Spectrum, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings; otherwise an error is returned.

See Also

a ~= b (almost equal to), a AND b, a == b (equal to), a > b (greater than), a >= b (greater than or equal to), a < b (less than), a <= b (less than or equal to), NOT a, a OR b, Relational, and a XOR b.

Comparator and Conditional (under On Features).


now()

An object that returns the current time.

Supported On

All HP VEE Platforms

Use

Use now() to generate a Real scalar container with the value of the current time.  The value of the Real is the number of seconds since 00:00 hours 1 January 0001 AD given in UTC.

Location

Math ==> Time & Date ==> now()

Example

now() returns around 62.802G.

See Also

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), month(aDate), Time & Date, wday(aDate), and year(aDate).


a OR b

An object that performs a logical OR operation on two operands.

Supported On

All HP VEE Platforms

Use

Use a OR b to determine whether the value(s) of either of two containers is logically true (non-zero).  The two containers may be of any type and of any shape.  If one of the containers is an array, the other must be either a scalar or an array of the same size and shape.  The result is an Int32 of the same shape as the operands, with value(s) 0 or 1. If either or both operands are non-zero, the value of the OR operation is 1; otherwise the value is 0.

If both operands are of type Coord, they must have their independent variable(s) match exactly or an error is returned.  Only the dependent (last) variable is considered for the OR operation.

For Complex, PComplex, and Spectrum containers, the value of the operand is true if either part is non-zero. Text is true if non-null.  Enums are converted to Text for the operation.

Location

Math ==> Logical ==> a OR b

Example

A scalar and an array: 3 OR [3 3 3] returns [1 1 1].

A scalar and an array: 0 OR [-3 0 3] returns [1 0 1].

Two arrays: [1 0 0] OR [0 1 (-1)] returns [1 1 1].

Two PComplex scalars: (1,@90) OR (1,@85) returns 1.

Two Complex scalars: (0,0) OR (0,1) returns 1.

Two Complex scalars: (0,1) OR (1,0) returns 1.

Two Complex scalars: (0,0) OR (0,0) returns 0.

Two Coord scalars: coord(1,3) OR coord(1,5) returns 1.

Two Coord scalars: coord(1,3) OR coord(2,3) returns an error.

A Text scalar and a scalar number: "too" OR 0 returns 1.

A Text scalar and a scalar number: "" OR 0 returns 1 because the 0 is promoted to the string "0", which is non-null.

Notes

If either of the containers is mapped (that is, of type Waveform, Spectrum, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings. The return value will have the same mappings as the operands; otherwise an error is returned.

Note that the If/Then/Else device requires the expression(s) inside it to evaluate to either a scalar or an array, which is either all zeros or all ones.

See Also

a AND b, NOT a, Relational, and a XOR b.

Conditional and If/Then/Else (under On Features).


ordinal(x)

An object that returns the ordinal value of x.

Supported On

All HP VEE Platforms

Use

Use ordinal(x) to obtain the ordinal value of a container. x may be any shape and of the types Int32, Real, Coord, Waveform, or Enum. For Int32, Real, Coord, and Waveform, the result is the same as the argument with the same mappings.  For Enum, the result is an Int32 of the same shape as x with the value of the ordinal value of the Enum.  Enums created from the Enum Constant have their ordinal values starting at 0 and going to n-1, where n is the number of Enum values in the list.

Location

Math ==> Real Parts ==> ordinal(x)

Example

If an Enum constant is created with the strings ordered "a", "b", and "c", and the current value "a" is selected, ordinal(x) on that container would return 0 since the first value is selected.  Remember that HP VEE is zero-based. If, with the same Enum constant, the currently selected value is "c", then ordinal(x) on that container would return 2, the offset of the currently selected value.

Notes

Mappings are retained in the result.

See Also

Complex Parts, Selection Control, and Real Parts.


perm(n,r)

An object used to calculate the permutations of n numbers taken r at a time.

Supported On

All HP VEE Platforms

Use

Use perm(n,r) to calculate the number of permutations of n things taken r at a time using the formula:

Perm(n, r) = n! / (n - r)!

The ! symbol means factorial. The n input may be of any shape and size and of the type Int32, Real, Coord, or Waveform.  For n input of all types the same output type is returned, except for Int32 which returns a Real type.  The second r parameter must be of the same type or be able to be converted to the same type as the n input value.  If both of the inputs are arrays, they must be of exactly the same shape and size.

The perm(n, r) operation is only defined for integer operands so the input values, while of unique type, are converted to Int32 type before the calculation is done.

Location

AdvMath ==> Probability ==> perm(n, r)

Example

perm(10,3) will return 720 as given by the formula 10!/(10-3)! = 10!/7! = 10*9*8 = 720.

perm(10.4,3.9) will return 720 as given by the formula 10!/(10-3)! = 10!/7!  = 10*9*8 = 720. The rule about converting Real to Int32 forces 10.4 to 10 and 3.9 to 3.

Notes

Both n and r must be positive and n must be greater than r. If both of the inputs are mapped, then the mappings must be the same.  The return value has the same mappings as the input if either input is mapped. If neither of the inputs is mapped, then the output is unmapped.

See Also

beta(x,y), binomial(a,b), comb(n,r), factorial(n), and gamma(x).


phase(x)

An object that returns the phase of a PComplex number x.

Supported On

All HP VEE Platforms

Use

Use phase(x) to extract the phase of a PComplex number x. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  For types Int32, Real, Coord, and Waveform, the same type with value(s) of zero is returned. For types Complex, PComplex, and Spectrum, phase(x) returns a Real container with the value of the polar phase angle of the PComplex number.  (Complex is first converted to PComplex.) The phase(x) value is returned in the units of the current Trig Mode.

Location

Math ==> Complex Parts ==> phase(x)

Example

phase((1,@45)) returns 45.

Notes

Mappings are retained in the result.

See Also

conj(x), im(x), j(x), mag(x), re(x), and Real Parts.

Build PComplex, Edit Default Preferences, and UnBuild PComplex (under On Features).


poly(x,vec)

A summary notation for objects poly(x,[a0 a1]), poly(x,[a0 a1 a2]), poly(x,[a0 a1 a2 a3]), and poly(x,[a0 a1 ... aN]).  These objects return the polynomial value of the x and vec values.

Supported On

All HP VEE Platforms

Use

Use poly(x,vec) to generate the polynomial result of the x data and vec coefficients. x can be any shape and of type Int32 or Real. vec must be either a scalar or a one-dimensional array. poly(x,vec) takes the elements of vec as the polynomial coefficients, and x as the data. vec starts with a0, then a1, and so on, out to the length of vec.  The return value is Real and the same shape as x.

The polynomial equation computes:

a0 + a1*x + a2*x*x + a3*x*x*x + ...

Location

Math ==> Polynomial ==> poly(x,vec)

Example

poly([10 2], [3 2 4]) generates [423 23].

Notes

Mappings of the resultant container are the same as the input container x.

See Also

ramp (numElem, from,thru).


Polynomial

A menu item.

Supported On

All HP VEE Platforms

Use

Use Polynomial to access the following objects which generate a Real polynomial result from the data and coefficient values. These objects are summarized as poly(x,vec).

poly(x,[a0 a1])

poly(x,[a0 a1 a2])

poly(x,[a0 a1 a2 a3])

poly(x,[a0 a1 ... aN])

Location

Math ==> Polynomial ==>

See Also

Generate, and poly(x,vec).


polynomial regression

An object used to fit a polynomial curve of arbitrary degree to (x,y) data.

Supported On

All HP VEE Platforms

Use

Use the polynomial regression to fit the data to the equation y = C0 + C1*x + C2*x^2 + ... , where x is the x coordinate and C0, C1, and so forth, are calculated coefficients. Polynomial curve fitting requires the degree of the polynomial to be set on the Order input field on the regression object.

The polynomial regression object expects an array of Coord type of input with one independent variable, that is, an (x,y) pair.  If the input array is not a Coord type, an attempt is made to convert it to Coord.  If the input data is mapped (Waveform, Spectrum, or a mapped array), then the conversion to Coord uses the mapping information to create the x part of the (x,y) pairs.  If the input data is not mapped (for example, an array), then the x part of the (x,y) pair is implicitly generated from its position in the array.

Location

AdvMath ==> Regression ==> polynomial

Open View Parameters

The Fit Type field on the open view is used to change the regression type to linear, logarithmic, exponential, power curve or polynomial regression.  Clicking on the button will bring up a list of the different regression types.

The Order input field is used to set the order of the polynomial to which the data is fitted.  The order of the polynomial fit must be greater than or equal to one.  A polynomial fit of order one fits the data to a straight line and is the same as the linear regression choice.

Example

See Regression for a Coord conversion example.

Notes

See Regression for general notes on regression.

See Also

exponential regression, linear regression, logarithmic regression, meanSmooth (x,numPts), movingAvg (x,numPts), polySmooth (x), and power curve regression.

Build Coord (under On Features).


polySmooth (x)

An object used to smooth data using a polynomial fit of the data.

Supported On

All HP VEE Platforms

Use

Use polySmooth(x) to smooth out data.  A fourth order polynomial is fitted to the data and a new data point is calculated based on the curve fit using the polynomial.  To do the 4th order curve fit, 5 points are used, two on either side of the data point being fitted and the data point itself, with special consideration for the two end points.

The x input must be of Array 1D shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types the same output type is returned, except for Int32 which returns a Real type.  The independent variables of a Coord input type must be equidistant. That is, the x-interval between adjacent points must be a constant.  The smoothing is only done on the dependent variable (the y data of the Coord).

Location

AdvMath ==> Data Filtering ==> polySmooth(x)

Notes

The method used is to take a 5-element sliding window and apply the standard formula for a 4th-degree Stirling collocation polynomial.  Refer to Francis Scheid, Schaum's Outline of Theory and Problems of Numerical Analysis, McGraw Hill, New York, NY, 1968. ISBN #07-055197-9.

Mappings on the operand are ignored and the output container has the same mappings as the input.

The filtering operation which results from this technique has a fixed "frequency response" which suppresses only the noisiest part of the data. If more noise suppression is required, see the meanSmooth(x,numPts) function, which you can use to suppress much more noise.

See Also

meanSmooth (x,numPts), movingAvg (x,numPts), Regression types, and Signal Processing.


Power

A menu item.

Supported On

All HP VEE Platforms

Use

Use Power to access the following objects which perform power functions such as square root, square, log, exp, and log base 10.

sq(x)

sqrt(x)

cubert(x)

recip(x)

log(x)

log10(x)

exp(x)

exp10(x)

Location

Math ==> Power ==>

See Also

cubert(x), exp(x), exp10(x), log(x), log10(x), recip(x), sq(x), sqrt(x), a + b (add), a / b (divide), a ^ b (exponent), a * b (multiply), and a - b (subtract).


power curve regression

An object used to fit a power curve to (x,y) data.

Supported On

All HP VEE Platforms

Use

Use the power regression to fit the data to the equation y = C0 * x^C1, where x is the x coordinate and C0 and C1 are calculated coefficients.

The power curve regression object expects an array of Coord type of input with one independent variable.  That is, an (x,y) pair.  If the input array is not a Coord type an attempt is made to convert it to Coord.  If the input data is mapped (Waveform, Spectrum, or a mapped array), then the conversion to Coord uses the mapping information to create the x part of the (x,y) pairs.  If the input data is not mapped (for example, an array), then the x part of the (x,y) pair is implicitly generated from its position in the array.

Location

AdvMath ==> Regression ==> power curve

Open View Parameters

The Fit Type field on the open view is used to change the regression type to linear, logarithmic, exponential, power curve or polynomial regression.  Clicking on the field will bring up a list of the different regression types.

Example

See Regression for a Coord conversion example.

Notes

See Regression for general notes on regression.

This function will not work for unmapped arrays.  Unmapped arrays are converted to Coord starting with x=0, which fails in the conversion in the log function.  The log function is used in the internal regression calculation.

See Also

exponential regression, linear regression, logarithmic regression, meanSmooth (x,numPts), movingAvg (x,numPts), polynomial regression, and polySmooth (x).

Build Coord (under On Features).


Probability

A menu item.

Supported On

All HP VEE Platforms

Use

Use these Probability functions in problems dealing with random numbers and probabilities.

random(low,high)

randomize(x,low,high)

randomSeed(seed)

perm(n,r)

comb(n,r)

gamma(x)

beta(x,y)

factorial(n)

binomial(a,b)

erf(x)

erfc(x)

Location

AdvMath ==> Probability ==>

See Also

beta(x,y), binomial(a,b), comb(n,r), erf(x), erfc(x), factorial(n), gamma(x), perm(n,r), random (low,high), randomize (x,low,high), and randomSeed (seed).

Random Number and Random Seed (under On Features).


prod(x)

An object used to multiply all the elements of the input array.

Supported On

All HP VEE Platforms

Use

Use prod(x) to multiply together all the elements of the input array. The x input may be of any size and shape and of the type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. For x input of all types, except Waveform, Coord, and Spectrum, output of the same type as the input is returned. An input of type Waveform or Coord returns a Real Scalar. An input of type Spectrum returns a PComplex Scalar.

The output of this object is the arithmetic product of all the data contained in the input container and is Scalar in shape.

Location

AdvMath ==> Array ==> prod(x)

Example

Where x is an array [1 2 3 4], prod(x) returns 24.

Notes

Mappings on the operand are ignored.

See Also

a * b (multiply) and sum(x).


ramp (numElem, from,thru)

An object that generates a linearly ramped array.

Supported On

All HP VEE Platforms

Use

Use ramp(numElem,from,thru) to generate a Real one-dimensional array of length numElem, with the values linearly ramped from from to thru (inclusive). numElem must be a scalar container that is, or can be converted to, Int32 and with a value greater than zero. from and thru must be scalar containers that are, or can be converted to, Real.

If from is less than thru, the ramping is positive; otherwise it automatically ramps negatively.

Location

Math ==> Generate ==> ramp(numElem,from,thru)

Example

ramp(3, 0.5, 0) returns a one-dimensional array with values [0.5 0.25 0].

ramp(5, 2, 10) returns a one-dimensional array with values [2 4 6 8 10].

Notes

The return value has no mappings.

The algorithm for generating values is:

Y[I] = from + I*(thru-from/numElem-1)

for I=0..numElem-1

This has the effect that the last element in the resultant array has the value thru.

See Also

Alloc Real, logRamp (numElem, from,thru), and xramp (numElem, from,thru).


random (low,high)

An object used to generate random numbers between a low and high value. This function generates pseudo-random numbers using the linear congruential algorithm and 48-bit integer arithmetic.

Supported On

All HP VEE Platforms

Use

Use random(low,high) to generate pseudo-random numbers between the low and high value.  The numbers generated are in the interval including the low value, but not including the high value, which is denoted as "[l h)".

The l and h inputs must be Scalar in shape and of the type Int32 or Real.  A Real Scalar is returned in all cases that are in the range of "[l h)".

This function only outputs a single Scalar value.  Use the randomize(x,low,high) function with an array input to generate an array of scaled random numbers.

If the l value is greater than the h value, then the range of random numbers returned is in the interval "(l h]".

Location

AdvMath ==> Probability ==> random(low,high)

Example

random(0,1) will generate real numbers in the range (0.0 1.0).  That is, including 0.0, but excluding 1.0.

Notes

random(low,high) will return a Real Scalar container in the range "(0.0 1.0)".

Also, random(low,high) will return a different number each time it is used in a program or if it is activated several times by an iterator object.

See Also

randomize (x,low,high) and randomSeed (seed).

Random Number and Random Seed (under On Features).


randomize (x,low,high)

An object used to randomize the values of a numeric input container in the range of [low high).  The numbers generated are in the interval including low, but not including high, which is denoted as "[low high)". This function generates pseudo-random numbers using the linear congruential algorithm and 48-bit integer arithmetic.

This object can also be used to randomize strings in Text input containers within the range of [low high].

Supported On

All HP VEE Platforms

Use

For numeric values:

Use randomize(x,low,high) to generate pseudo-random numbers between low and high, that is, between the low and high value.  The numbers generated are in the interval including low, but not including high, which is denoted as "[low high)". All of the data in the input container, x is overwritten with the pseudo-random numbers.

The x input may be of any size and shape and of the type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  For x input of all types, the same output type is returned, except for PComplex or Spectrum. For PComplex and Spectrum types, only the magnitude of the number is in the range [low high). The phase is random in the range (-PI to PI).  For type Coord, only the dependent variable is randomized.

The low and high inputs must be Scalar in shape and of the type Int32, Real, or of a type that can be converted to Int32 or Real. The random numbers generated are in the range of [low high).

If the low value is greater than the high value, then the range of random numbers returned is in the interval (low high].

For string values:

To randomize a string, use randomize(x,low,high) with input values of the Text data type. The input string (the data container on the x input) will be overwritten by an output string of ASCII characters in pseudo-random order, within the range [low high], where low is the first character in the low input container and high is the first character in the high input container. (Note that the range is inclusive of both low and high, which is different than for numeric values.) The length of the output string is the same as that of the input string.

The default values for low and high are the space (" ", ASCII 32) and the tilde ("~", ASCII 126).

NOTE
Default values are used for strings when the input data for low or high is "" (null string).

Location

AdvMath ==> Probability ==> randomize(x,low,high)

Examples

Numeric example:

If the container on the x input is of the Real data type, randomize(x,0,10) will randomize all the values of the input container x to real numbers in the range (0.0 10.0).  That is, including 0.0, but excluding 10.0.

String examples:

randomize("abcdef","a","b") might return "abbaba".

randomize("abcabcabcab","a","z") might return "pterodactyl". (Well -- it might!)

randomize("abcabc","","") might return "Al@z~#". (With null strings for low and high, the default limits -- ASCII 32 through 126 -- are used.)

randomize("aaaaa","go","stop") might return "smjpg". (Only the first characters in low and high count in determining the range.)

randomize("aaaaa","97","99") returns "99999". (The low and high values are interpreted as strings, not ASCII decimal values.)

Notes

Mappings on input parameters are ignored and the output has the same mappings as the input parameter x.

For a numeric x input, randomize(x) will return the a container the same size and shape as x, but with the data randomized in the range (0.0 - 1.0).

For string operations, the character set for output cannot be defined outside the limits low = ASCII 32 and high = ASCII 126. That is, the ASCII characters below 32 and above 126 are not allowed for output in the randomized string.

See Also

random (low,high) and randomSeed (seed).

Random Number and Random Seed (under On Features).


randomSeed (seed)

An object used to set initial values for the random(low,high) and the randomize(x,low,high) functions.

Supported On

All HP VEE Platforms

Use

Use randomSeed(seed) to input a random seed entry point for the linear congruential algorithm used by the random(low,high) and the randomize(x,low,high) functions.

The seed input s must be Scalar in shape and of the type Int32 or of a type able to be converted to Int32.  The return value of this function is the s seed value.

Location

AdvMath ==> Probability ==> randomSeed(seed)

Example

randomSeed(97) initializes the pseudo-random number algorithm.

Notes

This function is the same as the Random Seed object.

See Also

random (low,high) and randomize (x,low,high).

Random Number and Random Seed (under On Features).


re(x)

An object that returns the real part of a Complex number x.

Supported On

All HP VEE Platforms

Use

Use re(x) to extract the real part of a Complex number x. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. For types Int32, Real, Coord, and Waveform, the same type with the same value(s) is returned. For types Complex, PComplex, and Spectrum, re(x) returns a Real container with the value of the real part of the Complex number. (PComplex is first converted  to Complex.)

Location

Math ==> Complex Parts ==> re(x)

Example

re( (1,2) ) returns 1.

re(1,@180), with Trig Mode in Degrees, returns -1.

Notes

Mappings are retained in the result.

See Also

Complex Parts, conj(x), im(x), j(x), mag(x), phase(x), and Real Parts.

Build Complex and UnBuild Complex (under On Features).


Real Parts

A menu item.

Supported On

All HP VEE Platforms

Use

Use Real Parts to access the following objects which return different real parts of a container.

abs(x)

signof(x)

ordinal(x)

round(x)

floor(x)

ceil(x)

intPart(x)

fracPart(x)

Location

Math ==> Real Parts ==>

See Also

abs(x), ceil(x), floor(x), fracPart(x), intPart(x), ordinal(x), round(x), signof(x), and Complex Parts.


recip(x)

An object that returns the reciprocal of the value of x.

Supported On

All HP VEE Platforms

Use

Use recip(x) to generate the reciprocal of a number; that is, one divided by the number x.  x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. For PComplex, the recip(x) is defined as the reciprocal of the magnitude, and the phase's sign is reversed. Complex is converted to PComplex before the function is applied. Int32 arguments will return a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Power ==> recip(x)

Example

recip( (5, @45) ) will return (0.2, @-45).

recip( (1,-1)) ) will return (0.5, 0.5).

Notes

Mappings are retained in the result.

See Also

a / b (divide), Power, sq(x), and sqrt(x).


rect(x)

An object used to apply a rectangular window to a time series of values.

Supported On

All HP VEE Platforms

Use

Use rect(x) to filter the values in x in the same manner as convolving x with the spectral transform of the rectangular function. This has the effect of suppressing some of the noise due to the tails of the input sequence and the potential discontinuities they represent when sampling periodic signals.

The input x must be an Array 1D of type Int32, Real, Coord, or a Waveform, or a Spectrum.  The same type is returned, except for Int32, which returns Real.

If x is a Spectrum, it is first converted to a Waveform using an ifft(x) before the window is applied.  The result of the window is then converted back to type Spectrum using an fft(x).  A Spectrum is returned.

Location

AdvMath ==> Signal Processing ==> rect(x)

Example

rect([1 1 1 1 1 1 1 1]) returns [1 1 1 1 1 1 1 1].

Notes

The rect function is represented in the time domain as 1 for all values, where 0 <= n <= N -1, where n is the position (index) in the array, and N is the size of the array.  The result will be an array of the same type as x and will have the same mappings as x (if any).

For a discussion of sidelobe levels and coherent gains, see: Ziemer, Tranter, and Fannin, Signals and Systems, Macmillan Publishing, New York, NY, 1983.  ISBN #0-02-431650-4.

See Also

bartlet(x), blackman(x), convolve(a,b), fft(x), hamming(x), and hanning(x).


Regression

A menu item.

Supported On

All HP VEE Platforms

Use

Use Regression to fit various types of regression equations to data.

linear

logarithmic

exponential

power curve

polynomial

Location

AdvMath ==> Regression ==>

Notes

All the Regression objects expect an array of Coord type for input.  If the input array is not a Coord type it is converted to Coord.  The conversion to Coord type follows standard type conversion rules summarized here.  If the input array is not mapped, then an implicit x parameter is generated from the array indices. That is, the regression must be done on (x,y) pairs.  The x values will start at zero and range to n - 1, where n is the number of data points.  If the input array is mapped then the generated x data will range from the low value of the mapping to the high value of the mapping.

The regression gives as output an array of data fitted to the equation chosen.  The number of points of the output array is the same as in the input data array.  It also outputs an array of coefficients that corresponds to the derived constants for each regression type.  See the individual regression type to determine to which equation the data is fitted. The third output is the R-squared or "goodness of fit" coefficient.  It ranges between -1 and 1.  A fit of -1 or 1 is an exact fit and numbers in between -1 and 1 represent varying degrees of goodness of fit.

Example

You have an unmapped array input [10 20 30 40 50].  It would be converted to Coord array:

[ (0, 10) (1, 20) (2, 30) (3, 40) (4, 50) ].

If an input array is the array [1 2 3 4 5], and it is mapped from 1 to 2 (seconds for instance), it would be converted to Coord array:

[ (1, 1) (1.25, 2) (1.5, 3) (1.75, 4) (2, 5) ].

See Also

exponential regression, linear regression, logarithmic regression, polynomial regression, power curve regression, meanSmooth (x,numPts), movingAvg (x,numPts), and polySmooth (x).


Relational

A menu item.

Supported On

All HP VEE Platforms

Use

Use Relational to access the following objects which perform relational operations on two operands:

a ~= b

a == b

a != b

a < b

a > b

a <= b

a >= b

Location

Math ==> Relational ==>

Notes

All of these operations return a scalar Int32 with the value of 0 or 1, which corresponds to whether the operation is true or false.

It is possible for two operands to not be relational, that is, the two operands are not less than, greater than, or equal to each other.  Examples are Coords with mismatched mappings and  arrays.   For example, [1 2 6] != [2 3 4] is true, but the two operands are neither less than nor greater than each other, they are simply not equal. That is, [1 2 6] < [2 3 4] is false, and [1 2 6] > [2 3 4] is false because each element in the first array is not < or > respectively to each element in the second array.

Also note the difference between menu items under Relational and under Conditional. Relationals are formulas with output 0 or 1. Conditionals are If/Then/Else and have two outputs, of which one activates.

Note that the return value is of type Int32 and is the same shape as the operands.  This is different than the conditionals such as == that always return a scalar.

The logical operators are defined for type Text only in the sense of whether the string is null or not.  That is, "zoo" AND "" (null string) is logically false since the second string is null. Remember that when comparing a Text type to a non-string type, the latter is promoted to a Text type. This means that "zoo" AND 0 is true since the Real 0 is promoted to the string "0" and, since both strings are non-null, the AND expression is true, returning 1.

See Also

a ~= b (almost equal to), a AND b, a == b (equal to), a > b (greater than), a >= b (greater than or equal to), a < b (less than), a <= b (less than or equal to), NOT a, a != b (not equal to), a OR b, and a XOR b.

Comparator, Conditional, and If/Then/Else (under On Features).


rms(x)

An object used to return the rms (Root Mean Square) value of the data in the input container.

Supported On

All HP VEE Platforms

Use

Use rms(x) to calculate the Root Mean Square value of the input container.   The rms value is defined as the square root of [(The sum of x^2)/N], where N is the number of the points.

The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For all x input types, a Real Scalar container is returned.  For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Statistics ==> rms(x)

Example

Where x is the array [1 2 3 4 5 11 12 13 14 34], rms(x) returns 13.319159.

Notes

Mappings on the operand are ignored.

See Also

max(x), mean(x), median(x), min(x), mode(x), sdev(x), and vari(x).


rotate(x, numElem)

An object used to rotate elements in an array.

Supported On

All HP VEE Platforms

Use

Use rotate(x,numElem) to rotate the elements of the input array x by n positions. The x input may be of any size and shape and of the type Int32, Real, Coord, Waveform, Complex, PComplex, Spectrum, or Text.  For all x input types the same output type is returned. The input n must be a scalar Int32 or be able to be converted to Int32 type. If the n rotate value is a positive value, the rotation direction is down the array (forward). For example, if n was 2, then the first element of the array would end up in the third position (x[2]) , the second element ends up in the fourth position (x[3]), and so on. If the n value is negative, the array elements are rotated up the array (backward).

If the rotate number n is larger than the number of elements in the array, then the number of places to rotate is calculated by taking the modulo of the rotate number by the number of array elements. For example, if the input array has 5 elements and you want to rotate the array 13 places, the modulo operation (13 MOD 5 = 3) determines that the array should be rotated 3 places.

Location

AdvMath ==> Array ==> rotate(x,numElem)

Example

rotate(x,5) rotates the input array elements 5 positions further to the right in the array.

rotate(x,15), where the input array x has 15 elements, does nothing because you have rotated the array back on top of itself.

rotate([1 2 3 4 5], 1)  returns [5 1 2 3 4].

Notes

You might think of the array as a circular list when using the rotate function, meaning that the last element in the array is connected to the first array element. When you rotate array elements past the end of the array, they wrap back around to the top of the list. For example, if the array is 10 elements long and you do a rotate(A,5), then the tenth array element number will end up in fifth position in the array.

Mappings on input parameters are ignored and the output has the same mappings as the input parameter x.

See Also

concat(x,y) and init(x,val).


round(x)

An object that returns the rounded value of x.

Supported On

All HP VEE Platforms

Use

Use round(x) to obtain the rounded value, to the nearest integer, of a container.  x may be any shape and of the types Int32, Real, Coord, or Waveform.  The round(x) function returns the closest integer (as the same type) to x.  The dividing line is at 0.5, which rounds up.

Location

Math ==> Real Parts ==> round(x)

Example

round([23.0 23.1 23.9 23.5 (-23.5)]) returns [23 23 24 24 -23].

Notes

Mappings are retained in the result.

See Also

abs(x), ceil(x), Complex Parts, floor(x), fracPart(x), intPart(x), and Real Parts.


sdev(x)

An object used to return the standard deviation of the data in the input container.

Supported On

All HP VEE Platforms

Use

Use sdev(x) to calculate the standard deviation of the container.

The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For all x input types, a Real Scalar container is returned.  For Coord input types, the operation is done on the dependent variable.

The sdev(x) is defined as the square root of the vari(x).

Location

AdvMath ==> Statistics ==> sdev(x)

Example

Where x is the array [1 2 3 4 5 11 12 13 14 34], sdev(x) returns 9.50789.

Notes

Mappings on the operand are ignored.

See Also

max(x), mean(x), median(x), min(x), mode(x), rms(x), and vari(x).


setBit(x,n)

An object that returns x with the nth bit set to 1.

Supported On

All HP VEE Platforms

Use

Use setBit(x,n) to set a particular binary digit of a container x to 1.  x can be any shape and of type Int32, Real, Coord, or Waveform.  If x is not of type Int32, it is converted to Int32, retaining shape.  The return value is of type Int32. n must be a container which is, or can be converted to, Int32 and have a value between 0 and 31 inclusive. n must be either scalar or match the shape of x.

Location

Math ==> Bitwise ==> setBit(x,n)

Example

setBit(8,0) returns 9.

setBit(8.24,0.9) also returns 9.

Notes

The mappings of the return value are the same as the x parameter.

The least significant bit is on the right, and the most significant bit is on the left.

See Also

bit(x,n), bits(str), Bitwise, and clearBit(x,n).


Signal Processing

A menu item.

Supported On

All HP VEE Platforms

Use

Use Signal Processing to access one of several signal processing functions that can be applied to one-dimensional arrays (Int32, Real, Complex, PComplex, Waveform, Spectrum) for some functions, and lists of two-dimensional (two field) coordinates.

fft(x)

ifft(x)

convolve(a,b)

xcorrelate(a,b)

bartlet(x)

hamming(x)

hanning(x)

blackman(x)

rect(x)

Location

AdvMath ==> Signal Processing ==>

Notes

The functions under Signal Processing are applicable to one-dimensional arrays of values that represent ordered, equally spaced data.

See Also

bartlet(x), blackman(x), convolve(a,b), fft(x), hamming(x), hanning(x), ifft(x), rect(x), and xcorrelate (a,b).


signof(x)

An object that returns, as an Int32, the sign of x.

Supported On

All HP VEE Platforms

Use

Use signof(x) to obtain the sign of a container. x may be any shape and of the types Int32, Real, Coord, or Waveform.  The return value will be an Int32 of the same shape as x, with value(s) of -1, 0, or +1, depending on whether the x value is negative, zero, or positive.  If x is negative, -1 is returned; if x is zero, 0 is returned; if x is positive then +1 is returned.

Location

Math ==> Real Parts ==> signof(x)

Example

signof([23 0 -1]) returns [1 0 -1].

Notes

Mappings are retained in the result.

See Also

abs(x), Complex Parts, and mag(x).


sin(x)

An object that returns the sine of x.

Supported On

All HP VEE Platforms

Use

Use sin(x) to generate the sine of the x data. x is assumed to be in the current Trig Mode units. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  Int32 returns a Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Trig ==> sin(x)

Example

sin([0 PI/2]) returns [0 1] with Trig Mode set to Radians.

sin((1, @PI)) returns (0.84147, @3.14159) with Trig Mode set to Radians.

Notes

Mappings are retained in the result. Using Trig Mode set to anything except Radians may result in accuracy errors beyond the 12th significant digit.

See Also

asin(x), cos(x), tan(x), sinh(x), and Trig.

Edit Default Preferences (under On Features).


sinh(x)

An object that returns the hyperbolic sine of x.

Supported On

All HP VEE Platforms

Use

Use sinh(x) to generate the hyperbolic sine of the x data. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. Int32 returns a Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Hyper Trig ==> sinh(x)

Example

sinh(1.2) returns 1.509.

Notes

Mappings are retained in the result.

See Also

asinh(x), cosh(x), Hyper Trig, sin(x), and tanh(x).


sort(x, direction, field)

A function that sorts an array of data (any data type).

Supported On

All HP VEE Platforms

Use

Use the sort function in a Formula object to sort an array of data on input x. All data types are allowed, and by default the data is sorted in ascending order.  If you use sort in a Formula object the syntax is:

sort(x [,direction [,field] ] )

where:

direction (optional) specifies the direction of sort. The default is ascending order, and any non-zero value will specify ascending order. A value of 0 specifies a sort in descending order.

field (optional) specifies the field on which to sort the array:

For the Real, Integer, and Text data types, this parameter is ignored.

For the Complex data type, specify 0 or "real" to sort on the real field. Specify 1 or "imag" to sort on the imaginary field.  All three parameters must be specified.

For the PComplex data type, specify 0 or "mag" to sort on the magnitude field. Specify 1 or "phase" to sort on the phase field.  All three parameters must be specified.

For the Coordinate data type, the array will be sorted by the dependent field by default ("y" in an x-y pair, "z" in an x-y-z triplet). Specify 0 or "x" to sort on the x field, 1 or "y" to sort on the y field, and so forth. (Note that for the Coordinate data type, the field names will always be x, y, z, w, v, u, t, s, r, q even though you may change the input terminal names.)

For the Record data type, the array will be sorted by the first field by default.  Or you can specify the field by number (0, 1, and so forth) or by name ("operator", "date", etc.).

Location

AdvMath ==> Array ==> sort

Examples

sort(x) will sort a Real array x in ascending order.

sort(x,0) will sort a Real array x in descending order.

sort(x,1,"real") or sort(x,1,0) will sort a Complex array x by the real field in ascending order.

sort(x,0,"phase") or sort(x,0,1) will sort a PComplex array x by the phase field in descending order.

sort(x,1,"A") or sort(x,1,0) will sort a Coordinate array x by the "A" field in ascending order.

sort(x,1,1) will sort a Record array x by the second field in ascending order.

Notes

Text data is sorted by the standard ASCII character-code order. Thus, uppercase letters come before lowercase letters.

See Also

Formula (under On Features).


sq(x)

An object that returns the square of the value of x.

Supported On

All HP VEE Platforms

Use

Use sq(x) to perform the squaring of a number x. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. The sq(x) function multiplies the value of x times itself. The return value is of the same type and shape as x.

Location

Math ==> Power ==> sq(x)

Example

sq([1 4]) returns [1 16].

sq((1,2)) returns the complex number (-3,4).

Notes

Mappings are retained in the result.

See Also

Power and sqrt(x).


sqrt(x)

An object that returns the square root of the value of x.

Supported On

All HP VEE Platforms

Use

Use sqrt(x) to generate the square root of a number x. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  For PComplex, the sqrt(x) is defined as the square root of the magnitude and half the phase. Complex is converted to PComplex before the function is applied. Int32 arguments will return a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Power ==> sqrt(x)

Example

sqrt( (16, @90) ) will return (4, @45).

sqrt( (1,1) ) will return (1.1, 0.455).

sqrt([4 9 64]) will return [2 3 8].

Notes

Mappings are retained in the result.

See Also

cubert(x), a ^ b (exponent), Power, and sq(x).


Statistics

A menu item.

Supported On

All HP VEE Platforms

Use

Use the Statistics functions to calculate these common statistical parameters on data.

min(x)

max(x)

median(x)

mode(x)

mean(x)

sdev(x)

vari(x)

rms(x)

Location

AdvMath ==> Statistics ==>

See Also

min(x), max(x), median(x), mode(x), mean(x), sdev(x), vari(x), rms(x), and Matrix.


strDown(str)

An object that changes all uppercase alphabetic characters in a string to lowercase characters.

Supported On

All HP VEE Platforms

Use

Use strDown(str) to change the case of an input string str to lowercase. All uppercase alphabetic characters ("A" through "Z") are converted to the corresponding lowercase characters ("a" through "z"). Non-alphabetic ASCII characters are left unchanged.

Location

Math ==> String ==> strDown(str)

Examples

strDown("ABCdefg%+#") returns "abcdefg%+#"

strDown("123456") returns "123456"

See Also

strRev(str), strTrim (str,trimlist), strUp(str), and String.


strFromLen (str,from,len)

An object that returns a substring of a specified length and starting point.

Supported On

All HP VEE Platforms

Use

Use strFromLen(str,from,len) to return a substring from the input string str, beginning at index position from and of length len in bytes. If from = 0, the substring starts at the beginning of the input string.  Base 0 indexing of the string is used.

Location

Math ==> String ==> strFromLen(str,from,len)

Notes

If the value of len is less than or equal to 0, a nil string will be returned.

If the value of from is greater than the length of the input string str, a nil string will be returned.

If the value of len is greater than the length of the input string str, the returned string stops at the end of the input string.

If the input string is an array of strings, each element of the input array is operated on as a separate string. The return value is a string array.

Examples

strFromLen("Now is the time",0,6) returns "Now is"

strFromLen("Now is the time",6,9) returns " the time"

strFromLen("Now is the time",0,30) returns "Now is the time"

See Also

strFromThru (str,from, thru), strPosChar (str,char), strPosStr (str1,str2), and String.


strFromThru (str,from, thru)

An object that returns a substring of a specified starting point and ending point.

Supported On

All HP VEE Platforms

Use

Use strFromThru(str,from,thru) to return a substring from the input string str, beginning at index position from and ending at index position thru. If from = 0, the substring starts at the beginning of the input string.  Base 0 indexing of the string is used.

Location

Math ==> String ==> strFromThru(str,from,thru)

Notes

Negative values of from or thru are converted to 0.

Values of from or thru that are greater than the length of the input string str are converted to the index position of the last character in the input string.

If the value of from is greater than the length of the input string str, or greater than thru, a nil string is returned.

If the input string is an array of strings, each element of the input array is operated on as a separate string. The return value is a string array.

Examples

strFromThru("Now is the time",0,6) returns "Now is "

strFromThru("Now is the time",0,0) returns "N"

strFromThru("Now is the time",6,9) returns " the"

strFromThru("Now is the time",0,30) returns "Now is the time"

See Also

strFromLen (str,from,len), strPosChar (str,char), strPosStr (str1,str2), and String.


String

A menu item.

Supported On

All HP VEE Platforms

Use

Use the String functions to perform these operations on string data:

strDown(str)

strFromLen(str,from,len)

strFromThru(str,from,thru)

strLen(str)

strPosChar(str,char)

strPosStr(str1,str2)

strRev(str)

strTrim(str)

strUp(str)

intToChar(a)

charToInt(a)

Location

Math ==> String ==>

Notes

All of the string functions are capable of operating on inputs that are string arrays.  The results will be a text or number array.  Operations are done on each individual element of the input string array.

See Also

charToInt(a), intToChar(a), strDown(str), strFromLen (str,from,len), strFromThru (str,from, thru), strLen(str), strPosChar (str,char), strPosStr (str1,str2), strRev(str), strTrim (str,trimlist), and strUp(str).


strLen(str)

An object used to determine the length of a string in bytes.

Supported On

All HP VEE Platforms

Use

Use strLen(str) to determine the length of an input string str. The return value is an Int32 Scalar giving the number of bytes present. Kanji characters and other 16-bit characters count as two bytes each.

Location

Math ==> String ==> strLen(str)

Notes

If the input string is an array, the length of each element will be returned in an output array.

Examples

strLen("ABCdefg%+#") returns 10

strLen("123456") returns 6

See Also

String.


strPosChar (str,char)

An object that returns the index within the input string str of any character in the character list char.

Supported On

All HP VEE Platforms

Use

Use strPosChar(str,char) to return the index within the input string str of the first occurrence of any character in character list char. Base 0 indexing of the string is used.

Location

Math ==> String ==> strPosChar(str,char)

Notes

If there is more than one occurrence of more that one listed character, only the index of the first listed character found is returned.

If none of the characters listed in char are found in the input string str, a value of -1 is returned.

If either str or char is the nil string, a value of -1 is returned.

Note that the character match is case sensitive.

If the input string is an array, each element of the array is searched as a separate string.  The positions of characters in the string elements are put in an output array.

Examples

strPosChar("Now is the time","Nwme") returns 0

strPosChar("Now is the time","nwme") returns 2

strPosChar("Now is the time","x yz ") returns 3

strPosChar("Now is the time","") returns -1

strPosChar("Now is the time","xyz") returns -1

See Also

strFromLen (str,from,len), strFromThru (str,from, thru), strPosStr (str1,str2), and String.


strPosStr (str1,str2)

An object that returns the index of string str2 within string str1.

Supported On

All HP VEE Platforms

Use

Use strPosStr(str1,str2) to return the index of the first occurrence of string str2 within string str1 -- that is, the index position within str1 where str2 begins. Base 0 indexing is used.

Location

Math ==> String ==> strPosStr(str1,str2)

Notes

If str2 occurs more than once in str1, only the index of the first occurrence is returned.

If an occurrence of str2 is not found within str1, a value of -1 is returned.

If either str1 or str2 is the nil string, a value of -1 is returned.

Note that the character match is case sensitive.

If the input string is an array, each element of the array is searched as a separate string.  The positions of strings in the string elements are put in an output array.

Examples

strPosStr("Now is the time","Now") returns 0

strPosStr("Now is the time","is the") returns 4

strPosStr("Now is the time","") returns -1

strPosStr("Now is the time","is The") returns -1

See Also

strFromLen (str,from,len), strFromThru (str,from, thru), strPosChar (str,char), and String.


strRev(str)

An object used to reverse the order of a string.

Supported On

All HP VEE Platforms

Use

Use strRev(str) to reverse the order in which the characters in a string appear.

Location

Math ==> String ==> strRev(str)

Notes

If the input string is an array, the return value is a string array with each element reversed.

Examples

strRev("ABCdefg%+#") returns "#+%gfedCBA"

strRev("123456") returns "654321"

See Also

strDown(str), strTrim (str,trimlist), strUp(str), and String.


strTrim (str,trimlist)

An object used to trim spaces and tab characters from the front and back of a string.

Supported On

All HP VEE Platforms

Use

Use the strTrim(str) object to trim leading and trailing spaces and tab characters from an input string str. All spaces and tab characters that precede the first non-space/non-tab character, or follow the last non-space/non-tab character, are trimmed.  In a Formula object the complete syntax is:

strTrim(str [,trimlist] )

Use strTrim(str,trimlist) to trim off any characters from str that are contained in trimlist.  Note that these characters are trimmed only if they are leading or trailing characters in str.

Location

Math ==> String ==> strTrim(str)

Notes

You can extend the syntax of this function to strTrim(str,trimlist) by using it in a Formula object with two inputs: str and trimlist. In this case, any characters listed in the trimlist string, if leading or trailing, are trimmed from the str input string.

If the input string is an array, the return value is a string array with each element trimmed.

Examples

strTrim("      ABCdefg%+#") returns "ABCdefg%+#"

strTrim("eeeABCdefg%+#","eg#") returns "ABCdefg%+"

See Also

strDown(str), strRev(str), strUp(str), and String.


strUp(str)

An object used to change all lowercase alphabetic characters in a string to uppercase characters.

Supported On

All HP VEE Platforms

Use

Use strUp(str) to change the case of an input string str to uppercase. All lowercase alphabetic characters ("a" through "z") are converted to the corresponding uppercase characters ("A" through "Z"). Non-alphabetic ASCII characters are left unchanged.

Location

Math ==> String ==> strUp(str)

Notes

If the input string is an array, the return value is a string array with each element treated as a separate string.

Examples

strUp("ABCdefg%+#") returns "ABCDEFG%+#"

strUp("123456") returns "123456"

See Also

strDown(str), strRev(str), strTrim (str,trimlist), and String.


a - b (subtract)

An object that performs an arithmetic subtraction on two operands.

Supported On

All HP VEE Platforms

Use

Use a - b to subtract the value of one container from another container. The two containers may be of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum.  The two containers may be any shape. But if one of the containers is an array, the other must be either a scalar or an array of the same size and shape.  The result is a container of the highest type, with the same shape as the operands.

If both operands are of type Coord, they must have their independent variable(s) match exactly or an error is returned. The subtraction is only performed on the dependent (last) variable.

Location

Math ==> + - * / ==> a - b

Example

Array minus a scalar:  [1 2 3] - 3 returns [-2 -1 0].

Scalar minus an array:  3 - [1 2 3] returns [2 1 0].

Two arrays:  [4 5 6] - [3 2 1] returns [1 3 5].

Two Complex scalars:  (2,4) - (1,3) returns (1,1).

Two Coord scalars:  coord(1,3) - coord(1,5) returns coord(1,-2).

Two Coord scalars:  coord(1,3) - coord(2,5) returns an error.

Notes

If either of the containers is mapped (that is, of type Waveform, Spectrum, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings. The return value will have the same mappings as the operands; otherwise an error is returned.

See Also

a + b (add), a / b (divide), and a * b (multiply).


sum(x)

An object used to sum up (add) all the elements of the input array.

Supported On

All HP VEE Platforms

Use

Use sum(x) to add together all the elements of the input array.  The x input may be of any size and shape and of the type Int32, Real, Coord, Waveform, Coord, Complex, PComplex, Spectrum, or Text. For x input of all types, except Waveform and Spectrum, output of the same type as the input is returned. An input of a Waveform or Coord returns a Real scalar. An input of Spectrum returns a PComplex.

The output of this object (for numeric types) is the arithmetic sum of all the data contained in the input container and is a Scalar.  For Text type input, the output is a Scalar Text container and contains the concatenation of all of the Text elements together to form one large string.

The sum(x) object obeys the same rules for Text string addition as the dyadic operator +.

Location

AdvMath ==> Array ==> sum(x)

Example

Where x is an array [1 2 3 4], sum(x) returns 10.

Where x is an array ["first" "second" "third"], sum(x) returns "firstsecondthird".

Notes

Mappings on the operand are ignored.

Note the difference between the concat(x,y) and sum(x) functions on text inputs. The concat(x,y) creates an Array 1D in all cases.  The sum(x) function will simply link all the text strings together to form one large output string. That is, concat(x,y), where x is the Scalar Text value "a" and y is the Scalar Text value "b", yields the Array 1D ["a","b"].  On the other hand, sum(["a","b"]) will return the Scalar container with the Text value of "ab" in it.

See Also

a + b (add), concat(x,y), and prod(x).


tan(x)

An object that returns the tangent of x.

Supported On

All HP VEE Platforms

Use

Use tan(x) to generate the tangent of the x data. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. x is assumed to be in the current Trig Mode units. Int32 returns a Real;  all others will return the same type. All will return the same shape as x.

Location

Math ==> Trig ==> tan(x)

Example

tan([0 45]) returns [0 1] with Trig Mode set to Degrees.

tan((1, 2)) returns (33.8128m, 1.01479) with Trig Mode set to Radians.

tan((3, @PI/2)) returns (0.99505, @1.57079) with Trig Mode set to Radians.

Notes

Mappings are retained in the result. Using Trig Mode set to anything except Radians may result in accuracy errors beyond the 12th significant digit.

See Also

atan(x), atan2(y,x),  cos(x), cot(x), sin(x), tanh(x), and Trig.

Edit Default Preferences (under On Features).


tanh(x)

An object that returns the hyperbolic tangent of x.

Supported On

All HP VEE Platforms

Use

Use tanh(x) to generate the hyperbolic tangent of the x data. x can be any shape and of type Int32, Real, Coord, Waveform, Complex, PComplex, or Spectrum. Int32 returns a Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Hyper Trig ==> tanh(x)

Example

tanh(0.6) returns 0.537.

Notes

Mappings are retained in the result.

See Also

atanh(x), cosh(x), Hyper Trig, sinh(x), and tan(x).


Time & Date

A menu item.

Supported On

All HP VEE Platforms

Use

Use Time & Date to access the following objects which perform date and time conversions.

now()

wday(aDate)

mday(aDate)

month(aDate)

year(aDate)

dmyToDate(d,m,y)

hmsToSec(h,m,s)

hmsToHour(h,m,s)

Location

Math ==> Time & Date ==>

Notes

The now() and dmyToDate(d,m,y) functions will output a time as the number of seconds since the beginning of the Epoch (00:00 hours 1 January 0001 AD) and is stored in UTC (Universal Coordinated Time). That is, a correction is applied for the time zone difference between your local time and GMT (Greenwich Mean Time). Since the wday(), mday(), month(), and year() functions expect a UTC type of time as input (from the now(), dmyToDate,(), Time Stamp or Date Time constant), they will remove the correction before doing the calculation.

The hmsToSec(h,m,s) and hmsToHour(h,m,s) are only doing conversion to delta (elapsed) time and do not apply any UTC correction. You may notice that output from one of these functions displayed in an alpha display (in some Time format) is off by the number of hours between your time zone and UTC. You will need to display this information with the Delta Time: time selection on the alpha Time Stamp display on transactions.

See Also

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), month(aDate), now(), wday(aDate), year(aDate).

To String (under On Features).


totSize(x)

An object that returns an integer value that is the total size of a container.

Supported On

All HP VEE Platforms

Use

Use the totSize(x) function in a Formula object to determine the size of the container on input x. If x is a scalar or an array with one element, totSize(x) will return a value of 1.

Location

AdvMath ==> Array ==> TotSize

Examples

For x= scalar:  totSize(x) returns 1.

For x= [1]:  totSize(x) returns 1.

For x= [1 2]:  totSize(x) returns 2.

For x= [ [1 2] [3 4] ]:  totSize(x) returns 4.

Notes

The totSize(x) function performs the same function as the TotSize pin in the Get Values object.

This object does not accept zero-element arrays.

See Also

Formula, and Get Values.


transpose(x)

An object used to calculate the transpose of a 2D array (a matrix).

Supported On

All HP VEE Platforms

Use

Use transpose(x) to return the transpose of a matrix.  The x input must be of matrix shape and of the type Int32, Real, Complex, PComplex, or Text. For x input of all types, the same output type is returned. The matrix shape required for this function is any 2-Dimensional matrix. It does not have to be square.

Location

AdvMath ==> Matrix ==> transpose(x)

Examples

Where x is a square matrix [ [1 2] [3 4] ], transpose(x) returns [ [1 3] [2 4] ].

Where x is a matrix [ [1 2 3] [4 5 6] ], transpose(x) returns [ [1 4] [2 5] [3 6] ].

Notes

Mappings on the operand are ignored and the output container has its mappings transposed.

See Also

det(x), identity(x), and inverse(x).


Triadic Operator

An operator that returns the result of one expression if a condition is true, but returns the result of another expression if that condition is false.

Supported On

All HP VEE Platforms

Use

Use the triadic operator in a Formula object with the following syntax:

(condition ? expression : expression)

If the condition is true, the result of the first expression is returned.

If the condition is false, the result of the second expression is returned.

Location

Must be used within a Formula object or other object that takes an expression.

Example

(A<10 ? A*2 : A*3) returns the result of A*2 if A<10 is true, but returns the result of A*3 if A<10 is false.

Notes

The enclosing parentheses are required.

The triadic operator is useful in setting up "IF/THEN/ELSE" conditional tests.  The syntax is the same as for the C language triadic operator.

See Also

Comma Operator, Formula, If/Then/Else.


Trig

A menu item.

Supported On

All HP VEE Platforms

Use

Use Trig to access the following objects which perform trigonometric functions on data.

sin(x)

cos(x)

tan(x)

cot(x)

asin(x)

acos(x)

atan(x)

acot(x)

atan2(y,x)

Location

Math ==> Trig ==>

Notes

All Trig operations are performed in Radians. If Trig Mode is set to Degrees, all containers must be converted from Degrees to Radians before the function can be performed. Therefore, for the best performance, use Trig Mode set to Radians.

See Also

acos(x), acot(x), asin(x), atan(x), atan2(y,x), cos(x), cot(x), sin(x), tan(x), and Hyper Trig.

Edit Default Preferences (under On Features).


vari(x)

An object used to return the variance of the data in the input container.

Supported On

All HP VEE Platforms

Use

Use vari(x) to calculate the variance of the data in the input container.

The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For all x input types, a Real Scalar container is returned.  For Coord input types, the operation is done on the dependent variable.

The vari(x) is defined as:

[The SUM of (Xi - Xmean)^2] divided by (numPts - 1)

where Xi is the individual data point, Xmean is the mean of the data points, and numPts is the number of elements in the input array x.

Location

AdvMath ==> Statistics ==> vari(x)

Example

Where x is the array [1 2 3 4 5 11 12 13 14 34], vari(x) returns 90.4.

Notes

Mappings on the operand are ignored.

See Also

max(x), mean(x), median(x), min(x), mode(x), rms(x), and sdev(x).


wday(aDate)

An object that returns the weekday of the time x.

Supported On

All HP VEE Platforms

Use

Use wday(aDate) to transform the given time x into a container of the same shape with value(s) 0 - 6, corresponding to the day of the week.  The value 0 corresponds to Sunday, 1 to Monday, and so on, with 6 as Saturday.  x must be of type Int32, Real, Coord, or Waveform any shape.  Int32 returns Real; all others will return the same type.  All will return the same shape as x.

Location

Math ==> Time & Date ==> wday(aDate)

Example

wday(dmyToDate(25,12,1991)) returns 3, so Dec 25, 1991 is a Wednesday.

Notes

Mappings are retained in the return value.

See Also

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), month(aDate), now(), Time & Date, and year(aDate).


xcorrelate (a,b)

An object used to cross-correlate two arrays of data.

Supported On

All HP VEE Platforms

Use

Use xcorrelate(a,b) to calculate the discrete cross-correlation of two 1D arrays a and b.  The result will be an array of the same type and of size (Na+Nb)-1, where Na is the size of input array a, and Nb is the size of input array b.

The input values a and b must be an Array 1D of type Int32, Real, Coord, or Waveform.  The return type is the same as the highest type of the inputs, except Int32, which returns Real.  a and b do not have to be the same size.  The resultant values are not normalized.

Location

AdvMath ==> Signal Processing ==> xcorrelate(a,b)

Example

xcorrelate([1 2 3 4 5],[3 2 1]) returns [1 4 10 16 22 22 15].

Notes

The inputs a and b must represent equally spaced data.  In addition, the interval between any two values of a must be the same as that between any two values of b.  For two unmapped arrays, it is assumed that the interval is always 1.  For mapped arrays, the interval is (Xmax-Xmin)/N, where Xmax and Xmin are the mappings and N is the size of the array.  When one input is mapped and the other is not, the unmapped input is assumed to be sampled at the same frequency as the mapped input. The resultant values will not be normalized.

Note that the xcorrelate(a,b) algorithm is essentially identical to the standard algorithm for discrete convolution, except that the second operand is not sequence-reversed as it is in convolution.

See Also

convolve(a,b).


xlogRamp (numElem, from,thru)

An object that generates a logarithmically ramped array in the same manner used to generate x values for coordinate conversions of log mapped 1D Arrays.

Supported On

All HP VEE Platforms

Use

Use xlogRamp(numElem,from,thru) to generate a Real one-dimensional array of length numElem, with the values logarithmically ramped from from to thru.  numElem must be a scalar container which is, or can be converted to, Int32 and with a value greater than zero. from and thru must be scalar containers which are, or can be converted to, Real.  If from is less than thru the ramping is positive; otherwise it automatically ramps negatively. Both from and thru must have values greater than zero.

Location

Math ==> Generate ==> xlogRamp(numElem,from,thru)

Example

xlogRamp(3, 1, 100) returns a 1D Array with values [1 10 100].

Notes

The return value has no mappings.

The algorithm for generating values is:

Y[I]=exp10(log10(from)+I*((log10(thru)-log10(from))/numElem))

for I=0..numElem-1

This has the effect that the last element in the resultant array has a value which is less than thru by:

exp10(log10(thru)-log10(from)/numElem).

See Also

Alloc Real, logRamp (numElem, from,thru), and xramp (numElem, from,thru).


a XOR b

An object that performs a logical exclusive OR operation on two operands.

Supported On

All HP VEE Platforms

Use

Use a XOR b to determine whether one and only one of the value(s) of two containers is logically true (non-zero).  The two containers may be of any type and of any shape.  If one of the containers is an array, the other must be  either a scalar or an array of the same size and shape. The result is an Int32 of the same shape as the operands, with value(s) 0 or 1.  If either operand is non-zero, but not both, the value of the XOR operation is 1; otherwise the value is 0.

If both operands are of type Coord, they must have their independent variable(s) match exactly or an error is returned.  Only the dependent (last) variable is considered for the XOR operation.

For Complex, PComplex, and Spectrum containers, the value of the operand is true if either part is non-zero.  Text is true if non-null. Enums are converted to Text for the operation.

Location

Math ==> Logical ==> a XOR b

Example

A scalar and an array: 3 XOR [3 3 3] returns [0 0 0].

A scalar and an array: 3 XOR [-3 0 3] returns [0 1 0].

Two arrays: [1 2 3] XOR [0 1 (-1)] returns [1 0 0].

Two PComplex scalars: (1,@90) XOR (1,@85) returns 0.

Two Complex scalars: (0,0) XOR (0,1) returns 1.

Two Complex scalars: (0,1) XOR (1,0) returns 0.

Two Complex scalars: (0,0) XOR (0,0) returns 0.

Two Coord scalars: coord(1,3) XOR coord(1,5) returns 0.

Two Coord scalars: coord(1,3) XOR coord(2,3) returns an error.

A Text scalar and a scalar number: "too" XOR 0 returns 1.

A Text scalar and a scalar number:  "" XOR 0 returns 1 because the real 0 is promoted to "0", which is a non-null string.

Notes

If either of the containers is mapped (that is, of type Waveform, Spectrum, Coord, or a mapped array of any other type), the other container must be unmapped or have identical mappings. The return value will have the same mappings as the operands; otherwise an error is returned.

Note that the If/Then/Else device requires the expression(s) inside it to evaluate to either a scalar or an array, which is either all zeros or all ones.

See Also

a AND b, NOT a, a OR b, and Relational.

Conditional and If/Then/Else (under On Features).


xramp (numElem, from,thru)

An object that generates a linearly ramped array in the same manner used to generate x values for coordinate conversions of mapped 1D Arrays (for example, Waveform).

Supported On

All HP VEE Platforms

Use

Use xramp(numElem,from,thru) to generate a Real one-dimensional array of length numElem, with the values linearly ramped from from to thru (not inclusive of thru). numElem must be a scalar container that is, or can be converted to, Int32 and with a value greater than zero. from and thru must be scalar containers that are, or can be converted to, Real.

If from is less than thru, the ramping is positive; otherwise it automatically ramps negatively.

Location

Math ==> Generate ==> xramp(numElem,from,thru)

Example

xramp(3, 0.5, 0) returns a one-dimensional array with values [0.5 0.3333 0.1667].

xramp(5, 2, 10) returns a one-dimensional array with values [2 3.6 5.2 6.8 8.4].

Notes

The return value has no mappings.

The algorithm for generating values is:

Y[I] = from + I*(thru-from/numElem)

for I=0..numElem-1

This has the effect that the last element in the resultant array has a value which is less than thru by the size of the sampling interval: (thru-from)/numElem.

If you want a ramp that is inclusive of the thru value, use the ramp(numElem,from,thru) function instead.

See Also

Alloc Real, ramp (numElem, from,thru), and xlogRamp (numElem, from,thru).


y0(x)

An object used to calculate the Bessel function of x of the second kind of order zero.

Supported On

All HP VEE Platforms

Use

Use y0(x) to find the Bessel function of x of the second kind of order zero.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types, the same output type is returned, except for Int32 which returns a Real type.  For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Bessel ==> y0(x)

Example

y0(2) returns 0.510375672649745.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

The value of x must be positive.

See Also

Ai(x), Bi(x), j0(x), j1(x), jn(x,n), y1(x), and yn(x,n).


y1(x)

An object used to calculate the Bessel function of x of the second kind of order one.

Supported On

All HP VEE Platforms

Use

Use y1(x) to find the Bessel function of x of the second kind of order one.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types, the same output type is returned, except for Int32 which returns a Real type.  For Coord input types, the operation is done on the dependent variable.

Location

AdvMath ==> Bessel ==> y1(x)

Example

y1(9) returns the value 0.104314575196715.

Notes

Mappings on the operand are ignored and the output container has the same mappings as the input.

The value of x must be positive.

See Also

Ai(x), Bi(x), j0(x), j1(x), jn(x,n), y0(x), and yn(x,n).


year(aDate)

An object that returns the year of the time x.

Supported On

All HP VEE Platforms

Use

Use year(aDate) to transform the given time x into a container of the same shape with the value of the year of the time x. x must be an Int32, Real, Coord, or Waveform any shape. Int32 returns Real; all others will return the same type. All will return the same shape as x.

Location

Math ==> Time & Date ==> year(aDate)

Example

year(dmyToDate(25,12,1991)) returns 1991.

Notes

Mappings are retained in the return value.

See Also

dmyToDate (d,m,y), hmsToHour (h,m,s), hmsToSec (h,m,s), mday(aDate), now(), month(aDate), Time & Date, and wday(aDate).


yn(x,n)

An object used to calculate the Bessel function of x of the second kind of order n.

Supported On

All HP VEE Platforms

Use

Use yn(x,n) to find the Bessel function of x of the second kind of order n.  The x input may be of any size and shape and of the type Int32, Real, Coord, or Waveform.  For x input of all types, the same output type is returned, except for Int32 which returns a Real type.  For Coord input types, the operation is done on the dependent variable.

The n parameter must be of Int32 type or be able to be converted to Int32.  The n parameter also has to be a Scalar in shape or the same shape as x.

Location

AdvMath ==> Bessel ==> yn(x,n)

Example

yn(10,4) returns -0.144949511868093.

Notes

If both of the inputs are mapped, then the mappings must be the same.  The return value has the same mappings as the input if either input is mapped. If neither of the inputs is mapped, then the output is unmapped.

The value of x must be positive.

See Also

Ai(x), Bi(x), j0(x), j1(x), jn(x,n), y0(x), and y1(x).


Concepts

Choose a topic:

Propagation Summary
Terminal Information
Types of Pins
Understanding Data Types
Understanding Data Shapes
Understanding Mappings
ASCII Table


Propagation Summary

Propagation is the general flow of execution through an HP VEE program. This propagation summary describes the order in which objects operate:

Data flows through objects from left to right; sequence flows from top to bottom.

All data and XEQ input pins must be connected.

Start objects operate first. Objects with no data or sequence input dependencies operate next.

All synchronous data input pins must be activated before an object operates.

If the sequence input pin is connected, it must be activated before an object can operate.

Objects with synchronous data inputs operate only once unless connected to an iteration subthread or forced to operate by an XEQ pin.

Control pins are asynchronous and do not affect the operation of the object.

When an error is generated from an object with an error pin, the error pin is activated instead of the data output pins(s). The sequence output pin is activated.

Parallel subthreads, hosted by a single output pin, may operate in any order.

Multiple threads operate simultaneously.

Note:

If an iteration subthread includes flow branching, a Sample & Hold object may be required to obtain correct propagation.


Terminal Information

Terminals show the object input type and shape requirements and display information about the input or output container. Pins are the connection points for terminals. If terminals are present but not visible, select Terminals  ==> Show Terminals from the object menu to see them.

To view or modify the attributes of a terminal, double-click on the terminal's information area (not the pin). You'll see a dialog box showing terminal information.

If all the fields in the dialog box are flat rectangles, the terminal cannot be modified. However if some of them are entry fields (recessed) or buttons, you can change the values.

Terminals have the following characteristics:

Name is the name of terminal.  You can usually modify this field. In formula expressions, the terminal name can be used in the equation.

Mode displays the terminal type, such as Data, Control, XEQ, or Error. You cannot modify this field.

Required Type and Required Shape (input terminals only) specify information about the input data that the object expects. On some objects, you can modify the Required Type or Shape.

Container Information contains information about the container that the object will process (according to the input requirements on an input terminal) or has processed (on an output terminal). This information includes the data type, data shape, the size (if data is an array), any mappings, and the data itself.


Types of Pins

The pins on objects affect the way that they operate, therefore affecting the execution flow of the program. Here is a summary of the types of pins available on objects and what they do:

Data pins input and output a container. An object will not operate until all of its synchronous data input pins are activated. (Note that the JCT object has asynchronous data inputs and therefore will operate when any of its data input pins is activated.)

After the object operates, the output data pin(s) are activated.

Control pins (optional) are asynchronous inputs that affect the state of the object but have no effect on the propagation. Common control pins include Clear, Reset, and Default Value. Lines that connect to a control pin are dashed to show that their inputs do not affect propagation.

XEQ pins are asynchronous input pins that force the object to operate. An XEQ pin must be used on Collector and Set Values to tell the object when you're done inputting data.  You can add an XEQ input pin to a UserObject to force it to operate before the data and sequence input pins have been activated. It is only rarely necessary to add an XEQ pin to ensure proper program execution.

Sequence pins are used only to specify the order of execution. You generally don't have to use them. An object operates only after all the synchronous data input pins and sequence input pins (if connected) are activated.  You cannot open a sequence pin; it does not have a terminal.

 A sequence output pin activates after all the data output pins have activated and data flow has propagated as far as possible.

 Note that sequence input and XEQ pins are activated by the presence of a container. These pins ignore the data in the container. A sequence output pin activates with an empty (nil) container.

Error pins (optional). An error pin is an output pin that traps any error condition generated by the object and outputs the associated error number.  If an error occurs, the error pin is activated instead of any data output pins. Only the error pin and the sequence output pin (if connected) are activated.

Note:

You may leave data output pins, control pins, and error pins unconnected. Sequence pins, more often than not, should be left unconnected. However, an error will occur when you run your program if any data input pins or XEQ pins (if present) have been left unconnected.


Understanding Data Types

HP VEE provides 13 data types, but 3 of these types are used only in instrument I/O transactions. The following 10 data types are used for all internal HP VEE operations. That is, every HP VEE data container sent between HP VEE objects is of one of these 10 types.

NOTE
If an input terminal on an HP VEE object specifies Any, it will accept containers of any HP VEE data type.

Composite data types (Waveform, Spectrum, and Coord) are associated with particular data shapes.

All nil inputs to formula objects, and to I/O transactions containing formulas are automatically converted to Real numbers with the value of 0.0.

Int32 is a 32-bit two's complement integer (-2147483648 to 2147483647).

Real (or REAL64) is a 64-bit real that conforms to the IEEE 754 standard (approximately 16 significant decimal digits or ±1.7976931348623157E308).

PComplex is a magnitude and a phase component in the form (mag, @phase). Phase is in the trigonometric units set under Preferences ==> Trig Mode for the main work area or Trig Mode under the UserObject object menu for a UserObject. For example, the PComplex number 4 at 30 degrees is represented as (4,@30) when Trig Mode is set to Degrees. Each component is Real.

Complex is a rectangular or Cartesian complex number. Each complex number has a real and an imaginary component in the form (real, imag).  Each component is Real. For example, the complex number 1 +2i is represented as (1,2).

Waveform is a composite data type of time domain values that contains the Real values of evenly-spaced, linearly-mapped points and the total time span of the waveform. The data shape of a Waveform must be an Array 1D (a one-dimensional array).

Spectrum is a composite data type of frequency domain values that contains the PComplex values of points and the minimum and maximum frequency values. Spectrum allows the domain data to be uniformly mapped as log or linear. The data shape of a Spectrum must be an Array 1D.

Coord is a composite data type that contains at least two components in the form (x, y, ...). Each component is Real. The data shape of a Coord must be a Scalar or an Array 1D.

Enum is a text string that has an associated integer value. You can access the integer value with the ordinal(x) function.  The data shape of an Enum must be Scalar; an array of Enum is automatically promoted to Text. Enum cannot be a required data input type.

Text is a string of alphanumeric characters.

Record is a data type composed of fields. Each field has a name and a container, which can be of any type (including Record) and any shape.

All integer values are stored and manipulated internally by HP VEE as the Int32 data type, and all real numbers are stored and manipulated as the Real (or Real64) data type. However, instruments generally support 16-bit integers or 8-bit bytes. Also, some instruments support a 32-bit real format. Therefore, HP VEE supports the following three data types, which are used only for I/O transactions involving instruments:

Byte is an 8-bit two's complement byte (-128 to 127). (Byte is used in READ BINARY, WRITE BINARY, and WRITE BYTE instrument I/O transactions. The WRITE BYTE transaction is used for specialized character output to HP-IB instruments.)

Int16 is a 16-bit two's complement integer (-32768 to 32767).

Real32 is a 32-bit real that conforms to the IEEE 754 standard (±3.40282347E±38). NOTE

All nil inputs to I/O transactions containing formulas are automatically converted to Real numbers with the value of 0.0.


Understanding Data Shapes

Each non-composite data type may be in one of five data shapes:

Scalar is a single number such as 10 or (32, @10).

Array 1D is a one-dimensional array of values.

Array 2D is a two-dimensional array of values.

Array 3D is a three-dimensional array of values.

Array is an array with one to ten dimensions. NOTE

An input data shape requirement is Any when the object accepts containers of more than one of the data shapes.


Understanding Mappings

A mapping is a set of continuous or discrete values that express the independent variables for an array. For example, the mappings on a Waveform are the times for each amplitude value. Waveform, Spectrum, and Coord data types are mapped. Arrays of other data types can also be mapped by using Data ==> Access Array ==> Set Mappings.

Mappings are either continuous (Waveform, Spectrum, or mapped arrays created with Set Mappings) or discrete (Coord).  Continuous mappings are attached to the array and may be viewed on the terminal or by using Line Probe, but are not part of the array and are different than the array indices. Discrete mappings are part of the array and are displayed as the first n-1 fields in a Coord value with n fields.

The sampling interval of linear mappings is the maximum value minus the minimum value, divided by the number of points. There are the same number of points as sampling intervals; each point is at the beginning of a sampling interval.

When mapped values (except Coord) are displayed, the X axis displays the mappings.

To get information about a continuous-mapped array, use Data ==> Access Array ==> Get Mappings. Get Mappings gives you the type of mapping (log or linear) and the minimum and maximum mapping values for each dimension.


ASCII Table

The following table lists the ASCII 7-bit character codes:

      | Binary  |Octal|Hex | Dec | HP-IB Msg

 -----|---------|-----|----|-----|---------

 NUL  | 0000000 | 000 | 00 |   0 |

 SOH  | 0000001 | 001 | 01 |   1 | GTL

 STX  | 0000010 | 002 | 02 |   2 |

 ETX  | 0000011 | 003 | 03 |   3 |

 EOT  | 0000100 | 004 | 04 |   4 | SDC

 ENQ  | 0000101 | 005 | 05 |   5 | PPC

 ACK  | 0000110 | 006 | 06 |   6 |

 BEL  | 0000111 | 007 | 07 |   7 |

 BS   | 0001000 | 010 | 08 |   8 | GET

 HT   | 0001001 | 011 | 09 |   9 | TCT

 LF   | 0001010 | 012 | 0A |  10 |

 VT   | 0001011 | 013 | 0B |  11 |

 FF   | 0001100 | 014 | 0C |  12 |

 CR   | 0001101 | 015 | 0D |  13 |

 SO   | 0001110 | 016 | 0E |  14 |

 SI   | 0001111 | 017 | 0F |  15 |

 DLE  | 0010000 | 020 | 10 |  16 |

 DC1  | 0010001 | 021 | 11 |  17 | LLO

 DC2  | 0010010 | 022 | 12 |  18 |

 DC3  | 0010011 | 023 | 13 |  19 |

 DC4  | 0010100 | 024 | 14 |  20 | DCL

 NAK  | 0010101 | 025 | 15 |  21 | PPU

 SYN  | 0010110 | 026 | 16 |  22 |

 ETB  | 0010111 | 027 | 17 |  23 |

 CAN  | 0011000 | 030 | 18 |  24 | SPE

 EM   | 0011001 | 031 | 19 |  25 | SPD

 SUB  | 0011010 | 032 | 1A |  26 |

 ESC  | 0011011 | 033 | 1B |  27 |

 FS   | 0011100 | 034 | 1C |  28 |

 GS   | 0011101 | 035 | 1D |  29 |

 RS   | 0011110 | 036 | 1E |  30 |

 US   | 0011111 | 037 | 1F |  31 |

 space| 0100000 | 040 | 20 |  32 | listen 0

 !    | 0100001 | 041 | 21 |  33 | listen 1

 "    | 0100010 | 042 | 22 |  34 | listen 2

 #    | 0100011 | 043 | 23 |  35 | listen 3

 $    | 0100100 | 044 | 24 |  36 | listen 4

 %    | 0100101 | 045 | 25 |  37 | listen 5

 &    | 0100110 | 046 | 26 |  38 | listen 6

 "    | 0100111 | 047 | 27 |  39 | listen 7

 (    | 0101000 | 050 | 28 |  40 | listen 8

 )    | 0101001 | 051 | 29 |  41 | listen 9

 *    | 0101010 | 052 | 2A |  42 | listen 10

 +    | 0101011 | 053 | 2B |  43 | listen 11

 ,    | 0101100 | 054 | 2C |  44 | listen 12

 -    | 0101101 | 055 | 2D |  45 | listen 13

 .    | 0101110 | 056 | 2E |  46 | listen 14

 /    | 0101111 | 057 | 2F |  47 | listen 15

 0    | 0110000 | 060 | 30 |  48 | listen 16

 1    | 0110001 | 061 | 31 |  49 | listen 17

 2    | 0110010 | 062 | 32 |  50 | listen 18

 3    | 0110011 | 063 | 33 |  51 | listen 19

 4    | 0110100 | 064 | 34 |  52 | listen 20

 5    | 0110101 | 065 | 35 |  53 | listen 21

 6    | 0110110 | 066 | 36 |  54 | listen 22

 7    | 0110111 | 067 | 37 |  55 | listen 23

 8    | 0111000 | 070 | 38 |  56 | listen 24

 9    | 0111001 | 071 | 39 |  57 | listen 25

 :    | 0111010 | 072 | 3A |  58 | listen 26

 ;    | 0111011 | 073 | 3B |  59 | listen 27

 <    | 0111100 | 074 | 3C |  60 | listen 28

 =    | 0111101 | 075 | 3D |  61 | listen 29

 >    | 0111110 | 076 | 3E |  62 | listen 30

 ?    | 0111111 | 077 | 3F |  63 | UNL

 @    | 1000000 | 100 | 40 |  64 | talk 0

 A    | 1000001 | 101 | 41 |  65 | talk 1

 B    | 1000010 | 102 | 42 |  66 | talk 2

 C    | 1000011 | 103 | 43 |  67 | talk 3

 D    | 1000100 | 104 | 44 |  68 | talk 4

 E    | 1000101 | 105 | 45 |  69 | talk 5

 F    | 1000110 | 106 | 46 |  70 | talk 6

 G    | 1000111 | 107 | 47 |  71 | talk 7

 H    | 1001000 | 110 | 48 |  72 | talk 8

 I    | 1001001 | 111 | 49 |  73 | talk 9

 J    | 1001010 | 112 | 4A |  74 | talk 10

 K    | 1001011 | 113 | 4B |  75 | talk 11

 L    | 1001100 | 114 | 4C |  76 | talk 12

 M    | 1001101 | 115 | 4D |  77 | talk 13

 N    | 1001110 | 116 | 4E |  78 | talk 14

 O    | 1001111 | 117 | 4F |  79 | talk 15

 P    | 1010000 | 120 | 50 |  80 | talk 16

 Q    | 1010001 | 121 | 51 |  81 | talk 17

 R    | 1010010 | 122 | 52 |  82 | talk 18

 S    | 1010011 | 123 | 53 |  83 | talk 19

 T    | 1010100 | 124 | 54 |  84 | talk 20

 U    | 1010101 | 125 | 55 |  85 | talk 21

 V    | 1010110 | 126 | 56 |  86 | talk 22

 W    | 1010111 | 127 | 57 |  87 | talk 23

 X    | 1011000 | 130 | 58 |  88 | talk 24

 Y    | 1011001 | 131 | 59 |  89 | talk 25

 Z    | 1011010 | 132 | 5A |  90 | talk 26

 [    | 1011011 | 133 | 5B |  91 | talk 27

 \    | 1011100 | 134 | 5C |  92 | talk 28

 ]    | 1011101 | 135 | 5D |  93 | talk 29

 ^    | 1011110 | 136 | 5E |  94 | talk 30

 _    | 1011111 | 137 | 5F |  95 | UNT

 `    | 1100000 | 140 | 60 |  96 | second 0

 a    | 1100001 | 141 | 61 |  97 | second 1

 b    | 1100010 | 142 | 62 |  98 | second 2

 c    | 1100011 | 143 | 63 |  99 | second 3

 d    | 1100100 | 144 | 64 | 100 | second 4

 e    | 1100101 | 145 | 65 | 101 | second 5

 f    | 1100110 | 146 | 66 | 102 | second 6

 g    | 1100111 | 147 | 67 | 103 | second 7

 h    | 1101000 | 150 | 68 | 104 | second 8

 i    | 1101001 | 151 | 69 | 105 | second 9

 j    | 1101010 | 152 | 6A | 106 | second 10

 k    | 1101011 | 153 | 6B | 107 | second 11

 l    | 1101100 | 154 | 6C | 108 | second 12

 m    | 1101101 | 155 | 6D | 109 | second 13

 n    | 1101110 | 156 | 6E | 110 | second 14

 o    | 1101111 | 157 | 6F | 111 | second 15

 p    | 1110000 | 160 | 70 | 112 | second 16

 q    | 1110001 | 161 | 71 | 113 | second 17

 r    | 1110010 | 162 | 72 | 114 | second 18

 s    | 1110011 | 163 | 73 | 115 | second 19

 t    | 1110100 | 164 | 74 | 116 | second 20

 u    | 1110101 | 165 | 75 | 117 | second 21

 v    | 1110110 | 166 | 76 | 118 | second 22

 w    | 1110111 | 167 | 77 | 119 | second 23

 x    | 1111000 | 170 | 78 | 120 | second 24

 y    | 1111001 | 171 | 79 | 121 | second 25

 z    | 1111010 | 172 | 7A | 122 | second 26

 {    | 1111011 | 173 | 7B | 123 | second 27

 |    | 1111100 | 174 | 7C | 124 | second 28

 }    | 1111101 | 175 | 7D | 125 | second 29

 ~    | 1111110 | 176 | 7E | 126 | second 30

 [del]| 1111111 | 177 | 7F | 127 |


Using the Keyboard Shortcuts

You can use keyboard shortcuts to perform many common HP VEE tasks. Note that the keyboard shortcuts are not case sensitive. (A summary of the most often used keyboard shortcuts is given on the back cover of each manual.)

To Run, Pause, Step, or Resume an HP VEE Program
To Clear the Work Area
To Open an HP VEE Program File
To Save an HP VEE Program to a File
To Save an HP VEE Program to a New File
To Exit HP VEE
To Raise the Pop-Up Edit Menu
To Raise the Pop-Up Object Menu
To Delete an Object
To Delete a Line
To View Data on a Line
To Select Objects
To Add a Data Input Terminal to an Object
To Add a Data Output Terminal to an Object
To Delete a Terminal from an Object
To Refresh the HP VEE Window
To Print or Copy the HP VEE Window
To Cancel an Edit in an Entry Field
To Cancel Edits in a Dialog Box
To Move the Text Cursor
To Scroll the Work Area
To Edit a Transaction
To Navigate the HP VEE Menu
To Navigate an Operator Interface Panel


To Run, Pause, Step, or Resume an HP VEE Program

Press CTRL+G to run an HP VEE program (shortcut for the Run button).

Press CTRL+C to pause a running HP VEE program (shortcut for the Pause button). (To stop a program, you must click the Stop button on the toolbar.)

Press CTRL+T to step a paused HP VEE program (shortcut for the Step button).

Press CTRL+V to resume a paused HP VEE program (shortcut for the Resume button).


To Clear the Work Area

Press CTRL+N. You will be prompted to save changes to the current program (shortcut for the New button on the toolbar, and for File ==> New).


To Open an HP VEE Program File

Press CTRL+O. You will be prompted for a file name to open (shortcut for the Open button on the toolbar, and for File ==> Open).


To Save an HP VEE Program to a File

Press CTRL+S.  The program will be re-saved to the current file, or you will be prompted for a file name (shortcut for the Save button on the toolbar, and for File ==> Save).


To Save an HP VEE Program to a New File

Press CTRL+W.  You will be prompted for a new file name, and the program will be saved there (shortcut for File ==> Save As).


To Exit HP VEE

Press CTRL+E to exit HP VEE (shortcut for File ==> Exit).


To Raise the Pop-Up Edit Menu

Press the right mouse button with the pointer over an empty part of the HP VEE work area.  (This works for UserObject and UserFunction work areas as well.)


To Raise the Pop-Up Object Menu

Press the right mouse button with the pointer over any part of an object.


To Delete an Object

Press CTRL+D with the pointer over the object to be deleted, but not over a terminal. (If the pointer is over a terminal, the terminal will be deleted instead.)

You can replace an object deleted by mistake. Click on Edit ==> Paste, then click on the location where you want to put the object.  The object and its connections are restored.


To Delete a Line

Press and hold Shift+CTRL, and click the left mouse button with the pointer over or near the line you want to delete (shortcut for the Delete Line button on the toolbar, and for Edit ==> Delete Line).


To View Data on a Line

Press and hold Shift, and click the left mouse button with the pointer over or near the line you want to probe (shortcut for the Line Probe button on the toolbar, and for Debug ==> Line Probe). Information about the last container of data on the line is displayed.


To Select Objects

Press and hold CTRL, and click the left mouse button with the pointer over an object (shortcut for Edit ==> Select Objects). The object becomes selected (highlighted with a shadow) if it is not currently selected.  If the object is currently selected, it becomes un-selected.

There are two ways to select multiple objects. Press and hold CTRL, and click the left mouse button on each object that you want to select.  Or, while pressing CTRL, click and hold the left mouse button, then drag the outline box across the desired objects.


To Add a Data Input Terminal to an Object

Press CTRL+A with the pointer in the input terminal area to insert another data input terminal at the pointer location (shortcut for:  object menu ==> Terminals ==> Add Data Input). If you have just edited a field in the object, you may have to click the left mouse button first, and then press Ctrl+A.

To add a terminal using Ctrl+A, Show Terminals must be active and the pointer must be over the input terminal area at the left side of the object.


To Add a Data Output Terminal to an Object

Press CTRL+A with the pointer in the output terminal area to insert another data output terminal at the pointer location (shortcut for:  object menu ==> Terminals ==> Add Data Output). If you have just edited a field in the object, you may have to click the left mouse button first, and then press Ctrl+A.

To add a terminal using Ctrl+A, Show Terminals must be active and the pointer must be over the output terminal area at the right side of the object.


To Delete a Terminal from an Object

Press CTRL+D with the pointer over the terminal to be deleted. (A shortcut for: object menu ==> Terminals ==> Delete Input or object menu ==> Terminals ==> Delete Output.) If you have just edited a field in the object, you may have to click the left mouse button first, and then press Ctrl+D.

To delete a terminal using Ctrl+D, Show Terminals must be active and the pointer must be over the terminal to be deleted.  Otherwise, CTRL+D will delete the object itself.


To Refresh the HP VEE Window

Press CTRL+R to refresh the HP VEE window.


To Print or Copy the HP VEE Window

On a UNIX workstation:  Press Shift+Print to print the HP VEE window with the current options specified in Printer Config (shortcut for the Print Screen button on the toolbar, and for File ==> Print Screen).

On a PC:  To copy the HP VEE window to the MS Windows Clipboard, press Alt+Print Screen with HP VEE as the active window.  From the Clipboard, you can paste the HP VEE window into other Windows applications such as MS Windows Paint.

Note that these shortcuts allow you to capture the HP VEE screen even when a dialog box is present.


To Cancel an Edit in an Entry Field

Press Esc to cancel an edit in a type-in entry field.


To Cancel Edits in a Dialog Box

Press Esc to cancel all edits in a dialog box (equivalent to clicking on the Cancel button).


To Move the Text Cursor

In alphanumeric text entry areas (for example, the Note Pad object) use the cursor-control arrow keys (up-arrow, down-arrow, left-arrow, right-arrow) to move the cursor in the direction of the arrow.


To Scroll the Work Area

With the pointer anywhere within the HP VEE work area:

Press Shift+up-arrow, Shift+down-arrow, Shift+left-arrow, or Shift+right-arrow) to scroll the work area in the direction of the arrow key.

Press Page Down (Windows) or Next (UNIX) to scroll the work area up one screen.

Press Page Up (Windows) or Prev (UNIX) to scroll the work area down one screen.

Press Shift+Page Down (Windows) or Shift+Next (UNIX) to scroll the work area left one screen.

Press Shift+Page Up (Windows) or Shift+Prev (UNIX) to scroll the work area right one screen.

Press Home (Windows) or home-arrow (UNIX) to move the upper left corner of the program to the upper left corner of the work area.

Press Shift+Home (Windows) or Shift+home-arrow (UNIX) to move the lower right corner of the program to the lower right corner of the work area.


To Edit a Transaction

The following are some shortcuts that you can use when the mouse pointer is positioned over an object containing transactions (for example, the Sequencer or To File objects). For further information about transactions, refer to the chapter "Using Transaction I/O" in HP VEE Advanced Programming Techniques.

Press CTRL+K with the pointer over a transaction to cut the transaction to the "cut-and-paste" buffer (object menu ==> Cut Trans).

Press CTRL+Y to paste a transaction from the "cut-and-paste" buffer at the pointer location (object menu ==> Paste Trans).

Press CTRL+O to insert a transaction at the pointer location (object menu ==> Insert Trans).

Press CTRL+N to move to the next transaction.

Press CTRL+P to move to the previous transaction.

Press CTRL+X to step to the next transaction (Sequencer only). (Sequencer object menu ==> Step Trans.)


To Navigate the HP VEE Menu

You can navigate the HP VEE menu by using the keyboard menu accelerators. Each menu item has an underlined letter, which acts as an accelerator in conjunction with the Alt key on a PC or the Extend Char key on a UNIX workstation.  The keyboard accelerator letters are case insensitive.  In other words, even though the underlined letter may be capitalized, you can use the lower case letter as the accelerator. Let's look at an example.

In the Device menu the D is underlined (but d works fine as the accelerator) and in the Data menu the t is underlined:

On the PC, press Alt+d to select the Device menu or Alt+t to select the Data menu.

On the UNIX workstation, press Extend Char+d to select the Device menu, or Extend Char+t to select the Data menu.

Each sub-menu has its own accelerators, which you can use to navigate further down the menu tree.  For example, to select Data ==> Real Slider:

On the PC, press Alt+t and then r.

On the workstation, press Extend Char+t and then r.


To Navigate an Operator Interface Panel

If you or another HP VEE programmer have created an operator interface panel view in an HP VEE program, you can navigate the panel with the following keys:

Press Tab and Shift+Tab to move from one field in the operator interface panel to the next.  The Tab key moves focus forward, and Shift+Tab moves focus backward from field to field. When a type-in field has focus (indicated by an inverse highlight), you can edit it.  When a button has focus (indicated by a dashed outline), you can "push" it as described below.

Press the space bar to "push" a button that currently has focus.

Use the appropriate alphanumeric keys to edit a type-in field that currently has focus.  Press Enter or Return to complete and accept the edit, or press Esc to abort the edit.

Press Enter or Return to "push" the default button in the operator interface panel, if one has been defined by the programmer.

Operator interface panel views and how to use them are covered in detail in Building an Operator Interface with HP VEE.


Error Codes

Use the following list to find the error message that corresponds to the error code output from an error terminal.

OBJECTS

 300  The input terminal number <n> is not

      connected

 301  Input <n> is not present

      (valid range = [<n>..<n>])

 302  No additional inputs are allowed

      -- limited to <n>

 303  The input must be <type>

 304  The input cannot be <type>

 305  Input(s) mismatch: <name>, <name>

 306  Required input <name> is not present

 308  Required output <name> is not present

 309  Output(s) mismatch: <name>, <name>

 310  Output <n> is not present

      (valid range = [<n>..<n>])

 311  No additional outputs are allowed

      -- limited to <n>

 312  No <type> was selected

 313  <operation> is not supported

 314  Invalid combination of parameters: <n>

 315  Component <name> cannot be added

 317  There is no panel to switch to

 320  Child process failed to run

 321  Child process died

 322  Could not open the pipe

 323  List has no elements

 330  The Max value must be greater than the Min value

CONTAINERS

 400  Value is empty or nil

 401  Value out of bounds

      (valid range = [<n>..<n>])

 402  <name> value must be <type>

 403  <name> value is out of range

 404  Numeric value must be positive

 405  <name> was not found

 410  Value must be a scalar

 411  Value must be an array

 412  Value must be a scalar or linear array

 413  Value must be a <n> dimensional array

 414  Value must be a waveform or linear

      array

 415  Values must have same number of

      dimensions

 416  Values must have same size and shape

 417  Record structures must match

 418  Records cannot be merged

 420  Value must be a square matrix

 421  Shapes of matrix values are

      inappropriate for matrix multiply

 422  Value must be a matrix with an ODD

      number of columns

 430  Scalar cannot be accessed by a

      non-zero index

 431  Value for an array index is out of

      range

 432  Values for array/subarray indices

      are inappropriate

 433  Too many array dimensions given

      (maximum = <n>)

 434  Value must have <n> field(s)

 435  Both values must have the same

      number of fields

 440  Invalid operation for data type <type>

 441  Invalid operation for scalar value

 442  Invalid operation for a <n> dimensional

      array

 443  Operation valid only for numeric

      values

 450  Operation requires that array be

      mapped

 451  Array mappings for values must match

 452  Sample frequency for array mappings

      must match

 453  <type> cannot have vertical steps

 454  Construction of an array is not allowed

 460  Cannot increment/decrement arrays

      and functions

 461  Value is > 16 digits -- cannot

      increment/decrement

 462  Attempt to overwrite constant or

      parameter '<name>' failed

 463  Input coordinates are not

      monotonic over "X"

 464  Unable to convert <type> to <type>

MATH

 500  Illegal values for argument(s)

      in function <name>

 501  Function <name> does not allow

      negative values

 502  Function <name> requires <n> argument

 510  Math error in function <name>

 511  Division/Modulo by zero

 512  Negative value cannot be raised to a

      non-integer power (<n>)

 513  Zero cannot be raised to a

      non-positive power (<n>)

 514  Numeric data overflow in function

      <name>

 515  Numeric data underflow in function

      <name>

 516  Overflow of sum occurred during

      calculation of <name>

 517  Function or UserFunction:

      '<name>' is unknown

 520  Bounds for LOG mapping must be > 0

 521  X-data for LOG mapped function

      must be > 0

 522  Derivatives of order <n> are not

      supported

 523  Interpolation on multi-dimensional

      arrays is not supported

EXPRESSIONS

 600  Syntax error: <description>

 601  Invalid expression: <description>

 602  Function was not found: <name>

 603  Variable was not found: <name>

 604  Function was not loadable: <name>

 610  Too many arguments supplied

      (maximum=<n>)

 611  Wrong number of parameters

      supplied to function <name>

 620  Name or string constant is too long

      (> <n> chars)

 621  Duplicate symbol name <name>

 622  Invalid variable/terminal name <name>

 623  Closing quote for the string was not found

 624  Illegal character(s) found while

      parsing string

 625  Illegal escape sequence <sequence>

 626  Duplicate record field name <name>

 627  Duplicate library name <name>

 628  Invalid record field name <name>

 629  Invalid UserFunction name <name>

 630  Invalid value

 631  Value of the expression must be

      either all zero or all non-zero

 640  Mismatch error: Expected <name>, got <name>

 641  Unknown parameter: <name>

 642  Undefined parameter: <name>

 650  Library: <name> contains running

      functions.  Cannot delete

 660  Invalid name: <name>

FILES

 700  File <name> was not found

 701  End of file or no data found

 702  Cannot open file <name>:

      Permission denied

 703  Cannot read file <name>

 704  Cannot write to file <name>

 705  Read error on file <name>

 706  End of file or no match found

 707  Needed to read <n>, found only <m>

 708  Bytes read must be multiple of data size

 710  File <name> is not a named pipe

 711  Cannot create file <name>

 712  File <name> already exists

 713  Invalid directory name <name> in path

 714  File is a directory

 715  Directory is not empty

 716  Cannot execute file <name>

 717  Invalid working directory <name>

 718  Could not create process. (Windows error number: <n>)

 720  File is in use

 721  Device is Busy

 722  Cannot access a different file system

 723  Too many files are open

 724  File is too large

 725  Disk is full

 726  Error during 'seek' of file

 727  Bad system file number

 728  Too many symbolic links

 729  File format is invalid

 730  No UserFunctions found in file

 731  Sorry, cannot load from file

 732  Sorry, cannot save to file

I/O

 800  No such device or incorrect address

 801  Configuration error:  <description>

 802  Incorrect special device file <name>

      found

 803  Device, <name>, is not message based

 804  Invalid access to memory on device,

      <name>

 810  Instrument driver error <n>: <description>

      Refer to your instrument manual for further information

 811  I/O error or timeout occurred

 812  Invalid bin block header

 813  Must be the active system controller

      to access HP-IB

 814  Lock acquisition failed on

      <device> <interface>

 815  Error returned from VXIplug&play function call,

      error value <n>

 816  Error returned from VXIplug&play init() function call,

      error value <n>

 821  Transaction not supported for <name>

      interface

 830  Could not initiate DDE link to

      application <name>, topic <name>

 831  DDE POKE to item <name> failed

 832  DDE REQUEST from item <name> failed

 833  DDE EXECUTE failed

 850  Host, <name>, is unknown

 851  There is no Service Manager on host, <name>

 852  Networking is not initialized on this host

 853  Connection has timed out

 854  An interrupt occurred before receive

      on network

 855  The connection has been shut down by the peer

 856  The operating system is out off buffer space

 857  The network is down

 858  An interrupt occurred before the connection

      to the host <name>

 859  The port, <name>, is already in use

 860  Attempted connection to <name> has timed

      out

 861  Service Manager on <name> has not

      responded

 862  Service, <name>, on host, <name>, has

      not responded

 863  Service, <name>, not found on host,

      <name>

 864  Service, <name>, on host, <name>,

      cannot be started

 865  Error in service, <name>, on host,

      <name>

 866  The connection was refused on host, <name>

 867  The UserFunction, <name>, in service,

      <name>, was not found

 868  Permission denied for user, <name>, on

      host, <name>

 869  Remote Service, <name>, on host, <name>,

      reports error: <n>

 870  Non-blocking receive

 871  Remote debug terminated before completion

SYSTEM

 900  That operation is not allowed while the

      program is running

 901  Illegal form of feedback

 902  Unexpected BREAK encountered

 903  Unexpected CONTINUE encountered

 904  Invalid device encountered

 905  Incorrect revision "<rev>"

      (Expected "<rev>")

 906  A Thread with feedback requires a START object

 910  Process is out of memory,

      save your program IMMEDIATELY

 911  Floating-point exception, possible

      overflow/underflow

 912  There are too many system processes

 913  Reset or Break encountered

 914  Cannot open display

 915  The operating system is out of resources

 920  Write on a pipe with no process to

      read it (signal = <n>)

 921  User-defined signal 1 received

      (signal = <n>)

 922  User-defined signal 2 received

      (signal = <n>)

 930  Error(s) encountered during PreRun


300

The input terminal number <n> is not connected

Resolution

You may get this error message in three different situations:

1. When a data input pin is not connected.

All data input terminals on an object must be connected before a program can run. Find the object that caused the error (the object with a red outline) and make the necessary connections.

2. On a UserObject/UserFunction when an inside pin of an output terminal is not connected.

You may get this message on a UserObject or UserFunction when the error message mentions the input terminal of an output buffer. This means the inside pin of an output terminal is not connected to an object inside the UserObject or UserFunction. All inside pins of output terminals must be connected before a program can run.

To determine which pin is not connected, look at the open view of the UserObject or the editing view of the UserFunction. From the Properties dialog box, select Show Terminals to view the terminal area.

3. When importing a UserFunction.

If you've gotten this message when importing a UserFunction, there is an object inside the UserFunction that has an unconnected input terminal.  You need to load the UserFunction via File ==> Open or File ==> Merge Library, modify the UserFunction, and save it. Open the previous program and run it; the UserFunction will import properly.


810

Instrument driver error <n>: <description>

Refer to your instrument manual for further information

Resolution

An instrument error has occurred. This error shows the instrument error that was passed from the instrument, to the instrument driver, into HP VEE

For example, the error may look like: Instrument driver error 1051: Device xxx reported error nnn

"xxx" - is the name you assigned to the instrument under I/O ==> Other Instruments.

"nnn" - is the instrument's error message to look up in your instrument manual to find what the error really is.  Your instrument manual will give details.


811

I/O error or timeout occurred

Resolution

This error occurs when HP VEE cannot communicate with the instrument. The following actions often solve this problem:

Double-check that the instrument is plugged in and turned on.

Check the cable connections, make sure they're tight.

Make sure the I/O address is correct.

When using instrument drivers, make sure you've specified the correct driver file for the instrument.

Note: If transferring a large amount of data or the instrument is slow, increase the timeout value via the I/O ==> Other Instruments.


851

There is no Service Manager on host, <name>

Resolution

The Service Manager could not be started. You may get this error message in two different situations:

1. The Service machine does not have the Service Manager started.

For Programs Running on Windows 95 and NT:

The Service Manager is a console application. Start it by using Run from the Start Menu or the Program Manager.

If you wish, put the Service Manager in the Startup group so that it is automatically started when Windows starts running. Depending on whether the Program Manager or the new Win95 shell is used, edit either the PIF file or set the shortcut properties to so that the Service Manager will run minimized.

For Programs Running on UNIX:

If your system is on Network Information Services (NIS) (i.e.  Yellow Pages), the files services and inetd.conf have to be edited on the database server machines, and the database has to be rebuilt.  Each individual NIS client has to have its inet daemon forced to read the central inetd.conf file by performing, as root, the command:

        inetd -c

2.  The Client or Service machine is not configured correctly.

Reinstall the HP VEE software. When HP VEE is installed, it automatically configures the Service Manager.

Refer to Installing HP VEE for more details.


906

Thread with feedback requires START object

Resolution

Feedback allows you to set initial values or access values from previous iterations of a loop.

To use feedback, you must have a Start object connected to an object in the feedback loop to indicate which object (or subthread) should execute first.


910

Process is out of memory, save your program IMMEDIATELY

Resolution

Save your program to a different file name immediately.

For Programs Running on Windows 95 and NT:

The program has used up all available swap space.

One possible cause is if the program allocates very large arrays or records, and performs operations on these structures in their entirety.  If so, you may want to modify the program to perform operations on only parts of the structures.

Otherwise, you will need to allocate more swap space before you can run the HP VEE program that used all the swap space.

On Windows 95:  Click the right mouse button on My Computer and select Properties.  Select the Performance tab, and choose the Virtual Memory button to adjust your virtual memory settings.

On Windows NT:  Under the Program Manager, in the Main program group, click on Control Panel and then on the System icon. Choose the Virtual Memory... button and change the Page File Size.

For Programs Running on UNIX:

One of two conditions exist.  The most likely is that the program has used all of the per-process Virtual Memory allowed to it.  The other condition is that the program has used up all available swap space.

One possible cause is if the program allocates very large arrays or records, and performs operations on these structures in their entirety.  If so, you may want to modify the program to perform operations on only parts of the structures.

If you cannot modify your program to use less memory, increase the per-process memory limit.  In Kernel Configuration-Configurable Parameters, increase the value for Max Data Segment Size (maxdsiz).

You may also need to allocate more swap space to accommodate the HP VEE program that uses all the swap space.  If your hard disk size is too small to add more swap space, you will need to install a larger hard disk.

To change UNIX memory limits or swap space, see your System Administrator.


Glossary

Activate
Allocate
Array
Asynchronous
Auto Execute
Bitmap
Breakpoint
Buffer
Button
Cascading Menu
Checkbox
Click
Clone
Compiled Function
Component
Component Driver
Composite Data Type
Container
Context
Control Pin
Coupling
Cursor
Cut Buffer
Data Container
Data Field
Data Flow
Data Input Pin
Data Output Pin
DataSet
Data Shape
Data Type
DDE (Dynamic Data Exchange)
Default
Default Button
Demote
Detail View
Device
Device Driver
Dialog Box
Direct I/O Object
DLL (Dynamically Linked Library)
Double-Click
Drag
Driver
Driver Files
Drop-Down List
Entry Field
Error Message
Error Pin
Execute
Execution Flow
Expression
Feedback
Flow
Font
Function
Global Variable
Grayed Feature
Group Window
Highlight
Host
HP-UX
Hypertext
Icon
Instrument Driver
Instrument Panel
Interface
Interface Driver
Iterate
Library
Line
Loop
Main Menu
Main Work Area
Mapping
Maximize
Maximize Button
Menu
Menu Bar
Menu Title
Minimize
Minimize Button
Mouse
Mouse Button
Network
Object
Object Menu
Object Menu Button
Open
Open View
Operate
Operator Interface
Outline Box
Palette
Panel View
Pin
Pointer
Pop-Up Menu
PostRun
Preferences
PreRun
Program
Promote
Propagation
Properties
Pterodactyl
Pull-Down Menu
Radio Button
Record
Remote Function
Restore
Run
Save
Scalar
Schema
Screen Dump
Scroll
Scroll Arrow
Scroll Bar
Select
Select Code
Selection
Selection Field
Sequence Input Pin
Sequence Output Pin
Sequencer
Shared Library
Shell
Shell Prompt
Sleep
Startup Directory
State
Status Field
Step
Terminal
Terminal Area
Thread
Title Bar
Toolbar
Transaction
Trig Mode
User-Defined Function
UserFunction
UserObject
View
Wait
Window
Work Area
Working Directory
X Window System (X11)
X11 Resources
XEQ Pin


Latest Information

The following topics discuss product features and other information about HP VEE that are not included in the manuals or other documentation.

About HP VEE Support
Accessing New Instrument Drivers
Join the HP VEE E-Mail Forum
Receive the T & M Newsletter
VXIplug & play

Using HP VEE
Printing Help Contents on UNIX
Assigning the OK Object to Keyboard Keys
The ID Monitor's Object Menu
Integer Knob and Real Knob Objects
Integer Slider and Real Slider Objects

Known Problems
Memory Leak in Transaction Objects
Memory Leak with Math Expressions
Memory Leak in Microsoft Windows
Displaying HP VEE Help on HP Series 300


Accessing New Instrument Drivers

HP VEE communicates with instruments using Direct I/O, HP Instrument Drivers, and VXIplug & play Drivers. We often update our collection of drivers for HP VEE and make them available to you.  The following topics explain how to learn which drivers are available and how to get them. Scroll through this Help section to read the information you want.

Topics:
- Requesting the Current List of HP Instrument Drivers
- How to Obtain Updated HP Instrument Drivers
- What to Do If Your HP Instrument Driver is Not Listed
- Requesting the Current List of VXIplug & play Drivers

Requesting the Current List of HP Instrument Drivers

As we update our HP Instrument Drivers for HP VEE, we maintain a comprehensive list.  You can get the latest revision of this list in the following ways:

World Wide Web: Use the World Wide Web over the Internet to directly read and transfer files.  The root URL (Unified Resource Locator) for the instrument drivers is:  ftp://hplvopen.lvld.hp.com/dist/mxd/veedrivers/

The list of drivers is the driver.lis file:

ftp://hplvopen.lvld.hp.com/dist/mxd/veedrivers/driver.lis

Anonymous FTP: Connect to hplvopen.lvld.hp.com to get the driver.lis file.  It is located in the dist/mxd/veedrivers directory. For detailed instructions about getting this file and updated driver files, scroll down in this Help window to the topic "How to Obtain Updated HP Instrument Drivers".

Electronic Mail: Send any message to  Hp-Instrument_Drivers_Mxd@hp0900.desk.hp.com

and the mail node will automatically reply by sending the list. (This e-mail address may change in 1996)

HP FaxBack: To request the list by Fax, call HP Test & Measurement's FaxBack with a touch-tone phone at 970-679-3031.  Enter the following responses when requested: 1, 1, 4002#, #, your FAX number and #, 1, 2, your voice telephone number and #.

To learn more about HP Test & Measurement's FaxBack service, and request a catalog of what it offers, call 970-679-3031. Enter the following responses when requested: 2, 2, menu number, 2, your FAX number and #, 1, 2, your voice telephone number and #.

The HP Instrument Driver list you receive has five parts:

Part 1: HP Drivers Currently Available

Part 2: Non-HP Drivers Currently Available

Part 3: How to Obtain Updated HP Instrument Drivers

Part 4: Unsupported/Contributed Drivers

Part 5: What to Do if Your HP Instrument Driver is Not Listed

We have included selections from Parts 3 and 5 in this Help topic for your convenience since they contain specific access instructions. Scroll down through this Help window to read the instructions.

How to Obtain Updated HP Instrument Drivers

There are four ways for you to get updated HP Instrument Drivers:

1. ACCESSING DRIVERS VIA WWW:

Use the World Wide Web (WWW) protocol over the Internet to directly transfer the instrument drivers.  This method will only work if you have open subnet Internet ftp access.

You will be accessing the HP Loveland Site computer via WWW.  If you are not familiar with your WWW tools, please consult your system administrator.  If your site does not recognize hplvopen.lvld.hp.com, try replacing it with 15.255.16.2.

This instrument driver list's location is:

ftp://hplvopen.lvld.hp.com/dist/mxd/veedrivers/driver.lis

The supported instrument driver source and help files are in

ftp://hplvopen.lvld.hp.com/dist/mxd/veedrivers/supported

The unsupported instrument driver source and help files are in

ftp://hplvopen.lvld.hp.com/dist/mxd/veedrivers/unsupported

2. ACCESSING DRIVERS VIA FTP:

Use anonymous ftp over the Internet to directly transfer the instrument drivers from the Hewlett-Packard Measurement Systems Division anonymous ftp site:  hplvopen.lvld.hp.com (15.255.16.2). This method will only work if you have open subnet Internet ftp access. If you are not familiar with ftp protocols, please consult your system administrator.

Use the following steps to complete the file transfer:

STEP 1:  Change directory to a place where you wish to place the driver files.  You may wish to create a new directory.

STEP 2:  Use your ftp application or at the command line prompt type ftp 15.255.16.2 and press the Return key (the Enter key on a PC).  You will be prompted for Name:.  Type ftp and press the Return key.  You will then be prompted to send your complete e-mail address as password. Type your complete e-mail address (ours is pctm@lvld.hp.com) as a password and press the Return key. You should now be logged on to hplvopen.lvld.hp.com.

STEP 3:  We recommend you type hash and press the Return key. This ftp command will print a hash mark # for each 1 KBytes transferred. Without the hash mark, you might think the transfer has hung up when it is just slow.

STEP 4:  Type cd dist/mxd and press the Return key. You are welcome to explore these support directories; use the dir or ls ftp commands.  Download the README file in each directory for more information.

STEP 5:  For the instrument driver files, type cd veedrivers and press the Return key.  This dist/mxd/veedrivers directory has the instrument driver list driver.lis and two subdirectories: supported and unsupported.  To download the driver list, type get driver.lis and press the Return key.

STEP 6:  Type cd supported (or cd unsupported) and press the Return key.

STEP 7:  The instrument driver file names are defined in the list of HP Instrument Drivers.  Choose a driver you wish to receive and type get followed by the driver file name and press the Return key (example: get hp34401a.id).  The file will now be transferred.  If successful, the message will be XXXX bytes transferred in XX seconds.

Now get the corresponding help file (example: get hp34401a.ih). Repeat these get steps until you have received all the instrument drivers and help files that you need.

STEP 8:  When you are finished, type quit and press the Return key.  This will log you off from hplvopen.

3. ACCESSING DRIVERS VIA BBS:

For your convenience, Hewlett-Packard maintains the Hewlett-Packard PC Test & Measurement Helpline Bulletin Board so you can use your modem to download the latest instrument drivers. It supports modems with data transfer rates from 300 to 14,400 bits per second, and is compatible with most compression, correction, and binary transfer protocols.

This Bulletin Board System (BBS) is for our HP customers.  We intend to make it available 24-hours a day.

Hewlett-Packard PC Test & Measurement Helpline Bulletin Board
970-679-5978

Questions?  Contact:
 Ted Cline
 Measurement Systems Division
 Hewlett-Packard, M/S CU-326
 815 14th Street SW
 P.O. Box 301
 Loveland, CO  80537  USA

 Voice:   970-679-3030
 Fax:     970-679-5260
 FaxBack: 970-679-3031
 E-mail: pctm@lvld.hp.com

Download the file READ_ME.1ST for instructions on using the bulletin board, and the file FILELIST.DVR for a list of available instrument drivers.  The following example shows how to access the BBS to download a driver and its help file:

Connect to and log into the BBS (970-679-5978) (create your own password).

Type D for the Download command.

Type C to choose the Xmodem/CRC protocol for the PC Windows Terminal program (found in the Windows Accessories group).

Type dvr\hp34401a.id for the file name and start the download on your side either by pressing the "Page Down" key, or using the Windows Terminal program's pulldown menu Transfers - Receive Binary File.

Repeat for the dvr\hp34401a.ih driver help file.

Type G to say Goodbye (disconnect).

4.  CALL DIRECT BY PHONE:

Call HP PC Test & Measurement Support at 970-679-3030 (FAX: 970-679-5260) and request a DOS floppy disk of instrument drivers for your application.

Please specify the following information:

Your name.

Shipping address (no Post Office boxes).

Shipping urgency (standard or 2-day air).

Voice telephone number with area code.

DOS floppy disk format:
 3.5 inch (720K or 1.44M) or 5.25 inch (360K or 1.2M).

Instrument driver(s) requested.

What to Do If Your HP Instrument Driver is Not Listed

If an HP Instrument Driver that you need is not available from our list, here are some alternative actions:

Ask for instrument driver status.  While HP does not intend on doing future HP Instrument Drivers, there are some in the pipeline. Call PC Test & Measurement Support at 970-679-3030 and ask for the current status of a driver for your instrument.

Wait for HP to write the VXIplug & play Driver.  (No schedule guarantees, and unlikely if the instrument is already obsoleted). HP gives highest priority to drivers with lots of requests.  Please tell us if you can guarantee a high quantity of instrument sales. Note that these future drivers will be VXIplug & play compatible. VXIplug & play drivers for non-HP instruments may be available through the manufacturers of those instruments.

Contract HP's Custom Systems Integration Team (CSIT) to write the instrument driver for you. Contact Roger Muller (970-679-2469) at CSIT to negotiate price and delivery.

Write your own instrument driver:

For simple instruments, try the HP Instrument Driver Writer Tool (shipped with HP VEE).

For non-simple instruments, use a text editor, the HP Instrument Driver Language Reference and the "Coding Standards for Instrument Driver Writers" file (on the BBS as dvr\id_stds.txt). But beware:  Writing instrument drivers for complex instruments is not for the timid. The HP Instrument Driver Language Reference is HP part number E2001-90004, $28 US List as of Jan-15-96, and is available in the US by calling 800-227-8164 if ordering by credit card through the touch-tone menu system. Or get a PCL version using the WWW, read:  ftp://hplvopen.lvld.hp.com/dist/mxd/veedrivers/README

Generally, you can modify a similar instrument's existing instrument driver.  Scroll up in this Help window to "How to Obtain Updated HP Instrument Drivers" for access to all available HP Instrument Driver sources.

An experienced driver writer can implement between 4 to 20 command components per day, depending upon couplings between components and complexities of the commands.  That is, if the instrument has 20 commands, all independent of each other, and each a simple COMMAND_SYNTAX foo, it could be done in a day.  On the other hand, if each command's range of values depends upon something else and/or command order is important, it may take a week to straighten it all out.  A simple switch box should only take a day or so, or a few hours if it can be cloned from an existing driver. Network analyzers could take 12 weeks or more.  Use the instrument's command reference as a guide to determine how much time is needed to write a driver.

Do not use an instrument driver.  Control the instrument using HP VEE's Direct I/O objects.  This method is very similar to controlling instruments from other programming languages like HP BASIC. Your instruments' manuals contain the programming mnemonics.

Requesting the Current List of VXIplug & play Drivers

As we update our HP VXIplug & play Drivers, we maintain a comprehensive list.  You can get the latest revision of this list in the following ways:

World Wide Web: Use the World Wide Web over the Internet to directly read and transfer files.  The root URL (Unified Resource Locator) for the VXIplug & play Drivers is:

ftp://hplvopen.lvld.hp.com/dist/mxd/vxipnp/

The list of drivers is the pnpdrver.lis file:

ftp://hplvopen.lvld.hp.com/dist/mxd/vxipnp/pnpdrver.lis

Anonymous FTP: Connect to hplvopen.lvld.hp.com (15.255.16.2) to get the pnpdrver.lis file.  It is located in the dist/mxd/vxipnp directory.  This method will only work if you have open subnet Internet ftp access.  If you are not familiar with ftp protocols, please consult your system administrator.

STEP 1:  Change directory to a place where you wish to place the pnpdrver.lis file.

STEP 2:  Use your ftp application or at the command line prompt type ftp 15.255.16.2 and press the Return key (the Enter key on a PC). You will be prompted for Name:.  Type ftp and press the Return key. You will then be prompted to send your complete e-mail address as password. Type your complete e-mail address (ours is pctm@lvld.hp.com) as a password and press the Return key.  You should now be logged on to hplvopen.lvld.hp.com.

STEP 3: We recommend you type hash and press the Return key. This ftp command will print a hash mark # for each 1 KBytes transferred. Without the hash mark, you might think the transfer has hung up when it is just slow.

STEP 4: Type cd dist/mxd and press the Return key. You are welcome to explore these support directories; use the dir or ls ftp commands.  Download the README file in each directory for more information.

STEP 5:  For the VXIplug & play instrument driver list file, type cd vxipnp and press the Return key.

STEP 6:  Type get pnpdrver.lis and press the Return key. The file will now be transferred.  If successful, the message will be XXXX bytes transferred in XX seconds.

STEP 7:  When you are finished, type quit and press the Return key. This will log you off from hplvopen.

HP FaxBack: To request the list by Fax, call HP Test & Measurement's FaxBack with a touch-tone phone at 970-679-3031.  Enter the following responses when requested: 1, 1, 4003#, #, your FAX number and #, 1, 2, your voice telephone number and #.

To learn more about HP Test & Measurement's FaxBack service, and request a catalog of what it offers, call 970-679-3031.  Enter the following responses when requested: 2, 2, menu number, 2, your FAX number and #, 1, 2, your voice telephone number and #.


Join the HP VEE E-Mail Forum

An HP VEE electronic mail listserver is available by free registration with pctm@lvld.hp.com.  The listserver allows you to use a specific electronic mail address (released only to subscribers) to share your ideas and experiences about HP VEE with every other subscriber on the list.  It constitutes an informal user group.


Receive the T & M Newsletter

The monthly HP Test & Measurement e-mail newsletter called Exchange is available.  Request a free subscription by sending e-mail to pctm@lvld.hp.com.


VXIplug & play

For information about VXIplug & play, please call HP Test & Measurement's FaxBack service with a touch-tone phone at 970-679-3031.  Enter the following responses when requested: 1, 1, 1080#, #, your FAX number and #, 1, 2, your voice telephone number and #.

To learn how to use VXIplug & play Drivers with HP VEE, see the manual, Using VXIplug & play Drivers with HP VEE.


Printing Help Contents on UNIX

To print Help window contents directly to a printer when running HP VEE on an HP-UX or Solaris workstation, you must configure a printer first. The following procedure creates a .Xpdefaults file in your home directory so that you only need to configure a printer once.

It is vital that you click on Save before and after configuring your new printer as stated in the procedure.

1. If the Help window is not open, click on Help ==> Contents in HP VEE.

2. In the Help window, click on File ==> Printer Setup and immediately click on Save.

3. Change the Output to box to Printer.

4. Click on Install and then click on Add Printer.

5. Highlight the desired printer and click on Define New Port.

6. Select the port, or click on Spooler to add a new port. Click on Dismiss when you are done.

7. Highlight the desired port and click on Add Selected.

8. Click on Dismiss until you exit.

9. Click on Options to change printers.

10. Click on Save to update the .Xpdefaults file with your changes.

11. Click on Apply to have your changes take immediate effect and close the dialog box.


Assigning the OK Object to Keyboard Keys

The HP VEE Reference manual states that you can assign the OK object to the Esc key on your keyboard. This lets you execute the OK object using the Esc key.  The reference also states that you can press Ctrl + C to execute the OK object assigned to Esc.  This is not true. You cannot use Ctrl + C to execute an OK object assigned to the Esc key.  This information is correct in HP VEE Help.

In HP VEE for Solaris, you cannot assign the OK object to the F1 function key, though it is allowed on other systems.


The ID Monitor's Object Menu

The HP VEE Reference and the HP VEE Advanced Programming Techniques manuals state that the ID Monitor object menu contains a selection called Configure Instruments.  This is incorrect since the Configure Instruments selection does not appear on the ID Monitor object menu. To configure instruments when using the ID Monitor, choose I/O ==> Other Instruments... from the HP VEE menu bar. This information is correct in HP VEE Help.


Integer Knob and Real Knob Objects

The objects, Integer Knob and Real Knob, are documented in the HP VEE Help.

To use these objects, click on Data ==> Continuous.


Integer Slider and Real Slider Objects

The Show Digital Display property appears in the Layout group on the General tab for the Integer Slider and Real Slider objects. This property lets you show or hide the digital display on these two objects when editing their properties.

This information is documented in the HP VEE Help. It is not in the HP VEE Reference.

To use these objects, click on Data ==> Continuous.


Memory Leak in Transaction Objects

Under certain conditions, memory leaks occur when using transaction objects in your HP VEE program.  Direct I/O and From File are examples of transaction objects.

The memory leak condition exists only if a transaction object contains two READ transactions that both reference the same output pin, but use different data types.  The following pair of transactions is an example:

READ TEXT x STR
 READ TEXT x REAL

Use one of the following workarounds to prevent the memory leaks:

If you do not need the value of x that results from the first transaction, you may reference a special symbol called null. Include the word null in the first READ transaction instead of using the data output pin name.  The object reads the data and discards it, then executes the next READ transaction.  The transaction object would contain:

READ TEXT null STR
 READ TEXT x REAL

Add a second output pin to accommodate the two pieces of data and have each transaction reference a different data output pin. Such transactions might appear as:

READ TEXT x STR
 READ TEXT y REAL


Memory Leak with Math Expressions

Under certain conditions, memory leaks may occur when using math expressions in Math or AdvMath objects, or in transaction objects that accept math expressions.

Your program may leak memory when a Math or AdvMath object uses an Error pin, and the Error pin fires during the expected course of program execution. An example of this condition is where an expression performs a divide-by-zero operation causing the Error pin to fire.

A similar condition exists in transaction objects that accept math expressions, and use Error pins.  A To File object might contain the transaction

WRITE TEXT a/b EOL

Since math expressions are evaluated in transaction objects the same way as in Math objects, the potential for memory leaks is the same.


Memory Leak in Microsoft Windows

There is a memory leak in Windows 3.x and NT that can manifest itself in HP VEE programs.  This memory leak does not exist in Windows 95.

The memory leak involves the Windows API functions LoadLibrary() and FreeLibrary().  This can be manifested by an HP VEE program that loads and unloads compiled functions.

In HP VEE, the easiest way to show this is to have an Until Break object drive an Import Library object (loading a DLL) followed by a Delete Library object.  After running the program for some amount of time, a system message box appears saying the system service is out of virtual memory, then the operating system immediately terminates the HP VEE process, without giving it the opportunity to exit gracefully.

This can be a problem if you are using HP VEE 3.2 on Windows NT, or HP VEE 3.0/3.1x on Windows 3.x.

Microsoft confirms the memory leak in Windows 3.x, but is not going to fix it.  There is a service pack available to fix the problem on Windows NT 3.51.  It is available from Microsoft's World Wide Web page at:

http://www.microsoft.com/support/

On that page, in the Product View: area, select Windows NT, then select the link to Windows NT 3.51 Service Pack 3.  This implies that you must be running version 3.51 of Windows NT to use this service pack.

Note that you cannot be running the Windows 95 shell on Windows NT when you install this service pack.  Also, the fix does not seem to work if you install the Windows 95 shell onto your Windows NT machine after applying the service pack.

Service Pack 3 does interfere with some applications.  It can disrupt file services with Microsoft Lan Manager servers, and prevent file browsing with Microsoft Office.


Displaying HP VEE Help on HP Series 300

A problem exists where displaying the HP VEE Help window on an HP Series 300 workstation crashes the X server. The problem occurs when starting HP VEE on an HP Series 700 workstation and displaying it (and the Help window) on an HP Series 300. This happens when the S300 is configured with HP-UX 9.03 using a 6-plane display with a 98754 monitor.

A patch is available to fix this problem.  You can find it on the World Wide Web at:

http://nexus.hpl.hp.com/patches

You need to use patch PHSS_5025.


This Glossary defines several terms used to name or describe HP VEE features.


dt0
Activate
1. To send a container to a terminal. See also "Container" and "Terminal."

2. The action that resets the context of a UserObject before it operates each time. See also "Context" and "PreRun."


dt1
Allocate
To initialize an HP VEE array.  Allocation sets the number of dimensions, the number of elements in each dimension, and fills the array with initial data.  For example, a two-dimensional integer array is filled with 0 values by default.


dt2
Array
An HP VEE data shape corresponding to a mathematical array, which contains a grouping of data items (all of the same data type) in one or more dimensions.  The data items are accessed by means of array indexes.  See also "Data Shape."


dt3
Asynchronous
In asynchronous operation, a device operates without a common signal to synchronize events -- the events occur at unspecified times. HP VEE control pins (for example, the Clear pin on a display object) are asynchronous.


dt4
Auto Execute
An option on the object menus of the data constant objects.  If Auto Execute is set, and if the program is not already running, the object operates when its value is edited.  Auto Execute is ignored while the program is running.


dt5
Bitmap
A bit pattern or picture. In HP VEE you can display a bitmap with a Picture object or on any icon.  You can also display a bitmap on the background of a main program panel view, a UserObject panel view, or a UserFunction panel view.


dt6
Breakpoint
A tool for debugging an HP VEE program.  If you set a breakpoint for an object, the program will pause just before that object executes.


dt7
Buffer
An area in memory where information is stored temporarily.


dt8
Button
A graphical object in HP VEE that simulates a momentary switch or selection button, and which appears to pop out from your screen. When you "press" a button in HP VEE, by clicking on it with the mouse, an action occurs.  (May also refer to the left or right mouse button.)


dt9
Cascading Menu
A sub-menu on a pull-down or pop-up menu that provides additional selections.


dt10
Checkbox
A recessed square box on HP VEE menus and dialog boxes that allows you to select a setting.  To select a setting, click on the box and an "x" appears in the box to indicate a selection has been made. To cancel the setting, simply click on the box again.


dt11
Click
To press and release a mouse button.  Clicking usually selects a menu feature or object in the HP VEE window.  See also "Double-Click" and "Drag."


dt12
Clone
A menu item on the HP VEE Edit menu and on object menus that duplicates objects and their interconnections, placing a copy of them in the Paste buffer. Clone copies all the attributes of the cloned objects including pins, parameters, and size.


dt13
Compiled Function
A user-defined function created by dynamically linking a program, written in a programming language such as C, into the HP VEE process. For UNIX systems, the user must create a shared library file and a definition file for the program to be linked.  For Windows, the user must create a DLL (Dynamically Linked Library) file and a definition file. The Import Library object attaches the shared library or DLL to the HP VEE process and parses the definition file declarations. The Compiled Function can then be called with the Call Function object, or from certain expressions. See also "UserFunction" and "Remote Function."


dt14
Component
A single instrument function or measurement value in an HP VEE instrument panel or component driver.  For example, a voltmeter driver contains components that record the range, trigger source, and latest reading.  See also "Component Driver," "Driver Files," "State," and "Instrument Panel."


dt15
Component Driver
An instrument control object that reads and writes values to components you specifically select.  Use component drivers to control an instrument using a driver by setting the values of only a few components at a time. (Component drivers do not support coupling.)


dt16
Composite Data Type
A data type that has an associated shape. See also "Data Shape" and "Data Type."


dt17
Container
See "Data Container."


dt18
Context
A level of the work area that can contain other levels of work areas (such as nested UserObjects), but is independent of them.


dt19
Control Pin
An asynchronous input pin that transmits data to the object without waiting for the object's other input pins to contain data.  For example, control pins in HP VEE are commonly used to clear or autoscale a display.


dt20
Coupling
The inter-relationship of certain functions in an instrument. If, in an instrument panel, functions A and B are coupled, changing the value of A may automatically change the value of B, even though you do not change B explicitly.


dt21
Cursor
A pointer (caret) in an entry field that shows where alphanumeric data will appear when you type information from the keyboard.


dt22
Cut Buffer
The buffer that holds objects that you cut or copy.  You can then paste the object back into the work area with Edit ==> Paste


dt23
Data Container
The data package that is transmitted over lines and is processed by objects. Each data container contains data and the data type, data shape, and mappings (if any).


dt24
Data Field
The field within a transaction specification in which you specify either the expression to be written (WRITE transactions), or the variable to receive data that is read (READ transactions).  See also "Transactions."


dt25
Data Flow
The flow of data through and between HP VEE objects.  Data flows from left to right through objects, but an object does not execute until it has data on all of its data input pins.  Data is propagated from the data output pin of one object to the data input pin of the next object. Data flow is the chief factor that determines the execution of an HP VEE program.


dt26
Data Input Pin
A connection point on the left side of an object that permits data to flow into the object.


dt27
Data Output Pin
A connection point on the right side of an object that propagates data flow to the next object and passes the results of the first object's operation on to the next object.


dt28
DataSet
A collection of "Record" containers saved into a file for later retrieval. The To DataSet object collects Record data on its input and writes that data to a named file (the DataSet). The From DataSet object retrieves Record data from the named file (the DataSet) and outputs that data as Record containers on its Rec output pin. See also "Record."


dt29
Data Shape
Each data container has both a shape and type.  The data shape can be either a scalar or an array (Array 1D, Array 2D, and so forth).


dt30
Data Type
Each data container has both a type and shape.  HP VEE supports several data types including Text, Real, and Integer.


dt31
DDE (Dynamic Data Exchange)
A communication mechanism that allows HP VEE for Windows to communicate with other Windows applications that support DDE.  HP VEE can send data to, and receive data from, such applications.  Also, HP VEE can execute commands in another application.  Examples of Windows applications that support DDE are Microsoft Excel and Microsoft Word for Windows.


dt32
Default
A value or action that HP VEE automatically selects.  For example, HP VEE uses certain default colors and fonts, which you can change using the Default Preferences dialog box.


dt33
Default Button
The button in a dialog box that is activated by default if Enter or Return is pressed, or the selection is double-clicked. The label of the default button is in bold text.


dt34
Demote
To convert from a data type that contains more information to one that contains less information. See also "Data Type" and "Promote."


dt35
Detail View
The view of an HP VEE program that shows all the objects and the lines between them.


dt36
Device
An instrument attached to or plugged into an HP-IB, RS-232, GPIO, or VXI interface.  Specific HP VEE objects such as the Direct I/O object send and receive information to a device.


dt37
Device Driver
See "Interface Driver."


dt38
Dialog Box
A secondary window displayed when HP VEE requires information from you before it can continue.  For example, a dialog box may contain a list of files from which you may choose.


dt39
Direct I/O Object
An instrument control object that allows HP VEE to directly control an instrument without using an instrument driver.


dt40
DLL (Dynamically Linked Library)
A collection of functions written in C that can be called from HP VEE for Windows.  DLLs can be created by experienced C programmers using tools available from Microsoft and Borland.  DLLs in the Windows environment are similar to shared libraries in the UNIX environment.


dt41
Double-Click
To press and release a mouse button twice in rapid succession. Double-clicking is usually a short-cut to selecting and performing an action.  For example, double-clicking on a file name from File ==> Open will select the file and open it.


dt42
Drag
To press and continue to hold down a mouse button while moving the mouse.  Dragging moves something (for example, an object or scroll bar).


dt43
Driver
Software that allows a computer to communicate with other software or hardware.  See also "Component Driver," "Driver Files," "Interface Driver," and "Instrument Panel."


dt44
Driver Files
A set of files included with HP VEE that contains the information needed to create instrument panel and component driver objects for instrument control.


dt45
Drop-Down List
A list of selections obtained by clicking on the arrow to the right of a selection field.


dt46
Entry Field
A field that is typically part of a dialog box or an editable object, and which is used for data entry.  An entry field is editable when its background is white.


dt47
Error Message
Information that appears in an error dialog box, explaining that a problem has occurred.


dt48
Error Pin
A pin that traps any errors that occur in an object.  Instead of getting an error message, the error number is output on the error pin. When an error is generated, the data output pins are not activated.


dt49
Execute
The action of a program, or parts of a program, running.


dt50
Execution Flow
The order in which objects operate. See also "Data Flow."


dt51
Expression
An equation in an entry field that may contain input terminal names, global variable names, Math and AdvMath functions, and user-defined functions.  An expression is evaluated at run-time.  Expressions are allowed in Formula, If/Then/Else, Get Values, Get Field, Set Field, Sequencer, and Dialog Box objects, and in I/O transaction objects.


dt52
Feedback
A continuous thread path of sequence and/or data lines that uses values from the previous execution to change values in the current execution.


dt53
Flow
See "Data Flow" and "Execution Flow."


dt54
Font
HP VEE allows you to change the "font" -- the size and style of type -- used to display text for various HP VEE objects, titles, and so forth.  Each platform that HP VEE programs can run on (Windows, HP-UX, and Solaris) provides a different set of system fonts. Therefore, a program may appear slightly different on each platform.


dt55
Function
The name and action of objects where the output is a function of the input.  These objects are located under Math or AdvMath  menus and may be used in the Formula object. For example sqrt(x) is a function; + is not.


dt56
Global Variable
A named variable that is set globally, and which can be used by name in any context of an HP VEE program. For example, a global variable can be set with Set Global in the root context of the program, and can be accessed by name with Get Global or from certain expressions within the context of a UserObject. However, a local variable with the same name as the global variable takes precedence in an expression.


dt57
Grayed Feature
A menu feature that is displayed in gray rather than black, indicating that the feature is not active or not available.  Dialog box items such as buttons, checkboxes, or radio buttons may also be grayed.


dt58
Group Window
A group window in Microsoft Windows is a window that contains icons for a group of applications.  Each icon starts an application in the group.


dt59
Highlight
1. The colored band or shadow around an object that provides a visual cue to the status of the object.

2. The change of color on a menu feature that indicates you are pointing to that feature.


dt60
Host
To begin a thread or subthread.  For example, the subthread that is hosted by For Count is the subthread that iterates.


dt61
HP-UX
Hewlett-Packard Company's enhanced version of the UNIX operating system.


dt62
Hypertext
A system of linking topics so that you can jump to a related topic when you want more information.  In online help systems, typically hypertext links are designated with underlined text.  When you click on such text, related information is presented.


dt63
Icon
1. A small, graphical representation of an HP VEE object, such as the representation of an instrument, a control, or a display.

2. A small, graphical representation of an application, file, or folder in the Microsoft Windows operating systems.  See "Group Window."


dt64
Instrument Driver
See "Driver Files," "Component Driver," and "Instrument Panel."


dt65
Instrument Panel
An instrument control object that forces all the function settings in the corresponding physical instrument to match the settings in the control panel displayed in the open view of the object.


dt66
Interface
HP-IB, RS-232, GPIO, and VXI are referred to as interfaces used for I/O. Specific HP VEE objects, such as the Interface Event object can only send commands to an interface.


dt67
Interface Driver
Software that allows a computer to communicate with a hardware interface, such as HP-IB or RS-232.  Also called device driver in the UNIX operating system, interface drivers are configured into the kernel of the operating system.


dt68
Iterate
To repeat (loop) part of an HP VEE program using one of the Repeat objects (for example, For Count).


dt69
Library
A collection of often-used objects or programs grouped together for easy access.


dt70
Line
A link between two objects in HP VEE that transmits data containers to be processed.  See also "Subthread" and "Thread."


dt71
Loop
To repeat part of an HP VEE program using one of the Repeat objects (for example, For Count).


dt72
Main Menu
The menus located in the HP VEE menu bar.  To open a main menu, click on the appropriate menu title in the menu bar.  You can also use accelerators.  For example, on the PC use Alt+F to open the File menu.  On an HP Series 700 workstation, use Extend Char+F to do the same thing.


dt73
Main Work Area
The area where you create a program. The main work area is the parent context of all other contexts.


dt74
Mapping
A set of continuous or discrete values that express the independent variables for an array (for example, the time span of a waveform).


dt75
Maximize
To enlarge a UserObject or a window to fill the available space using a maximize button.  For a UserObject, this resizes the UserObject to occupy all of the HP VEE work area.


dt76
Maximize Button
A button on a UserObject, or the HP VEE window, that makes the UserObject, or the HP VEE window, occupy all of the available screen space.


dt77
Menu
A collection of features that are presented in a list. See also "Cascading Menu," "Main Menu," "Object Menu," "Pop-Up Menu," and "Pull-Down Menu."


dt78
Menu Bar
The bar at the top of the HP VEE window that displays the titles of the pull-down, main menus, from which you select features.


dt79
Menu Title
The name of a menu within the HP VEE menu bar. For example, File or Edit.


dt80
Minimize
1. To reduce an open view of an object to its smallest size -- an icon.

2. To reduce a window to its smallest size --  an icon.


dt81
Minimize Button
A button on an object, or the HP VEE window, that iconifies the object, or the HP VEE window.


dt82
Mouse
A pointing device that you move across a surface to move a pointer within the HP VEE window.


dt83
Mouse Button
One of the buttons on a mouse that you can click or double-click to perform a particular action with the corresponding pointer in the HP VEE window.


dt84
Network
A group of computers and peripherals linked together to allow the sharing of data and work loads.


dt85
Object
A graphical representation of an element in a program, such as an instrument, control, display, or mathematical operator. An object is placed in the work area and connected to other objects to create a program.


dt86
Object Menu
The menu associated with an object that contains features that operate on the object (for example, moving, sizing, copying, and deleting the object).  To obtain the object menu, click on the object menu button at the upper-left corner of the object, or click the right mouse button with the pointer over the object.


dt87
Object Menu Button
The button at the upper-left corner of an open view object, which displays the object menu when you click on it.


dt88
Open
To start an action or begin working with a text, data, or graphics file. When you select Open from HP VEE, a program is loaded into the work area.


dt89
Open View
The representation of an HP VEE object that is more detailed than an icon.  Most object open views have fields that allow you to modify the operation of the object.


dt90
Operate
The action of an object processing data and outputting a result. An object operates when its data and sequence input pins have been activated. See "Activate."


dt91
Operator Interface
The interface that the HP VEE programmer creates to allow the operator (end-user) to control the program.  A typical operator interface involves panel views and dialog boxes.


dt92
Outline Box
A box that represents the outer edges of an object or set of objects and indicates where the object(s) will be placed in the work area.


dt93
Palette
The set of possible colors available in HP VEE.


dt94
Panel View
The view of an HP VEE program, or of a UserObject, that shows only those objects needed for the user to run the program and view the resulting data.  You can use panel views to create an operator interface for your program.


dt95
Pin
An external connection point on an object to which you can attach a line.


dt96
Pointer
The graphical image that maps to the movement of the mouse. The pointer allows you to make selections and provides you feedback on a particular process underway.  HP VEE has pointers of different shapes that correspond to process modes, such as an arrow, crosshairs, and hourglass.


dt97
Pop-Up Menu
A menu that is raised by clicking the right mouse button. For example, you can raise the Edit menu by clicking the right mouse button in an empty area within the work area.  Or you can raise the object menu by clicking the right mouse button on an inactive area of an object.


dt98
PostRun
The set of actions that are performed when the program is stopped.


dt99
Preferences
Preferences are attributes of the HP VEE environment that you can change using the Edit Default Preferences button on the toolbar, or the menu File ==> Edit Default Preferences.  For example, you can change the default colors, fonts, and number format.


dt100
PreRun
The set of actions that resets the program and checks for errors before the program starts to run.


dt101
Program
In HP VEE, a graphical program that consists of a set of objects connected with lines.  The program typically represents a solution to an engineering problem.


dt102
Promote
To convert from a data type that contains less information to one that contains more information. See also "Data Type" and "Demote."


dt103
Propagation
The rules that objects and programs follow when they operate or run. See also "Data Flow."


dt104
Properties
Object properties are attributes of HP VEE objects that you can change using Edit Properties on the object menu. Work area properties are attributes of the HP VEE work area that you can change using File ==> Edit Properties.  Properties include colors, fonts, and titles.


dt105
Pterodactyl
Any of various extinct flying reptiles of the order Pterosauria of the Jurassic and Cretaceous periods.  Pterodactyl are characterized by wings consisting of a flap of skin supported by the very long fourth digit on each front leg.


dt106
Pull-Down Menu
A menu that is pulled down from the menu bar when you position the pointer over a menu title and click the left mouse button.


dt107
Radio Button
A diamond-shaped button in HP VEE dialog boxes that allows you to select a setting that is mutually exclusive with other radio buttons in that dialog box.  To select a setting, click on the radio button. To remove the setting, click on another radio button in the same dialog box.


dt108
Record
An HP VEE data type that has named data fields which can contain multiple values.  Records are typically used to group related articles of information.  However, each record field can contain a different data type. Each field can contain another Record container, a Scalar, or an Array. The Record data type has the highest precedence of all HP VEE data types. However, data cannot be converted to and from the Record data type through the automatic promotion/demotion process. Records must be built/unbuilt using the Build Record and UnBuild Record objects.


dt109
Remote Function
A UserFunction running on a remote host computer, which is callable from the local host.  (Remote functions are supported only on UNIX systems.) The Import Library object starts the process on the remote host and loads the Remote File into the HP VEE process on the local host. You can then call the Remote Function with the Call Function object, or from certain expressions. See also "UserFunction" and "Compiled Function."


dt110
Restore
To return a minimized window or an icon to its full size as a window or open view by double-clicking on it.


dt111
Run
To start the objects on a program or thread operating.


dt112
Save
To write a file to a storage device, such as a hard disk.


dt113
Scalar
A data shape that contains a single value. See also "Data Shape."


dt114
Schema
The structure or framework used to define a data record.  This includes each field's name, type, shape (and dimension sizes), and mapping.


dt115
Screen Dump
A graphical printout of a window or part of a window.


dt116
Scroll
The act of using a scroll bar either to move through a list of data files or other choices in a dialog box, or to pan the work area.


dt117
Scroll Arrow
An arrow that, when clicked on, scrolls through a list of data files or other choices in a dialog box, or moves the work area.


dt118
Scroll Bar
A rectangular bar that, when dragged, scrolls through a list of data files or other choices in a dialog box, or moves the work area.


dt119
Select
To choose an object, an action to be performed, or a menu item.  Usually you select by clicking with your mouse.


dt120
Select Code
A number used to identify the logical address of a hardware interface.  For example, the factory default select code for most HP-IB interfaces is 7.


dt121
Selection
1. A menu selection (feature).

2. An object or action you have selected in the HP VEE window.


dt122
Selection Field
A field in an object or dialog box that allows you to select choices from a drop-down list.


dt123
Sequence Input Pin
The top pin of an object.  When connected, execution of the object is held off until the pin receives a container (is "pinged").


dt124
Sequence Output Pin
The bottom pin of an object.  When connected, this output pin is activated when the object and all data propagation from that object finishes executing.


dt125
Sequencer
An object that controls execution flow through a series of sequence transactions, each of which may call a "UserFunction," "Compiled Function," or "Remote Function." The sequencer is normally used to perform a series of tests by specifying a series of sequence transactions.


dt126
Shared Library
A collection of functions, written in a programming language such as C, that can be called from HP VEE running on a UNIX system.  Shared libraries can be created by experienced programmers.  Shared libraries in the UNIX environment are similar to DLLs in the Windows environment.


dt127
Shell
In a UNIX system, the program that interfaces between the user and the operating system.


dt128
Shell Prompt
In a UNIX system, the character or characters that denote the place where you type commands while at the operating system shell level.  The prompt you see displayed (for example, $) depends upon the type of shell you are running.


dt129
Sleep
An object sleeps during execution when it is waiting for an operation or time interval to complete, or for an event to occur.  A sleeping object will allow other parallel threads to run concurrently.  Once the event, time interval, or operation occurs, the object will execute, allowing execution to continue.


dt130
Startup Directory
The directory from which you start HP VEE on a UNIX system. This directory determines the default paths for most file actions including Save and Open.  In HP VEE for Windows, this is referred to as the "working directory."


dt131
State
A particular set of values for all of the components related to an HP VEE instrument panel, which represents the measurement state of an instrument.  For example, a digital multimeter uses one state for high-speed voltage readings and a different state for high-precision resistance measurements.  See also "Instrument Panel."


dt132
Status Field
A field displaying information that cannot be edited.  A status field looks like an entry field, but has a gray background.


dt133
Step
The action of operating an HP VEE program one object at a time (to debug the program).  The object that will operate next is indicated by a yellow highlight.


dt134
Terminal
The internal representation of a pin that displays information about the pin and the data container held by the pin.  Double-click on a terminal to view the container information.


dt135
Terminal Area
The areas on the left and right sides of an object where terminals are displayed when Show Terminals is active for that object.  The input terminal area is on the left, and the output terminal area is on the right side of an object.


dt136
Thread
A set of objects connected by solid lines in an HP VEE program. A program with multiple threads can run all threads simultaneously.


dt137
Title Bar
The rectangular bar at the top of the open view of an object or window, which shows the title of the object or window.  You can turn off an object title bar using Edit Properties on the object menu.


dt138
Toolbar
The rectangular bar at the top of the HP VEE window which provides buttons for quick access to frequently used commands. The buttons run commands from the File, Edit, and Debug menus. The toolbar changes when you switch an HP VEE program between Detail View and Panel View.


dt139
Transaction
The specifications for input and output (I/O) used by certain objects in HP VEE.  These include the To File, From File, Direct I/O, and Sequencer objects.  Transactions appear as phrases listed in the open view of these objects.


dt140
Trig Mode
The Trig Mode is an attribute that determines whether trigonometric values are displayed in degrees, radians, or gradians.  Note that HP VEE automatically converts trigonometric values to radians for calculation purposes.


dt141
User-Defined Function
A function that you can create, and then call in an HP VEE program. You can create three types of user-defined functions that can be called using the Call Function object, or from certain expressions.  See also "UserFunction," "Compiled Function," and "Remote Function."


dt142
UserFunction
A user-defined function created from a "UserObject" by executing Make UserFunction. The UserFunction exists in the background of the HP VEE process, but provides the same functionality as the original UserObject. You can call a UserFunction with the Call Function object, or from certain expressions. A UserFunction can be created and called locally, or it can be saved in a library and imported into an HP VEE program with Import Library. See also "Compiled Function," "Remote Function," and "UserObject."


dt143
UserObject
An object that can encapsulate a group of objects to perform a particular purpose within a program.  A UserObject allows you to use top-down design techniques when building a program, and to build user-defined objects that can be saved in a library and reused.


dt144
View
See "Detail View," "Icon," "Open View," and "Panel View."


dt145
Wait
See Sleep.


dt146
Window
A rectangular area on the screen that contains a particular application program, such as HP VEE.


dt147
Work Area
The area within the HP VEE window or the open view of a UserObject where you group objects together.  When you Open a program, it is loaded into the main work area.


dt148
Working Directory
The directory in which HP VEE for Windows runs (C:\Program Files\Hewlett-Packard\VEE 3.2 is the default). On UNIX systems this corresponds to the "startup directory."


dt149
X Window System (X11)
An industry-standard windowing system used on UNIX computer systems.


dt150
X11 Resources
A file or set of files that define your X11 environment in a UNIX system.


dt151
XEQ Pin
A pin that forces the operation of the object, even if the data or sequence input pins have not been activated.  See also "Control Pin," "Data Input Pin," and "Sequence Input Pin."


Contents for HP VEE
Using HP VEE

These topics describe procedures to help you use HP VEE.  They are adapted from the How to Use HP VEE manual.

The Basics
Working with Data
Creating and Using Data Files
Controlling Instruments
Displaying Data
Printing and Plotting Techniques
Creating Custom Objects and Functions
Debugging and Optimizing an HP VEE Program


The Basics

These topics cover some general tasks that most HP VEE programmers do routinely.

Starting HP VEE
 To Start HP VEE for Windows(R)
 To Start HP VEE on a UNIX(R) Workstation
 To Start HP VEE with Command-Line Options

Finding Files
 To Open an HP VEE Program File
 To Open an Example Program File
 To Merge Objects and Programs from Library Files

Controlling Program Flow
 To Start an HP VEE Program
 To Branch within an HP VEE Program
 To Loop Part of an HP VEE Program
 To Stop an HP VEE Program
 Control Flow in HP VEE (tutorial)

Setting Colors, Fonts, and Titles
 To Change Default Colors
 To Change Colors for the Work Area
 To Change Colors for an Object
 To Change Default Fonts
 To Change Fonts for an Object
 To Change an Object or Work Area Title

Using the Keyboard Shortcuts


To Start HP VEE for Windows

You can start multiple copies of HP VEE running on the same PC.  However, if two copies of HP VEE attempt to access the same system resource (for example, an I/O interface) at the same time, unexpected results may occur.

Using the Windows 95 Start Button

1. Click the Start button, and then point to Programs ==> HP VEE 3.2.

2. Click on HP VEE.

The HP VEE 3.2 group also contains Instrument Finder, Latest Information, and Demo.  Click on Instrument Finder to locate all interfaces and instruments connected to your computer.  Click on Latest Information for notes about product features and other information that are not included in the manuals or other documentation.  Click on Demo to see a demonstration of HP VEE running an example program.

Starting from the Windows 95 Desktop

1. Follow the directions in Windows Help to put a shortcut for the HP VEE application file on the desktop using Windows Explorer.

HP VEE is installed in C:\Program Files\Hewlett-Packard\VEE 3.2\vee.exe, unless you installed it in another directory.

2. Once the shortcut is in place, double-click on the shortcut icon to start HP VEE.

Starting from the Group Window in Windows NT

1. Locate the HP VEE group window.

2. Double-click on the HP VEE icon.

The HP VEE group also contains icons for Instrument Finder, Latest Information, Demo, and Uninstall HP VEE 3.2.  Double-click on Instrument Finder to locate all interfaces and instruments connected to your computer.  Double-click on Latest Information for notes about product features and other information that are not included in the manuals or other documentation.  Double-click on Demo to see a demonstration of HP VEE running an example program.  Use Uninstall to remove HP VEE from your computer.

Starting from the Program Manager in Windows NT

1. In the Program Manager window, pull down the File menu and select Run.

2. Type C:\Program Files\Hewlett-Packard\VEE 3.2\vee.exe and press Enter.  The command must contain quotation marks.

If you have installed HP VEE for Windows in another directory, be sure to specify the correct directory.

See also

Contents:  The Basics


To Start HP VEE on a UNIX Workstation

To start HP VEE on a UNIX workstation (HP-UX or Solaris)

1. Go to the shell prompt in a window under HP VUE, X11, or OpenWindows.

2. Type veetest and press Return.

It doesn't matter what directory you are in because the HP VEE installation links veetest to the executable.

If you are using HP VUE, you can create a push button or other front panel control to start HP VEE.  Refer to "Defining Front Panel Controls" in the HP Visual User Environment 3.0 User's Guide for further information.

There are several HP VEE utility programs that you can also start from the shell prompt.  Refer to the "HP VEE Utilities" appendix in HP VEE Advanced Programming Techniques for further information.

You can start multiple copies of HP VEE running on the same workstation.  However, if two copies of HP VEE attempt to access the same system resource (for example, an I/O interface) at the same time, unexpected results may occur.

See also

Contents:  The Basics


To Start HP VEE with Command Line Options
To Start HP VEE with Command-Line Options

HP VEE provides several command-line options that you can use to start HP VEE in a special way.  For example, you can specify an HP VEE program file to load when HP VEE starts.  Also, you can choose to load and run an HP VEE program on startup.

Command-line options are case-sensitive.  For example, you cannot substitute -R for -r.

To start HP VEE for Windows 95 using the command-line options

1. Click on the Windows Start button, and then click on Run...

2. Type vee, followed by the desired option(s), and press Enter.

or

1. Open an MS-DOS window.

2. Type start vee, followed by the desired option(s), and press Enter.

Scroll down through this topic for available options and examples.

Tip

If you put a shortcut for HP VEE on the desktop, you can modify the shortcuts properties to include command-line options.

To start HP VEE for Windows NT using the command-line options

1. Pull down File ==> Run in the Program Manager window.

2. Type C:\Program Files\Hewlett-Packard\VEE 3.2\vee.exe, followed by the desired option(s), and press Enter.  The command must contain quotation marks.

If you have installed HP VEE for Windows in another directory, be sure to specify the correct directory.

or

1. Open an MS-DOS window.

2. Change directories to C:\Program Files\Hewlett-Packard\VEE 3.2.  The command must contain quotation marks.  If you have installed HP VEE for Windows in another directory, be sure to specify the correct directory.

3. Type start vee, followed by the desired option(s),  and press Enter.

Scroll down through this topic for available options and examples.

To start HP VEE for UNIX using the command-line options

1. Go to the shell prompt in a window under HP VUE, X11, or OpenWindows.

2. Type veetest, followed by the desired option(s), and press Return.

Scroll down through this topic for available options and examples.

Available Options

Some command-line options apply to both HP VEE for Windows and HP VEE for the UNIX workstation; others apply only to UNIX.  The following two lists describe the options:

Options for Windows and UNIX

Descriptions

filename

HP VEE is started and the HP VEE program specified by filename is loaded into the HP VEE work area.  For Windows, if filename contains spaces, then the entire file name, including the path, must be quoted.

-r filename

The -r option starts HP VEE and runs the HP VEE program specified by filename.  When the program finishes running, HP VEE exits immediately.  However, if an error occurs, an error message is displayed before HP VEE exits.  If you do not specify a file name, HP VEE ignores the -r option.  For Windows, if filename contains spaces, then the entire file name, including the path, must be quoted.

-noerrdisp

This option can be used in conjunction with -r.  If used with -r, and the specified program does not run due to an error, HP VEE exits immediately without displaying an error message.

-d directory

The -d option starts HP VEE and uses the related files, such as instrument drivers, located in the specified directory instead of the default HP VEE installation directory.

-iconic

The -iconic option starts HP VEE as an icon instead of a window.  Double-click on the icon to open it to a window.

-notoolbar

This option can be used in conjunction with -r to hide the HP VEE toolbar while the program is running.

-idmonitor

This option starts a copy of HP VEE that contains only the ID Monitor and the Bus I/O Monitor.

-veeio path to filename

HP VEE lets you have multiple I/O configuration files (VEE.IO on Windows or .veeio on UNIX).  This option lets you specify the one you want to use when you start HP VEE.

-nologo

This option suppresses the startup information that appears before HP VEE starts running.  On Windows, the startup information box does not appear.  On UNIX, the startup message does not appear in the terminal window.

-geometry widthXheight+/-xoffset+/-yoffset
or to use default window size
-geometry +/-xoffset+/-yoffset

Specifies an initial window geometry to be used instead of the default geometry.  Geometry values are in pixels.  Positive offset values position the top-left corner of the window relative to the top-left corner of the screen.  Negative offset values position the bottom-right corner of the window relative to the bottom-right corner of the screen.

The offset +0+0 is the top-left corner of your screen.

Example:   -geometry 640X480+20+20 starts HP VEE in a window that is 640 pixels wide and 480 pixels high, that is placed 20 pixels to the right and 20 pixels down from the top-left corner of the screen.

Options for UNIX only

Descriptions

-display Xservername

Specifies the X Windows display server to use instead of the default X display.  Using this option you can have HP VEE execute on one workstation, but use the keyboard and display of another workstation.  An example of this command is:

veetest -display myWorkstation:0.0

-help

Shows the HP VEE command line options.  (Not to be confused with the HP VEE online help system, which is launched from within HP VEE.)

-name name

The -name option starts HP VEE and sets the X Window title to name instead of HP VEE-name.  HP VEE uses name to specify the X11 resource search key instead of using Vee (the default application class) as the search key.  Refer to the "Configuring HP VEE" appendix in HP VEE Advanced Programming Techniques for further information.

Example:  Starting HP VEE for Windows 95 Using  -r filename

To start HP VEE for Windows and automatically run the program myprog.vee:

1. Click on the Windows Start button, and then click on Run...

2. Type vee -r myprog.vee and press Enter.  Surround file names with quotation marks if they contain spaces.

or

1. Open an MS-DOS window.

2. Type start vee -r myprog.vee and press Enter.  Specify a path if the program is not in the current directory.  Surround file names with quotation marks if they contain spaces.

Example:  Starting HP VEE for UNIX Using  -r filename

To start HP VEE for UNIX and automatically run the program myprog:

1. Go to the shell prompt in a window under HP VUE, X11, or OpenWindows.

2. Type veetest  -r  myprog and press Return.

See also

Contents:  The Basics


To Open an HP VEE Program File

HP VEE for Windows

1. Click the Open button on the HP VEE toolbar.  The Open File dialog box appears.

The Open File dialog box looks for program files to open in the default directory C:\My Documents\VEE Programs.  (By default, clicking the Save button saves your programs in that directory.)

  Open button

  Save button

2. Click on the file name of the program file that you want to open, and then click on Open.  Or enter the name of a file in the File name type-in field and click on Open.

Tip

If some files in the directory are not visible, such as .DLL files, you may need to change the View Options in Windows Explorer.  Open Windows Explorer, and click on View ==> Options.  On the View tab, click on Show all files.

HP VEE for UNIX

1. Click the Open button on the HP VEE toolbar.  The Open File dialog box appears.

The Open File dialog box looks for program files to open in the directory in which you started HP VEE.  For example, if you started HP VEE by executing veetest in the directory /users/jim/myprogs/, that is where the Open File dialog box will look for program files.  (By default, clicking the Save button saves your programs in that directory.)

  Open button

  Save button

2. Click on the file name of the program file that you want to open, and then click on OK.  Or enter the name of a file in the type-in field and click on OK.

If you want to change directories, click on a directory (for example, ../) to change the path, or enter a new path in the type-in field.

Shortcuts

Press CTRL+O on the keyboard to open a file.

Press CTRL+S on the keyboard to save a file.

Press CTRL+W on the keyboard to save a new file.

Using the Keyboard Shortcuts

See also

Contents:  The Basics


To Open an Example Program File

HP VEE for Windows

Several example programs are provided with HP VEE.  These examples are found in subdirectories under C:\Program Files\Hewlett-Packard\VEE 3.2\examples.  For instance, the examples from the manuals are found in the subdirectory:

C:\Program Files\Hewlett-Packard\VEE 3.2\examples\manual

You can open any program file, including an example, by clicking on the Open button on the HP VEE toolbar.  However, for your convenience you can open an example program file from Help:

1. Select Help ==> Open Example.  The Open File dialog box appears, but is "targeted" on the examples directory.

2. Double-click a subdirectory name.

3. Click on the file name of the example file you want to open, then click on Open.

HP VEE for UNIX

Several example programs are provided with HP VEE.  These examples are found in subdirectories under /usr/lib/veetest/examples/ on HP-UX 9.x, or under /opt/veetest/examples on HP-UX 10.x and Solaris. For instance, the examples from the  manuals are found in the subdirectory:

/usr/lib/veetest/examples/manual/ (HP-UX 9.x)

/opt/veetest/examples/manual/ (HP-UX 10.x and Solaris)

You can open any program file, including an example, by clicking the Open button on the HP VEE toolbar.  However, for your convenience you can open an example program file from Help:

1. Select Help ==> Open Example.  The Open File dialog box appears, but is "targeted" on the examples directory.

2. Select a subdirectory name.

3. Click on the file name of the example file you want to open, then click on OK.

Shortcuts

Press CTRL+O on the keyboard to open a file.

Using the Keyboard Shortcuts

See also

Contents:  The Basics


To Merge Objects and Programs from Library Files

HP VEE provides several library objects (pre-built UserObjects) and complete library programs that you can merge into your own HP VEE program.

HP VEE for Windows

1. Select File ==> Merge.  The Merge File dialog box appears.

By default, the Merge File dialog box looks for library objects and programs in the directory C:\ Program Files\Hewlett-Packard\VEE 3.2\lib.  You can also merge any HP VEE program file into the work area by changing directories.

2. Click on the file name of the library file that you want to open, and then click on Open.  The object is merged into your workspace.  You can connect it into your program like any HP VEE object.

Shortcuts

Using the Keyboard Shortcuts

HP VEE for UNIX

1. Select File ==> Merge.  The Merge File dialog box appears.

By default, the Merge File dialog box looks for files to open in the directory /usr/lib/veetest/lib/ on HP-UX 9.x, or in /opt/veetest/lib/ on HP-UX 10.x and Solaris.  However, you can change directories just as with the File Open dialog box.  You can merge any HP VEE program file into the HP VEE work area.

2. Click on the file name of the library object or program that you want to merge, and then click on OK.  The object is merged into the work area and you can connect it into your program like any other HP VEE object.

If you want to change directories, click on a directory (for example, ../) to change the path, or enter a new path in the type-in field.

Shortcuts

Using the Keyboard Shortcuts

See also

Contents:  The Basics


To Start an HP VEE Program

To start an entire HP VEE program, including all threads within the program, click the Run button on the HP VEE toolbar.

 Run button

All threads within the work area will start, whether or not they have a Start object.

If you want to be able to start an individual thread in a program independently, add a Start object (under the Flow menu) to the thread.  When you click on a Start object button, only the thread that contains the Start object will start.

If a thread employs feedback, the thread must contain a Start object to indicate where propagation is to begin.  This is the only case where a Start object is required.  (If you run a program that includes a thread with feedback, but no Start object, an error is reported.)

Example:  Two threads, each with a Start object

If you want to run just the top thread, click on its Start button. The thread runs, displaying "Now is the time" in the AlphaNumeric object, as shown.  However, the bottom thread does not run.

If you click on Start in the bottom thread, it runs, but the top thread does not.

If you click on the Run button, both threads of the program will run.  In each thread, propagation begins at the Start object.

Shortcuts

Press CTRL+G on the keyboard to run an HP VEE program.

Using the Keyboard Shortcuts

See also

Control Flow in HP VEE (tutorial)

Contents:  The Basics


To Branch within an HP VEE Program

To branch the flow of execution within an HP VEE program, use the If/Then/Else or Conditional ==> objects found under the Flow menu.

To set up a conditional branch using the If/Then/Else object

1. Add an If/Then/Else object (from the Flow menu) to the work area.

2. Modify the conditional test expression as desired.  For example, to test values to see if they are in the range "greater than or equal to 0.5 and less than 0.6", use the expression .5<=A AND A<.6. (You can use any of the logical or relational math operators supported by HP VEE in the expression field of an If/Then/Else object.)

3. Add additional data input terminals if required by your new expression. By default, there is only one data input terminal (A).  If you want to test a value A against a value B (for example, A<=B), add a data input terminal named B.

4. Connect the sources of data to be tested to the data input terminals.

5. Finally, connect the Then and Else output terminals to activate different objects or subthreads in your program, as desired.

Example:  Using If/Then/Else

The value output by the Random Number object is tested against the expression .5<=A AND A<.6.  If the value is in the specified range, the Then output terminal activates the top AlphaNumeric object, which displays the random number as shown in the above figure.  If the value is not in the specified range, the Else output terminal activates the bottom AlphaNumeric object, which displays Try Again.

To Use the Conditional Objects

The objects under Flow ==> Conditional ==> (If A == B, If A ~= B, If A != B, If A < B, If A > B, If A <= B, and If A >= B) are really pre-defined If/Then/Else objects.  Each has two data input terminals (A and B) and performs a pre-defined test comparing the value of A to the value of B. The Then and Else output terminals work just as in the If/Then/Else object.  In fact, you can add or delete terminals and change the expression just as you would in an If/Then/Else object.  For example, you could add a C terminal to the If A == B object and change the test to A == B OR B <= C.

Example:  Adding Else If Conditions

The If/Then/Else and Conditional objects have another feature -- the Else If condition.  You can add one or more Else If conditions (object menu ==> Add Else/If). Each Else If condition is tested if the previous condition is not met.  For example, the following If/Then/Else object has two Else If conditions:

This object works as follows:

1. The expression 0<=A AND A<10 is evaluated, and the result is output on the Then terminal if the expression is true.  (An expression is true if it evaluates to a non-zero value.)

2. Otherwise, the expression A<20 is evaluated, and the result is output on the corresponding Else If terminal if the expression is true.

3. If A<20 is false, the expression A<30 is evaluated, and the result is output on the corresponding Else If terminal if A<30 is true.  If false, the result is output on the Else terminal.

See also

Control Flow in HP VEE (tutorial)

Using the Keyboard Shortcuts

Contents:  The Basics


To Loop Part of an HP VEE Program

You can loop (repeat) part of your HP VEE program using one of the repeat objects described in the following list.  You can include the Next and Break objects in a loop "hosted" by any of these objects.  These are all under the Flow ==> Repeat menu.

Continue to scroll down for programming examples.

Repeat Objects

Operation Descriptions

For Count

Outputs the count, starting with 0, repeating the number of times specified in the entry field.  The default is 10, which causes the count to repeat 10 times, from 0 to 9.

For Range

Outputs a value on the data output pin repeatedly, starting with the value From, incrementing by the value Step on each repeat.  For Range repeats until the output value is greater than the Thru value if Step is positive, or until the output value is less than the Thru value if Step is negative.

For Log Range

Similar to For Range, but on a log scale.  The initial value output is From, but the nth value is From*exp10(n/(/Dec)).  For Log Range repeats until the output value is greater than the Thru value if /Dec is positive, or until the output value is less than the Thru value if /Dec is negative.

Until Break

Activates its data output pin continuously until a Break object operates within the thread.

On Cycle

Outputs the current time value periodically (the default period is 1 second) until a Break object operates within the thread.

Next

Causes the loop to begin its next iteration immediately.

Break

Causes the loop to terminate immediately.

Example:  A For Count Loop

In the following example, the For Count object causes the Random Number object to operate 10 times.  The For Count object's sequence output pin indicates when For Count is done operating (the loop is done repeating).  The Collector collects the 10 random values in an array, but doesn't output the array until the sequence output pin of For Count activates the XEQ pin on the Collector.

Example:  Taking a Reading Every Second

In the following example, the On Cycle object executes every second, causing the instrument panel object for the HP 34401A Multimeter to output a reading every second.  This program produces simulated readings, since live mode is OFF for the HP 34401A.  Each reading is output to the Logging AlphaNumeric display, and to the If/Then/Else object.  The If/Then/Else object causes the Break object to operate, stopping the loop, on the first value that is greater than or equal to 7.  The AlphaNumeric object, configured for the Time Stamp format, reports the time of each reading as it is taken.

Example:  Parallel and Nested Loops

In the following example, the program includes parallel loops, which run concurrently, and a nested loop. Thread 1 and Thread 2 are parallel loops.  Subthread 1a is nested within Thread 1.  Multiple levels of nesting are allowed.

Avoid the following situations when using loops, which can cause a propagation paradox and lead to unpredictable results:

1. Do not cross connect parallel loops.

2. Do not merge loops (with a JCT or Math object, for example).

See also

Control Flow in HP VEE (tutorial)

Using the Keyboard Shortcuts

Contents:  The Basics


To Stop an HP VEE Program

Once you have started an HP VEE program, it will run according to the propagation rules until it finishes, and then stops.

Ways to stop an HP VEE program before it finishes propagating

Click the Stop button on the HP VEE toolbar.

 Stop button

Click the Pause button to pause the program momentarily.  Then click the Resume button to continue the program, or the Stop button to stop it.

 Pause button

 Resume button

Use Stop and Exit Thread objects.  You can include a Stop or Exit Thread object in your program to define when it should terminate.  For example, you can use an If/Then/Else object to conditionally branch to a Stop or Exit Thread object.  When either of these objects operate, the program stops permanently just as though you clicked the Stop button.

Use Raise Error object.  You can cause an error to occur, pausing your program, with the Raise Error object.

Shortcuts

Press CTRL+C on the keyboard to pause (not stop) a program.

Press CTRL+V on the keyboard to resume a paused program.

Using the Keyboard Shortcuts

See Also

Exit Thread

Stop

To Trap an Error

Control Flow in HP VEE (tutorial)

Contents:  The Basics


To Change Default Colors

You can change the default colors for all of your programs.

1. Click the Edit Default Preferences button on the HP VEE toolbar, then select the Colors tab in the dialog box.

  Edit Default Preferences button

2. Click on the Screen Element field or its arrow.  The drop-down list displays the screen element choices.

3. Click on the screen element in the list that you want to change.  The drop-down list disappears and the current color for that screen element is shown in the Color Value field.

4. Click on the Color Value button.  The Select Color dialog box appears displaying a palette of the available colors.  The screen element's current color selection is highlighted in the palette with a dashed outline.  The color is also shown in the Preview area.

5. To select a new color, click on a different color in the palette, and then click on OK to return to the Edit Default Preferences dialog box.

6. Make color selections for multiple screen elements as needed before saving your selections.

7. Choose how you want to save the new color selection for the screen element:

a. To save the color selection as a permanent default color, click on Save.  This saves the new default color in your VEE.RC or .veerc file.  The new color will be the default for future HP VEE sessions (until you change it again).

b. To use the new color selection only for the current HP VEE session (until you select File ==> New, Open, or Exit), click on OK.

c. To cancel the new color selection, click on Cancel.

See also

Using the Keyboard Shortcuts

Contents:  The Basics


To Change Colors for the Work Area

You can change the background and text colors for the work area toolbar.

1. Select File ==> Edit Properties.  Then select the Colors tab in the Work Area Properties dialog box.

2. To change the background color for the toolbar, click on the Background button.  The Select Color for Tool Bar dialog box displays a palette of the available colors.  The current color selection (Default Gray) in our example) is highlighted in the palette with a dashed outline. The color is also shown in the Preview area.

3. To select a new color for the toolbar, click on a different color in the palette, then click on OK to return to the Work Area Properties dialog box.

4. Click on OK to accept the new color selection, or Cancel to reject it.

See also

Using the Keyboard Shortcuts

Contents:  The Basics


To Change Colors for an Object

Every object has an Properties dialog box that you can reach from the object menu.  You can change colors for the particular object using this dialog box.

1. On the object's open view, select Edit Properties from the object menu, then select the Colors tab in the object's Properties dialog box.

The colors that you can change depend on the particular class of object.  Typically, you can change the background and text in the object's title bar and open view.

2. Click on the button for the property you want to change.

A Select Color dialog box displays a palette of the available colors.  The current color selection is highlighted in the palette with a dashed outline, and is shown in the Preview area.

3. To select a new color, click on a different color in the palette, then click on OK to return to the Properties dialog box.

4. Click on OK to accept the new color selection, or Cancel to reject it.

The new color selection appears in the object and overrides the default color.  The change affects only this particular object, and is saved when you save the program.

Shortcuts

Double-click on the object's title bar to access its Properties dialog box.

Using the Keyboard Shortcuts

See also

Contents:  The Basics


To Change Default Fonts

You can change the default fonts for screen elements in the work area.

Note

If you are writing HP VEE programs to be used on more than one platform (Windows, HP-UX, and Solaris), be aware that each platform provides a different set of system fonts.  Therefore, your program may appear slightly different on each platform.

1. Click the Edit Default Preferences button on the HP VEE toolbar, then select the Fonts tab in the dialog box.

  Edit Default Preferences button

2. Click on the Screen Element field or its arrow.  The drop-down list displays the screen element choices.

3. Click on the screen element that you want to change.  The drop-down list disappears and the font value for that screen element is displayed.

4. Click on the Font Value button.  The Select Font dialog box appears.

5. Click on the corresponding fields or their arrows to select a font name and size from the two drop-down lists.  You can also select bold and italic by clicking on the appropriate check boxes.  Click on OK to return to the Edit Default Preferences dialog box.

The font lists allow you to select any font that is installed on your system.

6. Make font selections for multiple screen elements as needed before saving your selections.

7. Choose how you want to save your font selection:

a. To save the new font selection as a permanent default font, click on Save.  This will save the new default font in your VEE.RC or .veerc file.  The new font will be the default for future HP VEE sessions (until you change it again).

b. To use the new font selection only for the current HP VEE session (until you select File ==> New, Open, or Exit), click on OK.

c. To cancel the new font selection, click on Cancel.

See also

Using the Keyboard Shortcuts

Contents:  The Basics


To Change Fonts for an Object

Every object has a Properties dialog box that you can reach from the object menu.  You can change fonts for the particular object using this dialog box.

Note

If you are writing HP VEE programs to be used on more than one platform (Windows, HP-UX, and Solaris), be aware that each platform provides a different set of system fonts.  Therefore, your program may appear slightly different on each platform.

1. On the object's open view, select Edit Properties from the object menu, then select the Fonts tab in the Properties dialog box.

The fields that you can change depend on the particular class of object.  Typically, you can change fonts for the Title text and the Object text.

2. Click on the button for the text you want to change.  A Select Font dialog box appears.

3. Click on the corresponding fields or their arrows to select a font name and size from the two drop-down lists.  You can also select bold and italic by clicking on the appropriate checkboxes.  Click on OK to return to the Properties dialog box.

The font lists allow you to select any font that is installed on your system.

4. If you click on the checkbox in front of Automatically Resize Object on Font Change, objects will be automatically resized as needed.

5. Click on OK to accept the new font selection, or Cancel to reject it.

The new font selection appears in the object and overrides the default font.  The change affects only this particular object, and is saved when you save the program.

Shortcuts

Double-click on the object's title bar to access its Properties dialog box.

Using the Keyboard Shortcuts

See also

Contents:  The Basics


To Change an Object or Work Area Title

You can change the title of any object, or of the work area, from the appropriate Properties dialog box.

To change an object title

1. Select Edit Properties from the object menu.  The Properties dialog box appears.

2. The title is already highlighted; just start typing to replace the old title.

3. Type in the new title and press Enter or Return.

Shortcut

Double-click on the object's title bar to access its Properties dialog box.

To change the work area title

1. Select File ==> Edit Properties.  The Work Area Properties dialog box appears.

2. The title is already highlighted; just start typing to replace the old title.

3. Type in the new title and press Enter or Return.  This title is used with File ==> Save Documentation, and in the window title bar when HP VEE is run with the -r command-line option.

See also

Using the Keyboard Shortcuts

Contents:  The Basics


Working with Data

These topics give some useful techniques for inputting and analyzing data using HP VEE.

Inputting Data
 To Enter a Number
 To Change the Number Format
 To Change the Trig Mode
 To Use a Data Constant
 To Use a Data Slider and Knob
 To Use a Data-Selection Object
 To Use a Data Input Dialog Box

Using Mathematical Expressions
 To Enter a Formula
 To Use the Math and AdvMath Objects
 To Use Mixed Data Types in an Expression
 To Use an Expression in an If/Then/Else Object
 To Use an Expression in a Transaction

Working with Strings
 To Find the Length of a String
 To Obtain a Substring
 To Concatenate Strings
 To Compare Two Strings for Equality
 To Convert a Number into a String
 To Convert a String into a Number

Working with Arrays
 To Create an Array Constant
 To Allocate an Array
 To Change Values in an Array
 To Extract Values from an Array
 To Collect Data into an Array
 To Use Arrays or Array Elements in Expressions
 To Build an Array in an Expression
 Array Operations in HP VEE (tutorial)

Working with Records
 To Create a Record Constant
 To Collect Data into a Record
 To Extract Fields from a Record
 To Change a Field in a Record
 To Use a Record in an Expression

Working with Global Variables
 To Create a Global Variable
 To Delete a Global Variable
 To Use a Global Variable
 To Use a Global Array


To Enter a Number

You can enter a number in any HP VEE numeric-entry field using the conventions shown in the following examples.  The hyphen (-) is used as a minus sign and the period (.) is used as a decimal point. You can include a plus sign (+) in a numeric entry field if desired.  Notice that the comma (,) is not allowed as a separator.  (Text-entry fields accept any arbitrary string of characters.)

Ordinary numeric entry

1001

1020768  (But not 1,020,768)

12.12

-1.223

Exponential numeric entry

1.23E3 (Equivalent to 1.23x10^3 or 1230)

6.0225E23 (Equivalent to 6.0225x10^23)

6.6256E-27 (Equivalent to 6.6256x10^-27)

Numeric entry using the ISO abbreviations

1.23k (Equivalent to 1.23x10^3 or 1230)

3.61M (Equivalent to 3.61x10^6)

2.3n (Equivalent to 2.3x10^-9)

The following table lists the ISO abbreviations recognized by HP VEE for entering a number.

Abbreviation	Suffix	Multiple

X	exa	10^18

P	peta	10^15

T	tera	10^12

G	giga	10^9

M	mega	10^6

k or K	kilo	10^3

m	milli	10^-3

u	micro	10^-6

n	nano	10^-9

p	pico	10^-12

f	femto	10^-15

a	atto	10^-18

HP VEE may change the form of the number you enter to another, equivalent form. For example:

+1.23 becomes 1.23 (plus signs are dropped)

6.3E-9 becomes 6.3n

6.0225E23 becomes 602.25E21 (in the standard number format)

See also

Contents:  Working with Data


To Change the Number Format

You can change the default global number format that HP VEE uses for all objects that display numbers, and you can change the number format for certain individual objects that display numbers.

To Change the Global Number Format

1. Click the Edit Default Preferences button on the toolbar, then select the Numbers tab in the dialog box.

  Edit Default Preferences button

2. Select the desired number format by changing the appropriate fields:

a. Integer determines the number base for integers:  Decimal, Octal, Hexadecimal, or Binary.  (Click on the field or its arrow for the drop-down list.)

b. Real determines the format of real numbers:  Standard, Fixed, Scientific, or Engineering.  (Click on the field or its arrow for the drop-down list.)

c. Sig digits determines the number of significant figures.  (Type in the desired number.)

3. Choose how you want to save your changes:

a. Click on Save to save the changes as new defaults (in VEE.RC or .veerc).

b. Click on OK to use the changes for this HP VEE session only (until you select File ==> New, Open, or Exit).

To Change the Number Format for Certain Objects

You can select a number format independently for the following objects.  The selected number format overrides the global number format, but only for the particular object.

Numeric sliders and knobs on menu Data ==> Continuous

Constants on menu Data ==> Constant

AlphaNumeric on menu Display

Logging AlphaNumeric on menu Display

Meter on menu Display ==> Indicator

1. Select Edit Properties from the object menu of the object, then click on the Number tab.

2. Click on the checkbox to turn off Global Format.  Then, click on the number format field (or its arrow) to show the drop-down menu.

3. Select the number format you want the object to use, then click on OK.

See also

Contents:  Working with Data


To Change the Trig Mode

In HP VEE, trigonometric values may be entered and displayed in degrees, radians, or gradians, depending on the trig mode.

The new trig mode you choose is active for the duration of the current HP VEE session.  When you restart HP VEE, the trig mode reverts to the default (Degrees).

1. Click on File ==> Edit Properties.

2. On the General tab, select the desired trig mode (Degrees, Radians, or Gradians), then click on OK.

Note

All internal calculations are done in radians.  You'll get slightly faster performance if you set the trig mode to Radians because HP VEE won't have to make the conversion to radians and back.

See also

Contents:  Working with Data


To Use a Data Constant

HP VEE provides several types of data constants.  To use a scalar data constant:

1. Select a data constant object (Data ==> Constant ==>).  The choices are Text, Integer, Real, Coord, Complex, PComplex, Date/Time, and Record.

2. Enter the appropriate type of data in the constant object.  The most common types are the Text, Integer, and Real constant objects:

a. In the Text constant, you can enter any text string (the maximum length is 32,767 characters).

b. In the Integer constant, you can enter any 32-bit, two's-complement integer (the range is -2147483648 through +2147483647).

c. In the Real constant, you can enter any 64-bit real number (the range is ±1.7976931348623157E308).

In the example below, the Text, Integer, and Real constant objects are connected into HP VEE program threads.  Data types are automatically converted as needed by the object receiving the data.  In this example, the integer 3 is converted to a real, and added to 6.24 resulting in the real value, 9.24.

See Also

To Create an Array Constant

Contents:  Working with Data


To Use a Data Slider
To Use a Data Slider and Knob

HP VEE provides four types of data slider and knob objects:  the Real Slider, Integer Slider, Real Knob and Integer Knob.  These objects allow you to input a value in your program by moving a linear slider or circular knob.

To use a Real Slider or Integer Slider

1. Select Data ==> Continuous ==> Real Slider or Integer Slider, and place the object in the work area.  By default the Real Slider object has a range of 0 through 1; the Integer Slider range is 0 through 100.

2. To change the setting, which is displayed in the field at the top, click and hold on the slider knob while moving it up or down.

3. To change the range, click on the upper or lower limit field and type in the value.

To use a Real Knob or Integer Knob

1. Select Data ==> Continuous ==> Real Knob or Integer Knob, and place the object in the work area.  By default the Real Knob object has a range of 0 through 1; the Integer Knob range is 0 through 100.

2. To change the setting, which is displayed in the field at the bottom, click and hold on the circular knob while turning it around.

3. To change the range, click on the upper or lower limit field and type in the value.

See also

Integer Knob

Integer Slider

Real Knob

Real Slider

Contents:  Working with Data


To Use a Data-Selection Object

HP VEE provides six types of data-selection objects: Radio Buttons, Cyclic Button, List, Drop-Down List, Pop-Up List, and Slider List.

To use a data-selection object

(This procedure describes the Radio Buttons object, and applies to all six types of data-selection objects.)

1. Select Data ==> Selection Control ==> Radio Buttons and place the object in the work area.  Note that the default radio button selections are Item 1, Item 2, and Item 3.

2. To change the default selections, select Edit Enum Values from the object menu.  The Edit Enum Values dialog box appears.

3. Edit the values as needed.  Use Tab (or down-arrow) to advance, Shift+Tab (or up-arrow) to back up among the fields.  You can replace the text in each field or, to add fields, tab past the last field and type in additional text.

4. When you are finished editing the fields, click on OK.

To change a data-selection object type

1. Select Edit Properties from the object menu.  The Selection Control Properties dialog box appears.

2. On the General tab, click on the Format type you prefer, then click on OK.

See also

Selection Control

Contents:  Working with Data


To Use a Data Input Dialog Box

Three of the built-in dialog box objects under Data ==> Dialog Box let you prompt for data input in a program.  They are Text Input, Integer Input, and Real Input.  For more information on using dialog boxes, refer to Building an Operator Interface with HP VEE.

(This procedure describes a Real Input dialog box object, and applies similarly to the Integer Input and Text Input objects.)

1. Add a Real Input dialog box object to the work area (Data ==> Dialog Box ==> Real Input).

When the Real Input object operates, it displays a pop-up dialog box requesting a real number from the user.  You can set the following parameters:

a. Prompt/Label determines the message displayed in the dialog box.

b. Default Value determines the optional default value to be displayed in the dialog box.

c. Value Constraint determines the range or other test that the value entered must match.

d. Error Message determines the error message to be displayed if the user responds with data that fails the test in Value Constraint.

2. Change the Prompt/Label field to Please enter a real value.

3. Run the program.  The pop-up dialog box appears.

4. Enter 11 in the dialog box and click on OK.  An error message appears.

5. Click on OK in the error message box.  Now enter a number in the range 0 through 10 in the Real Input dialog box, and click on OK.  The number is accepted and output on the Value terminal.

See also

Dialog Box

Contents:  Working with Data


To Enter a Formula

The basic mathematical object in HP VEE is the Formula object:

When placed in the work area, the object contains a preset expression and has one data input terminal, A.  Note that variable A in the expression corresponds to data input terminal A.

Each variable in an expression is replaced by data on the input terminal with the same name as the variable.  Variable names and terminal names are not case-dependent.  In the expression a+1, the variable a corresponds to terminal A.

A variable in an expression must have a corresponding input terminal, or an error results.  If you use a global variable, no corresponding terminal is required.

To use the Formula object

1. Add the Formula object to the work area (Math ==> Formula).

2. Click on the expression field in the Formula object and modify the expression as desired.  For example, enter the expression 2*A+abs(B)+sin(C)+6.

3. Add data input terminals as required.  (Place the pointer in the data input terminal area and press Ctrl+A.)  Delete any unused data input terminals.  (Place the pointer over the terminal and press Ctrl+D.)

4. Connect all of the data input terminals to appropriate sources of data, and the Result data output terminal to a display object, to complete your program.

Example

The following program uses the Formula object to evaluate an expression and display the result:

See also

To Create a Global Variable

Formula

Contents:  Working with Data

HP VEE Reference; section: "Mathematically Processing Data" in chapter 3


To Use the Math and AdvMath Objects

Over 150 mathematical objects are provided in the Math and AdvMath menus.  These are really Formula objects that have been pre-configured with a descriptive title, an expression, and the appropriate data input terminals.  You can modify them as follows:

1. Change the expression to any valid HP VEE expression.

2. Change the title to describe the new expression.

3. Add or delete data input terminals as required.

Tips

1. Don't use several math objects to "wire" an expression. Instead, combine the mathematical operators and functions into a single expression in a single object.  HP VEE programs run faster when fewer objects are used.

Don't do this:

Do this instead:

2. When changing the expression, be sure to have corresponding input terminals for variable names.

3. When changing the names of the data input terminals (just double-click on the terminal and type in a new name), be sure you change the corresponding variable names in the expression as well.

4. Before minimizing the object to its icon, be sure to change the title to describe what the new mathematical expression does.  It is good programming practice to change object titles all the time.

See also

Math Syntax

Contents:  Working with Data


To Use Mixed Data Types in an Expression

HP VEE automatically converts data types as needed, so you can use expressions containing mixed data types.  Just enter the expression in a mathematical object and connect the data sources to the appropriate data input terminals.

Example

In the following program, the Formula object receives waveform data on input terminal A and real data on input terminal B.  The Formula object evaluates the expression abs(A)+B by adding the real value 0.75 to the absolute value of each of the 256 points in the waveform.

See also

Contents:  Working with Data


To Use an Expression in an If/Then/Else Object

HP VEE can evaluate mathematical expressions and branch program flow according to the result.  The basic conditional object is the If/Then/Else object.

You can change the default expression in the If/Then/Else object to any conditional expression, or use the objects found under Flow ==> Conditional.  The Conditional objects are really If/Then/Else objects pre-configured with expressions, descriptive titles, and data input terminals.

To use the If/Then/Else object

1. Add the If/Then/Else object to the work area (Flow ==> If/Then/Else).

2. Click on the expression field in the If/Then/Else object and modify the expression as desired.  For example, enter the expression A==B OR B>=C.

3. Add data input terminals as required.  (Place the pointer in the data input terminal area and press Ctrl+A.)  Delete any unused data input terminals.  (Place the pointer over the terminal and press Ctrl+D.)

4. Connect all of the data input terminals and one or both of the data output terminals to complete your program. If the expression is "true," the result of the expression (generally a 1) is output on the Then terminal. If the expression is "false" a 0 is output on the Else terminal.

5. If desired, add Else If conditions to the object.

Example

In the following program, if the expression A==B OR B*C==50 is true, the Then output terminal activates UserObject1.  If the expression is false, the Else output terminal activates UserObject2.

See also

To Branch within an HP VEE Program

Conditional

If/Then/Else

Contents:  Working with Data


To Use an Expression in a Transaction

HP VEE mathematical expressions can be evaluated and used in I/O transaction objects, such as the To File and From File objects.

Example of evaluating an expression in a To File transaction

1. Add a To File object to the work area (I/O ==> To ==> File).

2. Double-click on the transaction WRITE TEXT a EOL.  The I/O Transaction dialog box appears.

3. Click on the default expression, a, and change the expression to a+sin(b):

4. Click on OK to save the new transaction (WRITE TEXT a+sin(b) EOL).

5. Add a B data input terminal to the object, and connect the data input terminals.

In the following program, the To File object adds the value of a (1) to the value of sin(b) (the sine of 30 degrees is 0.5), and outputs the result 1.5 to the file named myFile.

See also

Creating and Using Data Files

From File

To File

Contents:  Working with Data

HP VEE Advanced Programming Techniques; chapter: "Using Transaction I/O"


To Find the Length of a String

1. Add the strLen(str) object to the work area (Math ==> String ==> strLen(str)).

2. Connect the source of string data to the str data input terminal.  Connect the Result output as desired.

3. Run the program.  When the strLen(str) object operates, the length of the string is output on the Result terminal.

Examples

The strLen(str) object outputs the length of the string in bytes as an Int32 number.  If str is a one-dimensional string array, strLen(str) returns an array which contains the length of each element of the array:

See also

strLen(str)

Contents:  Working with Data


To Obtain a Substring

Two functions let you obtain a substring:

strFromThru(str,from,thru)
strFromLen(str,from,len)

Where:

str is the original string.

from is the position where the substring starts.

thru is the position where the substring stops.

len is the length of the substring.

All character positions in a string are zero-based.  That is, the first character is at position 0.

To obtain a substring using strFromThru(str,from,thru)

1. Add the strFromThru(str,from,thru) object to the work area (Math ==> String ==> strFromThru(str,from,thru)).

2. Connect the source of string data to the str input terminal.

3. Specify the from and thru values:

a. Connect data to the from and thru input terminals,

or

b. Change the expression to explicitly specify from and thru. For example, the expression strFromThru(str,0,5) returns characters 0 through 5 (the first six characters) of string str.  Remember to delete the from and thru terminals if you do this.

Example

The following program returns the first six characters of the string:

See also

strFromLen (str,from,len)

strFromThru (str,from, thru)

Contents:  Working with Data


To Concatenate Strings

You can use addition (+) and multiplication (*) in HP VEE to concatenate strings.

Examples

You can concatenate two strings:

You can concatenate a string and a number (the number is converted to a string):

You can multiply a number and a string to repeatedly concatenate the string:

See also

Accumulator

Concatenator

Contents:  Working with Data


To Compare Two Strings for Equality

Example

The following program compares two strings for equality using a conditional object.  If the two strings are exactly the same (including spaces), the result of the expression (in this case, a 1) is output on the Then terminal.  Otherwise, a 0 is output on the Else terminal.  This comparison is case-sensitive (Now is not equivalent to now).

See also

Conditional

strPosStr (str1,str2)

Contents:  Working with Data


To Convert a Number into a String

You can convert a number into a string using To String.  The following procedure shows how to convert the current time in seconds into a string in the time stamp format:

1. Add a To String object to the work area (I/O ==> To ==> String).  Double-click on the icon to show the open view object.

2. Double-click on the default transaction WRITE TEXT a EOL.  The I/O Transaction dialog box appears.

3. Click on Default Format (or its arrow) to show the drop down menu.  Select Time Stamp Format and click on OK.

4. Connect a now() object to the data input terminal and an AlphaNumeric display to the data output terminal of To String.

5. Run the program.  The now() object outputs the time in seconds.  This value is converted to the time stamp format and displayed.

See also

intToChar(a)

To String

Contents:  Working with Data

HP VEE Advanced Programming Techniques; chapter: "Using Transaction I/O"


To Convert a String into a Number

If a string includes numeric information that can be read as a number, you can use From String to extract the number.

1. Add a From String object to the work area (I/O ==> From ==> String).  Double-click on the icon to obtain the open view object.  The default transaction is READ TEXT a REAL, which reads the string as text and outputs a real number if possible.

2. To view the results, connect a Text constant object to the data input terminal, and an AlphaNumeric display to the data output terminal.

3. Enter the string Item number: A1222 in the Text constant and run the program.  The real number value 1222 is output to the display.

See also

charToInt(a)

From String

Contents:  Working with Data

HP VEE Advanced Programming Techniques; chapter: "Using Transaction I/O"


To Create an Array Constant

You can create one-dimensional arrays using the data constant objects, such as Text, Integer, and Real.  Use this technique when you want to manually set each value in a one-dimensional array.

To create a one-dimensional text array with nine elements

1. Add a Text constant object to the work area (Data ==> Constant ==> Text).

2. Select Edit Properties from the object menu.  The Text Constant Properties dialog box appears.  By default the Text constant object is configured as a Scalar.

3. To set the array size, click on 1D Array under Configuration, and then click on the Size field and change it to 9.

4. To have a fixed number of elements, click on the Size Fixed checkbox as well.  If you want to add additional elements on at the end, leave Size Fixed unselected.

5. Click on OK.  The Text constant object appears as an array with elements 0000: through 0008:.  HP VEE arrays are zero-based.

6. To set each value, click to the right of 0000: and type in the first element of your array.  Use Tab (or down-arrow) to advance, Shift+Tab (or up-arrow) to back up among the array elements. Type in text strings for each of the elements.

Example of a nine-element, one-dimensional text array

See also

Constant

Contents:  Working with Data


To Allocate an Array

You can allocate arrays when you want to create them and set their values programmatically, and/or to create an array of two or more dimensions.

Use the appropriate object, found under Data ==> Allocate Array,  for the data type you are using.  These objects include Alloc Text for text arrays and Alloc Integer, Alloc Real, Alloc Coord, Alloc Complex, and Alloc Pcomplex for numeric arrays.

Tips

All HP VEE array indexes are zero based.  That is, the first element has index 0 in any dimension.

Allocated arrays can be 1 to 10 dimensions, and are usually "filled" with a repeated initial value.

An array of values is passed from object to object as a single data container.

Only one-dimensional integer and real arrays can be initialized with a linear or logarithmic ramp of values.

The memory required to allocate an array is determined by the number of dimensions, the sizes of the dimensions, and the data type.

The following procedures show how to allocate various types of arrays:

To Allocate a One-Dimensional Real Array

1. Add an Alloc Real object to the work area (Data ==> Allocate Array ==> Real).

2. By default the Alloc Real object allocates a one-dimensional array with a linear ramp of values.  Click on the Lin Ramp field (or its arrow) to show the drop-down menu.

3. You can select Init Value, Lin Ramp, or Log Ramp.  Click on Log Ramp to select a logarithmic ramp of values.

4. Connect an XY Trace display object to the Alloc Real object and run the program.  Click on the Auto Scale button to see the data trace.

To Allocate a Two-Dimensional or Larger Real Array

1. Add an Alloc Real object to the work area (Data ==> Allocate Array ==> Real).

2. By default the Alloc Real object allocates a one-dimensional array with a linear ramp of values.  Click on the Num Dims field (or its arrow) to show the drop-down menu.

3. Click on a dimension size from 2 through 10.  The object adjusts to the new setting.

4. Change the size for the first dimension to 4, for the second to 3, and so on for each dimension.  Then connect an AlphaNumeric display object to the output of the Alloc Real object.

5. Run the program, and then resize the AlphaNumeric object to show the entire array.  HP VEE display objects cannot display more than two dimensions.

To display more than two dimensions, you can use the To File objects CONTAINER encoding to export data directly into PV-WAVE for visual data analysis.

See Also

To Change Values in an Array

To Create an Array Constant

To Collect Data into an Array

Allocate Array

To File

Contents:  Working with Data


To Change Values in an Array

You can change values programmatically in an allocated array using the Set Values object.  This object refers to a value in an array by its index, and enters a new value.

To set a new value in a one-dimensional real array

1. After adding an array allocation object (Data ==> Allocate Array ==>), add a Set Values object to the work area (Data ==> Access Array ==> Set Values).  Double-click on the icon to show the Set Values objects open view.

2. Connect the Array data output pin of the Allocate Array object to the Array data input terminal of Set Values.

3. Connect the following Set Values terminals:

a. Connect the output pin of a Real data constant object to the Datum terminal (the value that you want to put into the array).

b. Connect the output pin of an Integer data constant object to the Index 1 terminal (the index where you want to put the value).

c. Connect the Integer objects sequence output pin to the XEQ terminal.

The following example program shows the connections.  The Set Values object remembers all the data it receives, then propagates the result only when the XEQ pin is activated.

See also

manual06.vee and manual07.vee in manual examples directory
Help ==> Open Example...

To Allocate an Array

Set Values

Array Operations in HP VEE (tutorial)

Contents:  Working with Data


To Extract Values from an Array

You can use the Get Values object to extract values from an array:

1. Add a Get Values object to the work area (Data ==> Access Array ==> Get Values). Double-click on the icon to show the open view object.

2. Connect any data source that outputs an array to the Ary data input terminal on Get Values.  When Get Values operates, the SubAry terminal outputs a sub-array that depends on the expression in the Get Values expression field.  The default expression Ary causes the entire original array to be output.

The rest of the data output terminals give information about the original array on the Ary terminal:

a. Type outputs the data type of the array.

b. NumDims outputs the number of dimensions in the array.

c. DimSizes outputs a one-dimensional array listing the size (the number of elements) of each dimension.

d. TotSize outputs the total size of the array (the total number of elements).

See also

manual08.vee in manual examples directory
Help ==> Open Example...

To Build an Array in an Expression

To Use Arrays or Array Elements in Expressions

Get Values

Array Operations in HP VEE (tutorial)

Contents:  Working with Data


To Collect Data into an Array

Use the Collector to collect data into an array of unknown size.  Use the Sliding Collector for 1D array data collection.

1. Add a Collector object to the work area (Data ==> Collector).  Double-click on the icon to show the objects open view.

2. Add the For Count, Random Number, and AlphaNumeric objects to the work area and connect the pins as shown in the following program:

3. Run the program.  (Resize the AlphaNumeric display to show the entire array.)

The Sliding Collector (Data ==> Sliding Collector) differs from the Collector in two significant ways:

1. The output is always a one-dimensional array.

2. There is no XEQ terminal.  Instead, the Sliding Collector is set to trigger after a specified number of values.

See also

manual09.vee in manual examples directory
Help ==> Open Examples...

To Build an Array in an Expression

Collector

Sliding Collector

Array Operations in HP VEE (tutorial)

Contents:  Working with Data


To Use Arrays or Array Elements in Expressions

The topic To Extract Values from an Array explained that you can use an expression in a Get Values object to specify a sub-array.  This topic explains how you can also specify an array or sub-array in an expression in any HP VEE object that has an expression field such as a Formula object.

In an expression, any reference to an array uses the following syntax:

Brackets [ ] are used after the array name to enclose the parameters specifying a sub-array.  For example, if B is a two-dimensional array, B[0,0] specifies the first element in it.

The comma (,) separates array dimensions.  Each sub-array operation must have exactly one specification for each array dimension.

The colon (:) separates a range of elements within one of the array dimensions.

The asterisk (*) is a wild-card character to specify all elements from a particular array dimension.

Note that all HP VEE array indexes are zero based.  That is, the first element has index 0 in any dimension.

Examples

Assume A is a one-dimensional array, 10 elements long:

0:  100m

1:  0.2

2:  0.3

3:  0.4

4:  0.5

5:  0.6

6:  0.7

7:  0.8

8:  0.9

9:  1

The following expressions extract portions of array A:

A or A[*] returns the entire array A.

A[1] returns a scalar, which is the second element (index 1) in A:

0.2

A[1:1] returns a one-dimensional array with only one element, which is the second element (index 1) in A:

0:  0.2

A[0:5] returns a one-dimensional array that contains the first six elements (indexes 0 through 5) of A:

0:  100m

1:  0.2

2:  0.3

3:  0.4

4:  0.5

5:  0.6

A[2:*] returns a one-dimensional array that contains the third element through the end of the array; in this case, indexes 2 through 9 of A. (The indexes are redefined as 0 through 7 in the subarray.)

0:  0.3

1:  0.4

2:  0.5

3:  0.6

4:  0.7

5:  0.8

6:  0.9

7:  1

Assume B is a 5-by-5 matrix (a two-dimensional array):

    0:     1:     2:     3:     4:

0:  0      0.2    0.4    0.6    0.8

1:  1      1.2    1.4    1.6    1.8

2:  2      2.2    2.4    2.6    2.8

3:  3      3.2    3.4    3.6    3.8

4:  4      4.2    4.4    4.6    4.8

The following expressions extract portions of array B:

B or B[*,*] returns the entire array B.

B[*] returns an error because it specifies only one dimension, and B is a two-dimensional array.

B[1,2] returns a scalar value from the second row (index 1), third element (index 2):

1.4

B[1,*] returns all of the second row (index 1) as a one-dimensional array:

0:  1

1:  1.2

2:  1.4

3:  1.6

4:  1.8

B[1,1:*] returns all of the second row (index 1), except for the first element (index 0), as a one-dimensional array:

0:  1.2

1:  1.4

2:  1.6

3:  1.8

See also

To Extract Values from an Array

To Build an Array in an Expression

Array Operations in HP VEE (tutorial)

Contents:  Working with Data


To Build an Array in an Expression

You can also build an array by specifying portions of other arrays in an expression.  However, within an expression, all sub-arrays specified must have the same number of dimensions and contain the same number of values in each dimension.

Assume B is a 5-by-5 matrix (a two-dimensional array):

    0:     1:     2:     3:     4:

0:  0      0.2    0.4    0.6    0.8

1:  1      1.2    1.4    1.6    1.8

2:  2      2.2    2.4    2.6    2.8

3:  3      3.2    3.4    3.6    3.8

4:  4      4.2    4.4    4.6    4.8

The expression [ B[1,1],B[2,2],B[0,0],B[2,3] ] returns the following one-dimensional array:

0:  1.2

1:  2.4

2:  0

3:  2.6

You can also build an array constant in an expression.  For example, the expression [1.1,1.3,1.2] creates a three-element, one-dimensional real array:

0:  1.1

1:  1.3

2:  1.2

See also

To Extract Values from an Array

To Use Arrays or Array Elements in Expressions

Array Operations in HP VEE (tutorial)

Contents:  Working with Data


To Create a Record Constant

The best way to see how to create a record constant is to try an example.  The following examples show how to create records.

To create a single record

1. Add a Record constant object to the work area (Data ==> Constant ==> Record).

2. Note that the Record constant is unlike any of the other constant objects.  It has two named fields (A and B by default), each of which has a type-in field.  Click on the button labeled A.  The Record Field Attributes dialog box appears.

3. You can change the name of the field by typing in a new name in place of A.  Change the field name to Name, but leave the data type set to Text and the number of dimensions set to 0 (scalar). Click on OK.

4. Now click on the button labeled B.  Change the field name to Empl_No, and then click on Real (or the arrow) to show the drop-down menu.

5. Click on Int32 to select the integer data type, but leave the number of dimensions set to 0.  Click on OK.

6. Enter John Doe in the type-in field next to Name, and enter 111222 in the type-in field next to Empl_No, as shown below.  Connect an AlphaNumeric display object to the output pin, and run the program:

To create an array of records

1. Continuing with the previous procedure, select Edit Properties from the object menu of the Record constant.

2. Now click on the radio button in front of 1D Array to convert the Record constant into an array of records.  Set the Size to 3, and then click on OK.  The object changes format.

3. The First, Prev, Next, and Last buttons let you scroll through the array of records.  To change each record in the array:

a. Click on Next to scroll to the second record.  Change the name to Sue Smith and the number to 111223.

b. Click on Next to scroll to the third (and last) record.  Change the name to Richard Roe and the number to 111224.

4. Now run the program.  Re-size the AlphaNumeric display to show the entire array of records:

See also

To Collect Data into a Record

Record Constant

Contents:  Working with Data


To Collect Data into a Record

Use the Build Record (Data ==> Build Data ==> Record) object to build large arrays of records.  This topic uses an example program to show how to use the object.

Example

1. Open the program manual10.vee from your manual examples directory (Help ==> Open Example...), and run the program.

The Build Record object builds a record from the data on its data input terminals and outputs a record on its Record output terminal.  The program works as follows:

The Text array on input A is a list of names.

The Integer array on input B is a list of employee numbers.

The Build Record object is set for an output shape of Scalar, so it outputs the scalar record {<Text Array 1D>, <Int32 Array 1D>} consisting of two record fields, each containing a one-dimensional array. The first record field is the array of names, and the second is the array of employee numbers.  The input arrays need not be the same size.

2. Though Scalar is the default, you can change the output shape:

a. Click on Scalar to display Array 1D.

b. Run the program.  An array of records appears in the display.

The Build Record object matches each name and employee number to form an individual record in the array of records to be output on the Record terminal.  When the output shape is set to Array 1D, the input arrays must be of the same size.

See also

Build Record

Contents:  Working with Data


To Extract a Field from a Record
To Extract Fields from a Record

Use the Get Field object (Data ==> Access Record ==> Get Field) to extract a field from a record, and use the UnBuild Record object (Data ==> UnBuild Data ==> Record) to extract all fields.  This topic uses example programs to show how to use the objects.

Get Field Example

Open the program manual11.vee from your manual examples directory (Help ==> Open Example...), and run the program.

The Build Record object builds a record consisting of field A (a waveform), and field B (a scalar).

The upper Get Field object uses the expression Rec.A to extract "field A of record Rec" (the waveform), which is displayed by the Waveform object.

The lower Get Field object uses the expression Rec.B to extract "field B of record Rec" (the time), which is displayed by the AlphaNumeric object using the time stamp format.

UnBuild Record Example

Open the program manual12.vee from your manual examples directory (Help ==> Open Example...), and run the program.

The Build Record object builds a record consisting of field A (a waveform), and field B (a scalar).

The UnBuild Record object extracts fields A and B, then outputs the data on their respective pins.

See also

To Use a Record in an Expression

Get Field

SubRecord

UnBuild Record

Contents:  Working with Data


To Change a Field in a Record

Use the Set Field object (Data ==> Access Record ==> Set Field) to change a field in a record or in an array of records.  This topic uses example programs to show how to use the object.

Change Field in Record Example

Open the program manual13.vee from your manual examples directory (Help ==> Open Example...), and run the program.

In the left Set Field object, the expression means:  Let field Name of record Rec be equal to the value on data input terminal A.  The record is connected to the Rec data input terminal.

In the right Set Field object, the expression means:  Let field Empl_no of record Rec be equal to the value on data input terminal A.

The record continues through to the display as field changes are made.

Change Field in Array of Records Example

In the following program, the expression Rec[5].Name = A specifies that array element 5 in the Name field of record Rec is to be set equal to the data on input terminal A.

See also

Set Field

Contents:  Working with Data


To Use a Record in an Expression

You can use the record syntax Rec.Field, where Field is the name of a field within record Rec, in any HP VEE expression field.  In the following program the expression (A.High + A.Med)/A.Low adds fields High and Med of record A, and divides the result by field Low:

Tips

To avoid confusion, give your record fields descriptive names.

You can combine the record syntax with array syntax to access an array element from a record field.

See also

Contents:  Working with Data

HP VEE Reference; section: "Mathematically Processing Data" in chapter 3


To Create a Global Variable

1. Click on Data ==> Global ==> Set Global and place a Set Global object in the work area.

2. Click in the Name field and type a new global variable name if desired.  You can use any valid variable name in place of globalA for a global variable.

3. Connect a data object to the Data terminal of the Set Global object.  The global variable will be set to the data value.

Tips

If a global variable and local variable use the same name, a conflict exists, and the local variable takes precedence.

Global names are not case sensitive (globalA is equivalent to GlobalA).

You can use any type of data, such as records, to set a global variable.

To view global variables you have created, click the View Globals button on the toolbar (or use Debug ==> View Globals).

  View Globals button

See also

To Delete a Global Variable

To Use a Global Variable

To Use a Global Array

Edit Default Preferences (Delete Globals at PreRun)

Set Global

View Globals

Contents:  Working with Data


To Delete a Global Variable

1. Click on Data ==> Global ==> Delete Global and place a Delete Global object in the work area.

2. Choose whether to delete a specific global variable, or all global variables.

To delete a specific global variable by name, click on By Name (default), then click in the text field and enter the global variables name.

To delete all global variables, click on All Globals.

Tips

Global names are not case sensitive (globalA is equivalent to GlobalA).

The Delete Global object will error if the global variable referenced by name does not exist.

The name field may be added as a control input to Delete Global.

See also

To Create a Global Variable

Delete Global

Contents:  Working with Data


To Use a Global Variable

You can access a global variable by using the Get Global object (Data ==> Global ==> Get Global), or using the global variable name in an expression.  These methods are very useful in a UserObject or UserFunction.

Tips

1. To avoid using obsolete data from a previous program run, the values of all global variables are deleted (cleared) at PreRun, when you run the program.  To turn off Delete Globals at PreRun, click on the Edit Default Preferences button on the toolbar (File ==> Edit Default Preferences).

  Edit Default Preferences button

2. If global values are deleted at PreRun, you must connect the sequence output pin of the Set Global object to the sequence input pin of any object to use the global.  Otherwise, an error occurs because the global variables have no defined values.

3. You can use a global variable in any object that includes an expression.  However, you cannot include an expression in the name field of a Get Global object.

4. You can define a global variable in the main context of an HP VEE program and then access the global variable from within the context of a UserObject or UserFunction.  This requires a sequence input connection only to the UserObject or to the Call Funtion object.

The following program shows how these methods are used:

See also

To Create a Global Variable

Get Global

Contents:  Creating Custom Objects and Functions

Contents:  Working with Data


To Use a Global Array

You can declare an array to be a global variable.  This makes array handling easier because you can then access the array from anywhere in your HP VEE program.  This topic uses an example program to show how to use the object.

Example

1. Open the program manual19.vee from your manual examples directory (Help ==> Open Example...), and run the program.

The two Formula objects use array syntax to access elements of the global array.  For example, the expression globalA[3] retrieves element 3 of the global array globalA.   You can use this method with records.

See also

To Create a Global Variable

Contents:  Working with Data


Creating and Using Data Files

These topics show how to create and use data files from HP VEE.  For example programs, see chapter 4 in How to Use HP VEE, section title "Using File I/O -- Some Examples"

Storing and Retrieving Data
 To Write Data to a File
 To Read Data from a File
 To Edit a File I/O Transaction
 To Store and Retrieve a Waveform
 To Select a File Name Programmatically


To Create a Data File

Use the To File object to write data to a new file name.

1. Add a To File object to your program (I/O ==> To ==> File).

2. Connect the data input pin of the To File object to a source of data that you want to output to a file.

3. To change the name of the destination file, click on the To File button and enter a new file name in the dialog box.  Then click on OK.

The To File object uses a write transaction to output the data to the file.  HP VEE creates the file if it does not already exist.

See also

To Edit a File I/O Transaction

To File

Contents:  Creating and Using Data Files


To Edit a File I/O Transaction

The To File object uses a write transaction to communicate with the specified data file.  The default transaction is WRITE TEXT a EOL, which writes the data on input A as text, followed by an end-of-line sequence (a carriage-return/line-feed by default).  The From File object uses similar transactions to read data from a file.  You can edit a transaction by using the I/O Transaction dialog box.

To edit a transaction

1. Double-click on the transaction field in the To File or From File object.  The I/O Transaction dialog box appears.

2. To change the action, click on WRITE or READ, select an action.

3. To change the encoding, click on Text, then select the encoding.

In general, the container encoding is useful if you want to retrieve the data back into HP VEE using From File, but not if you want to access the data file with an external application such as a spreadsheet program.

The dialog box adapts to the entries you select, making corresponding options available.

4. Change other field entries as needed to configure various options such as the data format, and the end-of-line sequence, then click on OK.

5. To add another transaction, double-click on the blank line below the last transaction.

See also

From File

To File

Contents:  Creating and Using Data Files

HP VEE Advanced Programming Techniques; chapter: "Using Transaction I/O"


To Select a File Name Programmatically

If your program reads or writes data using objects such as From File or To File, you can set up your program to request a file name at run time.  The following example uses the File Name Selection dialog object with To File to show how this works.

1. Add a File Name control input terminal to the To File object.  (Object menu ==> Add Terminal ==> Control Input.)

2. Add a File Name Selection object (Data ==> Dialog Box ==> File Name Selection) to the work area and connect its File Name output to the File Name control pin on the To File object.

3. Connect the sequence output pin of the File Name Selection object to the sequence input pin of the To File object.  This ensures that the To File object will not operate until a file name has been selected.

4. In the File Name Selection object, change the Select File For field to Writing.  This ensures that the user is alerted before an existing file is overwritten.

Example for Windows

When you run the program, the Enter File Name dialog box appears, prompting for a file name.  Enter a new file name or click on an existing file name. In Windows, change the Save as type entry to All Files (*.*) since the file to be saved is not a program file.  Click on Save.

See also

File Name Selection

From File

To File

Contents:  Creating and Using Data Files


To Write Data to a File

Use the To File object to write data to a file.

To create a data file

1. Add a To File object to your program (I/O ==> To ==> File).

2. Connect the data input pin of the To File object to a source of data that you want to output to a file.

3. To change the name of the destination file, click on the To File button and enter a new file name in the dialog box.  Then click on OK.

The To File object uses a write transaction to output the data to the file.  HP VEE creates the file if it does not already exist.

To write data to a file

This procedure shows how to create a simple program that writes string and real data to a file.  If your program requires different choices, then use this procedure as a guide.

1. Add a To File object to your program (I/O ==> To ==> File).  Click on the checkbox to turn on Clear File At PreRun & Open (a check mark appears in the box).

In general, you'll want to turn on Clear File At PreRun & Open to ensure that the file is cleared and that no old data is in the file.

2. Double-click on the WRITE TEXT transaction to bring up the I/O Transaction dialog box.

3. Click on the Default Format field (or its arrow). A drop-down menu appears.

4. Click on String Format, and then click on OK.  Now the modified transaction is WRITE TEXT a STR EOL.  This transaction writes variable a (the data on input pin A) to myFile as text data in string format, followed by an end-of-line sequence (carriage-return/line-feed).

5. Add a second transaction to the To File object (object menu ==> Add Trans).  The I/O Transaction dialog box appears.

6. Change the variable field (a by default) to b.

7. Click on the Default Format field (or its arrow). The drop-down menu appears.

8. Click on Real Format, then click on OK.  The second transaction is WRITE TEXT b REAL STD EOL.  This transaction writes variable b (you'll need to add terminal B) as text in REAL STD format to myFile.

9. Add terminal B to the To File object, and then connect a Text constant object to terminal A and a Real constant object to terminal B.  The finished program should appear as follows:

When you run the program, two lines of data are written to myFile, each followed by an end-of-line sequence (carriage-return/line-feed). The first is the string String data.  The second is the real number 3.14159.

See also

To Read Data from a File

To Edit a File I/O Transaction

To File

Contents:  Creating and Using Data Files


To Read Data from a File

Use the From File object to read data from a file.

This procedure is a companion to the procedure To Write Data to a File.  It shows how to read string and real data from the file created in that procedure.  If your program requires different choices than those presented here, then use this procedure as a guide.

1. Add a From File object to the program (I/O ==> From ==> File).

2. Change the default transaction to READ TEXT x STR using the I/O Transaction dialog box as described for writing to a file.

3. Add a second transaction READ TEXT y REAL, again using the I/O Transaction dialog box as described for writing to a file.

4. Add a Y data output terminal to the From File object.

5. Connect AlphaNumeric displays to both outputs (X and Y).

6. Connect the sequence output pin of the To File object to the sequence input pin of the From File object.  This ensures that data is written to myFile before the From File object attempts to read data from the file.  The finished program should appear as follows:

See also

To Edit a File I/O Transaction

To Write Data to a File

From File

Contents:  Creating and Using Data Files


To Store and Retrieve a Waveform

Waveform data is best stored and retrieved in the form of a data container. The basic procedure is as follows:

1. Use a WRITE CONTAINER transaction in the To File object to write the waveform data to a file.

2. Use a READ CONTAINER transaction in the From File object to read the waveform data back from the file.

Example

The program manual20.vee in your manual examples directory shows how to use waveform data.  The program works as follows:

1. The waveform data from the Function Generator is written to the wavedata file by the To File object using a WRITE CONTAINER a transaction.

2. The data is read back from the wavedata file as a waveform container by From File using a READ CONTAINER x transaction.  The data is output on terminal X, and displayed by the Waveform (Time) display.

3. The sequence pin connections ensure that the waveform is written to the file before From File attempts to read it.

In a more typical situation, one HP VEE program would store the waveform data into a file, and then a second HP VEE program would read the data back into HP VEE, analyze it, and display it.

See also

To Write Data to a File

To Read Data from a File

To Edit a File I/O Transaction

From File

To File

Contents:  Creating and Using Data Files


To Store Data for a Spreadsheet Program

You can use HP VEE file I/O to produce a data file that can be read by a spreadsheet program such as Microsoft Excel or Lotus 1-2-3. In general, the steps are as follows:

1. Determine what data file format the spreadsheet program requires.  For example, how are rows and columns delimited?

2. Create an HP VEE program that collects the data, and then outputs the data to a file in an ASCII text format using the appropriate delimiters. Normally, the To File object is the best way to do this.

Let's look at an example of a program that collects (or simulates) 10 voltage readings, each with a time stamp, and outputs the data to a file that can be read by Microsoft Excel.  The following program is saved as manual21.vee in your manual examples directory:

The program works as follows:

1. The For Count and Delay objects trigger the following events approximately every 10 seconds:

a. The Counter object advances by 1.

b. The Now object outputs the current time (to within 1 second), which is converted to the Time Stamp format by the To String object.

c. The dmm (hp34401a @ (NOT LIVE)) instrument panel simulates a reading from a HP 34401A Multimeter.

2. The Build Record object builds a record for each reading (every 10 seconds), as follows:  field Cnt is the count or test number, field Tm is the current time for the reading (in the format hh:mm:ss), and field Vlts is the simulated voltage reading returned by the instrument panel object.

3. The To File object writes the data out to a file in text form. In the transaction WRITE TEXT a.Cnt," ",a.Tm," ",a.Vlts EOL

a.Cnt represents "field Cnt of record a" (the count),

" " inserts a space (as a delimiter),

a.Tm represents "field Tm of record a" (the time),

" " inserts another space (as a delimiter),

a.Vlts represents "field Vlts of record a" (the reading), and

EOL inserts the end-of-line sequence (carriage-return/line-feed).

Thus, each record is converted to string format and output (with spaces as delimiters) in the following format:

1 11:29:06 5.687753697513882

When the program is finished, the file myfile will consist of 10 rows of data, for example:

1 11:29:06 5.687753697513882

2 11:29:16 6.437091378803515

3 11:29:26 7.064658105870967

4 11:29:36 7.439572075814199

5 11:29:46 7.465490768920665

6 11:29:56 7.135229243023529

7 11:30:06 6.53525004955898

8 11:30:16 5.795432812581498

9 11:30:26 6.154398687554457

10 11:30:36 6.844467171462198

In each row, the first field (the count) is followed by a space (the delimiter), the second field (the time) is followed by another space, and the third field (the reading) is followed by an end-of-line sequence.

If you are using HP VEE for Windows on the PC, the output file will be a Windows ASCII file, which can be read directly into Microsoft Excel. Just open the file from Excel and, when asked, tell Excel that the file is delimited, and that the delimiter is the space.

If you are using HP VEE on a UNIX workstation, the data file will be a UNIX text file.  You will have to transfer the UNIX text file to the PC.  If you use ftp to transfer the file, it will automatically be converted into a Windows ASCII file, which Excel can read.

The data should appear as follows in the Excel spreadsheet:

By using appropriate delimiters you can create files that can be read by a variety of spreadsheet programs.

If you are using HP VEE for Windows you can automate the process by using DDE (Dynamic Data Exchange).  Refer to HP VEE Advanced Programming Techniques for information about using DDE.


Controlling Instruments

These topics show how to use HP VEE objects to control instruments, poll instruments, and monitor bus messages.  The examples use instrument control objects for the HP 34401A Multimeter.  If you have this instrument connected to your system, you can use the examples to communicate with the instrument by turning live mode ON.  However, the examples will run without the instrument if you leave live mode OFF.

Note

HP VEE is compatible with HP Instrument Drivers and with VXIplug&play Drivers.  The following topics about instrument drivers discuss only HP IDs.  For information about using VXIplug&play, see the manual Using VXIplug&play Drivers with HP VEE.

Using Instrument Drivers
 To Load an Instrument Driver
 To Use an Instrument Panel Object
 To Read Data with an Instrument Panel Object
 To Set Up an Additional Instrument
 To Delete an Instrument Configuration
 To Use a Component Driver Object

Using Direct I/O
 To Use a Direct I/O Object
 To Read Data Using Direct I/O

Handling Service Requests and Bus Messages
 To Poll HP-IB Instruments
 To Monitor Bus Messages


To Load an Instrument Driver

Before you can use either an instrument panel object or a component driver object, the appropriate instrument driver (.cid) file must be installed on your hard disk.

HP VEE for Windows

Many instrument drivers are provided with HP VEE for Windows.  When you installed HP VEE, you could select the groups of drivers that you wanted to install.  A few drivers are installed by default to run certain example programs.  If you need to install additional drivers, run the HP VEE setup.exe program, and select the driver options that you need.  Follow the instructions in the Installing HP VEE for Windows manual.

HP VEE for the UNIX Workstation

When you installed HP VEE for HP-UX, you could choose to install all or none of the instrument driver files.  (A few drivers are installed by default to run certain example programs.)  If you did not install the drivers, you can install them now by running the HP VEE installation program again.  Follow the instructions in the Installing HP VEE for HP-UX manual.  On Solaris, all of the instrument drivers are installed by default during the HP VEE installation.

If you need to install additional instrument drivers that you have acquired, copy them to your hard disk in the directory /usr/lib/veetest/instruments/ (HP-UX 9.x) or /opt/veetest/instruments/ (HP-UX 10.x and Solaris).

Note

From time to time new and updated instrument driver files become available.  For your convenience, these files are available electronically from Hewlett-Packard.  See Latest Information for directions to download files.

See also

Contents:  Controlling Instruments


To Use an Instrument Panel Object

To add an instrument panel object to the work area, use the Instrument Select or Configure dialog box.  Let's try an example:

1. Select I/O ==> Other Instruments....  The dialog box appears.

The dialog box lists several I/O devices that are preconfigured as part of the HP VEE installation.  Let's add an instrument panel for the HP 34401A Multimeter to the work area.

2. Select the dmm (hp34401a @ (NOT LIVE)) field by clicking on it (if it is not already highlighted).  Make sure that the Instrument Panel checkbox is selected under Instrument Type, and then click on the Get Instr button.

3. The outline of the instrument panel object appears.  Place the outline where you want it in the work area, and click the mouse button.

4. With live mode OFF (default), the hp34401a instrument panel generates simulated data.  Try clicking on the ? in the display field.  A simulated reading appears.

With live mode OFF, you can run your I/O program even if an instrument is not present.  Once you've tested the program and connected an instrument, you can set live mode to ON.

5. The Measure Panel is shown by default, which allows you to select the Function, Range, and so forth.  To change the Function setting, click on the Function button labeled DC Volts.

6. To change the function to DC Amps, double-click on DC Amps in the list.  To change back to DC Volts, click on the Function button, now labeled DC Amps, and then double-click on DC Volts in the list.

While live mode is OFF, none of these changes affect an instrument, even if one is connected to your system.  However, if live mode is ON and you have an HP 34401A Multimeter connected to the HP-IB (correctly addressed and configured), the changes on the HP VEE instrument panel object will automatically change the state of the instrument.

7. The Measure Panel is only one of several panels that you can select.  Click on the Measure Panel button at the upper-right corner of the object.

8. Double-click on Status Panel in the list.  The Status Panel appears.

9. To go back to the Measure Panel, click on the Status Panel button and double-click on Measure Panel.

The various panels in an instrument panel object let you control almost all functions of an instrument.  However, you need to be familiar with a particular instrument in order to use the instrument panel effectively.  Refer to the instrument owner's manual for further information.  For information about an instrument panel object, select Help from the object menu.

See also

Contents:  Controlling Instruments


To Read Data with an Instrument Panel Object

In this procedure, you will create a simple program that displays simulated voltage readings from an instrument panel object for an HP 34401A Multimeter.

1. Add an instrument panel object for the HP 34401A (I/O ==> Other Instruments...).

2. Select Add Terminal by Component ==> Select Output Component from the object menu of the instrument panel.

3. Click on the HP 34401A display.  The Reading terminal is added to the output.

4. Add an AlphaNumeric display object to the work area, connect it as shown below, and run the program.  Since live mode is OFF, the data is simulated, which is indicated by the Simulated Data label (and by (NOT LIVE) in the title bar).

5. To turn live mode ON, select I/O ==> Other Instruments..., select dmm (hp34401a @ (NOT LIVE)) in the list (if it is not already highlighted), and then click on Edit Instrument.  The Device Configuration dialog box appears showing the configuration for the HP 34401A Multimeter.

6. If the address shown (the default is 722) doesn't match the address of the instrument, enter the correct address.  (For information on addressing a particular instrument, refer to the instrument owner's manual.)

7. Click on the button to the right of Live Mode.  The button toggles from OFF to ON.  Then click on OK.

8. Click on the Save Config button in the Instrument Select or Configure dialog box. The instrument panel now has live mode ON.

The new title, dmm (hp34401a @ 722), shows that live mode is ON and that the instrument panel is configured to communicate with an HP 34401A Multimeter at HP-IB address 722.  Of course, the program will time out unless there actually is an HP 34401A at address 722.

At this point, if you have an HP 34401A Multimeter, you can connect it and run the program.  Otherwise, use the Device Configuration dialog box (I/O ==> Instrument... ==> Edit Instrument) to return to live mode OFF.

See also

HP VEE Advanced Programming Techniques; chapter: "Using Instruments"

Contents:  Controlling Instruments


To Set Up an Additional Instrument

It is easy to use an instrument panel object for an I/O device once that device is listed in the Instrument Select or Configure dialog box.

To add and configure an instrument

1. Select I/O ==> Other Instruments....  The Instrument Select or Configure dialog box appears.

2. Click on Add Instrument.  The Device Configuration dialog box appears.  This dialog box allows you to configure the new instrument.

3. Use the default name (newDevice) and interface (HP-IB).  To select an instrument driver file, click on the Instrument Driver Config button.

4. The Instrument Driver Configuration dialog box appears.  Click on the ID Filename button (the "blank" button) and the Read from what Instrument Driver? dialog box appears.

5. Select the instrument driver file named hp34401a.cid. (This is the compiled instrument driver (".cid") file for the HP 344401A Multimeter.)   If no instrument driver file is listed for the instrument you want to add, you must load the appropriate file.  See To Load an Instrument Driver, for further information.

a. Select hp34401a.cid in the list of file names.  Click on the file name and then click on OK to exit the Read from what Instrument Driver? dialog box.

b. Click on OK to exit the Instrument Driver Configuration dialog box and return to the Device Configuration dialog box.

6. Enter an HP-IB address for the instrument in the Address field, for example 722.  Click on the field, enter the address, and then tab to the next field.  Note that the Live Mode button automatically toggles to ON when you enter an address.

For information about determining what address to use for a particular instrument, refer to the "Using Instruments" chapter in HP VEE Advanced Programming Techniques, and to the owner's manual for the instrument.

7. Click on OK to exit the Device Configuration dialog box.  The new selection, newDevice (hp34401a @ 722), is highlighted in the Instrument Select or Configure dialog box.

8. If the Instrument Panel checkbox is not already selected, click on it.

9. Click on the Get Instr button to add the instrument panel object to the work area.

See also

Contents:  Controlling Instruments


To Delete an Instrument Configuration

You can delete an instrument from the Instrument Select or Configure dialog box.

1. Select I/O ==> Other Instruments....  Then select the instrument configuration name you want to delete by clicking on it.

2. Click on the Delete Instrument button.  The selection is removed from the list.

3. Click on the Save Config button to close the dialog box and save the new configuration.

See also

Contents:  Controlling Instruments


To Use a Component Driver Object

You can gain a slight increase in performance by using a component driver object.

1. Select I/O ==> Other Instruments....  The Instrument Select or Configure dialog box appears.

2. Select the dmm (hp34401a @ (NOT LIVE)) configuration (if it is not already highlighted).  Then click on the checkbox for Component Driver.

3. Click on the Get Instr button and place the component driver object in the work area.

4. The component driver object appears as an icon.  Double-click on the icon to display the open view.

5. Add a Reading terminal to the component driver object (object menu ==> Add Terminal ==> Data Output).

See also

manual22.vee in the manual examples directory
Help ==> Open Example...

Component Driver

Contents:  Controlling Instruments


To Use a Direct I/O Object

To add a direct I/O object, configured to communicate with an HP 34401A Multimeter at HP-IB address 722, to the work area:

1. Select I/O ==> Other Instruments....  The Instrument Select or Configure dialog box appears.

2. Click on the checkbox for Direct I/O and select dmm (hp34401a @ NOT LIVE).

3. Click on Edit Instrument..., and then turn on live mode by clicking on the Live Mode button.

4. Click on OK, and then click on Get Instr.  Place the direct I/O object in the work area.

See also

HP VEE Advanced Programming Techniques; chapter: "Using Instruments"

Direct I/O

MultiDevice Direct I/O

Contents:  Controlling Instruments


To Read Data Using Direct I/O

This procedure shows how to use the direct I/O object to read data from an HP 34401A Multimeter.

1. Add a direct I/O object, configured for address 722, to the work area as shown in To Use a Direct I/O Object.

2. The direct I/O object uses transactions to communicate with an instrument.  Double-click on the "blank" transaction (the highlighted field) in the object.  The I/O Transaction dialog box appears with the variable a highlighted.  Enter the string "MEAS:VOLT:DC?" in its place.  Click on OK to create the transaction WRITE TEXT "MEAS:VOLT:DC?".

3. Select Add Trans from the object menu to add a second transaction.  Change the transaction dialog box action to READ and the encoding to TEXT .  Click on OK.

4. Now add a data output terminal to the object.  (Use the object menu or the shortcut, Ctrl+A.)  The direct I/O object now has two transactions:

a. WRITE TEXT "MEAS:VOLT:DC?" EOL writes the command string "MEAS:VOLT:DC?" to the instrument at address 722.  To the HP 34401A Multimeter, the command string MEAS:VOLT:DC? means "output one dc voltage reading."

b. READ TEXT x REAL reads text data in the real format from the instrument at address 722, and outputs the data on the X data output terminal.

5. To complete the program, add an AlphaNumeric display object to the work area, and connect it as shown below.  (You can run this program if you have an HP 34401A Multimeter connected to the HP-IB at address 722.)

See also

HP VEE Advanced Programming Techniques; chapter: "Using Transaction I/O"

Programming manual for your specific instrument

Direct I/O

MultiDevice Direct I/O

Contents:  Controlling Instruments


To Poll HP-IB Instruments

From time to time an HP-IB instrument sends a service request ("SRQ") on the bus.  HP VEE provides two devices that help you determine what device has requested service, and what the problem is.  Both of these objects are found under I/O ==> Advanced I/O.

The Interface Event object reports an event for the entire bus. For example, if Interface Event is set to report an SRQ for hpib7, any device on the interface at select code 7 can cause an event. You can also use the Interface Event object to detect events on the serial and VXI interfaces, if such instruments are configured.

The Device Event object returns the status byte from a particular instrument.  On the HP-IB, use Device Event objects to poll the individual devices on the bus.

Example

The following program shows how to use the Interface Event and Device Event objects to process HP-IB service requests:

In the program the Interface Event object waits for an event on hpib7, that is, on the HP-IB interface at select code 7.  However, the Interface Event object does not indicate which device on the bus caused the event.

The event output of the Interface Event object activates both of the Device Event objects, which individually poll two HP-IB instruments (the HP 34401A and HP 54600A).  Each Device Event object has its action set to Any Set and its mask set to #H10. Any Set causes the object to wait for an event to occur, and then perform a logical AND of the returned value with the mask #H10, which corresponds to bit 4 in the status byte (DAV, or "data available").  The result is returned on the status output terminal.

See also

Device Event

Contents:  Controlling Instruments

HP VEE Advanced Programming Techniques; chapter: "Using Instruments"


To Monitor Bus Messages

HP VEE communicates with an instrument by means of a series of messages.  On the HP-IB, the bus messages follow the IEEE-488 standard.  Normally, these messages are not seen.  However, when you debug your I/O program you may want to monitor the messages on the bus.  To do this, add a Bus I/O Monitor object to your program. You can also use this object to monitor VXI or serial interface messages.

To add a Bus I/O Monitor object

1. Select I/O ==> Bus I/O Monitor.  The Select I/O Channel dialog appears.

2. Select one of the interfaces, such as hpib7, and click on OK.

3. Place the object in the work area.

Example

The following program shows the Bus I/O Monitor object monitoring the bus:

Each time you run the program, the sequence of bus messages is recorded. When the program stops, you can scroll through the messages.  By default, the Bus I/O Monitor object can save 256 lines of information in its buffer.  However, you can change the buffer size.

The Bus I/O Monitor object slows down your program, and is generally used for diagnostic purposes.  Many programmers create a program using an instrument panel or component driver to control an instrument, and then use Bus I/O Monitor to "capture" the commands and messages used to communicate with the instrument.  You can then use these commands and messages to communicate with the instrument using direct I/O, which provides increased I/O performance.

See also

Bus I/O Monitor

Contents:  Controlling Instruments

HP VEE Advanced Programming Techniques; chapter: "Using Instruments"


Displaying Data

HP VEE provides several types of display objects, found under the Display menu.  These topics show how to use several of these objects to display various types of data.

Displaying Alphanumeric Information
 To Display a Scalar Value
 To Display an Array of Values
 To Display a Series of Values in a Log

Using the Indicator Displays
 To Show an Analog Display of Data
 To Show a Color Alarm

Graphically Displaying Data
 To Display XY Values
 To Display a Waveform
 To Display Polar Data
 To Add a Trace
 To Change the Color of a Trace
 To Change the Line Type or Point Symbol of a Trace
 To Zoom into or out of the Display
 To Change the Grid Type
 To Set Markers in the Display
 To Automatically Re-Scale the Display
 To Clear the Display


To Display a Scalar Value

Use the AlphaNumeric object to display scalar values.  This object clears itself and displays only the new data received each time it executes.

1. Add an AlphaNumeric display to the work area (Display ==> AlphaNumeric).

2. Connect the data input pin of the AlphaNumeric object to a source of scalar data (for example, a Real constant object).

3. Run the program to display the data.

Example

See also

AlphaNumeric

Contents:  Displaying Data


To Display an Array of Values

Use the AlphaNumeric object to display an array.  This object clears itself and displays only the new data received each time it executes.

1. Add an AlphaNumeric display to the work area (Display ==> AlphaNumeric).

2. Connect the data input pin of the AlphaNumeric object to a source of array data (for example, an Alloc Real object).

3. Run the program to display the data.

4. Resize the AlphaNumeric object to show the entire array.

Example

The one-dimensional array is a single data container consisting of 10 elements.

See also

AlphaNumeric

Contents:  Displaying Data


To Display a Series of Values in a Log

Use the Logging AlphaNumeric object to display a series of values in a log.  This object keeps a "history log" of the data it receives.

1. Add a Logging AlphaNumeric display to the work area (Display ==> Logging AlphaNumeric).

2. Connect the data input pin of the Logging AlphaNumeric object to a repeating source of data (for example, a For Count object).

3. Run the program to display the log of data.

Example

The Logging AlphaNumeric object displays a log of the 10 scalar values from the For Count object.

See also

To Show an Analog Display of Data

Logging AlphaNumeric

Contents:  Displaying Data


To Show an Analog Display of Data

Use an Indicator object to display scalar data on an analog indicator.  These objects provide three-color range indication.

Fill Bar displays a value using a color bar.

Meter displays a value on an analog meter.

Tank displays a value using a color bar in a graphical tank.

Thermometer displays a value using "mercury" in a graphical thermometer.

The following procedures use the Thermometer object as an example.  You can use similar techniques with the other Indicator objects.

To display data on a Thermometer

1. Add a Thermometer object to the work area (Display ==> Indicator ==> Thermometer).

2. Connect an Integer Slider object to the data input pin of the Thermometer.  Move the slider to select a value, and run the program.  Run the program with the slider set to different values along its range.

The "mercury" level and color change as you change the slider value.  The value is displayed at the bottom of the Thermometer.

3. Try changing the range of the Thermometer scale. Click on the lower range field (0) and enter a new value.  Do the same for the upper range field (100).  Note that the thermometer scale changes to conform to the new range.

To reconfigure the Thermometer object

1. Click on Edit Properties from the object menu of the Thermometer. The Thermometer Properties dialog box appears.

2. Try changing a few parameters:

a. From the Layout section of the dialog box you can select either a vertical (the default) or a horizontal layout for the Thermometer. You can also turn the digital display on or off.

b. From the Limits section of the dialog box you can select a color for each range (low, mid, and high).  Click on a color button to show the possible colors.  You can also set the lower and upper limit values to determine where each color range begins.

3. Click on OK to see the effect of your changes.

See also

To Show a Color Alarm

Fill Bar

Meter

Tank

Thermometer

Contents:  Displaying Data


To Show a Color Alarm

The Color Alarm object displays user-definable color indicator and text string depending on the value on its data input pin.

To use a Color Alarm

1. Add a Color Alarm object to the work area (Display ==> Indicator ==> Color Alarm).

2. Connect a Real Slider object to the data input pin of the Color Alarm.  Move the slider to select a value, and run the program.  Run the program with the slider set to different values along its range.

The color and text displayed by the Color Alarm change as you change the slider position.

To configure the Color Alarm

1. Click on Edit Properties from the object menu of the Color Alarm object.  The Color Alarm Properties dialog box appears.

2. Try changing a few parameters:

a. From the Layout section of the dialog box you can select either a circular (the default) or a rectangular layout for the Color Alarm. You can also turn the digital display and the "three dimensional" border on or off.

b. From the Limits section of the dialog box you can select a color for each range (low, mid, and high).  Click on a color button to show the possible colors.  You can also change the text for each range, and you can set the lower and upper limit values to determine where each color range begins.

3. Click on OK to see the effect of your changes.

See also

To Show an Analog Display of Data

Color Alarm

Contents:  Displaying Data


To Display XY Values

The XY Trace and X vs Y Plot objects are usually the most applicable of the graphical displays.

To plot a series of values

1. Add an XY Trace object to the work area (Display ==> XY Trace).

2. Connect a source of data to the data input pin on the XY Trace object.  The data can either be a continuously-generated series of points, or a waveform.

3. Run the program.  If you aren't sure of the appropriate scale, click on the Auto Scale button to automatically re-scale the display and show the trace.

Example

In the following program, the For Range object repeats 37 times, generating the series of values 0, 10, 20, and so forth, up to 360. The Formula object calculates the sine of each value and outputs the result to the XY Trace object, which plots the resulting curve.

To plot a series of Y values against X values

1. Add an X vs Y Plot object to the work area (Display ==> X vs Y Plot).

2. Connect the XData and YData1 data input terminals to the appropriate sources of data.  You can plot a continuously-generated series of Y points against X points, or you can plot a waveform against a waveform.  However, you cannot mix data shapes.

3. Run the program.  If you aren't sure of the appropriate scale, click on the Auto Scale button to automatically re-scale the display and show the trace.

Example

In the following program, the For Log Range object repeats 14 times, generating a logarithmic series of Y data points.  The Counter outputs the current count to the XData input terminal, while the For Log Range object outputs the logarithmic series to the YData1 input terminal.  The X vs Y Plot object displays the resulting curve.

See also

To Display a Waveform

X vs Y Plot

XY Trace

Contents:  Displaying Data


To Display a Waveform

Use the Waveform (Time) display object or the XY Trace object to display waveform data.  Use the X vs Y Plot object to display one waveform against another.  The following examples show how to display waveforms.

Note

To change the display objects properties such as layout, grid type, and markers, click on Edit Properties on the object menu.

To display a sine wave on an XY Trace object

1. Add an XY Trace object to the work area (Display ==> XY Trace).

2. Add a Function Generator object to the work area (Device ==> Virtual Source ==> Function Generator).  Connect the Func output of the Function Generator to the data input pin on the XY Trace object.

3. Change the settings on the Function Generator to output a 50 Hz sine wave, as shown below.  Run the program and click on Auto Scale to show the waveform.

In the following program, the XY Trace object displays the waveform in the time domain.  The magnitude of the waveform is plotted against a time scale of from 0 to 20m (20 milliseconds) to match the time span of the waveform.  The XY Trace object does this automatically if the input data is a waveform.  Otherwise, the X axis is simply the number of points plotted.

To display one waveform against another on an X vs Y Plot object

1. Add an X vs Y Plot object to the work area (Display ==> X vs Y Plot).

2. Add two Function Generator objects to the work area.

3. Connect the Func output of one Function Generator to the XData input pin on the X vs Y Plot object.  Change the settings on this Function Generator to output a 50 Hz sine wave, with Phase set to 0 degrees.

4. Connect the Func output of the other Function Generator to the YData1 input pin.  Change the settings on this Function Generator to output a 50 Hz sine wave, with Phase set to 45 degrees.

5. Run the program and click on Auto Scale to show the waveform.

In the following program, the Function Generator objects generate two 50 Hz sine waves, which are 45 degrees out of phase.  These waveforms are plotted against each other, displaying a classic Lissajous figure.

To display two waveforms on a Waveform (Time) object

1. Add a Waveform (Time) object to the work area (Display ==> Waveform (Time)).

2. Click on Add Terminal ==> Data Input... from the object menu to add a second terminal.

3. Add two Function Generator objects to the work area.

4. Connect the Func output of one Function Generator to the Trace1 input pin on the Waveform object.  Change the settings on this Function Generator to output a 50 Hz sine wave, with Phase set to 0 degrees.

5. Connect the Func output of the other Function Generator to the Trace2 input pin.  Change the settings on this Function Generator to output a 50 Hz sine wave, with a DcOffset of -0.8, and Phase set to 0 degrees.

6. Run the program and click on Auto Scale to show the waveform.

In the following program, the Function Generator objects generate two 50 Hz sine waves, but the second has a d.c. offset of -0.8.  The Waveform (Time) object displays the two waveforms as Trace 1 and Trace 2.

Note

You can also use the XY Trace, X vs Y Plot, and Waveform (Time) objects to display waveform data from an instrument.

See also

To Add a Trace

Controlling Instruments

Waveform (Time)

X vs Y Plot

XY Trace

Contents:  Displaying Data


To Display Polar Data

Use the Polar Plot display object to plot polar data. The following procedure is an example of how to use this object.

1. Add a Polar Plot display object to the work area (Display ==> Polar Plot).

2. Add a For Range object and a Formula object.  Connect the objects as shown in the following program.  Enter the desired trigonometric formula in the Formula object and run the program.  Click on Auto Scale to see the result.

The trigonometric formula, 1-(sin(360-A)/3)-cos(A), creates the "heart-shaped" figure.  You can enter any formula that you want.  The For Range object repeats, stepping the angle one degree at a time from 0 to 360 degrees.  The Polar Plot object plots the trigonometric data against the angle.

See also

Polar Plot

Contents:  Displaying Data


To Add a Trace

You can add a trace to any of the graphical (XY) display objects.

1. Select Add Terminal ==> Data Input from the object menu of the display object.

2. The new input is added to the object with the appropriate label.  On some displays, only the pin is visible, not the labels.

3. To see the terminal labels, select Edit Properties from the object menu and click on the checkbox for Show Terminals in the dialog box. Then click on OK.

4. Once you've added the terminals that you want, connect a source of data to each.

See also

To Change the Color of a Trace

Contents:  Displaying Data


To Change the Color of a Trace

You can change the colors of the traces in the graphical (XY) display objects.

1. Select Edit Properties from the object menu.  The Properties dialog box appears.

2. In the Layout area, click on the Traces & Scales button.  The Traces and Scales dialog box appears.

3. Under Traces, click on the button beside Color.  Click on a new pen color from the resulting dialog box, and click on OK.  Make color choices for other available traces.

4. When you finish changing trace colors, then click on OK in each dialog box to get back to the work area.  The new pen colors are now active.

See also

Contents:  Displaying Data


To Change the Line Type or Point Symbol of a Trace

You can change the line type or point symbol of the traces in the graphical (XY) display objects.

1. Select Edit Properties from the object menu.  The Properties dialog box appears.

2. In the Layout area, click on the Traces & Scales button.  The Traces and Scales dialog box appears.

3. Under Traces, you can change both the line type and the point symbol:

a. To change the line type, click on the button to the right of Lines: -- each time you click, the line type changes.  Continue clicking until you find the line type you prefer.  Make line type choices for other available traces.

b. To change the point symbol, click on the button to the right of Points: -- each time you click, the point symbol changes.  Continue clicking until you find the point symbol you prefer.  Make point symbol choices for other available traces.

4. Click on OK in each dialog box to get back to the work area.

See also

Contents:  Displaying Data


To Zoom into or out of the Display

You can zoom into or out of the display in any of the graphical (XY) display objects.  This procedure uses an example program to show how to use zoom.

1. Load the program manual23.vee from the manual examples directory (Help ==> Open Example...).  Run the program to display a trace.

2. Select Zoom ==> In from the object menu of the display object.

3. Move the pointer to the upper right-hand corner of the area on which you want to zoom.  Then click and drag the pointer to define the area, as shown in the following figure.

4. Release the mouse button.  The zoomed area is displayed.

5. Click on Auto Scale to return to the original display.

6. Now select Zoom ==> Out 2 X from the object menu of the display object.

7. Note how the display zooms out to twice its original size.  Click on Auto Scale at any time to return to the original display.

See also

Contents:  Displaying Data


To Change the Grid Type

You can change the grid type of any of the graphical (XY) display objects.

1. Select Edit Properties from the object menu. The Properties dialog box appears.

2. Under Grid Type, click on the checkbox for the type of grid that you want (the default is Lines).

3. Click on OK to exit the dialog box and see the changes.

See also

Contents:  Displaying Data


To Set Markers in the Display

You can set markers in any of the graphical (XY) display objects to identify the positions of peaks and valleys.

1. Select Edit Properties from the object menu. The Properties dialog box appears.

2. Under Markers, click on the desired checkbox:

a. Off turns markers off (the default).

b. One turns on one marker.  The marker position is displayed at the bottom of the object.

c. Two turns on two markers.  The position of each is displayed at the bottom of the object.

d. Delta turns on two markers.  The position of each, and the difference between the two positions, is displayed at the bottom of the object.

In addition, if you click on the Interpolate checkbox, you can place the markers between the displayed data points.  (The marker positions are calculated by linear interpolation.)

3. Click on OK to exit the dialog box.  The following example shows what an XY Trace object looks like with two markers set:

4. After setting a marker, you can move it along a trace by clicking and dragging on it with the mouse.

Example

The program shown above is saved as manual24.vee in the manual examples directory (Help ==> Open Example...).

1. Load and run the program to display a waveform on the XY Trace object.

2. Try moving the markers.  Note the position data at the bottom of the XY Trace object.

See also

Contents:  Displaying Data


To Automatically Re-Scale the Display

You can re-scale any of the graphical (XY) displays at any time by clicking on the Auto Scale button.  However, it is often more convenient to have the display automatically re-scale itself each time it executes.  To do this, add a control pin to the display object:

1. Select Add Terminal ==> Control Input from the object menu of the graphical display object.

2. Select the appropriate control input to add:

Auto Scale re-scales both axes.

Auto Scale X re-scales the X axis.

Auto Scale Y re-scales the Y axis.

3. Connect the sequence output pin of the graphical display object to the control terminal.  Whenever the display object displays a trace, it automatically re-scales the display to show the entire trace.

See also

Contents:  Displaying Data


To Clear the Display

Use either of the following ways to clear the display on any graphical (XY) display object:

Select Clear Control ==> Display from the object menu.

or

Add a Clear control input terminal to the object.  From the object menu, click on Add Terminal ==> Control Input.  Select Clear and click on OK.  The display is cleared whenever the Clear terminal is activated by a connection to a sequence output pin.

See also

Contents:  Displaying Data


Printing and Plotting Techniques

These topics show how to use printers and plotting devices with HP VEE.  HP VEE supports the HP LaserJet, HP DeskJet, and most PostScript(TM) printers for HP VEE printing and for plotting operations.  In addition, HP VEE supports most HP-GL compatible plotting devices.  For further information about supported printers and plotters, refer to the installation guide for your version of HP VEE.

Printing from HP VEE
 To Change the Printer Palette
 To Set Up a Printer
 To Print the HP VEE Work Area
 To Print an Entire HP VEE Program
 To Print the Objects in an HP VEE Program
 To Send Data to a Printer

Plotting XY Displays on a Printer or Plotter
 To Set Up a Plotting Device
 To Plot a Graph


To Change the Printer Palette

You can change the gray-scale palette that HP VEE uses for printing.

1. Click the Edit Default Preferences button on the toolbar to display the Default Preferences dialog box (or use File ==> Edit Default Preferences).  Then click on the Printing tab.

  Edit Default Preferences button

2. The Screen Element and B&W Printer Darkness fields both provide drop-down lists.  To change the darkness (gray-scale value) for the Detail View, click on B&W Printer Darkness (or the arrow).

3. Now click on the desired darkness.  If you want the Detail View background to be white, click on 0 % (White).  (Most HP VEE elements are set to Automatic grayscale by default.  The colors in your screen palette are automatically converted to appropriate shades of gray.)

4. To change the Print Magnification value, click on the field and edit the value.  (The default is 100 percent.  You can set values greater or less than 100 to change the size of the printed image.)

5. To save the changes as the new defaults (in VEE.RC or .veerc), click on Save.  Click on OK if you want to use the changes for this HP VEE session only (until you select File ==> New, Open, or Exit).

See also

Contents:  Printing and Plotting Techniques


To Set Up a Printer

The printer setup procedure is different for HP VEE for Windows and HP VEE for UNIX.

HP VEE for Windows

To change the printer configuration for HP VEE for Windows, follow these steps.  (In most cases the default printer configuration will work.)

1. Select File ==> Print Setup.  The Print Setup dialog box appears.

2. Select the printer configuration that you want, using the standard Microsoft Windows techniques for the Print Setup dialog box.

3. Click on Options for more printing options, or click on OK to confirm your selections.

HP VEE for UNIX

To change the printer configuration for HP VEE on a UNIX workstation, follow these steps.  (In most cases the default printer configuration will work.)

1. Click the Edit Default Preferences button on the toolbar to display the Default Preferences dialog box (or use File ==> Edit Default Preferences).  Then click on the Printing tab.

  Edit Default Preferences button

2. Click on the Printer Setup button to display the Printer Configuration dialog box.

3. Select the desired printer configuration:

Click on the Default button to the right of Graphics Printer and use the drop-down menu to select a graphics printer. Or click on the Graphics Printer button to toggle to Graphics Directory.

Click on the Default button to the right of Text Printer and use the drop-down menu to select a text printer.

Select other options by editing the appropriate fields.

4. Click on OK to confirm your new printer configuration and return to the Default Preferences dialog box.

5. To save the changes as the new defaults (in the .veerc file), click on Save.  Click on OK if you want to use the changes for this HP VEE session only (until you select File ==> New, Open, or Exit).

See also

Contents:  Printing and Plotting Techniques


To Print the HP VEE Work Area

You can print the HP VEE work area (actually, the HP VEE Window).

1. To print the work area immediately, click the Print Screen button on the toolbar.

  Print Screen button

or

1. Use File ==> Print Screen.  The Print dialog box appears (the dialog box is different for Windows and UNIX).

2. If the printing configuration is acceptable, click on OK to print the HP VEE work area.  Or change the parameters and then click on OK.  The work area is printed, complete with the window border.

Shortcuts

These shortcuts let you capture the HP VEE screen even when a dialog box is displayed, and the toolbar button and menu are inaccessible:

HP VEE for Windows:  Capture the HP VEE window in the Microsoft Windows clipboard by pressing Alt+Print Screen on the keyboard at any time.  (If a program is running, it will pause momentarily.) You can then paste the image into Microsoft Paint or other Windows graphics applications.

HP VEE for UNIX:  Print the work area by pressing Shift+Print on the keyboard at any time.  (If a program is running, it will pause several seconds for the printout.)

See also

Contents:  Printing and Plotting Techniques


To Print an Entire HP VEE Program

You can print a representation of an entire HP VEE program using the Print All feature.

1. Select File ==> Print All.  The Print All dialog box appears.

By default, the Print All dialog box has Print Complete Network turned on, which causes the entire program to be printed (even if it doesn't fit in the visible screen).  Multiple pages are printed if necessary to show the entire program, with objects connected together with lines to show the complete network.

With Include All UserObjects and Include All UserFunctions turned on, the objects inside of UserObjects and UserFunctions are included in the printout.

2. Click on OK.  The print dialog box appears.  Change the printing configuration if desired.

3. Click on OK again to print a representation of the entire program.

See also

Contents:  Printing and Plotting Techniques


To Print the Objects in an HP VEE Program

You can print all of the objects in an HP VEE program.

1. Select File ==> Print All.  The Print All dialog box appears.

2. Click on the checkboxes, turn Print All Objects on, and turn Print Complete Network off.

With Print All Objects turned on, Print All causes all of the objects in the program to be printed out sequentially, not showing the connections in the program.  Multiple pages are printed if necessary.

With Include All UserObjects and Include All UserFunctions turned on, the objects inside of UserObjects and UserFunctions are included in the printout.

3. Click on OK.  The print dialog box appears.  Change the printing configuration if desired.

4. Click on OK again to print all of the objects in the program.

See also

Contents:  Printing and Plotting Techniques


To Send Data to a Printer

You can send data from your HP VEE program directly to a printer.

1. Add a To Printer object to your program (I/O ==> To ==> Printer) and connect the data input pin to the source of the data that you want to print.

2. Double-click on the To Printer icon to display the open view containing the I/O transactions that output data.

3. The default output transaction is WRITE TEXT a EOL.  If desired, change the transaction to output the data in some other form.

4. Run the program.  When the To Printer object operates, the data is output to the printer, which prints the data using the current printing configuration.

Tip

On HP VEE for Windows, the To Printer object outputs data through the Windows printer driver, which adds a header and changes the fonts.  To output straight ASCII text to a printer from HP VEE for Windows, use the To File object with the file name set to LPT1 (or whichever printer port you are using).  On UNIX workstations, the To Printer object outputs straight ASCII text to the printer, including carriage-return/line-feed characters, tab characters, and escape characters.

See also

To Edit a File I/O Transaction

To Write Data to a File

Contents:  Printing and Plotting Techniques


To Set Up a Plotting Device

On HP VEE for Windows, the Plot function uses the standard Windows printer drivers for plotting.  So you don't need to do anything special to set up a plotting device.

On HP VEE for UNIX, you can set up a plotting device as follows:

1. Click the Edit Default Preferences button on the toolbar to display the Default Preferences dialog box (or use File ==> Edit Default Preferences).  Then click on the Printing tab.

  Edit Default Preferences button

2. Click on the Plotter Setup button to display the Plotter Configuration dialog box.

3. Select the desired plotter configuration:

Click on the Default button to the right of Plotter Device and use the drop-down menu to select a device. Or click on the Plotter Device button to toggle to Plot to File.

Select a Plotter Type, Number of Pens, Paper Size, and so forth by editing the appropriate fields.

4. Click on OK to confirm your new plotter configuration and return to the Default Preferences dialog box.

5. To save the changes as the new defaults (in the .veerc file), click on Save.  Click on OK if you want to use the changes for this HP VEE session only (until you select File ==> New, Open, or Exit).

See also

Contents:  Printing and Plotting Techniques


To Plot a Graph

There are two ways that you can plot a graph to your plotting device from XY display objects such as the XY Plot or Waveform (Time) objects.

Select the Plot command from the object menu of the XY display.

or

Add a Plot control input terminal to the XY display.  From the object menu, click on Add Terminal ==> Control Input.  Select Plot and click on OK.  To programmatically plot the graph, connect the sequence output pin of the object providing the data to the Plot control pin.

See also

Contents:  Printing and Plotting Techniques


Creating Custom Objects and Functions

These topics show how to create your own custom objects and functions. You can encapsulate a group of HP VEE objects, which together perform a particular task, into a UserObject.  You can also create a custom function by converting a UserObject into a UserFunction.

Creating and Using UserObjects
 To Add Objects to the UserObject Work Area
 To Add Input and Output Terminals to a UserObject
 To Create a UserObject in a Program
 To Create a UserObject from Objects in a Program
 To Exit a UserObject Early
 To Add a Panel View to a UserObject
 To Create and Use a Library of UserObjects
 To Secure a UserObject

Creating and Using UserFunctions
 To Create a UserFunction
 To Edit a UserFunction
 To Call a UserFunction in a Program


Some UserObject Concepts

A UserObject provides the means for you to encapsulate a group of objects that perform a particular task into a single, custom object. This encapsulation allows you to:

Use modular design techniques in building your HP VEE program.  This allows you to solve a complex problem through an organized approach.  UserObjects allow you to use top-down design techniques to create a more flexible and maintainable program.

Build user-defined objects that you can save in a library for later re-use.

Once a UserObject is created and saved, you can Merge it in other programs.

UserObject Features

The following figure shows an "empty" UserObject and identifies its features:

fig8-1a.bmp}

 cbullet.bmp}	Like all other HP VEE objects, each UserObject has an object menu button, which raises the object menu, and a minimize button, which minimizes the UserObject. In addition, the UserObject has a maximize button, which maximizes the UserObject to occupy the available space.

 cbullet.bmp}	The UserObject work area is similar to the main HP VEE work area. You can create an HP VEE program segment within the UserObject by adding objects to the UserObject work area and connecting them.

 cbullet.bmp}	The UserObject input terminal area and output terminal area allow you to add data terminals and control terminals, so that the UserObject can communicate with the rest of your HP VEE program.

Contexts and UserObjects

A UserObject represents a separate context within an HP VEE program, just as a subprogram represents a separate context within a C or BASIC program.  You can nest UserObjects in an HP VEE program, as shown below:

 fig8-1b.bmp}

Each UserObject has a different context depending on its location in the program.  There are four contexts in the above example:

1. Object A, UserObject1, and UserObject2 are in the root context of the program.  That is, they are in the main work area.

2. Object B is in the context of UserObject1.  That is, it is in the work area of UserObject1.

3. Object C and UserObject3 are in the context of UserObject2.

4. Object D is in the context of UserObject3.

Propagation and UserObjects

Propagation in a program containing UserObjects is affected by the fact that a UserObject is a separate context.  The UserObject propagation rules are as follows:

 cbullet.bmp}	All data input terminals (and the sequence input terminal if connected) of the UserObject must be activated before any objects within the UserObject operate.

 cbullet.bmp}	Once the data input terminals (and the sequence input terminal if connected) of the UserObject have been activated, the UserObject operates. The objects within the UserObject operate following the rules of propagation listed under <xref prop-sum>.  However, the objects within the UserObject time-share in operation with external objects on different subthreads.  The UserObject does not block the operation of external objects on different subthreads.

 cbullet.bmp}	If the optional XEQ input terminal is activated, the UserObject immediately begins operation of the objects within its work area, using whatever "old" data may be on the unactivated input terminals of the UserObject.  In most cases, you need not use the XEQ terminal for a UserObject.

 cbullet.bmp}	The UserObject data output terminals are not activated until all objects within the UserObject finish operating (unless the UserObject is exited prematurely by an error or an Exit UserObject).  Only those output terminals activated from inside the UserObject pass data to objects outside the UserObject. When activated, each data output terminal outputs only one data container.

For more information about the propagation rules, refer to Propagation Summary.

NOTE
If there is a Start object in a UserObject (to handle feedback), pressing Start causes only the objects within the UserObject to run.  No data will be read from the input terminals of the UserObject, nor will its output terminals be activated.  Therefore, no propagation outside the UserObject takes place.

Data Output from a UserObject

As stated in the propagation rules, each data output terminal of a UserObject outputs only one data container (the last received by the terminal) to the context outside the UserObject when the objects within the UserObject finish propagating.  This can lead to unexpected results in your program if you neglect to account for it. The following example illustrates this situation:

 fig8-1c.bmp}

Although the For Count object sends 10 data containers (the numbers 0 through 9) to the Count output terminal, only one data container (the last number) is output from the UserObject.  However, you can use a Collector object to collect the data from the For Count object into an array.  The Array output terminal also outputs only one data container, but that container is a one-dimensional array of 10 values (0 through 9).


To Add Objects to the UserObject Work Area

Any object that you place inside the UserObject work area becomes part of the UserObject.  Use any of the following methods:

Select the appropriate object from the main menu and place the object in the UserObject work area.

Move an object from the main HP VEE work area to the UserObject work area.

Copy (use Edit ==> Copy) or clone (use Edit ==> Clone) an object from the main work area and place the copy in the UserObject work area.

See also

UserObject

Contents:  Creating Custom Objects and Functions


To Add Input and Output Terminals to a UserObject

In general, you can add input and output terminals to a UserObject using the same techniques that you would for any other object.

Using the object menu

From the object menu, select Add Terminal, and then select the type of terminal you want to add:  Data Input, Control Input, XEQ Input, Data Output, or Error Output.

Using the mouse and keyboard

To add a data input terminal, place the mouse cursor in the data input terminal area and press Ctrl+A.  A data input terminal is added to the UserObject each time you press Ctrl+A.

To add a data output terminal, place the mouse cursor in the data output terminal area and press Ctrl+A.  A data output terminal is added to the UserObject each time you press Ctrl+A.

To add a data terminal automatically

To make a data input terminal automatically appear on the UserObject, connect an output terminal of an external object to an input terminal of an object within the UserObject.

To make a data output terminal automatically appear on the UserObject, connect an output terminal of an object within the UserObject to an input terminal of an external object.

The appropriate connections through the new UserObject terminals are automatically made.  Also, the terminals are automatically given appropriate names.

In addition to data terminals, you can use these shortcuts to connect to other types of terminals on objects inside a UserObject, such as sequence, control, XEQ, and Error terminals.  However, the corresponding terminals created for the UserObject will be data terminals.  For example, if you connect the Error output terminal of an object within a UserObject to an external object, a data output terminal named Error appears on the UserObject.

You can connect an object within one UserObject to an object that is in another UserObject.

See also

UserObject

Contents:  Creating Custom Objects and Functions


To Create a UserObject in a Program

The following example shows, step-by-step, how to create a simple UserObject and connect it in an HP VEE program.

1. Add a UserObject to the main HP VEE work area (Device ==> UserObject).  An "empty" UserObject appears.

2. Add objects to the UserObject work area, and connect the terminals as needed.  These should be objects that, when connected together, perform a particular task.

3. Add and connect the input and output terminals for the UserObject:

a. Place the mouse cursor in the input terminal area of the UserObject and press Ctrl+A.  The data input terminal A appears.

b. Connect the inside pin of the input terminal to the appropriate object inside the UserObject.

c. Connect an external object to the outside pin of the input terminal to send data to the UserObject.

d. Place the mouse cursor in the output terminal area of the UserObject and press Ctrl+A.  The data output terminal appears.

e. Connect the inside pin of the output terminal to the appropriate object inside the UserObject.

f. Connect an external object to the outside pin of the output terminal to send data from the UserObject.

4. Test the UserObject in the program.

5. To save screen space in your program, minimize the UserObject.  However, change the UserObject title to something descriptive first, so you can identify the UserObject by its function in the program.

Example

See also

To Add Input and Output Terminals to a UserObject

UserObject

Contents:  Creating Custom Objects and Functions


To Create a UserObject from Objects in a Program

Once you have written an HP VEE program you may decide that you want to make part of the program into a UserObject.  This procedure uses an example program to show how to convert several objects in a program into a UserObject.

1. Open the program manual06.vee in your manual examples directory (Help ==> Open Example...).  This program generates an array of random numbers.

2. Select the objects: Alloc Real, For Count, Random Number, and Set Values.

To select objects, press and hold the Ctrl key, then click on each object using the left mouse button.  The objects are highlighted with shadows when selected.

3. When you are done selecting objects, select Edit ==> Create UserObject.  When the UserObject is created, the connection to the AlphaNumeric object is retained and an Array output terminal is automatically created.

4. Change the title of the UserObject to Random Array and run the program.  You should see something like this:

See also

UserObject

Contents:  Creating Custom Objects and Functions


To Exit a UserObject Early

There are two objects that force propagation to exit a UserObject before all of the objects within the UserObject have operated.

Exit UserObject, when activated, causes an immediate exit from the UserObject context to the context outside it (for example, the main program).

Raise Error generates a user-defined error message box, and also causes propagation to exit the UserObject.  (No data is output from the UserObject unless there is an Error output pin.)

Example

The following procedure shows how to use Exit UserObject using an example program:

1. Open manual26.vee from your manual examples directory (Help ==> Open Example...).

2. To see the order of propagation, turn on Show Data Flow and Show Execution Flow under the Debug menu.

3. Run the program. The OK and Cancel buttons both become active when the program is run, pausing execution in the UserObject.  (The Cancel button is just an OK button with the title changed.)  Pressing the buttons cause the following actions:

OK:  The upper thread in the UserObject finishes propagating.  The A+B object adds its two inputs, the result is propagated to output terminal X, and then the Exit UserObject is activated.  The result on terminal X is output to the AlphaNumeric display as the UserObject exits.

Cancel:  The Exit UserObject in the lower thread operates.  This causes an exit from the UserObject without finishing propagation of the upper thread.  No data is output.

See also

Exit UserObject

Raise Error

UserObject

Contents:  Creating Custom Objects and Functions


To Add a Panel View to a UserObject

You can add a panel view to a UserObject.  The following procedure uses an example program to show how to add a panel view:

1. Open the program manual26.vee in your manual examples directory (Help ==> Open Example...).

2. In the UserObject, select the OK and Cancel buttons.  (To select objects, press and hold the Ctrl key, then click on each object using the left mouse button.)

3. Raise the UserObjects Edit menu (click the right mouse button within the UserObject work area) and select Add To Panel.

4. The panel view appears, showing just the OK and Cancel buttons.

To have a compact UserObject, you can move the buttons, and resize the object.  To move buttons, click on them and drag them to new positions.  To resize the object, drag its lower-right corner to a new position.

Tips

Click the View Detail button on the toolbar to see the detail view, which is unchanged.

  View Detail button

You can change the colors and fonts, select a background bitmap, and otherwise enhance the panel view without affecting the detail view.

See also

Contents:  Creating Custom Objects and Functions

Building an Operator Interface with HP VEE about using panel views


To Create a Library of UserObjects
To Create and Use a Library of UserObjects

You can save one or more UserObjects in a file to reuse in other programs.

To create a UserObject library

1. Create the UserObject(s) in your work area.

2. Select the UserObject(s).

3. Select File ==> Save Objects.  You'll be prompted for a file name in which to save the UserObject(s).

To use a UserObject library

1. Select File ==> Merge.  You'll be prompted for a file name.

2. Select the file name for your library.  The UserObject(s) in the file are merged into the work area.  Place them where you want them in your program.

See also

To Add Objects to the UserObject Work Area

To Add Input and Output Terminals to a UserObject

To Create a UserObject in a Program

To Create a UserObject from Objects in a Program

Contents:  Creating Custom Objects and Functions


To Secure a UserObject

CAUTION

Don't secure your only copy of a UserObject. Once you secure a UserObject, it cannot be unsecured.

After the design of a UserObject is final, you may want to secure it.  This prevents others from viewing the contents or changing the UserObject.

1. Select Secure from the object menu of the UserObject.

2. You will be prompted for a file name in which to save an unsecured version of the UserObject.  Enter a descriptive file name.

3. Click on Save, then secure.  (Don't select Secure without saving unless you already have made an unsecured copy.)

Tips

If the UserObject does not have a panel view, the secured version is displayed only as an icon.  The open view is not available, so no one can view or edit the contents.

If the UserObject has a panel view, the secured version is displayed either as an icon or open, showing the panel view.  The detail view is not available, and the panel view cannot be modified.

See also

Contents:  Creating Custom Objects and Functions


To Create a UserFunction

The first step in creating a UserFunction is to create a UserObject.  This procedure uses an example program to show how to create a UserFunction.

1. Open the program named manual25.vee in your manual examples directory (Help ==> Open Example...).

2. Select Make UserFunction from the object menu of the Random Array UserObject.  If the UserObject name isn't valid as a function name, you'll be prompted for a function name:

3. Assign a function name such as RandomArray.  Names must conform to the following:

Use only alphanumeric characters and underscores (no hyphens, spaces, commas, or other punctuation).

The name must be unique (not used for another function).

4. The UserObject is transformed into a UserFunction, and a Call Function object is automatically created with Call RandomArray in the title bar.

If you add a Call Function object to your work area later, using Device ==> Function ==> Call, the title bar will not include the UserFunction name.

5. Run the program.  A set of 10 random numbers is generated.

See also

To Call a UserFunction in a Program

To Edit a UserFunction

UserFunction

Contents:  Creating Custom Objects and Functions

HP VEE Advanced Programming Techniques; chapter: "Creating User-Defined Functions"


To Edit a UserFunction

To edit a UserFunction, the HP VEE program containing the UserFunction must be open. In edit mode, you can change how the function operates, and add a panel view.

To edit a UserFunction

1. Open the program containing the UserFunction you want to edit.

2. Select Edit ==> Edit UserFunction.  The Edit UserFunction dialog box appears with a list of all of the UserFunctions in that program.

3. Select the name of the UserFunction you want to edit, and click on OK.  The UserFunction work area appears.

4. Make your changes.

5. Click on the Close button.  Any changes that you have made will affect all calls to the UserFunction.

To add a panel view

1. While the UserFunction work area is open, raise the Edit menu (click the right mouse button within the UserFunction work area) and click on Select Objects.

2. Select the object(s) to appear on the panel view.

3. Raise the Edit menu again, and click on Add To Panel.  The UserFunction work area changes its panel view.  View Panel and View Detail buttons appear in the title bar to let you change between views while editing.

4. Click on the Close button.  Any changes that you have made will affect all calls to the UserFunction.

Shortcut

You can also select Edit UserFunction from the object menu of the Call Function object, which opens the called function for editing.

See also

To Create a UserFunction

To Call a UserFunction in a Program

UserFunction

Contents:  Creating Custom Objects and Functions

HP VEE Advanced Programming Techniques; chapter: "Creating User-Defined Functions"

Building an Operator Interface with HP VEE about using panel views


To Call a UserFunction in a Program

Once you have created a UserFunction, you can call it multiple times within an HP VEE program.  This topic uses an example program to show how to call UserFunctions.

Open the program manual51.vee in your manual examples directory (Help ==> Open Example...).  This program contains the RandomArray UserFunction, which is called three times:

The Call Function object calls RandomArray and outputs the returned array.

The Formula object calls RandomArray in the expression 1+RandomArray().  The expression adds 1 to each element of the returned array.

The To File object calls RandomArray in the transaction WRITE CONTAINER RandomArray().  The transaction writes the array returned by RandomArray to the file myFile as a container.  The From File object reads the data file and sends the results to the display.

Tips

You can call the RandomArray UserFunction as many times as you like within a program.

Each call of a UserFunction is independent.  (In this example, each call to RandomArray generates a different set of random numbers.)

In the Call Function object, just specify the name of the function to call (for example:  RandomArray).  However, if you call the UserFunction from an expression, you must use the expression syntax, for example:  RandomArray().

UserFunction names are case-insensitive.

UserFunction names must be unique.

You can include a UserFunction name in an expression in the Sequencer object.

See also

To Create a UserFunction

To Edit a UserFunction

UserFunction

Contents:  Creating Custom Objects and Functions

HP VEE Advanced Programming Techniques; chapters: "Creating User-Defined Functions" and "Using the Sequencer Object"


Debugging and Optimizing an HP VEE Program

These topics describe some techniques to debug and optimize your program.  These techniques will help make your program easier to understand and maintain, and improve performance.

Debugging an HP VEE Program
 To View Data Flow and Program Execution
 To Control Breakpoints
 To Step through a Program
 To View the Data on a Line
 To Find the Endpoints of a Line
 To Trap an Error

Making an HP VEE Program Easier to Understand
 To Add Structure to Your Program
 To Document Your Program
 To Add a Bitmap to an Icon

Improving the Performance of an HP VEE Program
 To Remove Barriers to Program Performance
 To Reduce the Number of Objects in a Program
 To Increase I/O Performance


To View Data Flow and Program Execution

You can view data flow and program execution in a running HP VEE program.

To view data and execution flow

1. Open a program in the work area.

2. Click the Show Data Flow and Show Execution Flow buttons on the toolbar.

  Show Data Flow button

  Show Execution Flow button

3. Run the program to see data and execution flow:

Data flow is indicated by small square markers moving along lines.  These markers represent data containers.

Execution flow is shown by highlighting each object as it operates. The highlight is a green outline around the object.

To change the data flow rate

1. Click the Edit Default Preferences button on the toolbar to show the dialog box.

  Edit Default Preferences button

2. Under Debug click on the Data Flow Rate arrow to show the drop-down list.  You can set a rate from 1 (the slowest) to 10 (the fastest).

3. To save the changes as new defaults (in VEE.RC or .veerc) click on Save .  Click on OK if you want to use the changes for this HP VEE session only (until you select File ==> New, Open, or Exit).

Tips

You can show data and execution flow independently by turning only one on at a time.

You can turn these features on and off whether the program is running or not.

Be sure to turn these debug features off when you don't need them.  They slow down your program considerably.

The Show Data Flow and Show Execution Flow commands are in the Debug menu.  Checkmarks beside the commands show that the features are on.

See also

Contents:  Debugging and Optimizing an HP VEE Program


To Control Breakpoints

If you set a breakpoint on an object in your program, the program will pause just before that object operates.  Then you can use Line Probe to see the data containers on each line, and you can Step or Resume program execution.  Commands are available that let you toggle the breakpoint settings on objects you select, and control breakpoints for your entire program.

To toggle breakpoints

1. Select the objects where you want to change breakpoint settings.  To select objects, press and hold the Ctrl key, then click on objects with the left mouse button.

2. Click the Toggle Breakpoints button on the toolbar (Debug ==> Toggle Breakpoints).  The breakpoint settings on the objects you selected will be toggled.  Breakpoints are cleared if they were previously set, and the objects highlighted outlines disappear.  Breakpoints are set if they were previously clear, and the objects display highlighted outlines.

  Toggle Breakpoints button

3. Run your program.  The program pauses just before the object where a breakpoint is set.

4. To continue, click on one of the program-control buttons:

  Resume button to resume execution.

  Step button to proceed to the next object.

  Stop button to stop the program.

To activate all breakpoints

1. Click on Debug ==> Activate All Breakpoints.

A check mark by the menu command means all breakpoints that are set will be active when you run your program (default).

To clear all breakpoints

1. Click on Debug ==> Clear All Breakpoints.

All breakpoints in your program are cleared and the highlighted outlines disappear from the objects.

Tips

You can also control an object's breakpoint using Edit Properties from the object menu.  On the General tab in the Debug group, click on Breakpoint Enabled to set or clear the object's breakpoint.

See also

Contents:  Debugging and Optimizing an HP VEE Program

Using the Keyboard Shortcuts


To Step through a Program

Use the Step button with the other program-control buttons on the toolbar to run your program one object at a time.

  Step button

  Run button

  Pause button

  Resume button (during Pause)

  Stop button

Interactions of program-control buttons

From a stopped program, the first time you click the Step button, the program PreRuns.  Click the Step button to operate each object in turn.  The object highlighted with a yellow outline operates next.

 Step button

If you run your program with a breakpoint enabled, the program will PreRun and then execute up to the breakpoint.  From there, you can use the Step button to operate each object in turn.

At any point while stepping through a program, you can click the Resume button to continue running the program.  To pause the program, click the Pause button.  If you then stop the program, it will go through PreRun when restarted.

  Resume button

  Pause button

Stepping through a UserObject

If the UserObject is in its open view, the objects in the UserObject operate one at a time.  You'll need to click the Step button for each object executed in the UserObject.

  Step button

If the UserObject is an icon, or showing a panel view, or has Show Panel on Exec set, the entire UserObject operates when you click the Step button.

See also

Contents:  Debugging and Optimizing an HP VEE Program

Using the Keyboard Shortcuts


To View the Data on a Line

Use the Line Probe button on the toolbar to view the data container that has been passed on any HP VEE data line.  The program must be paused or stopped.

  Line Probe button

1. Click the Line Probe button on the toolbar (Debug ==> Line Probe).  The mouse pointer changes shape, and the message, Select Line To Be Probed, appears in the work area.

2. Move the mouse pointer near the line to be probed and click the left mouse button.  The Container Information dialog box appears.

If you probe a line on which no data has been transmitted (or on which a sequence pin "ping" has been transmitted), the Container Information dialog box reports Nil (empty) container.

Shortcut

To probe a line, move the mouse pointer near the line, press and hold the Shift key, and click the left mouse button.

See also

Contents:  Debugging and Optimizing an HP VEE Program

Using the Keyboard Shortcuts


To Find the Endpoints of a Line

Use the Line Probe button on the toolbar to trace a line and show its endpoints.  The program must be paused or stopped.

  Line Probe button

1. Click the Line Probe button (Debug ==> Line Probe).  The mouse pointer changes shape, and the message, Select Line To Be Probed, appears in the work area.

2. Click and hold the left mouse button, then drag the mouse pointer across a line.  The line becomes thicker and its endpoints show small square markers.

If you release the mouse button while a line is highlighted, the Container Information dialog box appears.

Shortcut

Press the Shift key then click and hold the left mouse button while dragging the mouse pointer across a line.

See also

Contents:  Debugging and Optimizing an HP VEE Program

Using the Keyboard Shortcuts


To Trap an Error

Normally, all HP VEE errors are reported by the Error Message dialog box.  However, you can trap an error generated by a particular object by adding an Error output terminal to that object.

To add an Error output terminal to an object, select Add Terminal ==> Error Output from the object menu.

If an object that has an Error output terminal generates an error, the Error Message dialog does not appear.  Instead, the Error terminal outputs the error number.

There are various ways to use the Error output terminal:

Use the Error output to activate another object, such as Raise Error.

Use If/Then/Else to determine an action based on the error number.

Use errorInfo()to view error information for the last trapped error.

Example

Open the program manual37.vee in your manual examples directory (Help ==> Open Example...).  It shows some techniques for trapping errors.

See also

errorInfo()

Error Output (Object Menu)

Raise Error

Contents:  Debugging and Optimizing an HP VEE Program


To Add Structure to Your Program

The following tips show how you can add structure to an HP VEE program.

1. Analyze what your HP VEE program does.  Can you identify a group of objects that together perform a specific sub-task?  Create a UserObject from those objects.

2. Are there sub-tasks that appear multiple times in your program?  If so, create a UserObject to do the sub-task, convert the UserObject into a UserFunction, and call the UserFunction each time it is needed.

3. Proceed through your program, building a hierarchical structure using UserObjects and UserFunctions.

4. If you pass a single data container to several objects, consider using a global variable to pass that data.

See also

Contents:  Working with Data, Working with Global Variables

Contents:  Creating Custom Objects and Functions

Contents:  Debugging and Optimizing an HP VEE Program


To Document Your Program

You can make your program easier to use, debug, and maintain by using the following techniques:

1. Give your program a descriptive name.  Use File ==> Edit Properties to change the name.  The name you enter is used with the program-documentation features Save Documentation, Edit Description, and Show Description.

2. Rename objects to names that are more meaningful to you.  For example, Repeat 100x may be more useful than For Count.  (Double-click on the title area and change the title in the dialog box.)

3. Rename input and output terminals to descriptive names.  For example, if terminal A inputs a flow rate, you may want to change the name to Flow_Rate. (Double-click on the terminal and change the title in the dialog box.)  You cannot change the title of some terminals.

4. Add descriptions to key objects by using Edit Description in the object menu.  The information may include why you used that particular object, details about the inputs and outputs, and the options that you used on the object.

5. Add notes to yourself or others using the Note Pad display object (Display ==> Note Pad).  The information could include:

Your name, phone number, and the date you created the program.

What this program does.

The dates that you made changes and what the changes were.

6. Customize icons, such as UserObject icons, by adding a descriptive bitmap.

See also

To Add a Bitmap to an Icon

Edit Description

Save Documentation

Show Description

Contents:  Debugging and Optimizing an HP VEE Program


To Add a Bitmap to an Icon

You can add a bitmap to any iconified HP VEE object.

To add a standard bitmap

1. Select Edit Properties from the object menu. Then select the Icon tab.

2. The available bitmaps in your bitmaps directory are displayed.  Scroll through the list and click on the file name that you want.  For example, if you click on BEEP.ICN, the Beep icon is shown in the preview area.

To browse through other directories, click on Browse.  The Select File dialog box appears and you can navigate through the directories to select a bitmap file.

3. Once you have selected an icon, click on OK.  The following is a UserObject icon with the Beep bitmap:

To add a custom bitmap

The procedure for adding a custom bitmap is the same as for adding one of the standard bitmaps.  However, you must first create the bitmap. To create a custom bitmap, use an appropriate bitmap editor for your computer (for example, the Microsoft Paint program for a PC).  The following file formats are supported:

Windows:  BMP, ICN, or GIF

UNIX:  BMP, ICN, GIF, or XWD

The default bitmap directories are as follows:

Windows:  C:\Program Files\Hewlett-Packard\VEE 3.2\bitmaps

HP-UX 9.x:  /usr/lib/veetest/bitmaps

HP-UX 10.x and Solaris:  /opt/veetest/bitmaps

See also

Contents:  Debugging and Optimizing an HP VEE Program


To Remove Barriers to Program Performance

The following are some general techniques that you may be able to use to improve program execution speed.

Leave data input terminals set to Any for data type and shape.  HP VEE will convert data types only when necessary, saving execution time.  See appendix A in How to Use HP VEE for information about how HP VEE converts data types.

Turn off Clear at PreRun and Clear at Activate on displays where not needed.

Use Initialize at PreRun and Initialize at Activate on data objects instead of setting defaults with control pins.

Collect data for graphical displays into an array, and plot the entire array at once rather than plotting each individual scalar point.  If the X values of a plot are regularly spaced, use an XY Trace object rather than an X vs Y Plot object.

Run the program from the panel view.  If the panel view contains fewer objects than the detail view, the program will run faster.

Set graphical displays to be as plain as possible.  The settings that allow the fastest update times are Grid Type ==> None and Layout ==> Graph Only.

Turn off unnecessary digital displays on indicators such as the Meter, Tank, and Thermometer objects.

Iconify those objects that continuously update their displays (such as the Timer, Counter, Accumulator, AlphaNumeric, and graphical display objects) if you don't need to see the displayed information.

If using a Strip Chart display, set the buffer size as small as possible.

Collect data for processing into an array, and then process the data as an array.

Use Complex data in expressions rather than PComplex.  Most of the math libraries will convert PComplex to Complex, calculate the answer, and convert Complex back to PComplex.

To display PComplex data, set Trig Mode (under File ==> Edit Properties) to Radians.  HP VEE stores PComplex values internally as radians.

In general, the fewer objects that need to operate, the faster the program will run.  Perform as many functions as possible in each object.

See also

To Reduce the Number of Objects in a Program

Contents:  Debugging and Optimizing an HP VEE Program


To Reduce the Number of Objects in a Program

Many HP VEE objects can perform a set of functions.  Your programs will be more compact, easier to maintain, and will run faster if you use the following techniques:

Enter equations in a Formula object instead of using multiple constant and single-function math objects.  You can nest functions in a Formula object.  For example, you can enter the expression (sin(ramp(100, 0, 360))).

Use one If/Then/Else object with multiple conditions (for example, A == B OR A<=C AND A>D) instead of using multiple If/Then/Else or Conditional objects.

To input a one-dimensional array of data, use a Constant object configured as an array instead of using one Constant object for each value and then building an array.

To read all of "the rest" of the data in a file, use the ARRAY 1D TO END:(*) transaction in a From File object. This is simpler and faster than looping on single-element reads and collecting the result into an array.

Use the Sequencer to control the flow of execution of several UserFunctions.  Refer to the chapter "Using the Sequencer Object" in HP VEE Advanced Programming Techniques for further information.

When using the Sequencer, only enable logging for transactions where the Log record is required.  If the Log output terminal is not used, delete it to speed up execution slightly.

See also

Contents:  Debugging and Optimizing an HP VEE Program


To Increase I/O Performance

In general, direct I/O provides the fastest I/O performance.  To optimize the I/O performance of your HP VEE program:

1. Create your program using an instrument panel object (or component driver object) to communicate with the instrument.  Test and debug the program and instrument configuration.

2. Add a Bus I/O Monitor object to the program.  Run the program and "capture" the messages sent to the instrument, and received from it, by the instrument panel or component driver.

3. Rewrite the program so that it uses a Direct I/O object to communicate with the instrument using the "captured" messages. This will speed up I/O performance in the final program.

4. In rare cases where extremely fast I/O is required, you can create a compiled function to perform the instrument I/O function.  See "User-Defined Functions" chapter in HP VEE Advanced Programming Techniques for information.

See also

Contents:  Controlling Instruments

Contents:  Debugging and Optimizing an HP VEE Program


Array Operations in HP VEE

HP VEE is optimized for array math.  This tutorial shows various ways to use array operations in Formula objects to improve performance.  By adapting these examples, you can avoid using time-consuming computational loops.  These techniques are not always obvious.  So, you should be careful about using them, and document your programs thoroughly.

Note

This topic is long and detailed.  You may find it easier to read if you maximize the Help window.

Improving Performance

Consider the following program.  It generates an array containing all the values of sine and cosine for each degree from 0 to 360.  On a typical PC, this took 1.7 seconds to execute.

The following program shows how to do the same calculations in 50 milliseconds:

Though this program is much faster, it is not obvious that it does the same calculations.

1. The ramp() function generates an array of 360 values, increasing from 0 through 359.

2. The two ramp functions generate identical arrays, each operated on by the sin() and cos() trigonometry functions.  Most HP VEE functions that normally accept and return a scalar value can accept and return an array as a parameter.

3. Though the Formula object actually contains two formulas, their outputs are converted to an array format because they are contained in the square brackets.

This implementation may not be the best choice for all programs.  The sine and cosine operations are done on the entire arrays produced by the ramp() functions, not on each value as they are generated.  If your program must use a loop structure that operates on each value as its generated, using this array approach may be difficult or impossible.

Basic Array Operations

Understanding array operations is a very important element in advanced HP VEE programming.  HP VEE has a very flexible scheme for accessing and manipulating arrays.  The following examples show how to extract portions of an array:

A[1] selects element 1 in array A.

A[0:5] selects elements 0 through 5 in array A.

A[5:*] selects all the array elements from 5 through the end of array B.

If the array has multiple dimensions, use the * symbol to select entire rows or columns:

A[1,*] selects all of the second row (index 1) as a one-dimensional array.

Math on arrays follows another set of simple rules.  Elementary scalar arithmetic operations on arrays simply perform their operations on each element in the array:

A*2 multiplies each element in the array by 2.

A-4 subtracts 4 from each element in the array.

Math operations between two arrays that have the same size and dimensions perform the operation between corresponding elements of the arrays:

A*B multiplies each element of the array A by the corresponding element of array B.  This does not perform a "matrix multiply", which is a relatively complicated multiplication of rows times columns and summation that results in a scalar.  HP VEE has a matrix function to do that.

Most elementary math functions in HP VEE, such as log(), sin(), cos(), can accept an array as a parameter and return an array.  Some specialized functions are handy for performing array math and manipulations; other functions are not useful with arrays.  Functions that are useful in array operations include:

ramp():  As shown earlier, can be used to generate "loop" counts.

concat():  Concatenates two arrays and returns a one-dimensional array.

totSize():  Gives total number of elements in an array.

signof():  Sign of value ( -1 if < 0, 0 if = 0, 1 if > 0).

abs(x):  Absolute value.

rotate():  Rotates elements in array.

sum():  Sums all elements in an array.

sort():  Sorts an array.

randomize():  Generates array of random numbers.

min():  Minimum value of data set.

max():  Maximum value of data set.

clipUpper():  Clips below maximum given value.

clipLower():  Clips above minimum given value.

Using Array Expressions

A useful feature in Formula objects is the ability to define expressions as arrays. The following expression generates an array containing the double, reciprocal, square, and natural log of the input named B:

[ 2*B 1/B B*B log(B) ]

The following expression includes a minus sign, which you must enclose in parentheses:

[ 2*B 1/B (-B*B) log(B) ]

otherwise, HP VEE interprets this as a subtraction operation 1/B - B*B.

The following three examples show how to manipulate arrays using expressions in a Formula object.  Just connect the object containing the array to the Formula objects input pin.

The first example shows how to take one column of an array, perform some math on the data, and put back the column in the array.  The expression in the following Formula object performs this task.  It dismantles the input array, multiplies the second column by 4, then glues it back together.

The second example shows how to concatenate multidimensional arrays.  The concat(x,y) function is useful for this task when used in a Formula object, even though it can generate only a one-dimensional output.  However, it will work only if the number of rows or columns is fixed (a constraint that is usually met in practice).  The following Formula object contains an expression that concatenates a pair of arrays that have two rows:

The concat() function concatenates two arrays and produces a one-dimensional array.  The expression strips out the rows of each of the arrays, concatenates them, and then joins them back together.

The third example is more sophisticated.  It shows how to multiply a vector

 [ X1  X2  X3  X4 ]

times a matrix

 [ y11  y12  y13  y14 ]

 [ y21  y22  y23  y24 ]

           ...

 [ y21  y22  y23  y24 ]

to get the result

 [ X1*y11  X2*y12  X3*y13  X4*y14 ]

 [ X1*y21  X2*y22  X3*y23  X4*y24 ]

                 ...

 [ X1*y21  X2*y22  X3*y23  X4*y24 ]

HP VEE can easily multiply a scalar times a vector, and can perform matrix multiplication.  A scalar multiplication multiplies every element in a matrix by a scalar to give a result matrix of the same size as the original.  A matrix multiplication is an operation between an MxN matrix and an NxM matrix that yields a scalar.  The required operation for this example does not match either case.

The operation here is effectively a scalar multiplication of each row of the matrix by each element of the vector.  The implementation uses array manipulation techniques.  Consider a data set consisting of a vector V of the form

 [ 1  2  3  4 ]

and a matrix M of the form

 [ 1     2     3     4     5     6     7     8    ]

 [ 10    20    30    40    50    60    70    80   ]

 [ 100   200   300   400   500   600   700   800  ]

 [ 1000  2000  3000  4000  5000  6000  7000  8000 ]

The desired result is

 [ 1     2     3     4     5     6     7     8    ]

 [ 20    40    60    80    100   120   140   160  ]

 [ 300   600   900   12K   15K   18K   21K   24K  ]

 [ 4000  8000  12K   16K   20K   24K   28K   32K  ]

The expression in the following Formula object does the multiplication.  The matrix array is connected to terminal M, and the vector array is connected to terminal V.  Tests indicate that this is only about 50% slower than a scalar multiplication of the same array.

Advanced Array Operations

Operations involving comparisons on entire arrays of data are more complicated.  The following program shows the method required to take several data sets from a device and get a resulting data set that consists of the maximum values from all the individual data sets:

This program simulates input data by using a Noise Generator.  It gets an initial data set and puts it in the global variable sumdata, then enters a loop to obtain new data or quit the program.

Pressing the Get Data button gets a new waveform from a Noise Generator, then recovers the data in sumdata with a Get Global object; these two waveforms are summed into a Formula object, which processes them and puts the result back into sumdata using a Set Global object.

The Formula object accepts the new array data on pin A and the array sumdata on pin B.  The expression cliplower(a,b) outputs a result array with the value of A if A > B, and the value of B otherwise.  If you use clipUpper instead, you would obtain minimum values.

Comparing Two Arrays

The next example compares two arrays of random numbers and determines how many numbers in the first array are greater than those in the second array.  Such comparisons typically use relational operators (such as ==, !=, and <=), and the triadic operator (A < B ?  C : D), but they will not solve this problem.  Though they don't give an error message when provided with arrays as parameters, they only return scalar values.  You must "fake" the relational operations by other means that yield an array result.

The following program shows how to perform these comparisons:

The randomSeed() function seeds the random-number generator with a seed that varies rapidly with time:

randomSeed((10^9)*fracPart(now()/100))

This ensures that the data varies between different runs of the program.  The two randomize() functions each contain the expression:

randomize(ramp(1000,0,999), 0, 1)

This generates an array of 1000 random numbers in the range 0 to 1.  Finally, the summation is performed by the expressions in the Formula objects:

sum(clipLower(0,signof(A-B)))

Let's see how each part of these expressions work:

1. A-B provides an array where values are positive if A > B, zero if A == B, and negative if A < B.

2. signof(A-B) converts positive numbers into 1, negative numbers into -1, and leaves 0 at 0.

3. clipLower(0,signof(A-B)) strips all the -1 values out of the array.  Now you have an array which is 1 if A > B and 0 otherwise.

4. sum() then adds up the 1s and gives the number of comparisons where A > B.

Using Alternate Expressions

The previous techniques show how conventional relational operators can be implemented:

A == B:  (1-abs(signof(A-B)))

A != B:  abs(signof(A-B))

A >  B:  clipLower(0,signof(A-B))

A <  B:  clipLower(0,-signof(A-B))

A >= B:  (1-clipLower(0,-signof(A-B)))

A <= B:  (1-clipLower(0,signof(A-B)))

Notice how subtracting an array of 1s and 0s from 1 performs a NOT operation on the array.  Similar tricks can be used for comparison with scalar values, rather than other arrays; you can also perform Boolean operations on the resulting arrays of 1s and 0s.  For example, suppose that A1 and A2 are two such arrays; then the following logic operations hold:

NOT A1:     1 - A1

A1 AND A2:  A1 * A2

A1 OR  A2:  signof(A1 + A2)

A1 XOR A2:  1 - abs(signof((A1 + A2) - 1))

You can use the results of these computations to perform "masking" on arrays of the original values through multiplication -- those values that match to 0 are then wiped out, and those that match to 1 are retained.

Choosing Efficient Techniques

Applying the previous techniques could result in programs with Formula objects containing huge logic operations that are difficult to maintain.  While the goal is to eliminate or reduce loops by replacing multiple objects with Formula objects, you could also use UserFunctions.  A good understanding of array-manipulation techniques allows you to bypass complicated formal logic operations for more direct solutions.

The following example shows the choices you can make in array manipulation.  Suppose an array of 8-bit unsigned data received from an I/O device is converted by HP VEE into 32-bit signed integer data, and you want to get the real values back.  You can do this in a single expression by adding 256 to each value of the return array:

(A + (clipLower(-1,clipUpper(0,A))) * (-256))

This expression performs the following operations:

1. clipUpper(0,A) converts all positive values to 0.

2. clipLower(-1,clipUpper(0,A)) converts all negative values to -1 (recall that the inputs are integers, not reals).  This creates an array that has -1 for each negative value and 0 otherwise.

3. clipLower(-1,clipUpper(0,A)) * (-256) multiplies that array by -256 creating an array that has 256 for each negative value and 0 otherwise.  This array is then added to the original array to offset all the negative values to their "true" positive value.

Another solution could have used relational operations as shown previously, but it would have been much more complicated than this direct solution.

Using array-manipulation expressions in a Formula object offers a lot of power and flexibility.  However, excessive use can lead to unnecessary complications.  Other objects and methods are available that may be more effective.

A very useful object for array computations is the Comparator, which allows extraction of array elements that meet specific criteria.  Suppose you want to determine the transitions in the following data stream:

0     0     0     0     1     1     0     0     1     1     0

The following solution is the easiest way to find the indexes of the array elements where the value makes a transition from 0 to 1, and the reverse.

Although the program contains a Comparator, the key is the Formula object containing the expression

A[1:(totSize(A)-1)] - A[0:(totSize(A)-2)]

To see how this works, add array indexes to the data stream:

The array indexes mark where a transition occurs.  The expression above performs a subtraction of the input array from itself, staggered by one index, to yield the following new array:

The Comparator checks the result array to see which elements are equal to 0.  Array elements that fail the test are the indexes, and are returned on the Failures terminal as an array of X-Y coordinates giving the index and value of the failure.  To retrieve only the index values, the Unbuild Coord object separates the X and Y values.  Then the X index values are incremented by 1 to eliminate the effects of the staggered subtraction.

Notice that the data obtained in the subtraction not only indicates the index of the transaction, but its direction:  1 for a positive transition, -1 for a negative.  This operation is basically a difference-equation approach to performing a differentiation.


Control Flow in HP VEE

Though propagation rules in HP VEE are logical, they can be hard to understand.  It is not always obvious how a program will propagate.  The examples in this topic will help you understand the more difficult concepts.

Note

This topic is long and detailed.  You may find it easier to read if you maximize the Help window.

Control flow in HP VEE is analogous to several different concepts.  It is analogous to digital logic, the relay-ladder logic used in industrial controllers, and even the routing of a model train track system.  It has most in common with a typical sequential text-based programming language in that you can't do two different things at the same time, and that operations will follow each other in a sequence.  The sequence in HP VEE is not necessarily as deterministic as in the textual language.

To get started, here are some simple rules of HP VEE programming style:

Build a program using control flow that is clear and flows down in a hierarchical fashion.  If you can visualize the control flow easily, you normally won't have problems.

Avoid feedback loops.  Novice HP VEE programmers use feedback loops for iterations and quickly find out such constructs don't work as intended; frequently leading to lockups and other problems.

Avoid using Gate and Sample & Hold objects.  These objects are mainly used as patches for poor knowledge of propagation rules.  Good programming style helps avoid the need for these objects.

Elementary Control Flow

It is important to understand how the core control constructs work in controlling programs.  The simplest control is in generating a simple loop.  To generate a simple count, use a For Count object.  The Start object is not necessary here.  Without it, the program executes when you click the Run button on the toolbar.  Notice that For Count counts from 0 through 9.

For Count objects can be nested.  The outer-loop For Count generates a "beep" through its sequence-out pin after the Formula object outputs its final value.  This is an important feature of such looping objects; they don't generate a sequence-out pulse until after the threads they are driving have executed.

Using Loops

To generate an endless loop, use an Until Break object.  The Delay object controls the program to update once per second.  A better approach is to replace the Until Break with an On Cycle which can generate a container with any delay setting to drive the now() object.  However, this program introduces the Until Break object which is used in the following examples.

To end this loop at any time, add an OK object to drive a Break object:

This example illustrates another feature of control constructs.  The program is intended to update the time continuously, until you press the OK to force the Break.  Without the Next object, Until Break generates a container, then waits until everything downstream from it executes.  The time would update, then the program would wait until OK is pressed.  The Next object forces Until Break to output containers continuously until OK is pressed.

In this case, a Stop object could be used in the place of the Break object without making any difference.

Using Counters in Loops

To generate a count repeatedly, you might try the following program:

However, this only counts from 0 through 9 once.  Though the program seems correct, its not obvious why it doesnt work.  The following program produces the desired results using the Until Break:

Making Programs Interactive

Given the previous techniques for loops, the following example shows how to create a general architecture for interactive programs.  Consider a simple program where the user can select one of two actions or exit the program by clicking on the appropriate OK buttons:

The concept is that each separate action has its own parallel thread which ends in a Next object to drive the next iteration of the Until Break object.  You can add as many parallel threads as you like, which can perform I/O and computation as needed.  Each thread must end in a Next object.

The implication of this architecture is that the executing thread must finish before another thread can execute.  If the executing thread takes a long time to finish, you'll have to wait until its finished before another thread can execute.

Advanced Control Flow

Your programs can perform more complicated control tasks if you expand the previous techniques.  As an example, the following program lets the user select one of several tasks, or lets a service request (SRQ) from an instrument initiate a task.

When the program runs, you click the Task 1 or Task 2 buttons to get the appropriate display output.  If you press the SRQ button on the front of the HP3478 , you get the SRQ! display output, then return to perform another task.  The program stops when you click on the Quit button.

The Until Break object drives the four parallel threads within the program, which are controlled by three OK buttons (Task 1, Task 2, Quit) and the Interface Event object (SRQ:hpib7).  An outer loop guarantees repeated execution of the threads.

The two threads defined by the Task 1 and Task 2 buttons display the text TASK 1! and TASK 2! in the AlphaNumeric display.  The thread defined by the Quit button stops the program and clears the display.

The interesting thread involves the SRQ.  The HP3478 State Driver connected to the Start button sets the DMM's SRQ mask to 63.  This lets you assert an SRQ by pressing a button on the DMMs front panel.  With the mask set, the thread that handles the SRQ uses the Interface Event object to wait for the SRQ by using the following settings:

When an SRQ occurs, the Interface Event object pings the Device Event object to do a serial poll, which clears the SRQ on the DMM:

Since NO WAIT is set, this object does the serial poll, then pings the Text object.  The SRQ! message is sent to the display announcing that an SRQ has occurred.  The mask value is irrelevant.  Another method is to do a WAIT SPOLL using a Direct I/O object.

Calling Functions

The following program is similar.  You can initiate one of three actions -- A, B, or C -- then have the program continue to execute the last selected action.

This program calls three different functions -- A, B, and C.  Each is a UserFunction containing a Beep object set for a different duration.  The key is the value FuncName receives in the Set Global objects.  Pressing one of the buttons sends the related text to a Set Global object.  After the global variable is set, the Get Global object sends the UserFunction name to the Call Function object for each iteration of the loop.  Pressing any of the function-selection keys changes FuncName to a new value.  The new function begins working, and the loop continues to execute that function.

Clearing Strip Charts

In a related control flow problem, the following program generates a strip chart that is cleared after counting a certain number of points, or whenever the user clicks a button:

The Until Break object drives the program.  It controls the Random Number, Toggle Control, and Counter objects.  The Random Number feeds values to the Strip Chart display.  The Counter counts each loop iteration, and outputs the count to the If/Then/Else.   The If/Then/Else clears the Strip Chart and the Counter when a user presses the Reset Button or Count equals 100.

The Toggle Control object is driven continuously by Until Break, generating a 0 most of the time.  Clicking on it toggles it to 1, and then it is reset by the feedback connection.  The 1 is an input to the If/Then/Else.  You can change the default appearance of the Toggle Control object by using Edit Properties, and adding the Reset terminal.

Error Handling

A difficult concept in HP VEE is error handling; specifically, how to perform an action and either repeat the action or continue after an error occurs.  A simple way to demonstrate this is with a dialog box to represent an action that can have different outcomes, as the following program shows:

This program pops up a Message Box asking if you want to Abort Retry Ignore.

Abort pings a Stop object to stop the program.

Retry pings Next to reiterate the loop.

Ignore pings Break to stop the Until Break loop.

When Until Break stops, it pings another Message Box that tells you the program is All Done!

Notice that the element(s) to be executed sequentially after the "I/O" loop are connected to the sequence-out pin of the Until Break; they are not connected to any of the loop elements.  Also, you can connect the Break object to the Ignore terminal instead of the sequence-out pin, and it would work the same.

Propagation Problems

HP VEE propagation problems can be distressing to fix.  The following examples can help illuminate such problems.

Measuring Time Interval

One problem is to get the time interval between two events.  The following program is an attempt to solve the problem:

The top part of the program is not difficult; all it does is build up a count.  The problem occurs in the formula built in the lower section. Expert analysis yields the following information and conclusion:

The peculiar logic of the lower two branches is intended to trap any value above 3/6 but not generate any output after that.

The two branches of the logic generate outputs to the Timer object, but the Timer never generates an output of its own.

Tracing data values indicates that valid data exists on the output terminals to the Timer, but the Timers second input terminal doesnt have valid data.

Though the Timer produces no valid data, the program does work correctly as it relates to the behavior of the propagation engine in performing loops.  Values do not remain available between iterations, unless you put them in a Sample & Hold; that is, data on connector lines are cleared at the start of every iteration. This is the classic sample-and-hold "problem".  The data lines in the body of the loop are cleared on every iteration, and the formula gets its two inputs on two different iterations.  The formula never gets both inputs during one iteration, so it never fires.

To fix the problem, you might try using Sample & Hold or Gate objects, but they should be avoided because they are not intuitive or clear solutions.  The following program is a better solution:

When the top branch fires, it stores the time in the global variable timeO.  When the second branch fires, it uses a Formula box to subtract timeO from the current time to give the time interval.

Building a Record

A similar problem occurs when trying to build a record of three waveforms as follows:

The Build Record object never fires because it receives only one input at a time.  Each iteration of the loop invalidates the data put on the input lines from the previous iteration.  The DeMultiplexer is not the problem since it does not generate null outputs on the unselected pins.  The following program solves the problem by replacing the DeMultiplexer with a Shift Register where all three inputs are valid simultaneously.  This program clocks three waveforms into the Shift Register and then pings the Build Record to generate a record of them.

A simpler solution uses a Collector object which outputs an array.  The following program adapts the original solution by using a UserObject.  The data are valid since the UserObject output terminals hold the data until the iterations are done: