SMI Tools
A set of tools are available in order develop, implement and test the control system as described in figure 6.

5.1 Generation and execution of a State Manager
The description of a specific domain in SML is normally stored in a file with extension ".SMI". Each .SMI file corresponds to a domain. The SMI Translator has to be run on this file in order to generate a .SOBJ file which will then be used at run time by a generic SM engine (the logic engine in the figure). The tools involved are:
smiTrans
takesfile_name file_name .SMI and producesfile_name .SOBJsmiSM
starts a SM for the domaindomain_name file_name domain_name behaving as specified infile_name .SOBJ
State Manager behaviour can be affected by various run time options. For details see Run Time Options. .
5.2 Generation and execution of proxies
Proxy skelettons can also be generated from the .SMI files by running
the Proxy Generator. The output is a file per proxy called
The tools involved in this creation process are:
smiGen
Generates as many output files as associated objects each one calledfile_name object_name _skel.cSMIRTL
This run-time library contains all the routines needed for communication with the SM.
5.3 The SMI generic user interface
Included in the Tool Set is a Generic Configurable User Interface for visualisation of a specific domain. The UI allows the visualisation of the states of objects in a certain domain, as well as sending commands to them. The set of objects to be displayed, it’s position and the color of it’s states are configurable. The GUI can be started by:
smiGUI
An Example is shown in Fig 7.

5.4 Sending commands to objects from the command line
smiSendCommand
Full description of this command see here.
5.5 Building your own User Interface
The Generic User Interface provided in the tool set is very usefull for use during the implementation and test phase of a control system, but is not recommended as production user interface for the control system. Normally in the final UI the user would like to combine objects from different domains and also information on quantities like RUN_NUMBER and TRIGGER_RATE that are not available as SMI object states. The SMI Tool Set contains a library that allows easy access to information on objects, states, and available or currently executing actions. The functionality available in this library will be described later in this document). In order to access these functions your user interface should link with:
SMIUIRTL
The SMI User Interface Run-Time library.
This library also allows other processes (not UIs) to send commands to SMI objects and/or to inquire on the state of a particular object somewhere in the system.