Home | Products | Services | Support | Download | Order | Corporate | Site Map

Up
Features
Examples
FAQ
Manuals
Resources
Edu. Grant

SansGUI FAQ

Frequently Asked Questions about SansGUI

Introducing SansGUI

  1. What is SansGUI?
  2. What does SansGUI stand for?
  3. Where do I find examples on how to use SansGUI?
  4. Where can I learn more details about SansGUI?
  5. Where can I learn how the object-oriented paradigm is applied to SansGUI and my modeling domain?
  6. How are the manuals organized?  What is the best way to read them?

Licensing SansGUI

  1. Can I try SansGUI before buying it?
  2. When I download SansGUI from the web site, which kind of license key do I get?
  3. When I install SansGUI from a distribution CD-ROM, which kind of license key do I get?
  4. How do I obtain a license key for the license option I purchased?
  5. What are the differences between the license key I have during the installation process and the one I receive after registration?
  6. How do I install the license key that is sent to me?
  7. How do I check if the license key has been installed correctly?
  8. Are floating licenses available for SansGUI?
  9. What can I do if my computer fails and I need to use a new computer?
  10. Can we redistribute the SansGUI Run-Time Environment?
  11. Is there any royalty when I distribute my simulators that will run in the SansGUI Environment?
  12. New What does a License Server mean?
  13. New How do I install SansGUI on a file server and run it from a networked client machine?

SansGUI Run-Time Environment - for Simulation Users

  1. What can I do with the SansGUI Run-Time Environment?
  2. What can I NOT do with the SansGUI Run-Time Environment compared to the SansGUI Development Environment?
  3. What do I have to learn before I can start using the SansGUI Run-Time Environment with a simulator?
  4. Can SansGUI handle large matrices or tables?
  5. Is there any hard limit in the SansGUI environment?
  6. Can I run multiple simulation jobs at the same time?
  7. I don't see the units that I prefer for data entry and display in the unit selection list.  What should I do?
  8. How do I print the views in the SansGUI environment?
  9. What are the purposes of overriding some of the routines in the simulator?  How can I do it?
  10. 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?

SansGUI Development Environment -- for Simulation Developers

  1. New What do I have to learn before I can start using the SansGUI Development Environment to create my own simulator?
  2. 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?
  3. Similar to the question above, where are the read data routines located?  The code in the samples seem to be incomplete.
  4. Do I link with a SansGUI run-time library with my simulation application before distributing my executable program?
  5. What are the differences between in-process and external process simulators?
  6. 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?
  7. Does the system need to be large and complex in order to take advantage of the features offered in SansGUI?
  8. 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?
  9. Will I run into the infamous "DLL Hell" if I develop an in-process simulator?
  10. Can I call my own interactive GUI routines?

Introducing SansGUI

  1. 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]

  1. What does SansGUI stand for?

Sans in French means withoutGUI 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

 

  1. 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]

  1. 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]

  1. 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:

  1. 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.

  2. 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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. Repeat Step 1 through 4 for all other client machines with different system names.

Install the license key file license.dat obtained from ProtoDesign:

  1. 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
  1. 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.

  2. Run SansGUI from the client machine and select Help>About SansGUI... to verify the license key installation.

Some trouble shooting tips:

  1. 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.

  2. The license key files will be named license.dat for all computers.  We simply use different subdirectory paths to store and identify these files.

  3. 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.

  4. 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.

  5. 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."

  6. 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.

  7. 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.

  8. 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

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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]

  1. 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.

                                        Main Product Page

 

Home | Products | Services | Support | Download | Order | Corporate | Site Map

If you have any comments or questions regarding this web site, please contact  webmaster@protodesign-inc.com.

Copyright 2000-2010 ProtoDesign, Inc.  All rights reserved.

Last Updated: Sunday, November 07, 2010