This set of code was written in order to test SECSGEM compliant equipement
and host. By extent it could serve to replace secsgem layer.


Equipment developpers

- Simulate host
- make unit test
- check SEMI compliancy

Host developpers

- Simulate equipment
- Discover equipments capability, variables, statemachine, flow

SEMI standard writter

That's part of people are not in the public of this application. however if
the application was remodeled to implement a grammar parser this tool could
be useful for standard writter:

- write a new transport layer



SShell stands for SECSGEM Shell. This application allowed you to send and
receive SECSGEM messages as easily as you would send message with a chat app.

The message can be prepared in the `secsim.sml` file or dynamically on runtime.

Build an equipment simulator

Look at the module ``equipments.essais`` to understand how to build an equipment
simulator. Then open SShell to use the simulator.

Advantage compared to other solution

* Auto response based on message input
* Auto response based on state changed
* Dynamic compilation of message to send
* Hot code loading of replies functions (no reload)

Build a host simulator

TODO: Think the best design

Equipment Characterization

The characterization equipment is done via the hosts.characterizer module.

This module contains few classes:

    - `Host`
    - `EquipementItems`: will seemlessly retrieve information about SV, EC, AL
      and DV. These information are programmaticaly queryable; it will help
      during a discovery phase of an equipment.
    - InteractiveRunner: For the moment it's only a tool to help human to send
    - Test classes: that's some basic unit test you would like to run on every
      equipment. And it's here also as sample for unit test developper.