You are on page 1of 93

GETTING STARTED GUIDE \

VERSION 2.3
Copyright
VAPS XT 2.3 Getting Started Guide
© 2008 Presagis™ All rights reserved.
All trademarks contained herein are the property of their respective owners.
PRESAGIS PROVIDES THIS MATERIAL AS IS, WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE.
Presagis may make improvements and changes to the product described in this
document at any time without notice. Presagis assumes no responsibility for the
use of the product or this document except as expressly set forth in the applicable
Presagis agreement or agreements and subject to terms and conditions set forth
therein and applicable Presagis policies and procedures. This document may
contain technical inaccuracies or typographical errors. Periodic changes may be
made to the information contained herein. If necessary, these changes will be
incorporated in new editions of the document.
Presagis Canada Inc. and/or Presagis USA Inc. and/or its suppliers are the owners
of all intellectual property rights in and to this document and any proprietary
software that accompanies this documentation, including but not limited to,
copyrights in and to this document and any derivative works there from. Use of
this document is subject to the terms and conditions of the Presagis Software
License Agreement included with this product.
No part of this publication may be stored in a data retrieval system, transmitted,
distributed or reproduced, in whole or in part, in any way, including, but not
limited to, photocopy, photograph, magnetic, or other record, without the prior
written permission of Presagis Canada Inc. and/or Presagis USA Inc.
Use, distribution, duplication, or disclosure by the U. S. Government is subject to
"Restricted Rights" as set forth in DFARS 252.227-7014(c)(1)(ii).
July 24, 2008
Contents
Chapter 1: About This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
In This Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
Conventions Used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8
Symbols Used. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
Cautions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
VAPS XT Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Chapter 2: What’s New in VAPS XT 2.3 . . . . . . . . . . . . . . . . . . . 11


Support for Microsoft Visual Studio 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
SDK and Direct SDK Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Code Generated Executables on Non VC8 Computers . . . . . . . . . . . . . . . . . . . 13
Path Environment Variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Generic New Features in VAPS XT 2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Partial Redraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Dynamic Instantiation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Find Usability Enhancements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Dynamic Loading of Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Comment Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
GUID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Data Copying Improvements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Nested Stenciling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Coded Object Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Round Calculator Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Paths with Spaces CodeGen Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Update Scope Optimizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Pop-Up Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Report Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Image Generation Enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Multiple Display Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Named Constant Values for Enum and Table Index Data Types . . . . . . . . . . 21

VAPS XT 2.3 Getting Started Guide 3


Contents

C/C++ Interface for Integration with User Applications . . . . . . . . . . . . . . . . . . 22


Opacity and Gradients Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Drawing Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Data Snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Polygon Tessellation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Memory Footprint Optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Fixed Size Reductions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Variable Size Reductions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Example Footprint Figures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
10 Pages with Similar Footprint to PFD Example . . . . . . . . . . . . . . . . . . . . . . 26
Push Button Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Record & Playback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Release Executables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Chapter 3: Release Notes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32


Upgrading from a Previous Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Directory Structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Changes to Coded Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Upgrade procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Licensing – Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Known Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Partial Redraw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
PopUp Mechanism. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Drawing Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Find Option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
InstanceGroup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
General Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Multiple Displays and Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
C/C++ Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Code Generated Widget Template. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Chapter 4: Installing the Presagis License Manager . . . . . . . 54


About the Presagis License Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Installing the License Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Obtaining a License File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Installing the License File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Determining the License Feature Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Changing the License File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Stopping the License Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Uninstalling the License Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

VAPS XT 2.3 Getting Started Guide 4


Contents

Chapter 5: Installing VAPS XT 2.3 . . . . . . . . . . . . . . . . . . . . . . . . 67


System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
VAPS XT Main Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
VAPS XT CODE nGEN Feature. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Cross-Compiler Restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Target System Restrictions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Installing VAPS XT (v2.3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Environment Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Installation Directories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Running Multiple Versions of VAPS XT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Modifying the setup.bat Batch File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Launching the batch file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Uninstalling VAPS XT (v2.3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Installing Adobe Reader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Chapter 6: Installing nGEN Sources . . . . . . . . . . . . . . . . . . . . . . 82


About the nGEN sources for VAPS XT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Installing the nGEN sources for VAPS XT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Installed Files and Folders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Chapter 7: Installing Simulink Interface 2.3. . . . . . . . . . . . . . . 86


Installing Simulink Interface (v2.3). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Uninstalling Simulink Interface (v2.3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Chapter 8: Installing the VAPS XT 3D Plugin . . . . . . . . . . . . . . 90


About the 3D Plugin for VAPS XT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Installing the 3D Plugin for VAPS XT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Using the OpenSceneGraph 3D Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

VAPS XT 2.3 Getting Started Guide 5


1
About This Guide
This chapter contains the following sections:
• In This Guide
• Conventions Used

VAPS XT 2.3 Getting Started Guide 6


In This Guide

In This Guide
Here’s what you will find in this guide.

VAPS XT 2.3 Getting Started Guide


Chapter 1 Information about the Getting Started Guide.
Chapter 2 Briefly describes the new features and enhancements
available in this version of VAPS XT.
Chapter 3 The Release Notes that describe the known limitations in this
release.
Chapter 4 Step-by-step instructions for installing the Presagis License
Manager.
Chapter 5 Step-by-step instructions for installing VAPS XT and Adobe
Reader software.
Chapter 6 Step-by-step instructions for installing the re-hosting
services for code generation.
Chapter 7 Step-by-step instructions for installing the VAPS XT 3D
plugin.
Chapter 8 Step-by-step instructions for installing the VAPS XT Simulink
Interface.

VAPS XT 2.3 Getting Started Guide 7


Conventions Used

Conventions Used
The following conventions are used in this manual:
• Path names are written with a backward slash (e.g.,
VAPSXT_23\bin\), which is the general convention for Windows.
However, for our purposes, this convention is used to identify any
path names.
• Menu items, options, button names, and commands are in boldface
type.
• When selecting commands from the menus, the menu path is
presented as follows:
Select Windows | Docking Windows | Project View.
This would mean that you would open the Windows menu, open
the Docking Windows submenu, and then select the Project View
command.
• If you must use keys on your keyboard, the keys are written as
follows:
• Press Ctrl+C: you press the Ctrl key and the C key at the same
time.
• Press Delete: you press the Delete key.
• Press F4: you press the Function Key #4 (usually at the top of
your keyboard).
• System messages or prompts, names of structures, C library scripts,
and other directory and filenames are written in courier font.
• Italics are used to give special emphasis.
• Procedural steps are numbered.

VAPS XT 2.3 Getting Started Guide 8


Conventions Used

Symbols Used
Notes, Hints and Cautions are indicated by an icon to the left of the text,
as shown below:

Notes

A Note contains background information that is not essential to


using VAPS XT, but may prove helpful.

Hints

A Hint provides a shortcut or alternate method for performing a


task.

Cautions
A Caution contains a warning about a procedure.

VAPS XT 2.3 Getting Started Guide 9


VAPS XT Documentation

VAPS XT Documentation
The following documentation is provided with this release:
• VAPS XT Getting Started Guide
• VAPS XT User’s Guide
• VAPS XT Programmer’s Guide
• VAPS XT Online Help (MS HTML Help)
• VAPS XT CODE nGEN User’s Guide
• VAPS XT CODE nGEN Programmer’s Guide
• VAPS XT Tutorial 1: Creating a Basic Project
• VAPS XT Tutorial 2: Defining Behavior with State Charts
• VAPS XT Tutorial 3: Designing an HSI
• DOORS Interface User’s Guide
If you have the ARINC 661 plugin installed, you should also refer to:
• Cockpit Display System Interfaces To User Systems, ARINC
Specification 661-2, Airlines Electronic Engineering Committee,
Aeronautical Radio, Inc.
You can access the documentation, provided in Adobe® PDF format, by
choosing Start | Programs or All Programs | VAPS XT 2.3 |
Documentation, or by using Windows Explorer to locate the files in the
Docs folder under the install root directory.

Be sure you have a recent version of Adobe Reader. In earlier


versions, hyperlinks between books do not work properly. They
will jump to the first page of the book rather than to the actual page
of the link.

VAPS XT 2.3 Getting Started Guide 10


2
What’s New in VAPS XT 2.3
This chapter includes the following sections:
• Support for Microsoft Visual Studio 2005
• Generic New Features in VAPS XT 2.3
• Release Executables

VAPS XT 2.3 Getting Started Guide 11


Support for Microsoft Visual Studio 2005

Support for Microsoft Visual Studio 2005

SDK and Direct SDK Platforms


The user must do the following after installing the SDK and DirectX SDK
platforms from Microsoft:
• Choose Tools | Options in Microsoft Visual Studio 2005 and add
the following:
C:\Program Files\Microsoft Plaftform SDK\lib (where
the SDK lib is installed) $(DXSDK_DIR)\lib

• To run the code-generated _DEBUG application, the user must


copy the mfc80d.dll and paste it in C:\Windows directory. This
file is located in the following location:
C:\Program Files\Microsoft Visual Studio
2005\VC\redist\Debug_NonRedist\x86\
Microsoft.VC80.DebugMFC\).

• The PC must have Microsoft Visual Studio 2005 SP1 installed to use
CODE nGEN.

VAPS XT 2.3 Getting Started Guide 12


Support for Microsoft Visual Studio 2005

• The VAPS XT 2.3 default installation directory is located in:


C:\Presagis\VAPSXT_23.

• CodeGen now dynamically links in the vxtDirectShowObject.DLL,


only if MMAudio / MMVideo object(s) is used in the application.

Due to some changes in Microsoft Visual Studio 2005 code/library


structure, this new scheme allows the user to compile MMAudio/
MMVideo without installing an extra Microsoft Platform SDK
(950MB) and DirectX SDK (750MB). As a result, if the user want's
to move a CodeGen executable to another computer that does not
have VAPS XT installed, the user must also carry over the
MMAudio/MMVideo core DLL from
%VAPSXT_DIR%\bin\vxtDirectShowObject.dll and place it
either in the same folder as the executable, or have its location
present in the system path environment variable

(path=C:\path\to\vxtDirectShowObject.dll;%path%)
MMAudio/MMVideo core DLL:
vxtDirectShowObject.dll

Code Generated Executables on Non VC8 Computers


To execute code generated executables on a non VC8 computer, the user
must install the 2.0 version of the MFC redistributive dlls.
Install the latest version (v2.0) of vcredist_x86.exe. The files are located
in the visual studio installation in: %PROGDIR%\Microsoft Visual
Studio 8\SDK\v2.0\BootStrapper\Packages

The Microsoft Visual C++ 2005 Redistributive Package (x86) installs


runtime components of Visual C++ Libraries required to run
applications developed with Visual C++ on computers that do not have
Visual C++ 2005 installed. The installation requires the user to have
administrative permissions.
All Visual C++ libraries get installed as shared assemblies. On a target
computer with support for manifest-based binding of applications to
their dependencies (Windows XP Home Edition, Windows XP
Professional, Windows Server 2003, Windows Vista), the libraries are
installed in the WinSxS folder. On computers without such support
(Windows 98, Windows 98 Second Edition, Windows Millennium
Edition, Windows 2000), the libraries are installed in the WinSxS and
System32 folders.
The vcredist_x86 installs only the release versions of Visual C++ DLLs.

VAPS XT 2.3 Getting Started Guide 13


Support for Microsoft Visual Studio 2005

Path Environment Variable


The length of the Path Environment Variable is checked before VAPS
XT gets installed. Initially the limit was set to 2048 (max length on
Windows XP + Service Pack 2). In this condition, the Path is cleared if
the limit is 1024 (standard Windows XP). However, adding
%VAPSXT_DIR%\bin accedes 1024 – VAPSXT clears the Path settings
and sets it to %VASPXT_DIR%\bin.
The limit in VAPS XT install is now set to 1024 to keep the original
settings of the Path Environment Variable in a text file under the
installation directory.

VAPS XT 2.3 Getting Started Guide 14


Generic New Features in VAPS XT 2.3

Generic New Features in VAPS XT 2.3

Partial Redraw
The Partial Redraw feature accumulates the damage areas (rectangular
areas) of the screen that have changed in every iteration, and then only
redraws these areas. Areas not changed are not redrawn.
Partial Redraw is designed to reduce CPU and/or GPU cycles, especially
for complex applications when only small sections or damage regions
need to be redrawn.

Dynamic Instantiation
Dynamic Instantiation lets the user create arrays of Objects and then
reference them by name. The user can specify objects to be dynamically
instantiated and control the visual priority, visibility, and allocation of
these objects instantiated inside an implementation at runtime. The
feature is designed for users with limited RAM/ ROM space, for example,
when the user may want to draw 100 icons at a certain sequence of
execution at runtime, and another 120 icons for another sequence of
execution.
Dynamic Instantiation has advantages over the RepeatGroup as it does
not draw multiple copies of its children, but only draws instances
depending on what changed. A removed instanced object is not redrawn
and has no effect on the runtime, where as the hidden status hides the
instanced object, and only redraws it when it becomes visible again. A
hidden instanced object is not updated when
UpdateVisibleInstancesOnly is set to True, where as a visible instanced
object is updated and drawn.

VAPS XT 2.3 Getting Started Guide 15


Generic New Features in VAPS XT 2.3

Find Usability Enhancements


The various Find options include:
• Find: lets the user look for either documents, elements (class
declarations, objects, instances, data flow, and transitions).
• Find in Project: available in the pop-up menu of the
Implementation View and pop-up menu of the toolbox, lets the
user find the referenced document in Project View.
• Recent Files/Recent Root Projects: lets the user access the most
recently used projects and files. The feature contains a maximum of
10 of the most recently opened root projects, and 20 of the most
recently opened files in the current root project.

Dynamic Loading of Images


This feature minimizes the ROM and RAM footprints of a code-
generated application that contains images.
Images (.bmp and .png) are loaded directly from file by the generated
executable, instead of being compiled into the application.It also
supports loading BMP and PNG files directly in a code generated
executable. When a BMP file is found, the BMP is converted to a PNG
file, and the resulting PNG file gets loaded.
This feature provides an option not to check for unique tiles in the tile
manager in a code generated executable, as well as to reduce the allocated
memory in RAM.
The PNG library sources and build files have been added to the
CodenGen sources install. These files are easily portable to target systems
in compliance with portable code guidelines. It is possible, by changing
a single define in “vxtTargetConfig.h” file, to remove the libpng from
the code generated application / runtime kernel. This is required if, for
example, the user code generates always the table and data.
There is a porting / customization interface available to customize the
generated table information with the users own image file loading
software. Also, the user can use an API function to set the path for the
image files in an embedded system.

VAPS XT 2.3 Getting Started Guide 16


Generic New Features in VAPS XT 2.3

Comment Editor
The Comment Editor lets the user insert, edit, and delete comments.
Comments can be put on class (.vcls), class attribute (property, event,
operation), implementation document family (.vimp, .vxdf, .vlyr, .vws,
.vxdd), object, state chart object, transition, and dataflow.
The comment operations (insert, edit, and delete) can be launched from
the context menu and from the Edit menu of the main frame. The
comment operation menus are dynamic, support Unicode, and only the
operations shown are allowed.
The user can undo all comment operations. Also, putting a comment on
an item affects the document tag to which the modified item is a part of.
Comment operations done on items kept in an implementation are put
in the undo stack of the document, while comments put on documents
that cannot be opened are put in the undo stack of the Project View.
A small red triangle is drawn in the top right corner of the cell containing
the comment. In the State Chart Diagram, the commented items are
identified with a yellow dialog bubble. Both comment indicators can be
hidden through settings located in the Options dialog in the General tab,
and there are the user can change the Comment Editor font and font size.

GUID
The Global Unique Identifier (GUID) is a read only field used to identify
object instances and classes. GUIDs are saved in XML format in .vcls and
.vimp files.
When an object gets assigned a GUID it cannot be changed, and the
unique identifier stays the same throughout the life of the project.
GUIDs for object instances and classes are generated and assigned when
a document is saved. VAPS XT validates and ensures no duplicate GUID
gets created within the same document.

VAPS XT 2.3 Getting Started Guide 17


Generic New Features in VAPS XT 2.3

Data Copying Improvements


The following changes were implemented to improve the way data is
copied during dataflow processing, event generation, and operation
invocation:
• To improve DO-178B certifiability, certain "void pointer"
arguments are replaced to pass values with the usage of vxtRTValue
objects.
• The property get/set code was improved in the following ways:
• There are now two generic functions: one to get the value, and
one to set the value. Previously there were three: one to get the
value, one to get a constant pointer to the value, and one to set
the value.
• To avoid possible function name conflicts, the specific get/set
functions were renamed to end in “Prop”.
• The specific get functions were simplified to return the value,
instead of returning the value in an argument. This
improvement simplifies the generated code for dataflow and
transitions and removes complier warnings.

Nested Stenciling
In the case where a StencilGroup is placed inside another StencilGroup,
the intersection of the two stencil regions applies to the more deeply
nested stencil group. Stenciling functions were added to the porting layer
to support this. The level of nesting depends on the number of stencil
bit planes available in OpenGL; there may be 2^number-of-stencil-bits
of nested stencils.
Note that the PartialRedraw feature requires one layer of Stenciling.
Additionally, the first object within a StencilGroup is no longer drawn
to the screen; it only defines the shape of a stencil region.

VAPS XT 2.3 Getting Started Guide 18


Generic New Features in VAPS XT 2.3

Coded Object Initialization


The following improvements were made to initialization behavior in
coded objects to simplify the writing of coded objects:
• The same initialization function in hand-coded objects is called to
initialize properties both in the Editor and (non-A661) Code-
generation executable case.
• The following API method has been added to the vxtRTObject:
vInitProperties

Round Calculator Support


The Round calculator returns a rounded Double given a Double Value
and rounds to the nearest value
The following shows Round Calculator examples as a function:
• Round(1.57593, 0.01) gives 1.58
• Round(1.57593, 1) gives 2
• Round(1.57593, 0.001) gives 1.576
• Round(1.57593, 0) gives 1.57593 (do nothing)
• Round(1.24348, 0.001) gives 1.243
• Round(154.78, 100) gives 200
• Round(154.78, 10) gives 150
• Round(154.78, 20) gives 160

Paths with Spaces CodeGen Support


CodeGen now supports spaces in path names on Windows.
When CodeGen sees there is a space in the path, it converts the path to
MS-Dos convention.
For example, path “C:\Program Files\HTML Help Workshop” will
be changed to “C:\PROGRA~1\HTMLHE~1”

This is done to be compatible with gmake, as well as the VAPSXT internal


architecture.
This is a Windows specific feature for users who are using VAPS XT for
concept work. If users wish to use VAPSXT for porting activities, it is
highly recommend not to use projects whose paths contain spaces.

VAPS XT 2.3 Getting Started Guide 19


Generic New Features in VAPS XT 2.3

Update Scope Optimizer


Users can reduce CPU usage by enabling update optimization on various
grouping objects that are responsible for the update of their children
(such as SimpleGroup, MutuallyExclusiveGroup, or a State within a
State Machine).
For example the SimpleGroup has a property
UpdateChildrenOnlyIfVisible, which when TRUE prevents the update
of all the SimpleGroup’s children when the SimpleGroup itself is
invisible. With the optimization, CPU processing improves for cases
where regular periodical changes occur, such as from DataReceiver/
SignalGenerator objects, within invisible/inactive children of such
grouping objects.

Pop-Up Mechanism
The Pop-Up Mechanism allows graphical objects to appear on top of all
other objects by changing the visual priority of an object. The feature
can be used in built and coded objects to allow pop-ups to appear and
disappear at a higher level of visual priority than standard graphics.
The feature can be used to implement objects and ARINC 661 widgets
such as pop-up menus and combo boxes. Users can modify or switch
the pop-up position during runtime.
Pop-Up is implemented using 2 new coded objects: the PopUpPart and
the PopUpContext. The ComboBox in the UI Components project is
provided as an example of a built object that uses Pop-Up.

Report Profile
The Report Profile allows the user to determine what information gets
documented in an implementation. The Report Profile tree view and
the Report Profile properties inspector are used to configure the
parameters of the selected objects. The information kept are image
properties and Datasnapshot.
The Report Profile lets the user capture Images and Data Snapshots of
the Implementation in Editor Mode. To do this, the "Editor Mode" must
be configured. All Report Profiles have an Editor Mode item by default.
Image and Data Snapshots can be captured for the Implementation
when in Editor Mode by executing the Report Profile. The Report
Profile can be attached to a Record Session, and Images and Data
Snapshots get captured at Key Points when the Implementation is in
Playback Mode.

VAPS XT 2.3 Getting Started Guide 20


Generic New Features in VAPS XT 2.3

Image Generation Enhancements


Image Generation used with the Report Profile lets the user generate
images for selected objects. The images are based on the Zoom factor in
percent (%), and the Zoom factor replaces the old width and height in
the property page.
All image parameters are saved in the Report File, and the user can
generate images in very high DPI bitmaps which are suitable for printing.
The old design doc feature has been replaced with the report profile and
the enhanced image generation. This feature is now licensed under
DOCnGEN.

Multiple Display Support


VAPS XT now lets the user define how Formats get mapped to Windows,
as well as how a Window get positioned within one or more Displays. A
similar GUI is used to define ARINC 661 and generic Displays
Definition files.
The user can use the Displays and Windows in VAPS XT models to
simulate physical Displays and Windows on the target system, as well as
map the Displays and Windows to the physical Display devices and
Windows on the target system.

Named Constant Values for Enum and Table Index


Data Types
The user can enter table index data type constants in expressions and
actions using their name rather than their numeric value. This applies
to attribute table index types (colors, linestyles, etc), as well as object
table indices (e.g. Image, Font).
The following new syntax is supported:
<datatypename>::<name value>
Examples:
Bool::False
UShortImage::PNG_Ball
ShortColor::Cyan
ByteFont::Arial

VAPS XT 2.3 Getting Started Guide 21


Generic New Features in VAPS XT 2.3

C/C++ Interface for Integration with User Applications


The new interface allows users to easily integrate VAPS XT code-
generated applications within user applications written in C or C++, as
well as giving users control over various user-modifiable behaviors. The
user is now able to do the following:
• Specify I/O buffers for data read/write, as well as handlers to be
called when data changes.
• Specify code to be executed prior to the update phase of an
iteration.
• Specify code to be executed after the update phase of an
iteration.
See the Code nGEN Programmer’s Guide for API C/C++ user integration.

Opacity and Gradients Primitives


VAPS XT now lets the user use Gradients and Opacity by using the
FillStyle (SolidColor, Gradient), FillGradient, PenOpacity, and
FillOpacity properties on the standard (non-svg) primitives.

Drawing Integration
The Drawing Integration API allows the user to integrate VAPS XT
applications inside a Vega Prime 3D Scene, or any other 3rd party
application with an existing OpenGL Context.
A simple API and code generation target (wogl_dll.cfg) are provided,
and the user can integrate any VAPS XT application to Vega Prime in
the following two ways:
• Overlay drawn on top of a 3rd party application.
• Embedded within a 3rd party application such as a 2D panel that
can be viewed as a plane positioned in 3D space. In this condition,
support for multiple panels is required.

Data Snapshot
A Data Snapshot is a snapshot of the object's property value at specific
times. In the Report Profile (see “Report Profile” on page 20) context,
this specific time is identified by a Key Point from the Record Session
(see “Record & Playback” on page 28).
Data Snapshots get produced per Key Point and are saved in a XML file.

VAPS XT 2.3 Getting Started Guide 22


Generic New Features in VAPS XT 2.3

Polygon Tessellation
Tessellation is now performed in the Editor when required, and a new
“Mesh” property has been added.
The Polygon stores the result of the Tessellation, and the resulting
Polygon can still be driven dynamically as long as its changes do not
require re-tessellation.
To increase drawing performance and avoid dynamic memory
allocation, VAPS XT does not perform Tessellation of Polygons during
runtime.

Memory Footprint Optimizations


Code generated VAPS XT applications have both a fixed memory
footprint cost that does not vary with the size of the application, as well
as a variable memory footprint cost that varies with the size of the
application. However, Presagis is currently working toreduce the
number of temporary allocations/frees during execution of a compiled
application.
The fixed footprint cost comes from the VAPS XT run time and objects
libraries with which the generated code for an application is linked. This
fixed footprint cost does not vary with the size of the application, but
does vary with the features used in an application. For example, using
True Type fonts requires the Free Type based True Type font rendering
code to be included.
The variable footprint cost comes from the code that VAPS XT generates
for the application. For very small applications, this footprint cost is
smaller than the fixed footprint cost of the VAPS XT run time libraries.
However as the application gets larger, this variable footprint cost figure
becomes more important.
Footprint reductions have been implemented to reduce both the fixed
cost and variable cost of code generated executables. Significant
improvements have been made, and further significant improvements
are being planned for subsequent releases.

Fixed Size Reductions


The fixed cost memory footprint was reduced by providing a reduced
set of configuration parameters that are sufficient for most applications.
These are provided in a new configuration header file variant
vxtTargetConfigRTSmall.h. This configuration file shows how the

VAPS XT 2.3 Getting Started Guide 23


Generic New Features in VAPS XT 2.3

footprint can be reduced from the standard settings now contained in


the vxtTargetConfigRTAll header file.
With this configuration, the minimum base footprint for the run time
libraries is approximately of 300Kb code and 200Kb data. Note that
using certain specific features in the application will add to this fixed cost
footprint, and the major examples are true type fonts (additional ~400kb
code and ~120kb data required for the FreeType based rendering code),
and dynamic image loading through the PNG library (~220kb code and
~25kb data for PNG loading and rendering code).

Variable Size Reductions


Several general improvements have been made to significantly reduce
the generated code footprint size (code, uninitialized data, and heap) of
all applications. These include: optimization of the object base C++
classes, optimization of object initialization mechanism, and the
removal of object name strings.
In addition, one specific optimization was implemented for states in the
state chart, and States that do not contain objects are now significantly
optimized in the generated code.

Example Footprint Figures


The example figures below show the break down of footprint cost into
executable program code (commonly know as text), initialized data
(commonly known as data), uninitialized data (commonly known as
bss) sections, and heap memory. Note that the stack size requirement is
not included in the figures as Stack analysis has not yet been considered
in the optimization.
The figures were measured on Windows executables generated by
Microsoft Visual C++ 2005. Sizes were measured using an analysis tool
to extract information from the debug information (.pdb) files and
rounded to within a few percent. The VAPS XT code generation option
settings used were: "Create Primitive Group": = No and "Inline Drawing
Code" = No. These are the current recommended settings to minimize
the footprint. Creating primitive groups adds extra objects in the
generated code that increases the generated code, data size, and drawing
code in-lining has not yet been optimized, and therefore, while it does
reduce run time heap allocation, it leads to significant additional
program code size.

VAPS XT 2.3 Getting Started Guide 24


Generic New Features in VAPS XT 2.3

Example
The PFD Example format from the Examples project in the Standard
root project is used as a representative example of a single display page.
The format contains approximately 400 objects of various types and 45
dataflow connections.
The following tables show the footprint figures for the PFD Example.
VAPS XT 2.3

Exe File Total Total Data Initialized Data Uninitialized Data Heap Size
size Code Size (data Size (data) (bss) Size
Size + bss +
(text) Heap)
Total 1180 Kb 893 Kb 340 Kb 205 Kb 82 Kb 53 Kb
Size
Fixed 823 Kb 181 Kb 82 Kb 10 Kb
Size
Variable 70 Kb 24 Kb <1 Kb 41 Kb
Size

VAPS XT 2.2

Exe File Total Total Data Initialized Data Uninitialized Data Heap Size
size Code Size (data Size (data) (bss) Size
Size + bss +
(text) Heap)
Total 1224 Kb 1005 Kb 786 Kb 211 Kb 513 Kb 62 Kb
Size
Fixed 820 Kb 187 Kb 500 Kb 10 Kb
Size
Variable 185 Kb 24 Kb 13 Kb 52 Kb
Size

VAPS XT 2.3 Getting Started Guide 25


Generic New Features in VAPS XT 2.3

Percentage Improvements in VAPS XT 2.3 versus VAPS XT 2.2

Exe File Total Total Data Initialized Data Uninitialized Data Heap Size
size Code Size (data Size (data) (bss) Size
Size + bss
(text) Heap)
Total 3.5 % 11 % 57 % 3% 84 % 15 %
Size
Fixed 0% 3% 83 % 0%
Size
Variable 62 % 0% 99 % 21 %
Size

10 Pages with Similar Footprint to PFD Example


The following example figures show the footprint for an application
containing 10 different pages that are each roughly the same size as the
PFD page. This is a generalization, however it serves to show an example
of the way the footprint grows with the application size.
VAPS XT 2.3

Exe File Total Total Data Initialized Data Uninitialized Data Heap Size
size Code Size (data Size (data) (bss) Size
Size + bss +
(text) Heap)
Total 1992 Kb 1512 Kb 1034 Kb 397 Kb 82 Kb 440 Kb
Size
Fixed 823 Kb 181 Kb 82 Kb 10 Kb
Size
Variable 700 Kb 216 Kb <1 Kb 430 Kb
Size

VAPS XT 2.3 Getting Started Guide 26


Generic New Features in VAPS XT 2.3

VAPS 2.2

Exe File Total Total Data Initialized Data Uninitialized Data Heap Size
size Code Size (data Size (data) (bss) Size
Size + bss +
(text) Heap)
Total 3112 Kb 2700 Kb 1551 Kb 393 Kb 628 Kb 530 Kb
Size
Fixed 820 Kb 187 Kb 500 Kb 10 Kb
Size
Variable 1880 Kb 206 Kb 128 Kb 520 Kb
Size

Percentage Improvements in VAPS XT 2.3 versus VAPS XT 2.2

Exe File Total Total Data Initialized Data Uninitialized Data Heap Size
size Code Size (data Size (data) (bss) Size
Size + bss
(text) Heap)
Total 3.6 % 44 % 33 % -1 % 87 % 17 %
Size

The fixed and variable % improvements are the same as in the single
PFD Example so they have been omitted from the above table. However,
because the variable size code footprint is a more significant portion of
the overall cost, the overall code size savings seen for 10 similar pages is
much higher at 44% versus 11% for the single PFD page. Similarly, the
executable file size saving is also higher at 36% versus 3.5% for the single
page PFD Example.
An example scenario of an embedded system memory requirement for
the 10 pages example where the application code runs from RAM, and
the executable image is stored in flash memory is as follows:

VAPS XT 2.3 Getting Started Guide 27


Generic New Features in VAPS XT 2.3

VAPS XT 2.3
Flash required: 2Mb (approximately exe size)
RAM required: 3Mb (text + data + heap + stack)
VAPS XT 2.2
Flash required: 3Mb (exe size)
RAM required: 5Mb (text + data + heap + stack)

Push Button Example


The State Chart optimization can be demonstrated by the footprint
figures for the PushButton object found in the StandardElements UI
Components, and the object contains 5 states. As none of these states
contain objects, they are optimized in VAPS XT 2.3, and therefore, gives
a saving of 50% versus VAPS XT 2.2 in the heap memory required for
an instance of the PushButton.

Record & Playback


The Record & Playback feature lets the user record an implementation
during run mode and play it back later.
During the record phase, every event such as pointer or discrete event
gets recorded. The record session can be paused at any time to allow
object property modifications, and action block executions.
Key Points can also be recorded. A Key Point is a user defined point in
the record session where a specific label or activity occurs. Key Points
can also be used in the DOCnGEN context to automatically execute
predefined tasks of a Report Profile (see “Report Profile” on page 20).
Recorded events and Key Points form a "Record Session", which is a
XML file containing the recorded components, and is the input of the
playback. VAPS XT lets the user store multiple record sessions for the
same implementation.
During the playback phase, the user can pause the record session add/
remove Key Points. Information in the record session up to the point
you pause the session stays in the record session memory. When the
playback is paused, the user can perform various operations such as
resume playback, resume play, and resume record mode. If the user
resumes the record mode, all remaining (previously recorded)
information stored in the record session gets overwritten. Also, changing
modes to Record and Play can not be reverted.

VAPS XT 2.3 Getting Started Guide 28


Generic New Features in VAPS XT 2.3

In the Project View, it is possible to reorganize record session documents


within the implementation, however it is not possible to move a record
session from one implementation to another implementation.

VAPS XT 2.3 Getting Started Guide 29


Release Executables

Release Executables
1 Install the latest version (v2.0) of vcredist_x86.exe.
It can be found in a visual studio installation at:
%PROGDIR%\Microsoft Visual Studio
8\SDK\v2.0\BootStrapper\Packages
The Microsoft Visual C++ 2005 Redistributable Package (x86)
installs runtime components of Visual C++ Libraries required to
run applications developed with Visual C++ on a computer that
does not have Visual C++ 2005 installed.
• The installation requires the user to have administrative
permissions.
• This installs all Visual C++ libraries as shared assemblies. On a
target computer with support for manifest-based binding of
applications to their dependencies (Windows XP Home
Edition, Windows XP Professional, Windows Server 2003,
Windows Vista), the libraries are installed in the WinSxS folder.
On a computer without such support (Windows 98, Windows
98 Second Edition, Windows Millennium Edition, Windows
2000), the libraries are installed to both the WinSxS and
System32 folders.
2 Create a folder structure on the target computer containing the
executable.
3 Vaps XT version specific details:
• If nCom is used in the executable certain XML related DLLs are
needed. There are two ways of accessing these DLLs:
• If the target computer has Vaps XT installed, accessing these
DLLs can be done by modifying the PATH environment
variable and adding VAPSXT\VAPSXT_DIR\bin to it. If this is
done, point 4 can be skipped because the \bin folder contains
the DLL that is needed.

VAPS XT 2.3 Getting Started Guide 30


Release Executables

• If the target computer does not have Vaps XT installed,


accessing the following DLLs from the \bin folder must be
copied to the folder containing the executable: sqxComms.dll
sqxCommsHelper.dll
xerces-c_2_3_0.dll
4 The executable must have access to mfc80.dll which is located inside
the C:\WINDOWS\WinSxS\x86_Microsoft.VC80.MFC* folder for
all Vaps XT versions:
• If the target computer has Vaps XT installed, accessing it can be
done by modifying the PATH environment variable and adding
C:\WINDOWS\WinSxS\x86_Microsoft.VC80.MFC* to it.

• If the target computer does not have Vaps XT installed, a copy


of the DLL must be added to the folder containing the
executable.
5 The executable is ready to be used.

VAPS XT 2.3 Getting Started Guide 31


3
Release Notes
This chapter contains the following sections:
• Upgrading from a Previous Release
• Licensing – Packaging
• Known Limitations

VAPS XT 2.3 Getting Started Guide 32


Upgrading from a Previous Release

Upgrading from a Previous Release

Directory Structure
This section is only relevant for users who have nGen sources.
The Microsoft Visual Studio 2005 solutions and the top level makefile
were relocated to make it easier to build your runtime libraries and XT
objects.
• Top-level make file
• New location: %VAPSXT_DIR%\src\make\makefile.mak
• Old location: %VAPSXT_DIR%\src\RT\make\makefile.mak
• This makefile is now the top level makefile to build runtime
libraries for any target. To build, simply run cg_make as before
but with this makefile.
• Microsoft Visual Studio 2005 solutions to build static runtime
libraries for Windows
• New location: %VAPSXT_DIR%\src\make\vxtRT.sln and
%VAPSXT_DIR%\src\make\vxtRTA661.sln
• Old location: %VAPSXT_DIR%\src\RT\make\vxtRT.sln and
%VAPSXT_DIR%\src\RT\make\vxtRTA661.sln
• Microsoft Visual Studio 2005 solutions to build XT coded objects
• New location:%VAPSXT_DIR%\src\make\XTObjects.sln and
%VAPSXT_DIR%\src\make\XTObjectsForA661.sln
• Old location:
%VAPSXT_DIR%\src\XTObjects\make\XTObjects.sln and
%VAPSXT_DIR%\src\XTObjects\make\XTObjectsForA661.s
ln
• pGetRTInterface
• You should now use
VXT_DECLARE_P_GET_RT_INTERFACE instead of a direct
declaration in the coded object
The Windows-only DirectShow Wrapper
%VAPSXT_DIR%\src\XTObjects\make\XTMultimediaObject.sln was
replaced with
%VAPSXT_DIR%\src\ThirdParty\XTDirectShow\make\DirectShow
Wrappe r.sln.

VAPS XT 2.3 Getting Started Guide 33


Upgrading from a Previous Release

• Other additions to XT:


• ImageConverters: built-in plugin sources to dynamically load
BMP and PNG images from the file system. Location:
%VAPSXT_DIR%\src\Plugins\ImageConverters. Note:
the image converters can be excluded from compilation by not
defining the
VXT_CFG_BUILT_IN_IMAGE_CONVERTERS_SUPPORT
macro in vxtTargetConfig.h.
• New third-party libraries are introduced:
• libPNG: libraries to process PNG images, only needed if using
the provided image converter plugins. Location:
%VAPSXT_DIR%\src\ThirdParty\PNG.
• libXML2: libraries to process XML files, only needed by the
record and playback feature (Windows only). Location:
%VAPSXT_DIR%\src\ThirdParty\libxml2.

Changes to Coded Objects


Upgrade procedure
1 Back up the object’s source code.
2 Rename property instance variables in the object source code to
have an “mp_” prefix instead of an “m_” prefix. This will help ease
the merging process. (See “Instance Variable Naming Scheme
section below).
3 Replace vxtVoid with void everywhere in the object source code.
4 Remove the coded implementation from the VAPS XT project and
code-generate a new template from the lone class file.
5 Merge the custom code from the backed-up version with the freshly
generated version, based on the information given below.
Instance Variable Naming Scheme:
The naming scheme for instance variables in coded objects was changed:
• "mp_" prefix for instance variables that represent properties is
now used.
• "m_" prefix for other instance variables (which don't
correspond to properties) was changed.

VAPS XT 2.3 Getting Started Guide 34


Upgrading from a Previous Release

• In the generated code for built objects, the "mo_" prefix remains
used for instance variables corresponding to sub-objects.
New macros for memory allocation
The “new” and “delete” statements are longer used, but instead have
been replaced by new macros. Calls to operator new/delete should be
altered to use the VXT_NEW, VXT_POD_NEW, VXT_DELETE and
VXT_ARRAY_DELETE macros. VXT_POD_NEW is used for "Plain
Old Data".
For example:
• MyClz *pMc = new MyClz(a1, a2) should be coded as MyClz *pMc
= VXT_NEW(MyClz, (a1,a2))
• MyClz *pMc = new MyClz[5]should be coded as MyClz *pMc =
VXT_NEW(MyClz, [5])
• MyClz *pMc = new MyClz should be coded as MyClz *pMc =
VXT_POD_NEW(MyClz)
• delete pMc should be coded as VXT_DELETE(pMc)
• delete [] pMc should be coded as VXT_ARRAY_DELETE(pMc)
New C++ Objects Related to Passing Property Paths and Values
Changes to the way that data values are passed and parts of properties
are processed were made.
A “const vxtRTValue &a_rValue” argument is used instead of a “Void
*” argument in several functions.
• To get simple numeric values out of a vxtRTValue, just call one of
the following vxtRTValue functions:
• GetByte(), GetSByte(), GetShort(), GetUShort(), GetInt(),
GetUInt(), GetFloat(), GetDouble().
• If the value stored in the vxtRTValue doesn’t have the same data
type, a type conversion is performed.
• If the conversion can’t be performed (e.g. the type is a
structure), a value of 0 is returned.
• To get an object of type “vxtTyp<typename>”:
• Use vxtTyp<typename>::s_GetTypeValue(a_rValue) for an
enum or fixed point types

VAPS XT 2.3 Getting Started Guide 35


Upgrading from a Previous Release

• Use vxtTyp<typename>::s_rGetTypeValue(a_rValue) for


struct, array, or fixed string types
• To get a string value into a vxtRTString variable a_String :
• a_rValue.vGetString(a_String)
• To get a wide string value into an a vxtRTWString variable
a_WString :
• a_rValue.vGetWString(a_WString)
• Both the vGetString and vGetWString functions have a second
optional “vxtBool *” argument that will return whether the
argument string was modified.
• There is a “const void *pGetData()” function, but you should be
careful not to just cast this result to your expected type (especially
not in “set property” code, where the data may have a different data
type representation).
A “const vxtRTPropIdPath &a_rPropIdPath” argument is used instead
of a “const vxtRTPropId *a_pIds” in several functions:
• vxtRTPropIdPath has two functions:
• vxtRTPropId GetFirstPropId()
• const vxtRTPropIdPath &rGetRestPath()
• The replacement for the expression “a_pIds[0]” is:
“a_rPropIdPath.GetFirstPropId ()”
• The replacement for the expression “a_pIds[1]” is:
“a_rPropIdPath.rGetRestPath().GetFirstPropId ()”
• The replacement for the expression “(a_pIds+1)” is:
“a_rPropIdPath.rGetRestPath()”
General Coded Object Changes
• In the header file, new header files need to be included.
• Action:
• take the following includes that are generated in the template
code:
• #include “vxtRTPropIdPath.h”
• #include “vxtRTValue.h”

VAPS XT 2.3 Getting Started Guide 36


Upgrading from a Previous Release

• Files are specified with double quotes instead of angled brackets in


includes (eg. #include "headerfile.h" instead of #include
<headerfile.h>).
• vxtVoid was changed to void in all .cpp and .h files.
• In the header file, there is a new inlined virtual function
“vInitProperties(const Void *a_pProps)”
• Action: take the inlined version of this function, as found in the
generated template code.
• ##ifdef VXT_EDITOR_MODE blocks were added (which make the
enclosed code only get compiled for Editor usage).
• This is done around the declaration of the ::S_PROPS array, and
also for several functions.
• Action: take the new ##ifdef VXT_EDITOR_MODE blocks that
are added in the generated template code.
The constructor no longer takes a “const vxtChar *” argument.
• Action: use the constructor arguments as given in the generated
template code.
The s_pCreateRTObject function has changed to adjust to the new
constructor argument.
• Action: take the body of s_pCreateRTObject as given in the
generated template code.
In the vInitProperties function any instance variables that have a C++
class type should call “vInit” to initialize to their new value.
• Action:
• Use “vInit” instead of “=” to initialize variables that have a C++
class, as given in the generated template code.
• If you had special initialization code (e.g. calling special
functions), keep it as well, but refer to the “General
Initialization Changes” section for changes to the way that
objects get initialized.
• The old SetProperty function has been replaced with a vSetProperty
function:
• The old SetProperty code needed special cases to handle setting
part or all of complex properties.

VAPS XT 2.3 Getting Started Guide 37


Upgrading from a Previous Release

• The new vSetProperty function is simpler. It just calls specific


vSet<propname>Prop functions to do the work (because we
now have specific vSet<propname>Prop functions to set all or
part of a complex property value).
• Action:
• You should take the new vSetProperty function instead of your
old SetProperty function.
• If you had special code in your old SetProperty function that
performed actions other than just setting the instance variable,
you should put that logic into a vSet<propname>Prop
function(s) instead.
• The old pGetPropPtr function is obsolete.
• action: delete its implementation (it does not exist in the new
generated template code).
• The signature of the GetProperty function has changed.
• Instead of returning the value via its last argument, it returns
the value in a returned vxtRTValue object.
• action:
• Replace your old implementation of GetProperty with the one
from the new generated template code).
• The return type of the GetNumProps function is now vxtUShort
instead of vxtInt.
• action: take the version of GetNumProps from the new
generated template code.
• The name and signature of the specific get property functions have
changed
• Old way:
• The function was called vGet<propname>.
• It returned the value via an argument.
• It was defined in the “.cpp” file.
• New way:
• The function is called Get<propname>Prop (if it is scalar) or
rGet<propname>Prop (if it is not scalar).
• The function is inlined in the header file.

VAPS XT 2.3 Getting Started Guide 38


Upgrading from a Previous Release

• Action:
• Delete the old function and take the new function from the
generated template code.
• The names of the specific property-setting functions have changed
from vSet<propname> to vSet<propname>Prop
• Action:
• Use the new vSet<propname>Prop name, as generated in the
new generated template code.
• Keep any special logic you might have had that did more than
just set the property and mark it to be updated/redrawn.
• Note that there are two versions of this function for complex
types: the old one that set the whole value, and a new one that
sets all or part of the value from a vxtRTValue. Be sure to put
any special code into both these functions.
• Refer to the “Update-Related Changes” section below for
changes to the way that we mark objects to be updated/redrawn.
• If all your function did was to set the property in the normal
way, you should just use the function from the generated
template code.
• There were changes to the Event and Operation-related functions:
• The signature of the following functions changed:
• vxtRTObject::vExecuteOperation
• vxtRTObject::ProcessEvent
• vxtRTOMEvtManager::QueueEvent
• vxtRTOMEvtManager::ProcessOrEnqueueEvent
• The event data argument is no longer a 'const Void *', but
instead a 'const vxtRTValue &'
• Refer to the “New C++ Objects Related to Passing Property
Paths and Values” section above for how to work with
vxtRTValue.
• The s_vCalculate function for calculators was renamed to
s_Calculate
• The Output property value is given as the function return value
instead of as an argument.

VAPS XT 2.3 Getting Started Guide 39


Upgrading from a Previous Release

• The other arguments are no longer reference arguments if they


are scalar.
• This function is only generated in the cases where the calculator
can be used as a function:
• it has one Output property which is not a dynamic array
• it has one or more Input properties
• it has no Constant, InputOutput or UnusedPad properties
• it has no events or operations
• In VAPS XT 2.3 the s_vCalculate function was getting generated
in more cases.
• The return value type is the type of its Output property, except
for strings, arrays and structures for which the return type is
now 'vxtRTValue'.
• Action:
• Use the new form as code-generated in the template.
• You should also take the vUpdate function generated in the
template, which calls the s_Calculate function.
• Refer to other coded calculators to get specific examples.
• Note: there is an issue with the vxtRTValue return case. If you
need to return a new string, this will currently lead to a memory
leak, as you need to allocate a new vxtRTString object to pass in
the vxtRTValue. This issue will be addressed before the final
release.
• If you have an s_vCalculate function, but no s_Calculate
function was generated in the template, you should delete your
s_vCalculate function and merge its contents into the vUpdate
function.
• The generated template code may not include declarations or
definitions for virtual functions that your code overrides.
• Action:
• for any of the following virtual functions, you should keep your
old implementation:
• It is recommended to put all such functions near the end of the
cpp file to make it easier to merge in the future.

VAPS XT 2.3 Getting Started Guide 40


Upgrading from a Previous Release

• The generated template code will not include special object-specific


functions or instance variables that you might have added in your
implementation.
• Action: keep your object-specific functionality. It is
recommended to put all such functions at the very end of the
“.cpp” file (after the virtual functions that you override) to
make it easier to merge in the future.
• Suggestion:
• It is recommended to put specific comments around any code
that you customize to help make it easier to merge in the future.
General Initialization changes
The vInitProperties function is now called both in the Editor case and
the code-generated executable case. When loading a built
implementation XML file, vInitProperties will first be called with the
Class default values, then vSetProperty will be called to set values found
in the built implementation XML file.
In VAPS XT 2.3 and earlier, vInitProperties was not called in the Editor
case. Instead only SetProperty was called to set property values.
A new vxtRTObject virtual function Void vOnEndInit() can also be
overloaded in order to perform some function when the object has
finished being initialized (e.g. to allocate some resource). This function
is called when initialization is complete: after the initial update of
dataflows.

VAPS XT 2.3 Getting Started Guide 41


Upgrading from a Previous Release

Drawing-Related Changes
• vPaint, vBeginDraw and vEndDraw are obsolete; only vDraw
remains and is protected.
• The bodies of vBeginDraw and vEndDraw should be merged
into vDraw.
• If vPaint was overridden, it should be renamed vDraw.
• vDraw no longer takes a window Id as argument; it is now passed a
reference to vxtRTDrawMode.
• By convention, the argument is named a_rMode.
• The window id is stored in the m_Window variable of the
drawing mode.
• vDraw is now a private function. To draw an object, use one of the
following:
• a_rMode.vDraw(Object)
• a_rMode.vDrawTranslated(Object)
• a_rMode.vDraw(FirstObject, LastObject) – draws a series of
sibling objects; they must have the same parent.
• a_rMode.vDrawTranslated(FirstObject, LastObject) –
translates and draws a series of sibling objects.
• vDrawChildren() – draws the children of a group
• vDrawChildrenTranslated(OffsetX, OffserY) – translates and
draws the children of a group.
• You do not need to test if an object can be drawn, or even if it is a
graphical object before passing it to the vDraw function of the
drawing mode.
• The draw mode (a_rMode) tests if an object is graphical, visible,
and not hidden in the editor before drawing.
• If you want to know if an object can be drawn without drawing
it, call a_rMode.CanDrawObject(Object). This is the same
function used internally by a_rMode.vDraw(Object). It
replaces the CanDrawObject function which used to be a
member of vxtRTGrObject.
• Objects do not need to test if they are visible in the vDraw function.
If an object is invisible, its vDraw will not be called.

VAPS XT 2.3 Getting Started Guide 42


Upgrading from a Previous Release

• The IsVisible function no longer needs to be overridden by objects


(and is no longer virtual).
• Objects should maintain their visibility flag using the following
functions.
• vInitVisibility(bool) – should only be used when initializing the
object (in vInitProperties and/or InitFromCreationStruct)
• SetVisibility(window, bool) – use this function to set an object’s
visibility. If the visibility changes, it causes the object to be
redrawn and returns VXT_TRUE.
• For the Partial Draw feature to work, group objects (containers)
must no longer apply transformations by calling g_pGDM->…
instead they must use the equivalent functions on the drawing
mode:
• a_rMode.vPushTrans()
• a_rMode.vPopTrans()
• a_rMode.vTranslate(X, Y)
• a_rMode.vRotate(Angle)
• a_rMode.vScale(X, Y)
• a_rMode.vPushClipRegion(Region)
• a_rMode.vPopClipRegion()
• For the Image Generation feature to work, group objects should
enable or disable certain aspects of drawing depending on the state
of the drawing mode.
• Transformation of children:
• If a group object transforms its children, it should check the
drawing mode’s m_EnableTransforms member
• The m_EnableTransforms member is only defined if the
VXT_CFG_DRAW_CONDITIONAL_TRANSFORMS macro
is defined. Use the following macros to test the
m_EnableTransforms setting:
• VXT_IF_TRANSFORMS_ENABLED(a_rMode)
• VXT_AND_TRANSFORMS_ENABLED(a_rMode)
• The following functions automatically take care of this, and
should be sufficient for most objects:

VAPS XT 2.3 Getting Started Guide 43


Upgrading from a Previous Release

• a_rMode.vDrawTranslated(Object)
• a_rMode.vDrawTranslated(FirstObject, LastObject)
• vDrawChildrenTranslated(OffsetX, OffserY)
• Apply clipping or stenciling to children:
• If a group object clips its children or stencils them (like the
ClippingRegion or the StencilGroup), it should check the
drawing mode’s m_EnableClipping member
• The m_EnableClipping member is only defined if the
VXT_CFG_DRAW_CONDITIONAL_CLIPPING macro is
defined. Use the following macros to test the m_EnableClipping
setting:
• VXT_IF_CLIPPING_ENABLED(a_rMode)
• VXT_AND_CLIPPING_ENABLED(a_rMode)
• Visibility of children:
• If a group object controls the visibility of individual children,
like the MutuallyExclusiveGroup (and not simply by setting the
group’s visibility), it should check the drawing mode’s
m_EnableVisibility member
• The m_EnableVisibility member is only defined if the
VXT_CFG_DRAW_CONDITIONAL_VISIBILITY macro is
defined. Use the following macros to test the
m_EnableVisibility setting:
• VXT_IF_VISIBILITY_ENABLED(a_rMode)
• VXT_AND_VISIBILITY_ENABLED(a_rMode)
• Rendering or drawing done by the group itself:
• If a group object draws something directly (not just by drawing
its children), it should check the drawing mode’s
m_EnableRendering member.
• The m_EnableRendering member is only defined if the
VXT_CFG_DRAW_CONDITIONAL_RENDERING macro is
defined. Use the following macros to test the
m_EnableRendering setting:
• VXT_IF_RENDERING_ENABLED(a_rMode)
• VXT_AND_RENDERING_ENABLED(a_rMode)

VAPS XT 2.3 Getting Started Guide 44


Upgrading from a Previous Release

• For more insight into this, look at vxtRTDrawMode.h, and at


the source code for objects provided with VAPS XT.
Update-Related Changes
• vAsyncRefresh is deprecated. For convenience, it remains to ease
upgrading.
• It calls vRequireUpdate() and on graphical objects calls
vRequireDrawAndExtentCalculation().
• Calls to vAsyncRefresh should be replaced with a one or two calls to
the following functions:
• vRequireUpdate() – requests an update only. This must be
called if an object’s property changes.
• This function is equivalent to vSetNeedsUpdateFromChange,
which has been removed.
• vRequireDraw(Window) – requests a redraw. This should be
called if a graphical object’s appearance, but not its extent
changes.
• vRequireDrawAndExtentCalculation(Window) – requests a
redraw and extent recalculation. This should be called if an
object’s size (and therefore its appearance) changes.
• This function replaces calls to vRequireExtentCalculation,
though it takes a window id as argument.

VAPS XT 2.3 Getting Started Guide 45


Upgrading from a Previous Release

Extent-Related Changes
• vRequireExtentCalculation is deprecated.
• Calls to vRequireExtentClalculation should be replaced with
vRequireDrawAndExtentCalculation.
• Where it used to be called from the editor-only vRotate(Angle)
function, it can simply be removed.
• Objects that override vRequireExtentCalculation should
instead override OnChildExtentChanged (see below).
• OnChildExtentChanged replaces overrides of
vRequireExtentClalculation.
• vSetHasOnChildExtentChangedFunctionFlag() must be called
(typically in the constructor) or this function will not be called.
• It is called the first time a child changes its extent.
• The window Id and the child which is changing are passed as
arguments.
• Return VXT_TRUE in order for this object's extent to be flagged
as modified and keep flagging ancestors as having extent
modified.
• Return VXT_FALSE if this object's extent isn't based on the
extent of the child passed as argument to this function (see
ClippingRegion and MutuallyExclusiveGroup for examples).
• vCalculateExtent should not check if the object is visible, nor call
CanDrawObject; it should compute its extent regardless of visibility.
• If the object has no extent, it should set its extent to
vxtRRegion::s_InvalidRegion, or consider making the object
non-graphical (a calculator).
• If an object is invisible, the vGetExtent function will detect this
and automatically return an invalid extent.
• When an object is invisible, its extent variable is left as is. When
it becomes visible again it does not need to recalculate its extent
unless the object has changed while invisible.

VAPS XT 2.3 Getting Started Guide 46


Upgrading from a Previous Release

• vGetExtent is no longer virtual; it cannot be overridden. Object


should override vCalculateExtent instead.
• vSetExtent has been removed. Objects should set their Extent
variable directly (but only from vCalculateExtent).
• vNotifyAncestorsExtentChanged is a new non-virtual function
which is used to notify ancestor objects that an object has changed
its extent.
• It is used internally to mark ancestors’ extents as changed, and
calls OnChildExtentChanged if an object’s
SetHasOnChildExtentChangedFunctionFlag is set.
• It is automatically called by SetVisibility() and
vRequireDrawAndExtentCalculation().
• It should not normally be called by objects. It may be needed
for some special cases where an object override
OnChildExtentChanged and returns FALSE.
Miscellaneous changes
• The following four functions check bits on vxtRTObject and are
non-virtual. They should be faster than calling pGetRTInterface().
• IsDrawable is a new function which can tell you if a
vxtRTObject can be drawn
• IsContainer is a new function which can tell you if a
vxtRTObject is a vxtRTGrObjectContainer (if this function
returns true, it is safe to cast to vxtRTGrObjectContainer).
• pGetDrawableObj is a new function which returns a
vxtRTGrObject* if the object is drawable (see IsDrawable),
otherwise it returns VXT_NULL
• pGetContainerObj is a new function which returns a
vxtRTGrObjectContainer* if the object is a container (see
IsContainer), otherwise it returns VXT_NULL

VAPS XT 2.3 Getting Started Guide 47


Licensing – Packaging

Licensing – Packaging
Starting VAPS XT with the –vxt command line option is no longer
supported. The new default behavior when the user starts vapsxt.exe
with no command line option is equivalent to starting the previous
vapsxt with –vxt command line option.
A new DOCnGEN command line has been added to replace the old
designdoc command line option. DOCnGEN features are licensed under
DOCnGEN.
Image Generation is no longer provided with VAPS XT and its now
licensed under DOCnGEN.

VAPS XT 2.3 Getting Started Guide 48


Known Limitations

Known Limitations
This section describes the known limitations in this release.

Partial Redraw
The InheritanceGroup and A661 Symbols do not work with the Partial
Redraw feature.
• An object may not be redrawn if it is brought to the front or sent to
the back of a ReorderGroup.
• Objects are clipped to the application's initial extent. This can be
worked around by adding a hidden rectangle to the application, to
increase its extent.

PopUp Mechanism
A PopUp may be visible even if its ancestors are hidden.
The "Window" pop-up context has a very small size when running in the
editor.

Drawing Integration
Loading different Implementations at the same time, and then
unloading one of them might corrupt the font of the other
Implementation. Therefore, multiple DLL Implementation in the same
process space is not supported.

No support for multiple displays.

Find Option
The go to Location feature does not work if the guard of a transition in
the Find results grid contains ‘[‘ .

VAPS XT 2.3 Getting Started Guide 49


Known Limitations

InstanceGroup
• Instance Allocators are created with few undo capabilities, and
therefore, it is recommended to save the format before code
generating an application.
• Specific Instanced Object without any connections will not be fully
optimized in the Editor/Runtime. However, they are fully optimized
in Codegen/RT.
• When an Instanced Object generates an event the .Index of its parent
Instance Allocator is set to the correct index in order to identify the
Instanced Object. However, all other Instance Allocators will have
their index equal to “0” at the moment the event is generated, and
therefore, is not recommend in the Guard to refer to .Index property
of another Instance Allocator.
• Example: Buttons[].evPress(e)/ Switchs.Index != 0 / Actions
code. In this Switch, .Index is always equal to Zero when
Buttons[0], Buttons[1] get pressed, and therefore, the
transition never executes.
• If a specific Instanced Object event is desired, the user must use a
guard expression, .Index of the parent Instance Allocator object.
• Example: Buttons[].evPress(e)/ Buttons.Index == 1/ Actions
code;
• It is accepted, but there are problems since there are two
allocators with the same Class. The problem is perceived in the
Codegen/RT codegen/build. All elements of the second
InstanceAllocator are not created in their correct
InstanceAllocator/InstanceGroup parent since the codegen will
have picked the first InstanceAllocator for both sets of instanced
objects.
• It is not possible to have more than one InstanceGroup instances in
the same built implementation.

After adding objects to Allocators, the file modified flag does not
appear with *.

VAPS XT 2.3 Getting Started Guide 50


Known Limitations

General Issues
• When editing vector fonts, all characters appear on top of each
other. Double-click a character in the implementation view to see it
on its own.
• Record and playback is not supported for A661 Graphics Server.
• Playback of multimedia object doesn’t work properly when the
playback speed is different than normal.
• If a “TableOnly” compilation is used, the raster gets loaded at
runtime. In this condition, it is important to start the executable in
the same place in the event the user wants to replace any raster file.
• The final raster file gets loaded first by looking in the current
directory of the executable, in “Executable”.CFG, and finally within
the global/local raster table element filename.
• Only the debugged version of the runtime “wogl_d” gives statistics
about the size/amount of RAM the image table held. By definition,
when the application is compiled with the Option TableAndData,
the amount of RAM is 0; since in the application the tiles are
codegenerated in ROM (as const tiles).
• There is a restriction that no two allocators within an InstanceGroup
can have the same class. There is a way to break this rule as follows:
• Drag and drop the “Text” class to Allocators
• Rename “Text” to “Text2”
• Drag and drop the “Text” class to Allocators again

VAPS XT 2.3 Getting Started Guide 51


Known Limitations

Multiple Displays and Windows


The supplied Windows port only supports one graphical device, and the
user must supply the command line option
–bottomleftwindoworigin to the code generated runtime to have
multiple windows opened as they are seen in the editor.
In non-singlewindow mode, if the user creates a device with Multiple
Windows and turns off HasRenderingContext in the device, a separate
MFC (Microsoft Windows window) is created for each Window Object
in the generated application.
The user can specify –noborder to hide the borders of the Windows
when simulating their applications on Microsoft Windows.
Displays and windows objects must be created from bottom left to top
right. That is, the position interactor must be at the lower left, and the
size interactor of the window or display object must be at the upper right.

C/C++ Interface
The ProcessPointerEvent and ProcessDiscreteEvent functions are not
currently used by vMainLoop. Also, the Windows port internally
handles pointer and discrete events, but currently does not use those
functions. If using the C/C++ interface as part of a standalone
application on Windows, the user should call vMainLoop instead of
calling the vExecuteIteration and vDrawAll / vDrawTopContext
functions.
For A661 applications, the user must modify
%VAPSXT_DIR%\src\Integration\A661\vxtRTA661Integration.
cpp’s ActivateRTKernel to specify UAs and streams, and rebuild the
runtime libraries. There is no callback function for A661 applications.

VAPS XT 2.3 Getting Started Guide 52


Known Limitations

Code Generated Widget Template


After code generating an ARINC 661 widget template, you must
manually adjust the default case of the vSetProperty and GetProperty
functions to call the base class version of the same function. Example:
void A661_GpLine::vSetProperty
(
vxtGD_WndId a_Window,
const vxtRTPropIdPath & a_rIds,
const vxtRTValue & a_rValue
)
{
switch(a_rIds.GetFirstPropId())
{
...

default :
{
[[bold]]vxtRTA661GrWidget::vSetProperty(a_Window,
a_rIds, a_rValue);[[/bold]]
}
}
}

vxtRTValue A661_GpLine::GetProperty(const vxtRTPropIdPath &


a_rIds) {
vxtRTValue Ret;

switch(a_rIds.GetFirstPropId())
{
...

default :
{
[[bold]]Ret = vxtRTA661GrWidget::GetProperty(a_rIds);[[/
bold]]
}
}
return Ret;
}

VAPS XT 2.3 Getting Started Guide 53


4
Installing the Presagis License
Manager
This chapter contains the following sections:
• About the Presagis License Manager
• Obtaining a License File
• Stopping the License Manager
• Uninstalling the License Manager

VAPS XT 2.3 Getting Started Guide 54


About the Presagis License Manager

About the Presagis License Manager


VAPS XT uses the Presagis License Manager to verify whether or not a
workstation has the correct license to run VAPS XT (v2.3) and its
components. The user installs the License Manager software on a
workstation over a network, which acts as a license server for VAPS XT.
The user must also obtain a license file from Presagis to use VAPS XT or
any of its components. The license file contains information on which
features have been purchased, as well as the number of licenses that have
been purchased for each feature

Installing the License Manager


Installing the license manager is separate from the VAPS XT installation,
and the user does not have to install the License Manager on the same
workstation as VAPS XT.
Installing the License Manager
1 Log on (with administrator privileges) to the computer where the
license manager will be installed.
2 Insert the VAPS XT (v2.3) installation CD and navigate to the root
folder.
3 Double-click the autorun.exe file.
4 Click the INSTALL Presagis License Manager 9.2 option.
The setup wizard shows.

VAPS XT 2.3 Getting Started Guide 55


About the Presagis License Manager

5 Click Next.
6 Accept the terms of the Software License Agreement and click
Install.
7 Click Next when the installation is complete,
8 In the Server Location dialog box, set the LM_LICENSE_FILE
environment variable. Type the value in the following format:
@your_flex_lm_host

where your_flex_lm_host is the license server’s computer name.

The LM_LICENSE_FILE environment variable must be set on


each workstation that has VAPS XT (v.2.3).

VAPS XT 2.3 Getting Started Guide 56


About the Presagis License Manager

9 Click Next.
The Thank You dialog box shows

10 Click Finish.
11 Restart the work station to complete the installation.

VAPS XT 2.3 Getting Started Guide 57


Obtaining a License File

Obtaining a License File


To obtain the license file from Presagis, the user must provide the
address of the Ethernet card installed on the license server workstation.
This address is called the host ID, and uses the following procedure to
determine the workstation’s host ID to obtain a license file allowing the
user to run the license manager VAPS XT (v2.3).
Obtaining a License file
1 Using a browser, navigate to the directory where the License
Manager files are installed. By default, this directory is
C:\Presagis\FlexLM_9_2.
2 Double-click lmtools.exe.
The LMTOOLS shows.

3 Choose the System Settings tab.


The host ID shows in the Ethernet Address field.
4 Write the host ID on the License Request Form and complete the
rest of the form.

It is possible to use the License Request Form included with VAPS


XT (v2.3), or complete an electronic copy from the Presagis
Support web site (http://www.presagis.com/support/licensing/
licenserequest.html). The license file will be sent within one
business day.

VAPS XT 2.3 Getting Started Guide 58


Obtaining a License File

5 Choose Save HOSTID info to a File and select a location to keep the file.

Since the license file corresponds to the Ethernet card address, the
user must obtain a new file if they change the card, card location,
or designate another workstation as the license server. Refer to
“Changing the License File” on page 63 for more information.

Installing the License File


The user must install the license file on the workstation designated as
the license server. Administrator privileges are required to install the
license file.

Determining the License Feature Codes


An error message shows if the user does not have the correct licenses.
The following is a list of feature codes:
• Feature 1000 - VAPS XT
• Feature 1003 - DOORS Interface
• Feature 1005 - Graphics Server
• Feature 1007 - CODE nGEN
• Feature 1009 - nCOM
• Feature 1010 - Configuration Management
• Feature 1011 - Simulink
• Feature 1013 - A661
• Feature 1014 - Record & Playback
• Feature 1015 - DocnGen

VAPS XT 2.3 Getting Started Guide 59


Obtaining a License File

Installing the License File


1 Copy the license file (*.lic file) to a directory on the local hard drive.
2 Open the Presagis installation executable file and choose Install
Presagis License Manager.
The VAPS XT Installation box shows.

VAPS XT 2.3 Getting Started Guide 60


Obtaining a License File

3 Using a browser, navigate to the directory where the License Manager files
are installed. By default, this directory is C:\Presagis\FlexLM_9_2.
4 Double-click lmtools.exe.
The LMTOOLS shows.

5 Choose Config Services.


The Config Service dialog box shows.

VAPS XT 2.3 Getting Started Guide 61


Obtaining a License File

6 In the Config Services dialog box, enter the following:


• In the Service Name field, enter Presagis License Manager
(FLEXlm).
• In the Path to the Imgrd.exe file box, enter the full path of the
lmgrd.exe file, or click Browse to select the location to keep the
file. This file is located in the same directory as LMTOOLS.
• In the Path to the license file box, enter the full path to the
license file (including the file name), or click Browse to select
the file. If multiple .lic files are used, specify only the directory
where all the .lic files will be read by the server.
• In the Path to the debug log file box, enter the debug log file
name (for example, C:\PresagisFlexLM\flex.log), or click
Browse to obtain this file. This file gets created by the server and
contains information on the available license, as well as any
problems that may occur.
• Use Services check box:
• Clear this check box to always manually start the license
manager through LMTOOLS.
• Toggle this check box to start and stop the license manager
through Windows Services.
• Choose the Use Services check box, and then select the Start
Server at Power Up check box to allow the license manager to
start automatically (through Windows Services) whenever the
license server starts:

VAPS XT 2.3 Getting Started Guide 62


Obtaining a License File

• Choose the Start/Stop/Reread tab.


The available FLEXlm license services show in the dialog box.

7 Choose Presagis License Manager (FLEXlm).


Choose Stop Server if the license server is already running,
8 Choose Start Server.
9 From the File menu, choose Exit to close LMTOOLS.

Changing the License File


The user must obtain a new license file to do the following :
• Add a newly purchased option and VAPS XT (v2.3) is already
installed.
• Additional licenses were purchased.
• Switch from an evaluation license to a permanent license.
• Transfer the License Manager software to a different machine.
• Change or move the network card in the server workstation.
• Upgrade from a previous version of VAPS XT.

VAPS XT 2.3 Getting Started Guide 63


Obtaining a License File

Changing the License File


1 Describe in writing the reason for the change. It is important to
indicate the license file will no longer be used.
2 Download and fill out a License Transfer Request form from the
Support web site.
3 E-mail or fax the form and written note to Presagis Technical
Support. The new license file will be sent within one business day.
When replacing an existing license file with a new one, the user must
allow the license manager to read it (reread) again.
Rereading the License File
1 In the directory where the license manager is installed (default
C:\Presagis\FlexLM_9_2), double-click lmtools.exe.
The LMTOOLS utility opens.
2 On the Service/License File page, choose Configuration using Services.
3 Choose the Start/Stop/Reread tab.
The available services show in the dialog box.
4 Choose Presagis License Manager (FLEXlm).
5 Choose Stop Server.

When Stop Server is selected, all VAPS XT users lose their licenses
and get disconnected from the program.

6 Browse to the directory where the current license file is installed,


and copy the new license file into the same directory.
7 In the LMTOOLS utility, choose Start Server.
8 Close LMTOOLS.

VAPS XT 2.3 Getting Started Guide 64


Stopping the License Manager

Stopping the License Manager


The license manger must be stopped if the user must shut down or
perform maintenance on the license server workstation.

All VAPS XT users will lose their licenses and get disconnected
from the program if the license manger is stopped.

Stopping the License Manager


1 In the directory where the license manager is installed (default
C:\Presagis\FlexLM_9_2), double-click lmtools.exe.
The LMTOOLS utility opens.
2 On the Service/License File page, choose Configuration using
Services.
3 Choose the Start/Stop/Reread tab.
The available servers show in the dialog box
4 Select the service the user wants to stop.
5 Choose Stop Server.
6 Close LMTOOLS.

VAPS XT 2.3 Getting Started Guide 65


Uninstalling the License Manager

Uninstalling the License Manager


Make sure to exit VAPS XT (v2.3) and stop the license manager before
uninstalling it.
Uninstalling the License Manager
1 Open the Add or Remove Programs dialog box:
• Windows 2000:
Choose Start | Settings | Control Panel | Add/Remove
Programs.
• Windows XP:
Choose Start | Control Panel | Add or Remove Programs.
2 Choose Presagis License Manager (FLEXlm) and click Remove.
3 Restart the computer.

VAPS XT 2.3 Getting Started Guide 66


5
Installing VAPS XT 2.3
This chapter contains the following sections:
• System Requirements
• Installing VAPS XT (v2.3)
• Environment Variables
• Installation Directories
• Running Multiple Versions of VAPS XT
• Uninstalling VAPS XT (v2.3)
• Installing Adobe Reader

VAPS XT 2.3 Getting Started Guide 67


System Requirements

System Requirements
The minimum hardware and software requirements to install and run
VAPS XT (v2.3) are as follows:

VAPS XT Main Application


Hardware
• Intel® Pentium® 4 class processor or equivalent recommended.
• 256 MB RAM minimum, 1 GB recommended.
• 512 MB minimum available hard disk space.
• Mid-range PCI or AGP bus OpenGL® graphics accelerator or
equivalent, and SVGA or higher resolution (1280 x 1024
recommended).
• CD-ROM drive.
• Ethernet card.

Software
• Microsoft Windows 2000 (Service Pack 2) or Windows XP Professional
Edition (Service Pack 2).
• Microsoft Visual Studio 2005 compiler (if the user wants to code
objects or code generate applications)

While Windows XP Professional Edition is supported, it should be


noted that Home Edition is not supported.

During the installation of Microsoft Visual Studio 2005, the user


must select Set the Environment Variable to ensure error-free
compilations when using CODE nGEN.

VAPS XT 2.3 Getting Started Guide 68


System Requirements

VAPS XT CODE nGEN Feature


Cross-Compiler Restrictions
The following restrictions apply to the cross-compiler used by the target
system:
• Code produced by CODE nGEN compiles correctly with the
Microsoft Visual Studio 2005 compiler, and should also compile
correctly with any other C++ compiler.
• A 32/64-bit ANSI C++ compliant compiler or cross-development
tool kit is required.
• The compiler must be capable of handling long file names (i.e.,
greater than 8 characters) for both source and header files.

Target System Restrictions


The following restrictions apply to the target system:
• 32-bit and 64-bit platform architectures are supported. It may also
be possible to run the application on a 16-bit architecture, but
address space must be large enough to hold the application. All C++
pointer variables must be either 32 or 64 bits in size.
• A floating-point coprocessor is recommended. Alternatively, a
floating-point library implemented in software or a built-in fixed
point solution could be used. Any floating-point implementation
should be compliant with IEEE standard 754, Standard for Binary
Floating-Point Arithmetic. See the VAPS XT Code Generator User’s
Guide for information on creating applications without floating
point dependencies, and for information on the VAPS XT built-in
floating point converters.
• Minimum memory requirements are hard to define across all
possible platforms and executable formats, however, the size of a
cross-developed executable file is not directly representative of its
memory footprint in the target system. The size may be an order of
magnitude larger than the actual code that executes on the target
system.
• A display with square pixels is recommended to avoid problems
associated with non-square pixels. See the VAPS XT Code Generator
User’s Guide for information on the advantages of square over non-
square pixel displays.

VAPS XT 2.3 Getting Started Guide 69


System Requirements

• Immediate-mode graphics drawing is recommended. It is preferable


to use graphics commands to draw lines, polygons, etc., rather than
editing display lists. The OpenGL-style of display lists supported by
the Code Generator does not allow display lists to be edited.

VAPS XT 2.3 Getting Started Guide 70


Installing VAPS XT (v2.3)

Installing VAPS XT (v2.3)


When the user installs VAPS XT, all directories and files required for the
VAPS XT (v2.3) Software Development Kit (SDK) also get installed. The
directories include the Visual C++ source code, and all project files
required to code the users own objects and interactors.
Setting the LM_LICENSE_FILE Environment Variable
1 Log on with administrator privileges.
2 Right-click My Computer and choose Properties from the list.
The System Properties dialog box shows
3 On the Advanced page, choose Environment Variables.
4 Under the System variables box, choose New.
5 In the Variable name field, enter LM_LICENSE_FILE.
Entries are case-sensitive.
6 In the Variable value field, enter @hostname, where @hostname is the
name of the license server.
7 Click OK and close the Environment Variables and System
Properties dialog boxes.

VAPS XT 2.3 Getting Started Guide 71


Installing VAPS XT (v2.3)

Installing VAPS XT (v2.3)


1 Insert the VAPS XT (v2.3) installation CD. If the autorun program
does not start, navigate to the root folder and double-click the
autorun.exe file.

2 Choose Install VAPS XT v.2.3.


3 In the Welcome dialog box choose Next.
4 Accept the Software License Agreement and choose Next.
5 In the Destination Folder field, specify an installation folder for
VAPS XT 2.3 and click Install.
The user can keep the default installation folder
C:\Presagis\VapsXT_23, or click Browse to specify a different
location.
The folder name must not contain any spaces or periods.
6 Choose Next when the installation is complete.
7 Choose the View the Readme check box to read the Readme file.
8 Choose Finish.
9 Restart the computer.

VAPS XT 2.3 Getting Started Guide 72


Environment Variables

Environment Variables
Two environment variables get added to the system environment
variables when VAPS XT (v2.3) is installed. The table below shows the
variables VAPS XT (v2.3) queries at run-time.

Variable Description
VAPSXT_DIR Path environment variable: The installation program
specifies this variable when the user selects an install
directory during set-up. All VAPS XT projects and
subprojects use it to find the run-time directory.
Microsoft Visual Studio 2005 projects (for SDK) use this
environment variable to define default output directories,
and to locate libraries and header files.
VAPSXT_DPI Screen resolution: Set this value (default 100 dpi) to the
screen's dpi. VAPS XT uses this value to render physical
units correctly. If this value is set correctly, 1mm in an
object file shows as 1mm on the screen.

• VAPS XT also adds %VAPSXT_DIR\bin% to the existing System


Path environment variable.
• If the user has more than one version of VAPS XT installed on
their system, the environment variables used are those of the
most recently installed version. For more information on
running multiple versions of VAPS XT on the same computer,
see “Running Multiple Versions of VAPS XT” on page 78.

Examining Current Environment Variables


Choose one of the following options:
• Open a command prompt window and type set.
All environment variables show.
OR
• Right-click My Computer and choose Properties. On the Advanced
property page, click Environment Variables.
The Environment Variables dialog box shows.

VAPS XT 2.3 Getting Started Guide 73


Installation Directories

Installation Directories
VAPS XT 2.3 gets installed to the C:\Presagis\VapsXT_23 directory.
The VAPS XT installation directory has the following structure:

Directory Subdirectory Subdirectory Contents


bin VAPS XT binary files and the
interactor generator perl script.
Plugins Font Plugins used by VAPS XT are grouped
GraphicsDrivers here. There are four main groups:
ImageConverters Fonts, GraphicsDrivers,
VersionControl ImageConverters, and
VersionControl plugins.
Configs Configuration settings.
Catalogs Warning and error catalogs.
DOORS Scripts DOORS scripts.
Note: DOORS is available as a
separate product.
Targets Configuration files for CODE nGEN.
Note: CODE nGEN is available as a
separate product.
Docs VAPS XT documentation set.
OnlineHelp css Online help (.chm file) and the source
images HTML files used to generate it.
scripts
lib Libraries required to use the SDK.
Editor Import libraries to use when building
DLLs for use in the XT Editor.
<target> Static libraries to link when building
standalone applications for the given
target.

VAPS XT 2.3 Getting Started Guide 74


Installation Directories

Directory Subdirectory Subdirectory Contents


Projects VAPS XT project directories.
A661Examples Directory containing a graphics
server example if the user has the
ARINC 661 plugin.
A661StandardElements Location of subprojects containing
ARINC661 widgets, data types,
symbol graphics if the user has the
ARINC 661 plugin.
Examples Location of the examples sub-project
loaded by all standard root projects.
This contains formats to demonstrate
VAPS XT features such as event
handling, nCOM communication,
text handling, etc.
ObjectLibrary Location of the AeroObjectLibrary,
ObjectsLibrary, and
AutoObjectLibrary projects.
StandardElements Location of subprojects containing
generic objects and directories
containing the objects.
StandardRootProjects Location of sample root projects and
standard sub-directories for tables
and nCOMObjects.
DataIO Location of I/O Buffers’ DataSender/
DataReceiver and nCOM objects.
Tables Location of table projects and
directories containing Attributes,
Audio, Video, Images, Localization,
and Font tables.
This is also the location of
ConnectorRef and Symbol tables if
the user has the ARINC 661 plugin.

VAPS XT 2.3 Getting Started Guide 75


Installation Directories

Directory Subdirectory Subdirectory Contents


Src Directories containing sample source
files for objects, plugins, and
applications.
Editor AFL Contains header files required to
EditorRTObjects build coded objects to run in the
include VAPS XT editor.
Kernel
OSDL
SFL
Integration Common Classes used to integrate with
DrawingIntegration external applications.
UserIntegration
include
make
A661 Directory includes integration classes
used to incorporate ARINC661
features if the user has the ARINC 661
plugin.
Main make Contains the Visual Studio solution
files to build XT objects and A661
widgets.
Default Default implementation of the main
module.
Plugins Interactors Contains header files required to
VersionControl build interactors.
Contains the ClearCase integration
files.
Ports <target> Contains the source code of different
ports, including the default Windows
OpenGL port (wogl).
RT include Contains the CODE nGEN Rehosting
QUtils source and header files.
Templates DataTypeTemplate Source and project templates used
InteractorsInitTemplate by the code generator and the
ObjectTemplate template generator PERL script.

VAPS XT 2.3 Getting Started Guide 76


Installation Directories

Directory Subdirectory Subdirectory Contents


Third_Party FreeType Third party software source code
FTGL such as the Freetype and FTGL
nCOM libraries, and sources to perform
osgStage polygon tesselation.
glut
PNG
XTDirectShow
XTObjects Source code for a default set of VAPS
XT coded objects (Calculators,
BasicGroups and GraphicalObjects,
among others).
XTTypes Source code for VAPS XT data types.

VAPS XT 2.3 Getting Started Guide 77


Running Multiple Versions of VAPS XT

Running Multiple Versions of VAPS XT


If the user is running more than one version of VAPS XT on the same
computer, conflicts may occur because the VAPSXT_DIR environment
variable is set to a specific directory; the installation directory of the last
version of VAPS XT installed on the computer.
For example, consider the following scenario where two versions of
VAPS XT are installed:
• VAPS XT 2.1 installed in C:\ETI\VAPSXT_21
• VAPS XT 2.3 installed in C:\Presagis\VapsXT_23
The VAPSXT_DIR environment variable is set to
C:\Presagis\VapsXT_23,assuming VAPS XT (v2.3 ) was the most
recently installed version.
In this scenario, if the user runs the 2.1 version of VAPS XT, files created,
modified, or saved may not appear in the right directories (since
VAPSXT_DIR is set to C:\Presagis\VapsXT_23).

To run multiple versions of VAPS XT, the user must launch an


independent shell that resets the VAPSXT_DIR environment variable for
that particular session. This is done by creating customized copies of the
setup.bat batch file located in the %VAPSXT_DIR%\bin directory.
When the user runs the appropriate batch file before running a version
of VAPS XT, the VAPSXT_DIR environment variable gets reset for that
version.

Modifying the setup.bat Batch File


The setup.bat batch file is defined as follows:
set VAPSXT_DIR=C:\Presagis\VapsXT_23
set VAPSXT_DPI=100

REM *** Microsoft Visual Studio 2005 settings ***


SET VCINSTALLDIR=C:\Program Files\Microsoft Visual Studio
2005
call "%VCINSTALLDIR%\Common7\Tools\vsvars32"

set PATH=%VAPSXT_DIR%\bin;%PATH%

VAPS XT 2.3 Getting Started Guide 78


Running Multiple Versions of VAPS XT

The user must make one copy of this setup.bat batch file for each
version of VAPS XT, and within each copy of the batch file, the user must
change the directory specified in the following line:
set VAPSXT_DIR=C:\Presagis\VapsXT_23

For example, if the user has two versions of VAPS XT (v2.1 and v2.3),
two copies of setup.bat batch file must be created as follows:
setup_21.bat with the line: set
VAPSXT_DIR=C:\Presagis\VapsXT_21
and
setup_23.bat with the line: set
VAPSXT_DIR=C:\Presagis\VapsXT_23

Launching the batch file


When the batch file is ready for use , the user must open a command
prompt window, run the batch file, and then launch the corresponding
version of VAPS XT from within that window (typing vapsXT.exe).
Choose Start | Programs | Accessories | Command Prompt to open a
command prompt window.

The batch file must be run from within a command prompt


window. The batch file cannot be run from Windows Explorer, or
from the Start | Run command.

The command prompt window stays open during the VAPS XT session,
but closes when the user exits VAPS XT.
Add the following line to the end of the batch file to launch VAPS XT
immediately after running the batch file:
vapsXT.exe

VAPS XT launches immediately after the correct environment variable


is set, and the user can launch the batch file from within Windows
Explorer.

VAPS XT 2.3 Getting Started Guide 79


Uninstalling VAPS XT (v2.3)

Uninstalling VAPS XT (v2.3)


The following procedure removes VAPS XT (v2.3) from the
workstation. Make sure to exit VAPS XT (v2.3) before uninstalling the
program.

To keep any files saved in the %VAPSXT_DIR% directory, copy


them to another directory before uninstalling VAPS XT.

Uninstalling VAPS XT (v2.3)


1 Open the Add or Remove Programs dialog box:
• Windows 2000:
Choose Start | Settings | Control Panel | Add/Remove
Programs.
• Windows XP:
Choose Start | Settings | Control Panel | Add or Remove
Programs.
2 Choose VAPS XT 2.3 and click Remove.
VAPS XT 2.3 is removed from the computer.
3 Restart the computer.

VAPS XT 2.3 Getting Started Guide 80


Installing Adobe Reader

Installing Adobe Reader


Adobe Reader must be installed on the computer to view VAPS XT
(v2.3) documentation (.pdf files).
Installing Adobe Reader
1 Log on with administrator privileges.
2 Insert the VAPS XT (v2.3) installation CD.
3 In the Windows directory, double-click the autorun.exe file.
4 Choose Install Acrobat Reader 7.0.
5 Follow the on screen instructions to complete the installation.
6 When the installation is complete, choose EXIT on the main menu.

VAPS XT 2.3 Getting Started Guide 81


6
Installing nGEN Sources
This chapter contains the following sections:
• About the nGEN sources for VAPS XT
• Installing the nGEN sources for VAPS XT

VAPS XT 2.3 Getting Started Guide 82


About the nGEN sources for VAPS XT

About the nGEN sources for VAPS XT


The nGEN sources for VAPS XT provide you with development tools
that allow you to quickly embed your HMI display executable into
virtually any external platform.
The VAPS XT Rehosting Kit supports porting the VAPS XT runtime
architecture. It consists largely of proprietary code from Presagis Inc.
that you must compile into libraries and link with your VAPS XT-based
application when porting it to other platforms.
To speed-up this process, the Rehosting Kit provides you with a nGEN
sources for VAPS XT CD that installs a set of sample code that you can
modify and integrate with the generated code for your VAPS XT objects.
For more information on how to use this sample code and the code
generated VAPS XT objects, see the CODE nGEN User’s Guide and the
CODE nGEN Programmer’s Guide.

VAPS XT 2.3 Getting Started Guide 83


Installing the nGEN sources for VAPS XT

Installing the nGEN sources for VAPS XT


If you purchased the nGEN sources for VAPS XT option, to gain access
to these resources you must first install them from the nGEN Sources
CD included in your VAPS XT package.
To install the nGEN sources for VAPS XT
1 On the computer on which VAPS XT is installed, insert the nGEN
sources for VAPS XT installation CD into the CD-ROM drive.
The nGEN autorun screen automatically appears.

If the autorun screen does not appear, navigate to the root folder on
the CD and double-click the autorun.exe file.
2 Click Install nGEN sources for VAPS XT 2.3.
The installation will check to see if you have VAPS XT currently
installed on your workstation and that the VAPSXT_DIR
environment variable is defined.
3 In the Welcome dialog box, review the instructions and click Next.

VAPS XT 2.3 Getting Started Guide 84


Installing the nGEN sources for VAPS XT

4 In the Software License Agreement dialog box, review the agreement.


You must select the I accept the terms in the License Agreement
checkbox to accept the agreement if you want to continue the
installation.
5 If you agree with the license agreement and selected the checkbox,
click Next.
Setup begins copying files to the workstation. To see a detailed
report of what is being installed and where, click the Show Details
button.
6 When the installation is complete, click Next.
7 If you do not want to view the Readme file, clear the View the
Readme check box.
8 Click Finish.
If you chose to view the Readme file, your default text editor starts
and displays the readme.txt file.

Installed Files and Folders


When you install the nGEN sources for VAPS XT, it installs files and
folders into the %VAPSXT_DIR%\src\RT folder.
These files provide sample code that you can modify and apply to any
platform you need to rehost your VAPS XT HMI display.

VAPS XT 2.3 Getting Started Guide 85


7
Installing Simulink Interface 2.3
This chapter includes the following sections:
• Installing Simulink Interface (v2.3)
• Uninstalling Simulink Interface (v2.3)

VAPS XT 2.3 Getting Started Guide 86


Installing Simulink Interface (v2.3)

Installing Simulink Interface (v2.3)


When you install VAPS XT, the directories and files required for the
VAPS XT Software Development Kit (SDK) are also installed. In these
directories are Visual C++ source code and project files you’ll need to
code your own objects and interactors. For more information, see the
VAPS XT Programmer’s Guide.
The following instructions explain how to install Simulink Interface (v2.3).
To install Simulink Interface (v2.3)
1 Insert the VAPS XT (v2.3) installation CD into the CD-ROM drive.
If the autorun program does not start, navigate to the root folder
and double-click the autorun.exe file.
The autorun program displays a menu with several options.

2 Click Install Simulink Interface 2.3.


The setup program starts.
3 In the Welcome dialog box, review the instructions and click Next.
4 In the Software License Agreement dialog box, review the
agreement.
5 If you agree with the license agreement, select the I accept the terms
in the License Agreement check box and click Next.

VAPS XT 2.3 Getting Started Guide 87


Installing Simulink Interface (v2.3)

You must select the I accept the terms in the License Agreement
check box to continue the installation.
6 When the installation is complete, click Next.
7 If you do not want to view the Readme file, clear the View the
Readme check box.
8 Click Finish.
If you chose to view the Readme file, your default text editor starts
and displays the readme.txt file.

VAPS XT 2.3 Getting Started Guide 88


Uninstalling Simulink Interface (v2.3)

Uninstalling Simulink Interface (v2.3)


Use the following procedure to remove Simulink Interface from your
workstation. Make sure you exit VAPS XT before you uninstall Simulink
Interface.
To uninstall VAPS XT (v2.3)
1 Open the Add or Remove Programs dialog box:
• Windows 2000:
Choose Start | Settings | Control Panel | Add/Remove
Programs.
• Windows XP:
Choose Start | Settings | Control Panel | Add or Remove
Programs.
2 Select VAPSXT Simulink Interface and click Remove.
Simulink Interface is removed from your computer.
3 Restart the computer.

VAPS XT 2.3 Getting Started Guide 89


8
Installing the VAPS XT 3D
Plugin
This chapter contains the following sections:
• About the 3D Plugin for VAPS XT
• Installing the 3D Plugin for VAPS XT
• Using the OpenSceneGraph 3D Plugin

VAPS XT 2.3 Getting Started Guide 90


About the 3D Plugin for VAPS XT

About the 3D Plugin for VAPS XT


VAPS XT now supports the OSGViewer which allows you to incorporate
3D graphics in your HMI displays. The OSGViewer is a scene graph
viewer that uses OpenSceneGraph (an open source high performance
3D graphics toolkit) and supports a number of different 3D model types.
Using the OSGViewer, you could design an HMI display that contains
a window for viewing a 3D terrain and controls for moving around in
the terrain.

For more information on OpenSceneGraph go to:


http://www.openscenegraph.org

VAPS XT 2.3 Getting Started Guide 91


Installing the 3D Plugin for VAPS XT

Installing the 3D Plugin for VAPS XT


If you purchased the OpenSceneGraph 3D Plugin option, to gain access
to these resources you must first install them from the 3D Plugin CD
included in your VAPS XT package.
To install the OpenSceneGraph 3D Plugin
1 Insert the OpenSceneGraph 3D Plugin installation CD into the
computer’s CD-ROM drive.
2 Open Windows Explorer and navigate to the root folder on the CD.
3 Double-click the setup.exe file.
The installation will check to see if you have VAPS XT currently
installed on your workstation and that the VAPSXT_DIR
environment variable is defined.
4 In the Welcome dialog box, review the instructions and click Next.
5 Review the Disclaimer and, if you agree to it, click I Agree.
You must click I Agree to continue the installation.
6 In the Software License Agreement dialog box, review the
agreement.
You must select the I accept the terms in the License Agreement
checkbox to accept the agreement if you want to continue the
installation.
7 If you agreed with the license agreement and selected the checkbox,
click Install.
The installation proceeds and installs all the necessary files in the
following folders:
• %VAPSXT_DIR%\bin
• %VAPSXT_DIR%\src\Third_Party
• %VAPSXT_DIR%\src\Third_Party\OpenSceneGraph

To see a detailed report of what is being installed and where, click


the Show Details button.
8 When the installation is complete, click Next and then click Finish
to complete the installation process.

VAPS XT 2.3 Getting Started Guide 92


Using the OpenSceneGraph 3D Plugin

Using the OpenSceneGraph 3D Plugin


To use the OpenSceneGraph 3D plugin in your project, include the
following files from the
%VAPSXT_DIR%\Projects\StandardElements\ OutputObjects
directory:
• osgViewer.vcls
• osgViewer.vimp
For an example of how to use the OSGViewer in a project, see
Test_osgViewerHL94.vcls and Test_osgViewerHL94.vimp
located in the %VAPSXT_DIR%\Projects\Examples directory.

VAPS XT 2.3 Getting Started Guide 93

You might also like