last update 27 aug 98 / greg goebel / public domain / vwb_4x
* This document lists bugs fixed in VEE 4.01 and 4.0.
* The VEE 4.01 release was basically for bug fixes to VEE 4.0 and had no
major new functionality.
* It was impossible to set any parity value on RS-232 except "none".
* The Instrument Manager would not refresh instrument settings if SICL was
not installed. This was a problem with somebody who had only installed
National Instruments software.
* Compiling Formula objects took an amount of time proportional to the square
of the number of terms in the Formula, making compile time extremely slow for
certain programs.
* Error pin handling was very slow on VEE 4.0.
* Using Interface Event to perform SPOLLs hogged CPU cycles.
* VEE 4.0 offered major improvements in the VEE user interface, but nailed
down a few bugs as well.
* We uncovered a set of subtle bugs in the operation of classic VEE IDs
(Panel Drivers & Component Drivers) in the 3.2X versions of VEE that were not
present in the previous 3.12 version of VEE.
The problems arose because we rearranged the internal structure of the VEE
program files in VEE 3.2 to make them load faster -- we separated the
internal configuration of the VEE objects from their external appearance,
with the subtle result that in some cases internal data structures of
classic VEE IDs are not initialized properly.
The errors include:
This can occur if a Component or Panel Driver is minimized to an icon. If
you open the driver to its full view, it may run fine. In this case, just
leave the driver open to its full view.
This can occur with a program that runs fine, until you secure it. The
secured version then doesn't work, but the unsecured does. The only way
around it is to add a view of the suspect Panel or Component Driver and
add it to the main panel of the program. This is clunky, but you can
change its size to a small square or otherwise hide it.
This could occur where there's two or more Component drivers. The problem
won't occur with only one -- as long as it's not minimized and not
secured. It also won't occur if there's a Panel Driver that is executed
before any of the Component Drivers for the same device, so putting a
Panel Driver to initialize the program as one of the first actions in the
program.
It is important to understand the sequencing of the affected VEE program
to be certain that the Panel Driver is executed first. Otherwise, the
program may work, until some change is made that modifies its execution
order.
* In some cases, VEE will go all the way through installation and then at the
end give an error message saying the "Services" file wasn't found. This only
happens when ARPA services are not installed. Just add a dummy file named
"Services" to the Windows directory and it will work.
* If you bring up a Real Slider, change its properties to "Show Digital
Display" off, then put it on a Panel View, the track in which the slider
button moves butts up into the title of the Slider object, and if you move
the slider button to the bottom of the scale, it vanishes (though you can
bring it back).
* The Instrument Finder, VCONFIG.EXE, is broken. It gives very strange
addresses under some circumstances. The Instrument Finder was replaced by
Instrument Manager.
* A customer gave us a program that exhibited peculiar behavior. It
consisted of four Call Function boxes as follows:
The only thing the functions "setheader()" and "setdata()" contained were To
File objects, with the flag "Clear File At Prerun & Open" set. The
"setheader()" function stored the string "Header", while the "setdata()"
function stored the string "Data String".
When this program was run, it produced the output file:
The bug showed up if you added a Start button:
After running this the file contained:
The initial header was missing.
On talking with the lab, they indicated that this was a known problem. When
a Start button is used in a program, prerun is deferred until an object is
executed. This means that "setheader()" is executed and prerun (clearing the
file) and then "setdata()" is executed and prerun (clearing the file); the
subsequent executions of "setdata()" and "setheader()" are OK since they have
now been prerun.
* A field person came up with the following extremely simple example program:
-- where "MyFunc()" consists of:
The trick is: Run this and let the Message Box pop up once or twice -- then
stop the program. Next time you run it, the Message Box will only pop up
once instead of cycle through the ten times specified. The only way to
get it to work again is to reload.
Actually, this has nothing to do with the MessageBox object. It has to do
with iterators being stopped in a UserFunction.
* We found an odd bug in VEE-UX recently ... a customer tried to use it with
an X-Windows terminal emulator operating on a PC, and VEE-UX crashed
immediately with the error:
We had considerable trouble tracking this one down, but eventually we learned
that VEE-UX had troubles if the PC X-Terminal was running on a display with a
driver whose color resolution was set to anything but 256 colors. Setting
the driver to 256 colors eliminated the problem.
* VEE has the capability to perform BINBLOCK transfers on IEEE-728 data
blocks, which are defined by a header as follows:
The INT gives the length of the following binary string. You have to set
VEE's I/O to "488" and "#A" to swallow it ... but if you do this on VEE for
Windows and try it you get:
I have a HYPER-VIPER program that can generate the necessary data (use a
block of 201x16 = 3216 bytes. This does not happen on VEE-UX, BTW.
You can synthesize the block read with other DIO transactions:
* If you use the "mday()" function for VEE 3.21 on Win95 and WINNT, it
returns the day, with the value 65536 tacked on. Works fine on UX and VEE
3.12 on Win3. Just do a MOD with 65536 and you'll get the right value.
* If you bring up a Color Alarm object with VEE 3.12, you get the object with
a little circular color bitmap on it. If you do the same thing on VEE 3.21,
you get the object, but no circular bitmap; you don't get an object until you
actually activate the object.
* Trying to enter values into a complex constant leads to odd numeric
results. Workaround is, just use two real constants and then generate the
complex value with a Build Complex object.
* We have had problems with specifying read termination characters for serial
I/O.
* Turns out that in the latest version of VEE we have the ability to set DTR
and RTS, which is great. We also have the ability to read DTR and RTS, which
is not, since (a) its'a a useless operation and (b) customers are going to
want to read DSR and CTS. This was changed appropriately in VEE 4.0.
* The section that describes "Scales" under the "Traces & Scales" entry for
"Polar Plot" in the help and manuals is grossly inaccurate. It appears that
the materials for the other graphics objects was simply cloned there
unchanged.
* Here's a funny one. Consider the following program:
The Enum in the record at top has two entries:
That in the bottom has four entries:
Run this and you get a BRB error on the To String immediately. Now VEE
refuses to concatenate two different objects.
* While you can specify multiple device names in Multidevice Direct I/O,
there is also an option where you specify alternate addresses for one device
name. However, if you change one device name to different addresses in the
same MDIO object, only the last address is actually used.
[*] VEE 4.01 OVERVIEW
[*] FIXED IN VEE 4.01 / No Parity Setting
[*] FIXED IN VEE 4.01 / No Instrument Manager Refresh If No SICL
[*] FIXED IN VEE 4.01 / Compiling Formulas Takes Forever
[*] FIXED IN VEE 4.01 / Slow Error Pin Trapping
[*] FIXED IN VEE 4.01 / SPOLL Hogs CPU Cycles
[*] VEE 4.0 OVERVIEW
[*] FIXED IN VEE 4.0 / Instrument Driver Problems
[*] FIXED IN VEE 4.0 / No (Network) Services File Blocks Installation
[*] FIXED IN VEE 4.0 / Real Slider Problem
[*] FIXED IN VEE 4.0 / Instrument Finder Replaced
[*] FIXED IN VEE 4.0 / Start Button Problem
[*] FIXED IN VEE 4.0 / Nasty Repeat Object Hangup
[*] FIXED IN VEE 4.0 / X-Terminal Bug
[*] FIXED IN VEE 4.0 / IEEE-728 Binblocks Broken
[*] FIXED IN VEE 4.0 / Mday() Function Broken
[*] FIXED IN VEE 4.0 / Color Alarm Problem
[*] FIXED IN VEE 4.0 / Complex Data Entry Defective
[*] FIXED IN VEE 4.0 / Serial Read Termination Character Problems
[*] FIXED IN VEE 4.0 / Bogus Serial Status Lines
[*] FIXED IN VEE 4.0 / Polar Plot Documentation Error
[*] FIXED IN VEE 4.0 / Concatenation Records With Enums
[*] FIXED IN VEE 4.0 / Multidevice I/O Addressing
[*] VEE 4.01 OVERVIEW
[*] FIXED IN VEE 4.01 / No Parity Setting
[*] FIXED IN VEE 4.01 / No Instrument Manager Refresh If No SICL
[*] FIXED IN VEE 4.01 / Compiling Formulas Takes Forever
[*] FIXED IN VEE 4.01 / Slow Error Pin Trapping
[*] FIXED IN VEE 4.01 / SPOLL Hogs CPU Cycles
[*] VEE 4.0 OVERVIEW
[*] FIXED IN VEE 4.0 / Instrument Driver Problems
[*] FIXED IN VEE 4.0 / No (Network) Services File Blocks Installation
[*] FIXED IN VEE 4.0 / Real Slider Problem
[*] FIXED IN VEE 4.0 / Instrument Finder Replaced
[*] FIXED IN VEE 4.0 / Start Button Problem
+---------------+
| Call Function |
+---------------+
| setheader() |
+-------+-------+
|
+-------+-------+
| Call Function |
+---------------+
| setdata() |
+-------+-------+
|
+-------+-------+
| Call Function |
+---------------+
| setdata() |
+-------+-------+
|
+-------+-------+
| Call Function |
+---------------+
| setheader() |
+---------------+
Header
Data String
Data String
Header
+-------+
| Start |
+---+---+
|
+-------+-------+
| Call Function |
+---------------+
| setheader() |
+-------+-------+
|
...
Data String
Data String
Header
[*] FIXED IN VEE 4.0 / Nasty Repeat Object Hangup
+----------+
| Formula |
+----------+
| MyFunc() |
+----------+
+------------------------------+
| UserFunction |
+------------------------------+
| |
| +---------------+ |
| | For Count: 10 +--+ |
| +---------------+ | |
| | |
| +----+----+ |
| | Message | |
| | Box | |
| +---------+ |
| |
+------------------------------+
[*] FIXED IN VEE 4.0 / X-Terminal Bug
error: internal error: segmentation violation (signal=11)
errorcode -979
program aborted with escape code: 979
[*] FIXED IN VEE 4.0 / IEEE-728 Binblocks Broken
#A<16-bit INT>
INT32 is out of range for number of bytes to allocate (134217727)
READ BINARY NULL BYTE ARRAY:2 // Read #A.
READ BINARY x INT16 // Get length.
READ BINARY Y BYTE ARRAY:X // Read pin to get data.
Note how the length is read into pin X and then used as an array length for
the array in the last transation. If you want to read REAL data, say, you'll
need to divide it by 8.
[*] FIXED IN VEE 4.0 / Mday() Function Broken
[*] FIXED IN VEE 4.0 / Color Alarm Problem
[*] FIXED IN VEE 4.0 / Complex Data Entry Defective
[*] FIXED IN VEE 4.0 / Serial Read Termination Character Problems
[*] FIXED IN VEE 4.0 / Bogus Serial Status Lines
[*] FIXED IN VEE 4.0 / Polar Plot Documentation Error
[*] FIXED IN VEE 4.0 / Concatenation Records With Enums
+--------------------+
| Record |
+--------------------+
| [ Enum ] [ Item1 ] +--+
+---------+----------+ |
| | +-----------------------+
+---------+----------+ | | To String |
| Record | +-->+--------------+ +-----------------------+
+--------------------+ | concatenator +-->| WRITE TEXT A[1].A EOL |
| [ Enum ] [ Item1 ] +----->+--------------+ +-----------------------+
+--------------------+
[ Item 1 ] <-- Item 1 is selected.
[ Item 2 ]
[ Item 1 ]
[ Item 2 ]
[ Item 3 ]
[ Item 4 ] <-- Item 4 is selected.
[*] FIXED IN VEE 4.0 / Multidevice I/O Addressing