This package defines the classes that support the implementation of sequential data processing chains.

In the AOCS Framework, data that are passed through several consecutive stages of processing will be said to go through a sequential data processing chain. As an example of a sequential data processing chain consider the processing of the raw data collected by a sensor:
· conversion from raw data to engineering units ;
· correction for sensor misalignments;
· bias correction;
· transformation from sensor to satellite reference frame

In another example, an attitude controller processes the raw attitude measurement as follows:
· filtering of raw data to remove the measurement noise;
· filtering to cut off frequencies that might excite solar panel oscillations;
· passage through a controller to compute the control torque.
Once again, each bullet can be seen as representing a processing stage in a sequential data processing chain. In the previous examples, each processing stage was single-input-single-output. However, a processing chain can also include multi-input-multi-output stages.

In considering the implementation of sequential processing chains, a trade-off must be made between generality and complexity: the most general implementation is also the most complex and the simplest implementation cannot cover all cases of processing chains. In the framework, they are implemented using the Control Channels concept. Control channels are based on the composite pattern and cover the most general case of multi-input-multi-output processing stages linked in any arbitrary manner.

A sequential processing chain is made up of inter-connected and nested processing blocks. The term control channel block (or simply  block) is used to designate a processing block that cannot be further decomposed into lower level processing blocks. Blocks chains can be nested within higher-level blocks called superblocks. Superblocks and blocks can be freely mixed in processing chains as in the example in the figure in the next page.

The implementation of sequential data processing chains in the AOCS Framework is discussed in greater detail in a dedicated technical note.