From d41043efe39f8e8202c6d33ce557c6e09ae070c0 Mon Sep 17 00:00:00 2001 From: Thierry Carré Date: Thu, 2 Feb 2012 18:17:13 +0100 Subject: cesar/maximus/doc: convert architecture doc in rst format, refs #2937 --- cesar/maximus/doc/Makefile | 45 + cesar/maximus/doc/fulminata_ecos_specs.odt | Bin cesar/maximus/doc/fulminata_general_specs.odt | Bin .../maximus/doc/fulminata_maximus_architecture.odt | Bin 1799405 -> 0 bytes .../maximus/doc/fulminata_maximus_architecture.rst | 1371 +++ .../maximus/doc/fulminata_maximus_architecture.xmi | 9838 +++++++++----------- cesar/maximus/doc/fulminata_maximus_user_guide.odt | Bin cesar/maximus/doc/fulminata_maximus_user_guide.xmi | 0 cesar/maximus/doc/img/picture_1.png | Bin 0 -> 21335 bytes cesar/maximus/doc/img/picture_13.png | Bin 0 -> 37833 bytes cesar/maximus/doc/img/picture_6.png | Bin 0 -> 104423 bytes cesar/maximus/doc/img/picture_7.png | Bin 0 -> 43243 bytes cesar/maximus/doc/umbrello_png/CoreEngine.png | Bin 0 -> 47159 bytes cesar/maximus/doc/umbrello_png/Ethernet.png | Bin 0 -> 83486 bytes cesar/maximus/doc/umbrello_png/Function_Call.png | Bin 0 -> 291874 bytes cesar/maximus/doc/umbrello_png/MPDU.png | Bin 0 -> 104186 bytes cesar/maximus/doc/umbrello_png/Network_Clock.png | Bin 0 -> 332992 bytes cesar/maximus/doc/umbrello_png/Phy.png | Bin 0 -> 407203 bytes cesar/maximus/doc/umbrello_png/Phy_2.png | Bin 0 -> 416730 bytes cesar/maximus/doc/umbrello_png/SciMsg.png | Bin 0 -> 158089 bytes cesar/maximus/doc/umbrello_png/SciServer.png | Bin 0 -> 93310 bytes cesar/maximus/doc/umbrello_png/System.png | Bin 0 -> 353903 bytes cesar/maximus/doc/umbrello_png/User_Interface.png | Bin 0 -> 306178 bytes 23 files changed, 5747 insertions(+), 5507 deletions(-) create mode 100644 cesar/maximus/doc/Makefile mode change 100755 => 100644 cesar/maximus/doc/fulminata_ecos_specs.odt mode change 100755 => 100644 cesar/maximus/doc/fulminata_general_specs.odt delete mode 100755 cesar/maximus/doc/fulminata_maximus_architecture.odt create mode 100644 cesar/maximus/doc/fulminata_maximus_architecture.rst mode change 100755 => 100644 cesar/maximus/doc/fulminata_maximus_architecture.xmi mode change 100755 => 100644 cesar/maximus/doc/fulminata_maximus_user_guide.odt mode change 100755 => 100644 cesar/maximus/doc/fulminata_maximus_user_guide.xmi create mode 100644 cesar/maximus/doc/img/picture_1.png create mode 100644 cesar/maximus/doc/img/picture_13.png create mode 100644 cesar/maximus/doc/img/picture_6.png create mode 100644 cesar/maximus/doc/img/picture_7.png create mode 100644 cesar/maximus/doc/umbrello_png/CoreEngine.png create mode 100644 cesar/maximus/doc/umbrello_png/Ethernet.png create mode 100644 cesar/maximus/doc/umbrello_png/Function_Call.png create mode 100644 cesar/maximus/doc/umbrello_png/MPDU.png create mode 100644 cesar/maximus/doc/umbrello_png/Network_Clock.png create mode 100644 cesar/maximus/doc/umbrello_png/Phy.png create mode 100644 cesar/maximus/doc/umbrello_png/Phy_2.png create mode 100644 cesar/maximus/doc/umbrello_png/SciMsg.png create mode 100644 cesar/maximus/doc/umbrello_png/SciServer.png create mode 100644 cesar/maximus/doc/umbrello_png/System.png create mode 100644 cesar/maximus/doc/umbrello_png/User_Interface.png (limited to 'cesar/maximus/doc') diff --git a/cesar/maximus/doc/Makefile b/cesar/maximus/doc/Makefile new file mode 100644 index 0000000000..4d16ec0bcf --- /dev/null +++ b/cesar/maximus/doc/Makefile @@ -0,0 +1,45 @@ +PAGE=fulminata_maximus_architecture.rst + +UMBRELLO_EXPORT=./umbrello_png + +IMG_GENERATED := $(UMBRELLO_EXPORT)/CoreEngine.png +IMG_GENERATED += $(UMBRELLO_EXPORT)/Ethernet.png +IMG_GENERATED += $(UMBRELLO_EXPORT)/Function_Call.png +IMG_GENERATED += $(UMBRELLO_EXPORT)/Network_Clock.png +IMG_GENERATED += $(UMBRELLO_EXPORT)/Phy_2.png +IMG_GENERATED += $(UMBRELLO_EXPORT)/Phy.png +IMG_GENERATED += $(UMBRELLO_EXPORT)/SciMsg.png +IMG_GENERATED += $(UMBRELLO_EXPORT)/SciServer.png +IMG_GENERATED += $(UMBRELLO_EXPORT)/System.png +IMG_GENERATED += $(UMBRELLO_EXPORT)/User_Interface.png + + +odt: $(PAGE:%.rst=%.odt) +html: $(PAGE:%.rst=%.html) +tex: $(PAGE:%.rst=%.tex) +pdf: $(PAGE:%.rst=%.pdf) + +%.pdf: %.rst + rst2pdf $< -o $@ + +%.html: %.rst + rst2html $< $@ + +%.tex: %.rst + rst2latex $< $@ + +%.odt: %.rst + rst2odt $< $@ + +clean: + rm -f $(PAGE:%.rst=%.pdf) + rm -f $(PAGE:%.rst=%.tex) + rm -f $(PAGE:%.rst=%.html) + rm -f $(PAGE:%.rst=%.odt) + +umbrello_img: $(IMG_GENERATED) + +$(IMG_GENERATED): + mkdir -p $(UMBRELLO_EXPORT) + umbrello --export png --directory $(UMBRELLO_EXPORT) fulminata_maximus_architecture.xmi + diff --git a/cesar/maximus/doc/fulminata_ecos_specs.odt b/cesar/maximus/doc/fulminata_ecos_specs.odt old mode 100755 new mode 100644 diff --git a/cesar/maximus/doc/fulminata_general_specs.odt b/cesar/maximus/doc/fulminata_general_specs.odt old mode 100755 new mode 100644 diff --git a/cesar/maximus/doc/fulminata_maximus_architecture.odt b/cesar/maximus/doc/fulminata_maximus_architecture.odt deleted file mode 100755 index 2b4e0d2df9..0000000000 Binary files a/cesar/maximus/doc/fulminata_maximus_architecture.odt and /dev/null differ diff --git a/cesar/maximus/doc/fulminata_maximus_architecture.rst b/cesar/maximus/doc/fulminata_maximus_architecture.rst new file mode 100644 index 0000000000..b631f95f66 --- /dev/null +++ b/cesar/maximus/doc/fulminata_maximus_architecture.rst @@ -0,0 +1,1371 @@ +============================== +Fulminata Maximus Architecture +============================== + + +Introduction +************ + +The general Maximus simulator architecture is described in the document named +“fulminata_general_specs”. +The present document describes the detailed Maximus simulator architecture +and explains choices that have been made. + +The simulator is composed of following packages, which are each described in +a dedicated chapter: + +- SCI_ (Simulator Communication Interface) +- System_ +- `Function Call`_ +- `Network Clock`_ +- `PHY`_ +- Ethernet_ +- Channel_ +- `Core Engine`_ +- `Scenario Engine`_ +- `User Interface`_ + +Maximus simulator is a C++ application. +Thus, these different packages are represented using UML class diagrams. + + +Class diagram representation +============================ + +On a class diagram, attributes and methods visibility is coded as follows: + + - “+” for a public member; + + - “-” for a private member; + + - “#” for a protected member. + + Virtual methods are in *italic*. + + Abstract classes are in *italic*. + + Static members are underlined. + +For methods, an output argument is noted “out”, an argument used for input +and output is noted “inout”, and there is no notation for an “input” +argument (i.e. if nothing is precise, this is an input argument). + + +_`SCI` (Simulator Communication Interface) +****************************************** + +This is not a C++ interface. +The SCI role is to communicate with each simulated AV station via 2 named +pipes: + +- send messages from the simulator to an AV station; +- receive messages from an AV station and forward them to the destination + package. + + +SCI Msg +======= + +Each message (to send or received) is a SCI message. + +A message can be destined to / come from the PHY package, the Ethernet +package, the Function Call package, the Network Clock package, the System +package, or the Channel package. +Depending on its destination / source, the SCI message has different formats, +with a common basis described in the **SciMsg** abstract class. + +Each message is an instantiation of : + + - a **PhySciMsg**, + - an **EtherSciMsg**, + - a **FunctionSciMsg**, + - a **ClockSciMsg** or + - a **SystemSciMsg**. + +These classes inherits from the **SciMsg** abstract class. +They will be named **SpecializedSciMsg** in this document. + +.. image:: umbrello_png/SciMsg.png + :scale: 60 % + +The **SciMsg**::dispatchMsg method is implemented in each class inherited from +the **SciMsg** class. +This method is called from the SCI Server when a message is received in order +to process it. +Due to polymorphism, depending on the SCI message specialization, the +appropriate dispatchMsg method is called. +The dispatchMsg method processes the received message or calls another +function to do it. + +.. note:: See specialized SCI message paragraphs to have + explanations about specialized SCI message methods. + + +SCI Server +========== + +The role of SCI Server is to send and receive SCI messages. +**SciServer** has a pointer to the existing stations list maintained by the +System package. + +To send a message, PHY, Ethernet, Channel, Function Call, Network Clock, or +System packages call the **SciServer**::sendSciMsg method. +PHY or Ethernet packages can also call the +**SciServer**::sendSciMsgToAllActiveStations method. + +.. image:: umbrello_png/SciServer.png + :scale: 50 % + +The method **SciServer**::process gets data coming from pipes. +When a message is received, the **SciServer**::receiveMsg is called. + +Then, following steps are performed : + +1. Determinate message type SCI_MSG_TYPE_ according to the Sci_Msg_Header. + +2. Allocate a **SciMsg** depending on its type with + **SciServer**::createSciMsg method. + +3. Set into the different **SciMsg** attributes received data. + To do it, **SciMsg**::fillSciMsg method is called. + +4. Process the **SpecializedSciMsg**::dispatchMsg method is called by + **SciServer**::processSciMsg. + +5. The created **SciMsg** is deleted once the message has been processed. + +To avoid dependencies, all classes inherited from the **SciMsg** class +implement a 'create' method that returns a **SciMsg** \* pointer to the +created object. +At program start, each SCI package registers address of the +**SpecializedSciMsg**::create method. Thus, **SciServer** possess a table +containing addresses of functions to call to create the appropriate +**SpecializedSciMsg**: + + mpSpecializedSciMsgArray : + + +----------------------------+--------------------------------+ + | SCI_MSG_TYPE_ | Function to call | + +============================+================================+ + | SCI_MSG_TYPE_NONE | NULL | + +----------------------------+--------------------------------+ + | SCI_MSG_TYPE_NETWORK_CLOCK | & **ClockSciMsg**::create | + +----------------------------+--------------------------------+ + | SCI_MSG_TYPE_FUNCTION_CALL | & **FunctionSciMsg**::create | + +----------------------------+--------------------------------+ + | SCI_MSG_TYPE_PHY | & **PhySciMsg**::create | + +----------------------------+--------------------------------+ + | SCI_MSG_TYPE_SYSTEM | & **SystemSciMsg**::create | + +----------------------------+--------------------------------+ + | SCI_MSG_TYPE_ETHERNET | & **EtherSciMsg**::create | + +----------------------------+--------------------------------+ + | 6 | NULL | + +----------------------------+--------------------------------+ + | etc. | NULL | + +----------------------------+--------------------------------+ + +Therefore, depending on the SCI_MSG_TYPE_, The **SpecializedSciMsg** is +created by calling function registered in +\*( mpSpecializedSciMsgArray + SCI_MSG_TYPE_ ). +Table elements are of type **SciMsg** \*. + +This allows to dynamically register additional message types not yet defined +in the specification document “fulminata_maximus_specs”. + +.. [SCI_MSG_TYPE] SCI_MSG_TYPE are : + + - 0x00 = SCI_MSG_TYPE_NONE + - 0x01 = SCI_MSG_TYPE_NETWORK_CLOCK + - 0x02 = SCI_MSG_TYPE_FUNCTION_CALL + - 0x03 = SCI_MSG_TYPE_PHY + - 0x04 = SCI_MSG_TYPE_SYSTEM + - 0x05 = SCI_MSG_TYPE_ETHERNET + + +_`System` +********* + +The System package is responsible for station creation, deletion, and +maintains a stations list. + +It provides an API whose behavior is described below. + +.. image:: umbrello_png/System.png + :scale: 40 % + + +_`System API` +============= + +System API is the interface used to act on the system (station creation etc.) +and to access to system information. +It is the unique entry point to access system functions in order to avoid +useless object dependencies. + +**ISystem**::getListOfStations is used by the SCI Server to get a pointer to +the currently existing stations. + +**ISystem**::areAllActiveStationsIdle is used by the Network Clock to know if +it has to increment the tick value *[see paragraph about* `Network Clock`_ +*for more details].* + +It avoids to duplicate the existing stations list. + +To manage stations, the API provides functions described below. + + +Create Station +-------------- + +virtual Sci_Msg_Station_Id **ISystem**::createStation ( ); + +Description: + + Creates a new station in the system, i.e. launches an eCos process. + When creating a station, it has to be configured via + **Station**::setStationConfiguration. + +Arguments: + + None. + +Returns: + + The station process identifier. + +Some details about the **StationConfiguration** attributes : + ++-------------------+-------------------------------------------------------+ +| Name | Description | ++===================+=======================================================+ +| nmk | Sets the NMK (Network Membership Key) of the station. | ++-------------------+-------------------------------------------------------+ +| eks | Sets the EKS (Encryption Key Select) of the station. | ++-------------------+-------------------------------------------------------+ +| device_access_key | Sets the DAK (Device Access Key) of the station. | ++-------------------+-------------------------------------------------------+ +| cco_capability | Sets the CCo capability of the station. | +| | | +| | 4 values are possible for this parameter: | +| | | +| | - MAXIMUS_LEVEL_0_CCO | +| | - MAXIMUS_LEVEL_1_CCO | +| | - MAXIMUS_LEVEL_2_CCO | +| | - MAXIMUS_LEVEL_3_CCO | +| | | ++-------------------+-------------------------------------------------------+ +| bridge_capabilty | Indicates if the station can act as a bridge. | +| | | +| | 2 possible values : | +| | | +| | - MAXIMUS_NOT_BRIDGE_CAPABLE | +| | - MAXIMUS_BRIDGE_CAPABLE | +| | | ++-------------------+-------------------------------------------------------+ +| homeplug_version | Indicates the HomePlug version of the station. | +| | | +| | 2 possible values : | +| | | +| | - MAXIMUS_HOMEPLUG_AV | +| | - MAXIMUS_HOMEPLUG_101 | +| | | ++-------------------+-------------------------------------------------------+ +| mac_address | Sets the MAC address of the station. | ++-------------------+-------------------------------------------------------+ +| serial_nb | Sets the serial number of the station. | ++-------------------+-------------------------------------------------------+ +| software_version | Sets the software version of the station. | ++-------------------+-------------------------------------------------------+ +| cco_status | Sets the CCo status of the station. | ++-------------------+-------------------------------------------------------+ +| clock_drift | Sets the average clock drift in ppm (part per million)| +| | in a floating value (precision of 10³). | +| | Can be a negative value. | ++-------------------+-------------------------------------------------------+ + + +Remove Station +-------------- + +virtual bool **ISystem**::removeStation ( Sci_Msg_Station_Id station_id ); + +Description: + + Definitively removes a station from the AVLN, i.e. the corresponding eCos + process is killed. + Moreover, the 3 unused named pipes are deleted by the station. + The station is removed from the simulator stations list. + +Arguments: + + +------------+--------------------------------------+-----+ + | Name | Description | I/O | + +============+======================================+=====+ + | station_id | Identifier of the station to remove. | in | + +------------+--------------------------------------+-----+ + +Returns: + + 'false' if a problem occurs. + + +Get List Of Stations +-------------------- + +virtual StationsList\* **ISystem**::getListOfStations ( ); + +Description: + + Allows to get all the existing stations maintained by the System Manager. + +Arguments: + + None. + +Returns: + + 'false' if a problem occurs. + + +Are All Active Stations Idle +---------------------------- + +virtual bool **ISystem**::areAllActiveStationsIdle ( ); + +Description: + + Called by the Network Clock to know if all stations are in idle state to + decide if it has to increment the tick value. + +Arguments: + + None. + +Returns: + + 'false' if at least one active station is not in idle state or if + a problem occurs. + + +Deactivate Station +------------------ + +virtual bool **ISystem**::deactivate (Sci_Msg_Station_Id station_id); + +Description: + + Deactivate a station from the AVLN, i.e. + The station does not receive any messages anymore. + The station status is updated to deactivated state. + +Arguments: + + +------------+------------------------------------------+-----+ + | Name | Description | I/O | + +============+==========================================+=====+ + | station_id | Identifier of the station to deactivate. | in | + +------------+------------------------------------------+-----+ + +Returns: + + 'false' if a problem occurs. + + +Activate Station +---------------- + +*virtual bool +ISystem::activate (Sci_Msg_Station_Id station_id);* + +Description: + + Re-activate a station from the AVLN, that has previously been deactivated. + The station station is updated to idle state. + +Arguments: + + +------------+--------------------------------------+-----+ + | Name | Description | I/O | + +============+======================================+=====+ + | station_id | Identifier of the station to remove. | in | + +------------+--------------------------------------+-----+ + +Returns: + + 'false' if a problem occurs. + + +Additional available operations +------------------------------- + +Once a station has been created, following methods can be called: + +- const Sci_Msg_Station_Id getStationId() +- const File_Descriptor **Station**::getInputFileDescriptor ( ) +- const File_Descriptor **Station**::getOutputFileDescriptor ( ) +- const File_Descriptor **Station**::getLogFileDescriptor ( ) +- Station_Status **Station**::getStationStatus ( ) +- StationConfiguration \* **Station**::getStationConfiguration ( ) + + +System Manager +============== + +The System Manager responsibility mainly is to create and delete stations. +It maintains a list of existing stations. + +It implements the `System API`_ methods. + + +Station +======= + +**Station** is the class that represents a simulated AV station. +When creating a station, a new eCos process is launched via the +*Station::startProcess* method. + + +Station Configuration +===================== + +**StationConfiguration** is the class that describes the associated station +characteristics. +Each **Station** instance instantiates a **StationConfiguration** object. + + +Line cycle simulation (zero-cross) +================================== + +All stations need to know when the zero-cross moment of the line cycle +happens. +It means that every 10ms (for 50Hz) or every 8.33ms (for 60Hz), a PHY SCI +message “zero-cross” must be sent to all active stations. + +The zero-cross message has to be sent every 250000 ticks for 50Hz and every +208333 ticks for 60Hz. + + +System SCI Msg +============== + +**SystemSciMsg** implements all the **SciMsg** methods and possess all the +**SciMsg** attributes. + +**SystemSciMsg** is only used for reception of a “system idle” message. +It implements the dispatchMsg method which calls +**SystemManager**::receiveIdleMsg. + + +System message header is : + + +-----------------+-----------+---------------------------+ + | type | name | comment | + +=================+===========+===========================+ + | char | version | egal to 2 | + +-----------------+-----------+---------------------------+ + | char | type | SYSTEM_TYPE_NONE (0x00) | + | | | or | + | | | SYSTEM_TYPE_IDLE (0x01) | + +-----------------+-----------+---------------------------+ + | unsigned short | flags | | + | int | | | + +-----------------+-----------+---------------------------+ + + +_`Function Call` +**************** + +Function Call package has to: + +- make the encapsulation of messages, to send them into SCI messages; +- handle the reception of returned SCI messages. + +.. image:: umbrello_png/Function_Call.png + :scale: 40 % + + +Function Call API +================= + +The Function Call package provides an API, whose behavior is described below. + +This API allows to send a message describing the remote function to call into +a simulated AV station. +A function call has to be transparent for the simulator. the function called +into the application stub of the station is not defined into the simulator. +Therefore, this API must provide a generic way to call an unknown function +(from the simulator point of view). + +Several steps have to be done: + +- *FunctionSciMsg \* FunctionCallManager::createMsg* + + This method returns a pointer to the created **FunctionSciMsg**. + +- *bool FunctionSciMsg::setFunctionName (const std::string name)* + + Set the name of the remote function to call. + +- *bool SciMsg::setSciMsgStationId (const Sci_Msg_Station_Id station_id)* + + Set the destination station. + +- *bool FunctionSciMsg::addParameter (const FunctionCallParameter & + function_argument_to_add)* + + To indicate the needed function arguments (called once per argument to add). + +- *bool FunctionCallManager::registerCallback* + + If the function expects a returned information, this method has to be called + to indicate the address of the callback function. + +- *bool FunctionCallManager::sendMsg* + + Once all these steps have been performed, this method allows to send the + configured **FunctionSciMsg**. + +When receiving a **FunctionSciMsg**, the following method is called to retrieve +function arguments: + +- *bool FunctionSciMsg::bindParameter (const std::string + name_of_parameter_to_get, unsigned long & data_length, unsigned char \* + p_data)* + +This API is the unique way to call a remote function of a station application +stub. +API functions are described below. + + +Create Msg +---------- + +virtual FunctionSciMsg\* **IFunctionCall**::createMsg ( ); + +Description: + + Allows to create a message in order to call a remote function. + +Arguments: + + None. + + +Register Callback +----------------- + +virtual bool registerCallback (Function_Call_Msg_Id msg_id, +const CallbackFunction & callback_address ); + +Description: + + Indicates the callback function to call when the returned function will be + received. + +Arguments: + ++------------------+---------------------------------------------------+-----+ +| Name | Description | I/O | ++==================+===================================================+=====+ +| msg_id | The returned function SCI message indicates the | in | +| | ID of the called function. | | ++------------------+---------------------------------------------------+-----+ +| callback_address | Address of the function to call when receiving | | +| | the function call response. | in | ++------------------+---------------------------------------------------+-----+ + + +Send Msg +-------- + +virtual bool **IFunctionCall**::sendMsg (FunctionSciMsg & function_sci_msg ); + +Description: + + Sends the created Function Call message after having registered the + callback function if any. + +Arguments: + ++------------------+--------------------------------------------------+-----+ +| Name | Description | I/O | ++==================+==================================================+=====+ +| function_sci_msg | Reference to the created message returned by | in | +| | **IFunctionCall**::createMsg. | | ++------------------+--------------------------------------------------+-----+ + + +Additional available operations +------------------------------- + +Once a message has been created, following methods can be called: + +- **FunctionSciMsg**::addParameter ( const FunctionCallParameter & + function_argument_to_add ) + + Configure the function to call by describing its arguments. + Number of arguments has not to be defined. + Function arguments are described by a list of FunctionCallParameter + instances. + Each object instance represents an argument of the remote function. + The FunctionCallParameter class contains 3 attributes depicting the + argument : + + - **std**::string mName + - unsigned long mValueLength + - unsigned char \* mpValue + + A dispatcher has to be implemented into the application stub to read the + function name and to call the corresponding function interpreter callback. + This callback reads all arguments and casts them into adequate variable + types in order to correctly call the application function. + Same system is implemented on the simulator side to handle returned + functions. + +- **FunctionSciMsg**::bindParameter ( + const std::string name_of_parameter_to_get, unsigned long & data_length, + unsigned char \* p_data ) + + Gets an argument contents by giving its name as input. + + +Function Call Manager +===================== + +**FunctionCallManager** implements the **IFunctionCall** interface. + +Its responsibility is mainly to create, configure and delete +**FunctionSciMsg**. +Messages are deleted once they have been sent via **IFunctionCall**::sendMsg. + +When receiving a returned function coming from a simulated AV station, it +also has the role to identify the associated callback function and to call +it. +It is done via **FunctionCallManager**::receiveMsg that uses the callback +list built by **FunctionCallManager**::registerCallback. + + +Function SCI Msg +================ + +**FunctionSciMsg** implements all the **SciMsg** methods and possess all the +**SciMsg** attributes. + +**FunctionSciMsg** role is to describe Function Call message contents in +order to be sent via a pipe by the SCI Server. +It possess additional information (Function Call header) compared to a SCI +message and contains the name and arguments of the remote function to be +called. + +It also implements the dispatchMsg method which calls +**FunctionSciMsg**::identifyFunctionName and +**FunctionSciMsg**::identifyParameters. + + +Function message header is : + + +-----------------+-----------+-----------------------------------+ + | type | name | comment | + +=================+===========+===================================+ + | char | version | egal to 2 | + +-----------------+-----------+-----------------------------------+ + | char | type | - FUNCTION_CALL_TYPE_NONE (0x00) | + | | | - FUNCTION_CALL_TYPE_REQ (0x01) | + | | | - FUNCTION_CALL_TYPE_RSP (0x02) | + | | | | + +-----------------+-----------+-----------------------------------+ + | unsigned short | msg_id | | + | int | | | + +-----------------+-----------+-----------------------------------+ + | char | param_nb | | + +-----------------+-----------+-----------------------------------+ + | char | flags | | + +-----------------+-----------+-----------------------------------+ + | unsigned short | reserved | | + | int | | | + +-----------------+-----------+-----------------------------------+ + + +Message data are sent and received respecting the following convention: + + *function_name\0* + +And for each parameter, **FunctionCallParameter** attributes are sent +according to the following format: + + *name\0value_lengthp_value* etc... with length coded on 2 bytes + +Number of parameters is sent into the 'Function_Call_Header param_nb' field. + + +_`Network Clock` +**************** + +The Network Clock package represents the simulated system clock. + +.. image:: umbrello_png/Network_Clock.png + :scale: 40 % + + +Network Clock API +================= + +The Network Clock package provides an API whose behavior is described below. + +This API is the unique entry point to access Network Clock functions. +It allows to manage an event list. + + +Create Evt +---------- + +virtual bool **INetworkClock**::createEvt ( +const Network_Clock_Tick tick_value, const NetworkClockEvt & evt_to_send); + +Description: + + Allows to send an event to a station or an internal event (i.e. which + destination is a simulator package) at a given time. + +Arguments: + + +-------------+-----------------------------------------------------+-----+ + | Name | Description | I/O | + +=============+=====================================================+=====+ + | tick_value | Indicates the clock tick at which the event must be | in | + | | sent. | | + +-------------+-----------------------------------------------------+-----+ + | evt_to_send | Object describing event to send. This class is | in | + | | detailed below. | | + +-------------+-----------------------------------------------------+-----+ + +Details on **NetworkClockEvt** class: + + +---------------------+---------------------------------------------------+ + | Sci_Msg_Station_Id | Process identifier of the station which will | + | mStationId | receive the event. Set to 0 for internal events. | + +=====================+===================================================+ + | Network_Clock_Type | Defines the type of message to send, according to | + | mNetworkClockType | its destination. | + | | | + | | Possible values are NETWORK_CLOCK_TYPE_ENUM_ | + +---------------------+---------------------------------------------------+ + | Network_Clock_Id | Uniquely identifies an event. | + | mNetworkClockId | | + +---------------------+---------------------------------------------------+ + | void * mpData | Used to save a PHY SCI message to send later. | + | | Could be used for other purposes. | + +---------------------+---------------------------------------------------+ + + +Network Clock Processor +======================= + +The **NetworkClockProcessor** implements the **INetworkClock**. + +It has the responsibility to create a **NetworkClockEvtList**, and to +maintain it. + +Its main role is to handle the **NetworkClockEvtList**, i.e. to : + +- insert and remove events. +- process the next event in the list. +- remove events that have been processed. +- increment the tick value if all events of the current tick have been + processed and if all stations are in an idle state. +- depending on the Network_Clock_Type : + + - create and send Clock SCI messages to SCI Server, and delete them once + sent. + - call a **IFunctionCall**, **IPhy**, **ISystem**, **EthernetProcessor**, + or **ChannelComputer** function. + +Network Clock Processor is managed by the Core Engine which calls +*NetworkClockProcessor::processNextEvt*. +This method has to check if all stations are in an idle state (this +information is provided by *ISystem::areAllActiveStationsIdle*). +If not, the *NetworkClockProcessor::processNextEvt* returns. +If all stations are in an idle state, it has to check if an event has to be +processed at the current tick value. +If not, it increments the tick value to the value corresponding to the next +event to process. +Then, the get event is processed. + +After that, the Core Engine processes received events (by calling +*SciServer::process*). + + +Zero-cross schedule +=================== + +Every 250000 ticks (for 50Hz) or 208333 ticks (for 60Hz), a PHY zero-cross +message must be sent to all active stations. + +The first schedule can start at tick=0 and needs to be re-scheduled after +each zero-cross event. + + +Network Clock Evt List +====================== + +The **NetworkClockEvtList** role is to stock all requested events to be +processed in an ordered list, to add, insert, remove elements, and to +designate the first element of the list (i.e. the next event to be processed). +To do it, a *multimap* is used, which is an associative container of the STL. +Description given by the STL is the following: + +"*Multimap* is a Sorted Associative Container that associates objects of type +*Key* with objects of type . +*Multimap* is a Pair Associative Container, meaning that its value type is +pair **. +It is also a Multiple Associative Container, meaning that there is no limit +on the number of elements with the same key." + +In the present case, *Key* represents the Network Clock tick value, and +*Data* represent the **NetworkClockEvt** class. +Thus, several events can have the same tick value. + +A *multimap* has *insert*, *erase* and *find* member functions. + +Once processed by *NetworkClockProcessor::processNextEvt*, an event is +removed from the list. + + +Clock SCI Msg +============= + +**ClockSciMsg** implements all the **SciMsg** methods and possess all the +**SciMsg** attributes. + +**ClockSciMsg** role is to describe contents of an event coming from (or +destined to) the Network Clock in order to be sent via a pipe by the SCI +Server. +It possess additional information (Network Clock header) compared to a +SCI message. + +It also implements the *dispatchMsg* method which calls either, depending +on the *Network_Clock_Type*: + +- *NetworkClockProcessor::insertEvt* in order to create and insert an event + corresponding to the received request; +- *NetworkClockProcessor::removeEvt* in order to remove an existing event + of the list. + + +Clock message header is : + + +-----------------+-------------------+-----------------------------------+ + | type | name | comment | + +=================+===================+===================================+ + | char | version | egal to 2 | + +-----------------+-------------------+-----------------------------------+ + | char | type | See NETWORK_CLOCK_TYPE_ENUM_ | + +-----------------+-------------------+-----------------------------------+ + | unsigned short | id | | + | int | | | + +-----------------+-------------------+-----------------------------------+ + | unsigned short | flags | | + | int | | | + +-----------------+-------------------+-----------------------------------+ + | unsigned short | reserved | | + | int | | | + +-----------------+-------------------+-----------------------------------+ + | unsigned int | tick_high | | + +-----------------+-------------------+-----------------------------------+ + | unsigned int | tick_low | | + +-----------------+-------------------+-----------------------------------+ + +.. [NETWORK_CLOCK_TYPE_ENUM] + - NETWORK_CLOCK_TYPE_NONE (0x00) + - NETWORK_CLOCK_TYPE_REMOVE (0x01) + - NETWORK_CLOCK_TYPE_STATION (0x02) + - NETWORK_CLOCK_TYPE_FUNCTION_CALL (0x03) + - NETWORK_CLOCK_TYPE_PHY (0x04) + - NETWORK_CLOCK_TYPE_SYSTEM (0x05) + - NETWORK_CLOCK_TYPE_ETHERNET (0x06) + - NETWORK_CLOCK_TYPE_CHANNEL (0x07) + + +_`PHY` +****** + + +PHY API +======= + +PHY package aim is to process PHY messages received from stations, and to +forward them to destination station(s). + +It also has the role to call the Python callback (if any) with the received +PHY SCI message as argument. + +.. image:: umbrello_png/Phy.png + :scale: 60 % + + +PHY Processor +============= + +It implements the PHY API. + +Its responsibility is to create, configure, receive and delete **PhySciMsg**. + +When a **PhySciMsg** is received, PHY Processor role is to forward it to the +destination station(s). + +Following information have to be set in the PHY SCI message: + +- Message type, which is provided into the field *type* of **PhySciMsg** + message header: + + (See PHY_TYPE_ENUM_) + +- In case of MPDU, there are different formats, which are described by the + field *mpdu_format* of **PhySciMsg** message header: + + (See PHY_MPDU_FORMAT_ENUM_) + + With both previous fields, MPDU format is known: + +.. image:: img/picture_1.png + :scale: 80 % + +- Message total length, which is provided in the SCI message header. + +- Number of PBs contained in the message, which is provided into the field + *pb_nb* of **PhySciMsg** message header. + +- Frame Control mode, which is provided into the field *fc_mode* of + **PhySciMsg** message header. + +- Used modulation, which is provided into the field *mod* of **PhySciMsg** + message header. + +- FEC rate, which is provided into the field *fecrate* of **PhySciMsg** + message header. + +- Guard interval, which is provided into the field *gil* of **PhySciMsg** + message header. + +- PB size, which is provided into the field *flags* of **PhySciMsg** message + header by setting the *PHY_FLAG_PB512* flag. + +- Tone Map index, which is provided into the field *tonemap_index* of + **PhySciMsg** message header. + +- Number of used symbols, which is provided into the field *symbol_nb* of + **PhySciMsg** message header. + +- Initialization vectors, which is provided into the field *iv* of + **PhySciMsg** message header. + +- Network Encryption Key, *nek* of **PhySciMsg** message header. + +- PB measurement, containing BER (Bit Error Rate), halfit, and CRC, for each + PB, which is provided into the field *pb_measurement* of **PhySciMsg** + message header. + +- PB header, which is provided into the field *pb_header* of **PhySciMsg** + message header. + + +PHY SCI Msg +=========== + +**PhySciMsg** implements all the **SciMsg** methods and possess all the +**SciMsg** attributes. + +**PhySciMsg** role is to describe contents of a PHY message coming from (or +destined to) the PHY in order to be sent via a pipe by the SCI Server. +It possess additional information (PHY header) compared to a **SciMsg**. + +It also implements the *dispatchMsg* method. + +.. image:: umbrello_png/Phy_2.png + :scale: 40 % + +Phy messsage header is : + + +-----------------+-------------------+-----------------------------------+ + | type | name | comment | + +=================+===================+===================================+ + | char | version | egal to 2 | + +-----------------+-------------------+-----------------------------------+ + | char | type | See PHY_TYPE_ENUM_ | + +-----------------+-------------------+-----------------------------------+ + | unsigned char | mpdu_format | See PHY_MPDU_FORMAT_ENUM_ | + | | | | + +-----------------+-------------------+-----------------------------------+ + | unsigned char | pb_nb | | + +-----------------+-------------------+-----------------------------------+ + | unsigned char | fc_mode | - PHY_FC_MODE_HYBRID_1 (0x00) | + | | | - PHY_FC_MODE_HYBRID_2 (0x01) | + | | | - PHY_FC_MODE_AV_1 (0x02) | + | | | - PHY_FC_MODE_AV_2 (0x03) | + | | | | + +-----------------+-------------------+-----------------------------------+ + | unsigned char | short_ppdu | | + +-----------------+-------------------+-----------------------------------+ + | unsigned char | mod | - PHY_MODE_ROBO (0x00) | + | | | - PHY_MODE_HS_ROBO (0x01) | + | | | - PHY_MODE_MINI_ROBO (0x02) | + | | | - PHY_MOD_TM (0x03) | + | | | - PHY_MODE_NONE (0x04) | + | | | | + +-----------------+-------------------+-----------------------------------+ + | unsigned char | fecrate | - PHY_FEC_RATE_1_2 (0x00) | + | | | - PHY_FEC_RATE_16_21 (0x01) | + | | | - PHY_FEC_RATE_NONE (0x02) | + | | | | + +-----------------+-------------------+-----------------------------------+ + | unsigned char | gil | - PHY_GIL_417 (0x00) | + | | | - PHY_GIL_567 (0x01) | + | | | - PHY_GIL_3534 (0x02) | + | | | | + +-----------------+-------------------+-----------------------------------+ + | unsigned char | tonemap_index | | + +-----------------+-------------------+-----------------------------------+ + | unsigned char | reserved | | + +-----------------+-------------------+-----------------------------------+ + | unsigned short | tx_id | | + | int | | | + +-----------------+-------------------+-----------------------------------+ + | unsigned short | flags | - PHY_FLAG_NONE (0x0000) | + | int | | - PHY_FLAG_ENCRYPTED (0x0001) | + | | | - PHY_FLAG_CRC_OK (0x0002) | + | | | - PHY_FLAG_PB512 (0x0004) | + | | | - PHY_FLAG_WRONG_PREAMBLE (0x0008)| + | | | | + +-----------------+-------------------+-----------------------------------+ + | unsigned int | symbol_nb | | + +-----------------+-------------------+-----------------------------------+ + | unsigned int | iv[3] | | + +-----------------+-------------------+-----------------------------------+ + | unsigned int | nek[4] | | + +-----------------+-------------------+-----------------------------------+ + | unsigned int | pb_measurement | | + | | [PHY_PB_MAX_NB] | | + +-----------------+-------------------+-----------------------------------+ + | unsigned int | pb_header | | + | | [PHY_PB_MAX_NB] | | + +-----------------+-------------------+-----------------------------------+ + +.. [PHY_TYPE_ENUM] + - PHY_TYPE_NONE (0x00) + - PHY_TYPE_PREAMBLE (0x01) + - PHY_TYPE_FC_HYBRID_MODE (0x02) + - PHY_TYPE_FC_AV_ONLY_MODE (0x03) + - PHY_TYPE_PRS (0x04) + - PHY_TYPE_MPDU_PAYLOAD (0x05) + - PHY_TYPE_TONEMASK (0x06) + - PHY_TYPE_TONEMAP (0x07) + - PHY_TYPE_NOISE (0x08) + - PHY_TYPE_RX (0x09) + - PHY_TYPE_ZERO_CROSS (0x0A) + +.. [PHY_MPDU_FORMAT_ENUM] + - PHY_MPDU_FORMAT_NONE (0x00) + - PHY_MPDU_FORMAT_BEACON (0x01) + - PHY_MPDU_FORMAT_SOF (0x02) + - PHY_MPDU_FORMAT_SACK (0x03) + - PHY_MPDU_FORMAT_RTS_CTS (0x04) + - PHY_MPDU_FORMAT_SOUND (0x05) + - PHY_MPDU_FORMAT_RSOF (0x06) + + +_`Ethernet` +*********** + + +Ethernet API +============ + +Ethernet package role is to send Ethernet messages to stations and to process +Ethernet messages received from stations. + +.. image:: umbrello_png/Ethernet.png + :scale: 60 % + + +Ethernet Processor +================== + +Its responsibility is to create, configure, receive and delete +**EtherSciMsg**. + +When an **EtherSciMsg** is received, Ethernet Processor role is to check if +an Ethernet message is expected by Maximus user. +The received Ethernet message is not forwarded to other stations. + +Following information have to be set in the Ethernet SCI message: + +- Message type, which is provided into the field *type* of **EtherSciMsg** + (See ETHERNET_TYPE_ENUM_) + +When sending an Ethernet frame, Maximus has to set the message type +ETHERNET_TYPE_DATA into the *Ethernet_Header*. If the Ethernet frame +contains an MME destined to the CP of the station, the message type +is ETHERNET_TYPE_MME. When allocating buffers, message type is set to +ETHERNET_TYPE_DATA_BUFFER_ADD, ETHERNET_TYPE_MME_BUFFER_ADD or +ETHERNET_TYPE_INTERFACE_BUFFER_ADD. Maximus is not allowed to send messages +of type ETHERNET_TYPE_BUFFER_RELEASED and ETHERNET_TYPE_SNIFFER. + +When receiving an Ethernet message, if the message type ETHERNET_TYPE_DATA +is set into the *Ethernet_Header*, Maximus has to create an Ethernet Python +object. In the same way, for ETHERNET_TYPE_MME, Maximus creates an MME Python +object. For ETHERNET_TYPE_BUFFER_RELEASED, Maximus creates a Buffer Python +object. For ETHERNET_TYPE_SNIFFER, Maximus does not receive messages of type +ETHERNET_TYPE_DATA_BUFFER_ADD, ETHERNET_TYPE MME_BUFFER_ADD or +ETHERNET_TYPE_INTERFACE_BUFFER_ADD. + +For messages of type ETHERNET_TYPE_SNIFFER, following information have to be +set: + +- Sniffer type, which is provided into the field *sniffer_type* of + **EtherSciMsg** message header (See SNIFFER_ENUM_). + +- Way and encryption, which are provided into the field *flags* of + **EtherSciMsg** message header (See ETHERNET_FLAG_ENUM_). + + +Ether SCI Msg +============= + +**EtherSciMsg** implements all the **SciMsg** methods and possess all the +**SciMsg** attributes. + +**EtherSciMsg** role is to describe contents of an Ethernet message coming +from (or destined to) the Ethernet package in order to be sent via a pipe by +the SCI Server. +It possess additional information (Ethernet header) compared to a **SciMsg**. + +It also implements the dispatchMsg method. + + +Ethernet message header is : + + +-----------------+-------------------+-----------------------------------+ + | type | name | comment | + +=================+===================+===================================+ + | char | version | egal to 2 | + +-----------------+-------------------+-----------------------------------+ + | char | type | See ETHERNET_TYPE_ENUM_ | + +-----------------+-------------------+-----------------------------------+ + | char | sniffer_type | See SNIFFER_ENUM_ | + +-----------------+-------------------+-----------------------------------+ + | char | flags | See ETHERNET_FLAG_ENUM_ | + +-----------------+-------------------+-----------------------------------+ + +.. [SNIFFER_ENUM] + - SNIFFER_BEACON (0x00) + - SNIFFER_MME (0x01) + +.. [ETHERNET_FLAG_ENUM] + - ETHERNET_FLAG_NONE (0x00) + - ETHERNET_FLAG_WAY (0x01) + - ETHERNET_FLAG_ENCRYPTED (0x02) + +.. [ETHERNET_TYPE_ENUM] + - ETHERNET_TYPE_NONE (0x00) + - ETHERNET_TYPE_DATA (0x01) + - ETHERNET_TYPE_MME (0x02) + - ETHERNET_TYPE_DATA_BUFFER_ADD (0x03) + - ETHERNET_TYPE_MME_BUFFER_ADD (0x04) + - ETHERNET_TYPE_INTERFACE_BUFFER_ADD (0x05) + - ETHERNET_TYPE_BUFFER_RELEASED (0x06) + - ETHERNET_TYPE_SNIFFER (0x07) + + +_`Channel` +********** + + +Channel API +=========== + +This package is used to act on the link quality between stations. + +Channel package requirements are written in document +“fulminata_maximus_scenario_engine”, paragraphs **3.7** and **4.1**. + +.. image:: img/picture_13.png + :scale: 60 % + + +Channel Computer +================ + +There is a unique instance of **ChannelComputer**, created and maintained by +the **CoreEngine**, when the channel perturbation is enabled by user. + +Its role is to perform time and frequency noise calculations. +It also has to create and maintain a list of **ChannelSettings**. + + +Retrieve destination station(s) +------------------------------- + +To compute the noise, Maximus simulator has to know the destination +station(s) to retrieve the corresponding channel settings. +Moreover, it has to send the PHY message *NOISE* to the destination +station(s) only. + +Maximus simulator computes the noise when it receives the MPDU payload. +To retrieve destination station(s) of a PHY message *MPDU_PAYLOAD*, a field +*tx_id* has been added to the *Phy_Header*. The same *tx_id* must be set +during all the transmission steps, i.e. for the PHY message *PREAMBLE*, the +PHY message *FC*, and the PHY message *MPDU_PAYLOAD*. +Then, it is incremented for the next message. There is one *tx_id* counter +per station and one *tx_id* counter into Maximus. + +When receiving the FC, each destination station should send a PHY message +to Maximus to inform it that it is waiting for a PHY message with a certain +*tx_id*. +The PHY message type *RX* has been added to the *Phy_Header* to communicate +the expected message ID. +This PHY message *RX* data contains the source station ID. + +These explanations are illustrated on the diagram below: + +.. image:: img/picture_7.png + :scale: 34 % + +When the FC is received by a station, an IT is raised, and the Cesar callback +function calls the *phy_rx_prepare* HAL PHY function by indicating that the +station is waiting for a long MPDU or not (i.e. for data). + + +Internal data +------------- + +To compute noise, Maximus has to keep several data in memory, as the number +of copies to be duplicated in case of ROBO mode, the PowerScale value +depending on the modulation, and the mapping for each modulation. +These data are attributes of the **ChannelComputer** class. + +Here is the array depicting number of copies in case of ROBO mode: + ++-------------------+--------------------------------+ +| ROBO Mode | Number of Copies (Nb copies) | ++===================+================================+ +| PHY_MOD_ROBO | 4 | ++-------------------+--------------------------------+ +| PHY_MOD_HS_ROBO | 2 | ++-------------------+--------------------------------+ +| PHY_MOD_MINI_ROBO | 5 | ++-------------------+--------------------------------+ + + +Here is the PowerScale values, depending on the modulation used: + ++-------------------------+-------------------------+ +| Modulation | 1/PS² | ++=========================+=========================+ +| MAXIMUS_PHY_MOD_BPSK | 1 | ++-------------------------+-------------------------+ +| MAXIMUS_PHY_MOD_QPSK | 2 | ++-------------------------+-------------------------+ +| MAXIMUS_PHY_MOD_QAM8 | 5+1.29² | ++-------------------------+-------------------------+ +| MAXIMUS_PHY_MOD_QAM16 | 10 | ++-------------------------+-------------------------+ +| MAXIMUS_PHY_MOD_QAM64 | 42 | ++-------------------------+-------------------------+ +| MAXIMUS_PHY_MOD_QAM256 | 170 | ++-------------------------+-------------------------+ +| MAXIMUS_PHY_MOD_QAM1024 | 682 | ++-------------------------+-------------------------+ + +Here is a part of the mapping array, for the QAM16 modulation: + ++------+-------------+ +| Code | Coordinates | ++------+-------------+ +| 0000 | (-1 ; -1) | ++------+-------------+ +| 0001 | (-1 ; -3) | ++------+-------------+ +| 0010 | (-1 ; 1) | ++------+-------------+ +| 0011 | (-1 ; 3) | ++------+-------------+ +| 0100 | (-3 ; -1) | ++------+-------------+ +| 0101 | (-3 ; -3) | ++------+-------------+ +| 0110 | (-3 ; 1) | ++------+-------------+ +| 0111 | (-3 ; 3) | ++------+-------------+ +| 1000 | ( 1 ; -1) | ++------+-------------+ +| 1001 | ( 1 ; -3) | ++------+-------------+ +| 1010 | ( 1 ; 1) | ++------+-------------+ +| 1011 | ( 1 ; 3) | ++------+-------------+ +| 1100 | ( 3 ; -1) | ++------+-------------+ +| 1101 | ( 3 ; -3) | ++------+-------------+ +| 1110 | ( 3 ; 1) | ++------+-------------+ +| 1111 | ( 3 ; 3) | ++------+-------------+ + +*mMappingArray [MAXIMUS_PHY_MOD_QAM16]* + +There is one different mapping array for each modulation. + + +Channel Settings +================ + +**ChannelSettings** class describes the channel link quality from a +transmitting station to a receiving station. + +When channel perturbation is enabled, one object is instantiated for each +channel. +Therefore, number of instances is *station_nb\*(station_nb-1)*. + +A list of **ChannelSettings** is maintained by the **ChannelComputer**, using +a *std::hash_map* container. +The key is composed of the RX station ID followed by the TX station ID, each +coded on 16 bits. + +For noise calculation, a **ChannelMapping** object is instantiated, that uses +**ChannelPoint** instances. + +.. image:: img/picture_6.png + :scale: 40 % + + +_`Core Engine` +************** + +Core Engine package contains the **CoreEngine**, **Maximus**, **Sta** and +**Msg** classes. + +The main program has to instantiate a **Maximus** object. + +The Core Engine has the role to create (and delete) **FunctionCallManager**, +**SystemManager**, **NetworkClockProcessor**, **PhyProcessor**, +**EthernetProcessor**, **SciServer**, and **ChannelComputer**. + +.. image:: umbrello_png/CoreEngine.png + :scale: 60 % + + +_`Scenario Engine` +****************** + +See document named “fulminata_maximus_scenario_engine”. + + +_`User Interface` +***************** + +A user application or the Scenario Engine must have access to the Maximus +simulator interface. See document "fulminata_maximus_user_guide" to have all +details about the user interface. diff --git a/cesar/maximus/doc/fulminata_maximus_architecture.xmi b/cesar/maximus/doc/fulminata_maximus_architecture.xmi old mode 100755 new mode 100644 index 02bca0c587..960e8a513d --- a/cesar/maximus/doc/fulminata_maximus_architecture.xmi +++ b/cesar/maximus/doc/fulminata_maximus_architecture.xmi @@ -1,6548 +1,5372 @@ - + umbrello uml modeller http://uml.sf.net - 1.5.6 + 1.5.8 UnicodeUTF8 - + - + - - - - - - - - - + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - + + + + + + + + - - - - + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - + - - - + + + - - + + - + - - - - - - - - + + + + + + + + - - + + - - + + - - + + - + - - - - - - - - + + + + + + + + - + - - + + - + - - - - + + + + - + - - - + + + - + - - - + + + - + - - + + - + - - - - + + + + - + - - + + - - + + - - + + - - + + - + - + - - - + + + - + - - + + - + - - + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - - + + + + - + - - + + - - + + - + - - + + - - - - + + + + - - + + - - + + - - + + - + - - + + - + - + - + - - - - - - + + + + + + - + - + - + - - + + - - + + - + - - + + - + - - + + - + - - - - - + + + + + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - - + + - - - - - - - - + + + + + + + + - + - + - - + + - + - - - - + + + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - + - + - + - + - + - - - + + + - - - + + + - + - - - + + + - - + + - - - + + + - - - + + + - + - - + + - + - + - - - + + + - + - - + + - + - - + + - + - - + + - + - + - - + + - + - - + + - + - - + + - - - - - + + + + + - + - + - - - + + + - - + + - - + + - + - - + + - - + + - + - + - - + + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - - + + - - - + + + - - - - - - - - - - + + + + + + + + + + - + - + - + - - + + - + - + - + - + - + - + - + - + - - + + - + - - - - + + + + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - - - - + + + + - + - - + + - + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - - - + + + - - - + + + - - - - - - - - + + + + + + + + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - - + + - - - + + + - + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - - - + + + + - - - - - - - - - + + + + + + + + + - - - - + + + + - - + + - - + + - + - - - + + + - + - - - + + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - - + + - + - + - + - - + + - - - + + + - - - - + + + + - + - - - - - + + + + + - + - - + + - + - - + + - + - + - + - + - - - - - + + + + + - - - - + + + + - - - + + + - + - - + + - - + + - + - + - + - - + + - + - + - + - - + + - + - - - - - + + + + + - - + + - - - - - - - + + + + + + + - + - - + + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - - + + + - + - - - - + + + + - - + + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - + - + - - - + + + - + - - - - - + + + + + - + - - + + - + - - + + - - - + + + - + - + - - - + + + - - - + + + - - - - - - - - + + + + + + + + - - - - + + + + - - + + - - + + - + - - + + - + - - + + - + - - + + - - + + - - + + - + - - + + - + - + - + - - + + - + - + - + - - - - - - - - - - + + + + + + + + + + - + - - + + - - + + - + - - + + - - + + - - - + + + - + - + - + - + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - - - - + + + + - + - + - - + + - + - - + + - + - + - - - + + + - - - - - - - + + + + + + + - + - - + + - + - + - - - + + + - + - - + + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - - + + - + - - - + + + - + - + - + - + - - - - + + + + - - + + - + - + - + - + - + - - - + + + - + - - + + - + - - + + - + - + - + - - - + + + - + - + - - + + - - - + + + - - - - - + + + + + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - - + + - + - + - + - + - + - - + + - - - + + + - + - + - + - + - - + + - - - - + + + + - - - - - + + + + + - + - + - - + + - - + + - - + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - - - + + + - - - - + + + + - - - + + + - + - - + + - + - - - + + + - + - - + + - - + + - - + + - + - + - - + + - + - + - - + + - + - - + + - + - - - + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - - - - - - + + + + + + - - - + + + - + - - + + - + - + - + - - + + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - - - - - - + + + + + + - - - + + + - + - + - - + + - - + + - + - - + + - - + + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - - + + - + - + - - - - + + + + - + - - + + - + - + - + - + - - + + - - - + + + - + - + - - + + - + - + - + - - - - + + + + - + - + - - + + - - + + - + - + - - + + - + - + - - - + + + - - + + - - + + - - + + - - - - + + + + - - + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - + + - + - + - - + + - + - - + + - + - - + + - + - - - + + + - - - + + + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - - - - - - + + + + + + - + - - + + - + - + - + - + - + - + - + - - + + - + - - - + + + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - - - + + + - + - + - - + + - + - - + + - + - - + + - + - - - + + + - + - - + + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - - - + + + - + - + - - - - - - - + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - - - - - + + + + + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - - + + - - - - + + + + - - - - + + + + - + - + - + - - + + - - - + + + - - - - - - - - - - + + + + + + + + + + - - - - + + + + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + - - - - - + + + + + - + - - + + - + - + - + - + - + - - - + + + - + - + - - + + - + - - + + - + - - + + - + - + - + - + - + - - - + + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - - + + + - + - - + + - + - + - + - - - + + + - + - - - + + + - + - + - - - + + + - + - - + + - + - - + + - + - - + + - + - + - + - - - + + + - - + + - + - - + + - + - + - + - - - + + + - + - - - + + + - + - - + + - + - - - + + + - - + + - + - - - - - - - - + + + + + + + + - + - - + + - + - - - - + + + + - + - - - + + + - + - - - + + + - + - - + + - + - - - - + + + + - + - - + + - + - + - + - - - - - + + + + + - + - - + + - - + + - - - - - + + + + + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - + - + - - - - - - - - - - + + + + + + + + + + - - - - + + + + - + - + - - + + - - + + - + - - + + - + - - - - + + + + - + - - - + + + - + - - - + + + - + - - + + - + - - + + - + - + - + - - + + - - + + - + - + - + - + - - + + - + - - + + - + - - - - + + + + - + - - + + - + - - - - + + + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - + - + - + - - - - + + + + - + - + - + - + - + - - + + - + - - - - + + + + - - - - - - - - - + + + + + + + + + - + - + - + - - + + - - + + - + - + - + - + - + - - - + + + - + - + - + - + - + - + - + - - + + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - - + + - + - + - + - - + + - + - + - + - - + + - - - + + + - - - + + + - - + + - + - + - + - + - + - + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - - + + - - + + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - - + + + + - + - - - - + + + + - + - - + + - + - - - + + + - - + + - - + + - + - + - + - - - - - + + + + + - - - - - - + + + + + + - + - + - + - + - + - + - + - + - + - - + + - + - + - + - + - + - - + + - + - + - + - + - - + + - + - + - + - - + + - - + + - + - + - - + + - + - + - + - - + + - - + + - - - + + + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - - - + + + - + - - - + + + - + - - - - + + + + - - + + - - + + - + - - + + - + - - - - - + + + + + - - - - - + + + + + - + - - + + - - + + - + - + - + - - + + - + - - + + - - + + - - + + - + - + - + - + - + - - + + - + - - - + + + - - + + - + - + - + - - + + - + - - + + - + - - + + - + - + - + - - - - - - + + + + + + - + - - + + - + - - + + - + - - + + - + - - + + - + - - + + - + - + - + - - - - - + + + + + - + - - + + - + - - + + - - + + - + - - + + - - + + - + - - - - + + + + - + - - + + - + - - + + - - + + - + - - - - - + + + + + - + - - + + - + - - - + + + - - + + - + - - + + - - + + - + - - + + - + - - + + - + - - - + + + - + - - + + - + - - + + - - + + - + - - - + + + - + - - + + - - + + - + - - + + - - + + - + - + - + - - - - - - - - + + + + + + + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + - - - - - + + + + + - + - - + + - + - - + + - + - - + + - - + + - + - - + + - + - - + + - - + + - + - - + + @@ -6550,1490 +5374,1490 @@ This message has to be configured before transmission. - + - + - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - + + + + + + + + - - - - - - + + + + + + - - + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - + + + + + - - - - + + + + - - - - - - - - + + + + + + + + - - - - - - - - - + + + + + + + + + - - - - - - - - - - + + + + + + + + + + - - - - - - + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + - - - - + + + + - + diff --git a/cesar/maximus/doc/fulminata_maximus_user_guide.odt b/cesar/maximus/doc/fulminata_maximus_user_guide.odt old mode 100755 new mode 100644 diff --git a/cesar/maximus/doc/fulminata_maximus_user_guide.xmi b/cesar/maximus/doc/fulminata_maximus_user_guide.xmi old mode 100755 new mode 100644 diff --git a/cesar/maximus/doc/img/picture_1.png b/cesar/maximus/doc/img/picture_1.png new file mode 100644 index 0000000000..52f3540a5f Binary files /dev/null and b/cesar/maximus/doc/img/picture_1.png differ diff --git a/cesar/maximus/doc/img/picture_13.png b/cesar/maximus/doc/img/picture_13.png new file mode 100644 index 0000000000..73d280251b Binary files /dev/null and b/cesar/maximus/doc/img/picture_13.png differ diff --git a/cesar/maximus/doc/img/picture_6.png b/cesar/maximus/doc/img/picture_6.png new file mode 100644 index 0000000000..e69e9d7098 Binary files /dev/null and b/cesar/maximus/doc/img/picture_6.png differ diff --git a/cesar/maximus/doc/img/picture_7.png b/cesar/maximus/doc/img/picture_7.png new file mode 100644 index 0000000000..1a0bf093ef Binary files /dev/null and b/cesar/maximus/doc/img/picture_7.png differ diff --git a/cesar/maximus/doc/umbrello_png/CoreEngine.png b/cesar/maximus/doc/umbrello_png/CoreEngine.png new file mode 100644 index 0000000000..08d33b5f94 Binary files /dev/null and b/cesar/maximus/doc/umbrello_png/CoreEngine.png differ diff --git a/cesar/maximus/doc/umbrello_png/Ethernet.png b/cesar/maximus/doc/umbrello_png/Ethernet.png new file mode 100644 index 0000000000..bcdee79095 Binary files /dev/null and b/cesar/maximus/doc/umbrello_png/Ethernet.png differ diff --git a/cesar/maximus/doc/umbrello_png/Function_Call.png b/cesar/maximus/doc/umbrello_png/Function_Call.png new file mode 100644 index 0000000000..5555d1962e Binary files /dev/null and b/cesar/maximus/doc/umbrello_png/Function_Call.png differ diff --git a/cesar/maximus/doc/umbrello_png/MPDU.png b/cesar/maximus/doc/umbrello_png/MPDU.png new file mode 100644 index 0000000000..15585c4faa Binary files /dev/null and b/cesar/maximus/doc/umbrello_png/MPDU.png differ diff --git a/cesar/maximus/doc/umbrello_png/Network_Clock.png b/cesar/maximus/doc/umbrello_png/Network_Clock.png new file mode 100644 index 0000000000..baf71f7419 Binary files /dev/null and b/cesar/maximus/doc/umbrello_png/Network_Clock.png differ diff --git a/cesar/maximus/doc/umbrello_png/Phy.png b/cesar/maximus/doc/umbrello_png/Phy.png new file mode 100644 index 0000000000..8c927e7dd2 Binary files /dev/null and b/cesar/maximus/doc/umbrello_png/Phy.png differ diff --git a/cesar/maximus/doc/umbrello_png/Phy_2.png b/cesar/maximus/doc/umbrello_png/Phy_2.png new file mode 100644 index 0000000000..e46176b6ed Binary files /dev/null and b/cesar/maximus/doc/umbrello_png/Phy_2.png differ diff --git a/cesar/maximus/doc/umbrello_png/SciMsg.png b/cesar/maximus/doc/umbrello_png/SciMsg.png new file mode 100644 index 0000000000..2bf647024a Binary files /dev/null and b/cesar/maximus/doc/umbrello_png/SciMsg.png differ diff --git a/cesar/maximus/doc/umbrello_png/SciServer.png b/cesar/maximus/doc/umbrello_png/SciServer.png new file mode 100644 index 0000000000..01801b239a Binary files /dev/null and b/cesar/maximus/doc/umbrello_png/SciServer.png differ diff --git a/cesar/maximus/doc/umbrello_png/System.png b/cesar/maximus/doc/umbrello_png/System.png new file mode 100644 index 0000000000..1d2fd7edd2 Binary files /dev/null and b/cesar/maximus/doc/umbrello_png/System.png differ diff --git a/cesar/maximus/doc/umbrello_png/User_Interface.png b/cesar/maximus/doc/umbrello_png/User_Interface.png new file mode 100644 index 0000000000..5590d98ade Binary files /dev/null and b/cesar/maximus/doc/umbrello_png/User_Interface.png differ -- cgit v1.2.3