Ikaros Control Files

Docs > File Formats > Control Files

The execution of IKAROS is controlled by an IKC file that defines what modules to instantiate, their parameters and their connections. The experiment file starts with the standard XML tag and is followed by the main element in the file which is named <group>. This element in turn contains the two main elements types <module> and <connection>.

This document only descriobes the basic aspects of an Ikaros Control File. A complete specification of the file format is also available.

An Example

A typical IKC file is shown below that instantiates two modules and connects them together:

  <?xml version="1.0"?>
  <group>
 
      <module
         class = "InputFile"
         name = "IN"
         filename = "input.txt"
      />

      <module
         class = "Integrator"
         name = "INT"
      />
      
      <connection
         sourcemodule = "IN"
         source = "X
         targetmodule = "INT"
         target = "INPUT"
      />
              
  </group>

The group element contains a list of module element that describes the modules that should be instantiated by the Ikaros kernel at start-up. In the example, the first module is of class "InputFile" and the second is of class "Integrator". The class names refer to the names of the source code files used to generate these module classes. The two modules are also given instance names, in this case "IN" and "INT". These names must be unique for the control file. The attribute "filename" is a parameter to the first modules. These parameters are specific for each module class.


Structure of the network described in the XML file above

The connection element describes a connection between the modules. In the example, there is a single connection between the module "IN" and the module "INT". The attributes "source" and "target" specifices the input and output to use for the connection.

There are several examples of experiment files in the Example folders for the individual modules.

General attributes

There are two of attributes that all modules must have. These are "class" and "name". In addition, it is possible to set two additional attributes: "period" and "phase". These parameters set when and how often the module should run.

For connections, there is the additional attribute "delay" that sets how long the data on that connections should be delayed. The default is 1. It is also possible to set the delay between two modules to 0, but in this case it is necessary to make sure there are no connection loops without delay since this would mean that the input would receive its output before it is generated.

Specific attributes

In addition to the general attributes, each module also has a number of attributes that are specific to each class of module. These attributes are read by each module at start up and are used to set parameters in each module instance.