.. role:: raw-html-m2r(raw) :format: html Type Library ------------ The type library provides the user with an interface to define complex types, further than the pre-existing fundamental types you get in MARTe2. The basic types are defined as: https://vcis.f4e.europa.eu/marte2-docs/master/html/core/types/types.html?highlight=types .. image:: _static/images/type_database.png :target: _static/images/type_database.png :alt: Type Database Window Opening the type database ^^^^^^^^^^^^^^^^^^^^^^^^^ You can open the type database from the main menu at Advanced->Type Database. .. image:: _static/images/open_typedb.png :target: _static/images/open_typedb.png :alt: Opening the Type Database window File Menu ^^^^^^^^^ The file menu operations allow you to: * Import: You can import a set of header files stored within a directory to the type database. * Export: You can export the type database to a directory as a set of header files. * Exit: Exits the application .. note:: The applicatin does not store types in MARTe2 compatible type definitions as those headers are highly complex. The MARTe2 compatible headers are generated during the compilation stage. Adding/Removing types ^^^^^^^^^^^^^^^^^^^^^ You can add or remove types from your type database via the buttons indicated below. .. image:: _static/images/type_database_addtypes.png :target: _static/images/type_database_addtypes.png :alt: Type Database Window You can select to rename a type in the type name and then configure the elements of a type with the type definition panel section. .. note:: You cannot modify the Version number, this is automatically incremented whenever you make a change to a type and save it. Old versions are backed up in an internal archive available at ~/.xmarte/type_db/archive. Configuring a Type ^^^^^^^^^^^^^^^^^^ .. image:: _static/images/type_config.png :target: _static/images/type_config.png :alt: Type Configuration To configure a type you can use the buttons below to: * Reset: the type to it's initial definition from previous save. * Save: Save the current type definition, increments the version name and backs up the old version to an internal archive. * Add: Adds a new element to the type definition. * Remove: removes the selected elements in the configuration panel from the type definition. .. image:: _static/images/selecting_type.png :target: _static/images/selecting_type.png :alt: Type Configuration The type selection is auto-populating to give the user a definitive list of available types. .. note:: the type selector loads existing complex types from within the type database as well as fundamental MARTe2 types.