<< Back to GIL Documentation

Developing Pipeline Stages

All signal data transferred between the Process Model and the External System passes the Transfer Pipeline. The Transfer Pipeline is a chain of stages where each stage can monitor or process the passing data. New stages are developed by implementing the IPipelineStage interface.

Processing

Calls to the Transfer Pipeline and the stages are done within the same thread handling the PM-adapter. The time of processing and the consumed CPU has to be taken into consideration since it may affect the communication with the Process Model resulting in, for example, lost frames.

Setup

Initially setup() is called by GIL. In this call the stage is handed a specification describing all signals to be passing the stage when signal data is transferred between the process model and the external system.

Configuration

In the setup() call, a stage is also handed a implementation specific configuration: GIL reads the gil.config.xml configuration file and parses the 'pipelineStageSettings' section containing stage specific configuration parameters. A Parameters object is created and handed to the stage.

Data flow

When data is transferred between the Process Model and the External System the processSignals() is called on each stage in turn. A stage can just monitor the data but may also process and modify the data.

Control commands

Control commands are executed on the stage as a result of a call on the GIL http API or web interface.

A stage implementation may or may not supply control commands. By implementing availableControlCommands() a list of possible control commands and there parameters can be supplied to GIL. If there are no control commands available an empty collection shall be returned.

GIL will call invokeControlCommand() to execute control commands on a stage.