Telecommands encode actions to be performed on or by the AOCS software. The execution of a telecommand causes the action to be performed. Telecommands are encapsualted in objects that are instantiated from classes ultimately derived from class Telecommand. Telecommands are intended to be very light weight objects because they may have to be created dynamically as they are received. Class Telecommand is therefore directly derived from class RootObject rather than from class AocsObject as is the case for most other framework components. Similarly, unlike most other framework components, telecommands are not Java Beans.
The AOCS software is assumed to be built as a collection of objects that expose certain interfaces. The telecommands use these exposed interfaces to perform their assigned tasks. In practice, a telecommand is a component that exposes a method called execute which performs the actions associated with the telecommand itself. The execute method is called by a telecommand manager which in this way remains completely insulated from any knowledge of what the telecommand does and how it does it. Telecommand management is based on the Telecommand Management design pattern.
A telecommand transaction encapsulates a sequence of telecommands that can be treated as a transaction. This means that in case of failure of a telecommand in the sequence, telecommands that have already been executed can be unexecuted and the AOCS can be returned to the state in which it was at the time the transaction began. Telecommand transactions are made up of a sequence of linked telecommands that are executed as a single entity. The individual telecommands in a telecommand transaction are called transaction telecommands. The AOCS framework introduces the telecommand transaction design pattern to address the problem of treating some telecommands or some sequences of telecommands as telecommand transactions. The pattern calls for the introduction of a class TransactionTelecommand that extends calls Telecommand with an unExecute method that “undoes” the actions of the telecommand.
Telecommand management is performed by two objects: