Developing Simulators with SansGUI

This section describes the tasks involved in the simulator development cycle. It can be treated as an overview of the SansGUI Developer's Guide with details explained in the following chapters.

Identifying System Elements

The beginning step in creating a simulator is to define the scope in the modeling domain and to identify the system elements within the scope. From the system elements, you can create the underlying logic and mathematics of the model based upon certain theories and experiences. Using SansGUI as a tool, you need to find a built-in program flow control (cycle simulation, for example) that is suitable to your modeling problem. If you have a unique requirement that cannot use any of the built-in flow control mechanism, you may use the external-process simulation control and implement your simulator as an external program to control the program execution by yourself. It is a good idea to send us the particular flow control scheme as a feature request, so that SansGUI developers can generalize and implement it in the future releases.

Creating Schema Definitions

Once the scope has been defined, the simulation developer will use the SansGUI Development Environment to create a Schema Definition. The simulator's identification is determined and entered in the Schema Definition.

Defining Simulator Classes

As a simulation developer, you will spend the majority of your time working on the definitions of classes in the simulation control, component, and reference categories.

See the SansGUI Intrinsic Classes chapter in the SansGUI Reference Manual for descriptions of the supported classes. Chapter 2 Creating Schema Definitions describes the procedures for defining simulator classes in a Schema Definition.

Generating Object Libraries and Skeleton Code

Once the Schema Definition is complete, you can generate an Object Library and a set of source files that contain skeleton code for implementing class functions in an in-process simulator. The skeleton code in the source files are to be filled in with the underlying logic and mathematics of the classes in the system. The Object Library can be further customized before distribution. Chapter 3 Generating and Maintaining Object Libraries and the Using Source Code Framework section in Chapter 4 contains related topics in greater details.

Implementing Simulator

For external process simulators, there is no restriction imposed upon the program control flow. The only requirement is that the simulator should read textual Model Files in a format supported by SansGUI. If not, a filter needs to be written to convert the model file from a supported format to the format the simulator understands.

For in-process simulators, the communication between SansGUI and the class functions relies on the following:

The combination of the uniform data object format and the single API prototype makes SansGUI an easy to learn and program environment for simulation developers. Because SansGUI monitors global program control flow, the developer can concentrate on the behavior of the classes, all without having to write any code to handle user interaction.

Deploying Simulator

Basically, a simulator contains the following items:

SansGUI specifies default subdirectories under the SansGUI installation directory for these items. Users may customize the locations of them to suit their needs. The deploying process involves with installing the items to proper locations and managing the co-existence of multiple versions. See Chapter 7 Deploying Simulators for more details.


C:\FH_Suite\htmlgifs\home.gif Project Model Creating Schema Definitions

SansGUI Modeling and Simulation Environment Version 1.2

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