SansGUI FAQ
Frequently Asked Questions about SansGUI
- What is SansGUI?
- What does SansGUI stand for?
- Where do I find examples on how to use SansGUI?
- Where can I learn more details about SansGUI?
- Where can I learn how the object-oriented paradigm is applied to SansGUI
and my modeling domain?
- How are the manuals organized? What is the best way to read them?
- Can I try SansGUI before buying it?
- When I download SansGUI from the web site, which kind of license key do I
get?
- When I install SansGUI from a distribution CD-ROM, which kind of license
key do I get?
- How do I obtain a license key for the license option I purchased?
- What are the differences between the license key I have during the
installation process and the one I receive after registration?
- How do I install the license key that is sent to me?
- How do I check if the license key has been installed correctly?
- Are floating licenses available for SansGUI?
- What can I do if my computer fails and I need to use a new computer?
- Can we redistribute the SansGUI Run-Time Environment?
- Is there any royalty when I distribute my simulators that will run in the
SansGUI Environment?
- New What
does a License Server mean?
- New How
do I install SansGUI on a file server and run it from a networked client
machine?
- What can I do with the SansGUI Run-Time Environment?
- What can I NOT do with the SansGUI Run-Time Environment
compared to
the SansGUI Development Environment?
- What do I have to learn before I can start using the SansGUI Run-Time
Environment with a simulator?
- Can SansGUI handle large matrices or tables?
- Is there any hard limit in the SansGUI environment?
- Can I run multiple simulation jobs at the same time?
- I don't see the units that I prefer for data entry and display in the unit
selection list. What should I do?
- How do I print the views in the SansGUI environment?
- What are the purposes of overriding some of the routines in the
simulator? How can I do it?
- My simulator program has just been updated to a new version. What
can I do to upgrade the models I have built with the old version? How
do I incorporate the changes?
- New What do I have to learn before I can start using the SansGUI Development
Environment to create my own simulator?
- The code samples on the web site show the data manipulation
routines in the projects. Where do
I call plotting routines to generate charts as shown in the figures?
- Similar to the question above, where are the read data routines
located? The code in the samples seem to be incomplete.
- Do I link with a SansGUI run-time library with my simulation application
before distributing my executable program?
- What are the differences between in-process and external process
simulators?
- If I introduce a few new attributes and remove some obsolete ones
or introduce some additional classes in a new
release of my simulator, what do I have to do to migrate my users' models to
fit in the new version?
- Does the system need to be large and complex in order to
take advantage of the features offered in SansGUI?
- What if my program contains only a single input form and runs through a
simple algorithm only once? What if no cycle simulation is really needed?
- Will I run into the infamous "DLL Hell" if I develop an
in-process simulator?
- Can I call my own interactive GUI routines?
Introducing SansGUI
-
What is SansGUI?
SansGUI is a modeling and
simulation environment for developing and deploying scientific and engineering
simulators without the need for you to write any user interface code.
Instead of providing you with a rich set of APIs that is built on top of yet
another level of Windows APIs, we isolate the graphical user interface
programming from you and provide you with a simple data object format
and a single API function prototype for your simulator to communicate with SansGUI. The SansGUI Run-Time Environment is actually an object-oriented
graphical model editor for simulation users to configure their models with the
building blocks specified by you, supply the input parameters, run the
simulation, examine the results, and then refine their models. The
result is that the SansGUI environment is easy to use and your simulator code
is immune from any underlying graphical API changes. SansGUI and its
logo is a registered trademark of ProtoDesign, Inc. [Go
to Top]
-
What does SansGUI
stand for?
Sans in French means without.
GUI is the abbreviation of Graphical User Interface. We
name our software product SansGUI because we would like our users to
concentrate on developing the simulators, without being bogged down by the
tedious graphical user interface programming. It is our job to develop
the best graphical user interface for you. We like the name, SansGUI because
it reflects the philosophy behind the product, which is user-centered.
Besides its name, the design guidelines and our development processes of the
product are centered around our users (you). [Go
to Top]
- Where do I
find examples about how to use SansGUI?
Please go to the SansGUI
Examples page to see screenshots, code samples, and explanations of some
of the demonstration projects. The details of the beginning projects are
explained in A Tour of
SansGUI Examples in the Getting
Started guide. [Go to
Top]
- Where can I learn
more details about SansGUI?
Please go to the SansGUI
product page for an overview and the specifications of SansGUI. It
contains links to all SansGUI related pages, including this FAQ page.
The whole SansGUI Document Set is accessible on-line via the SansGUI
manuals page. You can download a 2-page color brochure, a 52-slide
introduction and tutorial, and a technical paper from the Download
page. The best way to learn SansGUI, however, is to download
the software and try it yourself. [Go
to Top]
- Where can I learn how the object-oriented paradigm is applied to SansGUI
and my modeling domain?
Chapter
1 SansGUI Object System in the SansGUI User's
Guide introduces the object-oriented concepts pertaining to SansGUI simulation users.
Chapter
1 Advanced SansGUI Object System in the SansGUI Developer's
Guide contains a more formal approach to introduce the object-oriented
paradigm used in SansGUI to simulation developers. [Go
to Top]
- How are the manuals organized? What is the best way to read them?
The SansGUI manuals are organized
into four books: a Getting Started
guide, a User's Guide, a
Developer's
Guide, and a Reference Manual.
The Getting Started guide is a book that all the SansGUI users should
read. It has A Tour of SansGUI Examples that guide you step by step
through some of the fundamental features in SansGUI. If you are a
simulation user using the SansGUI Run-Time Environment to configure models and
runs simulations most of the time, you should consult the User's Guide with
occasional references to the Reference Manual. If you are a simulation
developer using the SansGUI Development Environment to create and program
simulators, you should consult the Developer's Guide and the Reference
Manual. You should certainly be familiar with the contents of the User's
Guide and the SansGUI Run-Time Environment. [Go
to Top]
Licensing SansGUI
- Can I try SansGUI before buying it?
Certainly. In fact, you are
encouraged to do so. Please go to the Download
page to obtain a copy of the demonstration software and then register
to have a 30-day, full-feature evaluation license key e-mailed to you.
Before you register, you need to install and run the demonstration edition of
SansGUI that you have downloaded to find out the License Server information of your
computer from the Help>About SansGUI... dialog. [Go
to Top]
- When I download SansGUI from the web site,
which kind of license key do I
get?
The license key that comes with the
SansGUI software distribution is the demonstration edition (SGdemo) which
activates the SansGUI Run-Time Environment but has no file saving
capability. With this demonstration key, you can follow A
Tour of SansGUI Examples section in the Getting
Started guide and try out the SansGUI Run-Time Environment. You need
to register to obtain a
permanent license key for the license option you purchased or a 30-day license
key to evaluate all the features in SansGUI. [Go
to Top]
- When I install SansGUI from a distribution CD-ROM,
which kind of license
key do I get?
The license key in the distribution
CD-ROM is the same as the one downloaded from the web site (see
above). You need to register
to obtain a permanent license key for the license option you purchased or a
30-day license key to evaluate all the features in SansGUI. [Go
to Top]
- How do I obtain a license key for the license
option I purchased?
Please follow the instructions in
the Permanent License Key
section to register your computer. Before you register, you need to
install and run SansGUI. From the Help menu of SansGUI, select the About
SansGUI... menu item. In the About SansGUI dialog, you will find the
necessary License Server information for registration. The other
required information is the product serial number on the bar code label in
the back side of the front cover of the CD package, or the one received from
us via e-mail. When you have the required information ready, go to
the Register page to fill out the form. You
can also e-mail or fax a copy of the registration information to us.
Upon receiving your registration, we will send a permanent license key to
you. [Go to Top]
- What are the differences between the license key I have during the
installation process and the one I receive after registration?
The license key installed from the
software distribution is a demonstration key, whether you purchased the
product or not. The license key we send to you in response to your
registration is the permanent license key for the license option you
purchased, or a 30-day evaluation license key for your computer. [Go
to Top]
- How do I install the license key that is sent to me?
The license key is a file that
contains necessary information to activate certain features in SansGUI.
The installed license key file is named license.dat in the key
subdirectory of your SansGUI installation directory. It is always a good
idea to back up the original license.dat file or copy it to a file
under another name before you install the new license key. When you
receive a new license key as an attachment in an e-mail, you can save the
attachment and then copy it over the license.dat file. If you
receive a hard copy, you can edit the license.dat file, using any text
editor (such as Notepad), and type in the new contents. Please note that
it is a plain text file and should not contain any text formatting characters,
as those introduced by a word processor. [Go
to Top]
- How do I check to see if the license key has been installed correctly?
After you install the license
key, run SansGUI in a new session. From the Help menu in SansGUI, select
About SansGUI... menu item. Once the About SansGUI dialog pops up, check
the License Option field to see if the value matches the one you
installed. [Go to Top]
- Are floating licenses available for SansGUI?
No. The current SansGUI
licenses are node-locked. That is, one license key per client
computer. You can, however, install SansGUI on a server and have the
license keys for the client computers installed in different directories on
the server or locally on the client machine. When you do so, the SGUI_KEY
environmental variable on the client computer should be set to the
directory where the license.dat key for that client resides. [Go
to Top]
- What can I do if my computer
fails and I need to use a new computer?
Because SansGUI licenses are
node-locked, you need to obtain a new license key from ProtoDesign, Inc. for
your new computer. You need to send us a statement, in writing, that you
have destroyed the old key. You need to provide the new License
Server information and the original product serial number. There is
a limit of two replacements per product serial number for the original
licensee and one replacement for a transferee. Please check the End
User License Agreement for details. [Go
to Top]
- Can we redistribute the SansGUI Run-Time Environment?
No. None of the files in the
SansGUI software distribution can be redistributed, according to the End
User License Agreement. [Go
to Top]
- Is there any royalty when I distribute my simulators that will run in the
SansGUI Environment?
No. There is no royalty for
distributing your own simulator programs. In fact, as long as your
target user has the SansGUI Run-Time Environment (or above) installed, you
don't need to ask them to purchase the SansGUI Run-Time Environment or pay any
fee to us. If the target user has no SansGUI license, a SansGUI Run-Time
license can be purchased at a very low price (US$49, including a CD-ROM and
the Getting Started guide) and you can treat it as an operating environment
that accepts as many different simulator programs as you would like to
deliver. It is quite different from the "per copy" royalty fee that other
development tool vendors are charging. [Go
to Top]
- What does a License Server mean?
SansGUI was designed with a
provision to support network licensing. However, with the current
version, the licenses are node-locked. It means each machine that runs
SansGUI shall have a unique license key installed. The License Server is
the local host, which is the machine itself. If you run SansGUI without
any license key or with an invalid key file, it will display a System ID in a
message box. Please report this ID to ProtoDesign support to obtain a
license key. Once SansGUI is running, you can select Help>About
SansGUI... to see the License Server information in the About SansGUI
dialog. It has the format of eight (8) hexadecimal digits. For
example, Local Host - 6789ABCD. [Go
to Top]
- How do I install
SansGUI on a file server and run it from a networked client machine?
Typically, SansGUI is installed on
a hard drive of a computer or workstation. In some circumstances,
especially with large clusters in laboratory settings, it may be desirable to
install and maintain only one copy of SansGUI on a file server and access the
software from networked computers. The following procedures describe the
needed steps to set up SansGUI at both the file server and the remote access
client sides. Let's assume that the file server is named BACH, the
client workstation is named LISZT, and we will install SansGUI onto BACH's C:
drive, which is shared as a logical drive, labeled Z, in the network.
On the file server BACH side:
-
Follow the installation
procedures in the SansGUI Getting Started guide to place the SansGUI software
onto the C: drive. The default SansGUI installation directory is C:\SansGUI\v1_1.
-
Under the key subdirectory of
the SansGUI installation directory (C:\SansGUI\v1_1\key),
create a subdirectory for each client computer using a name easily
identifiable. In our case, we create a subdirectory called LISZT to
reflect the name of the client machine. These subdirectories will be
used to store the license keys for the network clients later.
On the client machine LISZT side:
-
Run SansGUI from the network
drive. You can use Windows Explorer to locate and double click on the SansGUI
executable file SansGUI.exe
in the bin subdirectory of the SansGUI installation directory. You
may also type in the command \\BACH\Z\SansGUI\v1_1\bin\SansGUI.exe
at the command prompt.
-
SansGUI will run with the
demonstration license key copied during the installation process.
Select Help>About SansGUI... from the pulled-down menu and look for the
License Server code of the client machine. Record the 8 digit
hexadecimal number for registration purposes. If SansGUI cannot be
started up and shows an error with the System ID, record the System ID as
the License Server number.
-
Set the SGUI_KEY environment
variable to point to the key subdirectory created on the file server for
this machine. In our case, we set SGUI_KEY to \\BACH\Z\SansGUI\v1_1\key\LISZT.
A reboot of the machine may be necessary to make the SGUI_KEY setting
effective.
-
At this point, SansGUI may no
longer be run on the client machine until a new license key is obtained
from ProtoDesign through the registration process.
-
Repeat Step 1 through 4 for all
other client machines with different system names.
Install the license key file
license.dat obtained from ProtoDesign:
-
Use the License Server
information gathered from Step 2 of the client machine side operations to
obtain a license key file from ProtoDesign. When you have many
computers to register, it is more convenient to compile their information into a list
with two columns: 1) the system name used to create the subdirectory in
Step 2 on the file server side, and 2) its license server code. Send
the list to register@protodesign-inc.com.
In our example, the list looks like:
|
System Name |
License Server |
|
LISZT |
6789ABCD |
|
CHOPIN |
1D2C3B4A |
-
After receiving the license key
files from ProtoDesign, copy them into the corresponding subdirectories
with the name license.dat.
In our example, the license.dat file for LISZT should be copied to C:\SansGUI\v1_1\key\LISZT\license.dat,
which is visible as \\BACH\Z\SansGUI\v1_1\key\LISZT\license.dat
to the client machines.
-
Run SansGUI from the client
machine and select Help>About SansGUI... to verify the license key
installation.
Some trouble shooting tips:
-
If the license option is not
correct, close the About SansGUI dialog and select Help>File Locations
to see if the License Key path is correctly set in Step 3 of the client
machine side operations.
-
The license key files will be
named license.dat for all computers. We simply use different
subdirectory paths to store and identify these files.
-
The procedures to set up
environment variables are different between Windows 95/98/Me and Windows
NT/2000/XP. Please consult the Optional Environment Variables section
(page 13) in the Installation Procedures in the Getting Started guide for
more details.
-
Although the license keys are
installed in a remote computer, the License Server field in the About
SansGUI dialog will still show Local Host. This is normal because
SansGUI is running as a client side process.
-
It is necessary to copy the
samples subdirectory tree from the file server to the client machine for
practice. If the samples subdirectory is set to read-only on the
file server, the demonstration project models may not work because the
client does not have the privilege to write execution log files onto the
remote file system as their "working directories."
-
On Windows 95/98/Me, it may be
necessary to restrict your SansGUI installation path and your working
directory path to shorter names so that the external process
invocation script can be executed correctly without hitting the command
line length limit, which is approximately 120 characters.
-
It is a good idea to create a
couple of shortcuts on the client machine's Windows Desktop. To do
so:
-
Use the Windows Explorer on
the client machine to locate the SansGUI.exe program stored in the
bin
subdirectory of the SansGUI installation directory.
-
Right-click on the file.
-
Drag it to the Windows
Desktop.
-
Release the mouse button to
reveal a context menu.
-
Select Create Shortcut(s)
Here operation from the menu.
-
Do the same for the
welcome.htm file in the doc\SansGUI subdirectory of the SansGUI
installation directory.
-
Please forward any other
installation issues to support@protodesign-inc.com
or go to our Support web page.
[Go
to Top]
SansGUI Run-Time Environment -- for Simulation Users
- What can I do with the SansGUI Run-Time Environment?
The SansGUI Run-Time Environment is
primarily for simulation users to configure models from the building blocks
supplied by simulation developers, enter model specifications and input
parameters, run simulations, examine intermediate values and final results,
plot the values of interest, and then refine the models in the design
process. The models can be as simple as a few data forms, a single level
network of parts and links, or as complex as multiple levels of assemblies
with interconnections. SansGUI provides users with interactive editing
facilities, such as Object, Part and Link Properties dialogs for individual
system elements, Grid Views for groups of elements in the same class, Tree
Views for organizing classes of objects, parts and links, and Canvas Views for
interconnections of parts and links within assemblies.
Not only does SansGUI give the power of object-orientation (O-O) to the
simulation developers, it also passes the O-O advantages to the simulation
users. For system components with similar properties, the simulation
users can create objects to store these similarities and override some values
at the component level. The result is, the user does not have to enter
values for each and every component in the system, and this object inheritance
and override scheme matches better in real world systems with parts lists
and assemblies.
Another powerful feature is that SansGUI allows simulation users to supply
overriding functions to simulator routines, when the simulation developer
allows them to. With this facility, the users can create plug-in
routines to be executed in concert with the routines supplied with the
simulator. This shows yet another advantage of object-orientation.
Please take a look at the SansGUI User's
Guide to find out all the great features in the SansGUI Run-Time
Environment that can save a lot of your time and effort in modeling and
simulation. [Go
to Top]
- What can I NOT do with the SansGUI Run-Time Environment
compared to
the SansGUI Development Environment?
You cannot use the SansGUI Run-Time
Environment to create simulators. In particular, you cannot access
Schema Definitions to create classes and generate Object Libraries and source
code for the simulators using the SansGUI Source Code Framework. You
will use simulators created by others and install them into the SansGUI
Run-Time Environment on your computer. [Go
to Top]
- What do I have to learn before I can start using the SansGUI Run-Time
Environment with a simulator?
You need to use the Getting
Started guide to install and run SansGUI. It is recommended that you
walk through A Tour of
SansGUI Examples in the Getting
Started guide to have some hands-on experience with SansGUI. Once
you finish the tour, read Chapter
1 SansGUI Object System in the SansGUI User's
Guide. The User's Guide does not assume that you have any
object-oriented modeling and simulation experience. You do, however,
need to understand the specific domain of the systems that you are modeling,
especially the specifications of the model building blocks of your
simulator. [Go
to Top]
- Can SansGUI handle large matrices or tables?
It certainly can but is limited by
the size of your computer memory. All the model configurations and data
are memory resident. If we have a matrix of 8-byte, double-precision
floating-point numbers with the size of 1000 by 1000 cells, the memory
requirement would be 8,000,000 bytes, or roughly, 8 Megabytes. Most of
the PCs today contain 64 Megabytes of RAM or beyond; therefore, allocating 8
Megabytes for the matrix should not be a problem. In fact, you can try
it out by using the MatPlot example in A
Tour of SansGUI Examples in the Getting
Started guide and enter 1000 for the number of rows and 1000 for the
number of columns. SansGUI will display a 1000 by 1000 size grid for
matrix data editing. The operation should be relatively fast on a
contemporary PC. SansGUI does not, however, support sparse matrices at
this moment. [Go
to Top]
- Is there any hard limit
in the SansGUI environment?
Besides the limit of your computer
memory, the only hard limits in the SansGUI Modeling and Simulation
Environment are the number of parts (65,535) and links (65,535) in an assembly
and the number of assemblies (65,535) in a model. This is due to the internal
representations of serial numbers (16-bit integers) of parts, links, and
assemblies. The number of parts in an assembly is further limited by the
number of grid points (currently 66 x 66, or 4,356) in a Canvas View.
You are encouraged to group related parts into subassemblies to simplify the
management of the model and to avoid this limit. [Go
to Top]
- Can I run multiple simulation jobs at the same time?
Absolutely. There are two
types of simulation execution controls available: 1) running in a thread
inside the SansGUI process with an in-process simulator, or 2) running in a
separate process with an external process simulator. Multiple simulation
jobs can be executed in SansGUI simultaneously, sharing the CPU. When
you run a simulation, the control is given back to you right away for
interactive operations. You need to be aware of open file security and
file name collision issues, however. [Go
to Top]
- I don't see the units that I prefer for data entry and display in the unit
selection list. What should I do?
If the simulation developer has not
locked the unit object, as in the default situation, the unit table in the
unit object can be extended by you, the simulation user. Simply open the
unit Object Properties dialog and append the preferred unit entry to the
bottom of the table. The multiplier has to be entered correctly for
successful unit conversion. Basically, you can think of the multiplier
as the quantity in the preferred unit equivalent to quantity 1 in the base
unit. After adding the new unit entry, the new unit will appear in the
unit selection list. [Go
to Top]
- How do I print the views in
the SansGUI environment?
All the views in the SansGUI
environment are printable. The currently active view is the one which
will be printed out. Simply click on the view to make it active and then
click on the Print button from the File toolbar, or select Print from the File
menu. You can use the Print Preview function to look at the output on
the screen first. The paper orientation may have to be changed for a
better result. [Go
to Top]
- What are the purposes of overriding some of the routines in the
simulator? How can I do it?
There are many situations that
plugging in user's custom routines is very useful. For example, you can
use the overriding routine to populate a table or a matrix that contains data
specific to your model, to use your own algorithm to generate random numbers
or to solve integration problems, to acquire data from some hardware devices
for hardware-in-the-loop (HIL) type simulations, or to connect to an external
database. The uses of the overriding routines are just endless.
When the simulation developer opens up some class functions for users to
override, this feature becomes available to you. Because you are accessing the
SansGUI data object as if you were the simulation developer, you have the same
rights and responsibilities as the simulation developer.
To create user overriding functions, please consult Chapter
6 Overriding Simulator Routines in the SansGUI User's
Guide. [Go
to Top]
- My simulator program has just been updated to a new version. What
can I do to upgrade the models I have built with the old version? How
do I incorporate the changes?
When the specifications of the
simulator classes (class schemas) are changed, your Project Model file may be
out of synchronization with the simulator. Examples are
obsolete/deprecated attributes or newly introduced attributes, obsolete
classes, changes in the connectivity rules, changes in object references,
attribute data type changes, etc. Fortunately, SansGUI can evolve your
Project Models from one version to the other for you and preserve your data as
much as possible. This process is called Version Evolution and
you can invoke it from the File>Update Version menu. SansGUI allows
version evolution to go either forward or backward and will inform you about
what changes have been made. It is a good idea to save the Project Model
in a different file so that the original one can be kept for safety
purposes. Please consult the Update
Simulator Version section of the SansGUI User's
Guide. [Go
to Top]
SansGUI Development Environment -- for Simulation
Developers
- What do I have to learn before I can start using the SansGUI Development
Environment to create my own simulator?
First, walk through A
Tour of SansGUI Examples in the Getting
Started guide and pay special attention to the Developer's Corners in the
tour. Second, study the Visual Calculator
example for SansGUI as a step beyond the getting started examples to
understand the process of how a familiar simulator is created. Third, be familiar with the SansGUI Run-Time Environment to
make yourself a fluent simulation user. Fourth, read the first
chapter of the SansGUI Developer's
Guide to see how the object-oriented paradigm is applied to the SansGUI
environment. Finally, build some small projects to practice the
simulator development cycle using SansGUI. The development process is
outlined in the Developing
Simulators with SansGUI section in Chapter
1 Advanced SansGUI Object System of the Developer's
Guide. [Go
to Top]
- The code samples on the web site
show the data manipulation routines in the projects. Where do
I call plotting routines to generate charts as shown in the figures?
You do not need to call any
plotting routines because SansGUI handles all data plotting in the SansGUI
Run-Time Environment. The plot specifications can be set up
interactively by the user and saved along with the Project Model. The
intermediate data or final results can be plotted upon the user's
request. No programming is required on your side. [Go
to Top]
- Similar to the question above, where are the read data routines
located? The code in the samples seem to be incomplete.
The code is complete in the
samples. SansGUI takes care of data serialization and memory management
for you so that you can concentrate on the development of class behavior
(functions) in the simulator. The code samples demonstrate how to access
SansGUI Data Objects and the
use of the uniform Application
Programming Interface (API). No additional coding is required.
[Go
to Top]
- Do I link with a SansGUI run-time library with my simulation application
before distributing my executable program?
No. As oppose to the
conventional development tools with large sets of APIs and libraries, there is
no need for you to link with any portion of SansGUI during the build time of
your simulator and before deployment. SansGUI links with your in-process
simulators dynamically or invokes your external process simulator during
run-time; therefore, there is no run-time library supplied with SansGUI.
[Go
to Top]
- What are the differences between in-process and external process
simulators?
In-process simulators are in the
form of dynamic linked libraries to be linked right before simulation
runs. The class functions in the in-process simulator are executed in a
thread inside the SansGUI process. External process simulators are
programs to be invoked by SansGUI and executed in a separate process.
In-process simulators are tightly coupled with SansGUI; therefore, provide the
simulation users with high interactivity. External process, on the other
hand, use SansGUI as a front-end model editor and receive the model data in
the formats supported by SansGUI. External process simulators do not
interact with SansGUI during execution time. Each method has advantages
and disadvantages. They are documented in Chapter
4 Developing In-Process Simulators and Chapter
5 Developing External Process Simulators in the Developer's
Guide. One thing worth mentioning is that the two methods are not
mutually exclusive. You can supply both to get the best out of both
worlds. [Go
to Top]
- If I introduce a few
new attributes and remove some obsolete ones or introduce some additional
classes in a new
release of my simulator, what do I have to do to migrate my users' models to
fit in the new version?
The version evolution mechanism
built into SansGUI updates the class schemas in the user's Project Models and
Object Libraries created by a different version of the same simulator.
As long as you use the class versioning facility in the SansGUI Development
Environment to maintain the Schema Definition of your simulator and its code,
you don't have to worry about your users' models being out of synchronization
with your simulator. SansGUI will take care of it. [Go
to Top]
- Does the system need to be large and complex in order to take advantage of
the features offered in SansGUI?
SansGUI was designed to handle
systems with large number of components which are connected intricately.
However, this is not a requirement of the target systems to be modeled.
The SansGUI Examples demonstrate the use of
SansGUI with some simple systems. [Go
to Top]
- What if my program contains only a single input form and runs through a
simple algorithm only once? What if no cycle simulation is really needed?
You can use a reference class, such
as a collection class, to hold
the form and implement the algorithm in the evaluation
function of the class. Run the simulator though only a single
cycle. The evaluation function will be called only once. Thus, you
will have a graphical user interface with input checking and output displaying
without the need to write any GUI code. [Go
to Top]
- Will I run into the infamous "DLL Hell" if I develop an
in-process simulator?
The problem of DLL conflict occurs
when different schemas are defined in multiple versions of DLLs that have the
same file name. When a simulator DLL is invoked, the program code, the
data objects, and the user's data may be out of synchronization. In the
SansGUI environment, this problem will not occur if you use its versioning
facility and follow the guidelines
stated in the Developer's Guide.
The version control and update are handled by SansGUI, not manually edited by
the user. [Go
to Top]
- Can I call my own interactive GUI
routines?
If you develop an external process
simulator, you can do whatever you would like in terms of user
interaction. The process created by SansGUI to run your simulator will
just wait for it to finish but will not halt the SansGUI environment.
The in-process simulator, however, is meant to be executed in a worker thread
which involves no GUI interaction. You may be able to program some GUI
by managing the Windows messages by yourself. This type of GUI
programming, however, is not supported. [Go
to Top]
Disclaimer
Specifications in this FAQ section are subject to change without notice.
|