The DXC Framework is a collection of programs and APIs for running and evaluating diagnostic algorithms (DAs). It is complementary to system XML catalogs and datasets. A DXC Framework installer for Windows may also be downloaded. Competitors must submit DAs that can communicate with and be executed by the DXC Framework. It was designed primarily for the Diagnostic Competition and future competitions, however, it is lightweight and reusable in any context where data from one or more sources needs to be communicated to, processed by, and diagnosed by reasoners. It is distributed under the LGPL.

Contents: APIs- The Java and C++ DXC APIs provide the classes and functionality necessary for data exchange.

Scenario Execution Software - A scenario is an interval of time in which system data is sent to a diagnostic algorithm. StandaloneSDS is used to execute one scenario on its own and send the results to a file. ScenarioLoader is for executing a large collection of scenarios with one or more DAs in an automated fashion (as is necessary to perform benchmarking of algorithms).

Example Diagnostic Algorithms - Two minimal example DAs are provided (along with source code) to demonstrate proper use of the APIs--one in C++, the other in Java.

#Updates to the DXC Framework:

This DxcFramework update (DxcFramework-1.1.zip) provides several important bugfixes and new features (see below). Your questions, feedback and suggestions have been very helpful in improving the software--please continue sending them. A DXC Framework installer update for Windows (DxcFramework-1.1.msi) may also be downloaded.

DxcFramework 1.1 Changelog:

    * Added Evaluator. The Evaluator takes the output generated by scenario execution (stored in ./Scenarios/Results/) and calculates DA evaluation metrics. See README for more information. Cpu time and peak memory usage are currently not reported in Linux, this will change.
    * Added SystemCatalog class for basic XML catalog parsing and validation.
    * Included system catalogs and example scenarios for one system from each track.
    * New StandaloneSDS options: -t: specify wait time (in seconds) to keep listening for diagnoses after scenario end. -v: validate scenarios against corresponding system catalog (Not available in JavaSSDS). Catalogs must be placed in $DXC_HOME/SystemCatalogs, unless a different directory is specified in Dxc.cfg SYSTEMCAT_DIR.
    * Added JavaStandaloneSDS execution script, now just run "JavaStandaloneSDS"
    * Scenario timing changes. DA startup timeout now 20 seconds. Added 20 second post-scenario wait period to allow DAs to send final diagnosis and exit.
    * Scenario timing values can now be edited in Dxc.cfg (values are in milliseconds). Current values reflect our planned competition scenario conditions. Competitors will be notified of any changes to these values.


#Evaluator Update
Please follow these instructions to update the Evaluator in the Framework (see Evaluator.zip below):

   1. Make sure your version of DXC Framework is the most recent (1.1). Source release users, ensure that Java code is built.
   2. Move the copy of Evaluator.jar contained in $DXC_HOME/Bin to Evaluator.jar.backup.
   3. Save new Evaluator.jar to $DXC_HOME/Bin.
   4. Choose desired config file and save to $DXC_HOME (top-level directory), renaming to evalCfg.xml. Use evalCfg.xml.industrial for industrial track metrics/scoring, evalCfg.xml.synthetic for synthetic.
   5. Run "Evaluator > results.txt" (or similar) at the command line. Evaluator will calculate metrics and scores for results files it finds in $DXC_HOME/Scenarios/Results.