Docs / Yamcs Server Manual / Mission Database / CDMCS MDB Loader



This loader loads the telemetry/telecommand definition directly from the Oracle using the oracle jdbc driver. The relevant configuration file is etc/cdmcs-mdb.yaml.

This configuration file contains, next to the username/password used to connect to the database, the path and the version of the CCU that will be loaded and also the testConfiguration (an end item of type EGSE_TEST_CONFIGURATION).

Based on the CCU parameters and on the opsname of the testConfiguration (the test configuration can only be specified through its opsname, so the opsname must exist and be unique.), Yamcs can determine the following three attributes which are used as attributes of the XTCE header:

  • CCU Internal Version - this is a number uniquely identifying the CCU and the CCU version
  • Test Configuration SID - this is a number uniquely identifying the test configuration
  • Consistency Date - this is the time when the configured CCU has been last modified.

Please refer to Telemetry Processing and to Commanding for details on the loading of the MDB end items and on the mapping to Yamcs structures.

The configuration parameter checkForUpdatedMdb configures Yamcs to check or not the Oracle database for modified versions of the MDB. If the MDB cannot be loaded from the serialized file, the Oracle database is checked nevertheless.

This option is useful for working offline. However if it is set to false, Yamcs will never read new versions of the database, and if the database is modified and SCOE files generated, MCS Tools will refuse to load the SCOE files (it will want old ones corresponding to the saved Yamcs database).

The packet description in CD-MCS MDB is spread over different structures. When read into Yamcs, they are converted into the XTCE structures as follows:

  1. A generic sequence container named “ccsds” is created. This will be the root of the hierarchy. Three parameters are added to this sequence container:

    CCSDS_APID the APID in the CCSDS primary header
    CCSDS_SH_PACKETTYPE the packet type in the CCSDS secondary header
    CCSDS_PACKETID the packet type in the CCSDS secondary header
  2. A generic sequence container named CCSDS_RESPONSE_PACKET inheriting from the “CCSDS” container is created. The inheritance condition is CCSDS_SH_PACKETTYPE=12(Response_packet). This packet can be used by the CIS clients which want to subscribe to all the CCSDS response packets (for example the cmd-history).

  3. All the command responses (CCSDS_ADU_DESCRIPTION which have CCSDS Secondary Header set to CCSDS_RESPONSE_PACKET) are set to inherit the CCSDS_RESPONSE_PACKET container defined above. The inheritance condition is set on the CCSDS_APID, CCSDS_PACKETID parameters.

  4. All others CCSDS_ADU_DESCRIPTION are set to inherit directly the root container CCSDS. The inheritance condition is set also on the CCSDS_APID and CCSDS_PACKETID parameters.

  5. For each CCSDS_ADU_DESCRIPTION that contains a “Reference To a Structure ID or Table” pointing to an end item of type MEASUREMENT_LIST_TABLE, an additional integer parameter is created containing the definition of the “Flexible ID” as defined in this aggregate. Then for each end item of type PUS_STRUCTURE_ID referred in the MEASUREMENT_LIST_TABLE, a sequence container is created in Yamcs, set to inherit the original CCSDS_ADU_DESCRIPTION with the inheritance condition on the Flexible ID as defined in the MEASUREMENT_LIST_TABLE.

Creation of the sequence containers from the CD-MCS MDB

PP Loader

The PP loader scans a configured CD-MCS MDB for all the end items of type UMI_MAPPING_TABLE. The first part of the Opsname (string before the underscore) is used as group name.