#20: Configurations =================== Project Configurations ********************** Karabo stores device configurations in the so-called Karabo *projects*. .. figure:: images/project_device_configurations.png :align: center :alt: Project device with a default configuration :figclass: align-center Project device with a default configuration The software configurations can be altered **offline** via the **Configurator** before device instantiation. The project will become modified and thus the changes can be saved in the project data base. In reality, it may happen that some devices are rejecting a software configuration if the hardware resident configuration is not editable on instantiation, e.g. PLC devices. Technical: Why persist OFFLINE configurations? ---------------------------------------------- Many devices in the control system have a dynamic structure (schema). This device structure depends on data unavailable to the offline device when instantiated. For example: - A device that builds its own structure from the hardware configuration, or firmware version (e.g. MPOD). - A device retrieves a system definition from the hardware at connection (e.g. PLC devices). - A device with a table element for an extensible definition (e.g. Beam Imager). After instantiation the device building itself up from the table element. - A middlelayer device connects to driver devices to fetch their structure and configurations and then builds itself up. **Online device configurations are likely to conflict with the offline device structure (schema).** Configuration From Past ----------------------- In Karabo, all devices are archived while they are online. Every property change is send to the datalogger devices and stored (disk and/or database). If the changes are not older than ~a month, they can be retrieved and viewed. Either via the trendline widgets for single properties or via the **Configuration From Past** feature. This can be done via the following steps: 1. Right-click the **Device** object. A context menu will show up. 2. Select **Get Configuration** option. A *Configuration Timepoint* dialog will appear. 3. Supply the **Timepoint** (date-time) of the configuration to be retrieved. For convenience, the user can utilize the calendar on the dropdown menu and/or use the preset time buttons. .. figure:: images/configuration_from_past.png :align: center :alt: Configuration from past dialog :figclass: align-center The configuration from past dialog After the configuration request a notification window will pop up once the data logger replied. The operator gets a notification about the failure or success. The reply might take a while as the configuration has to be searched. If the configuration request is successful, it will appear in the configurator. For an online device, the respective changes are highlighted with a blue box and need to be applied. In case of an offline device, the retrieved configuration is merged into the offline configuration.