Real-Time Java AOCS Framework v1.0 API Specification

RtjAocsFramework.OperatingSystemObjects
Interface ActiveObject

All Known Subinterfaces:
TelecommandLoader
All Known Implementing Classes:
ControllerManager, DummyAocsClock, FailureDetectionManager, FailureRecoveryManager, JbedSmmTelecommandLoader, JbedSmmTmSender, ManoeuvreManager, TelecommandManager, TelemetryManager, TestTelecommandLoader, UnitManager

public interface ActiveObject

Interface characterizing active objects.

The framework assumes a cyclical system. Within a cycle, active objects are released for execution by an external agent (perhaps a scheduler). Release of active objects may be time-triggered or sporadic.

The framework achieves independence from the scheduling policy by stipulating that an active object should implement method runOneCycle in a manner that makes no assumptions about the frequency with which the method is called or the relative orders in which this method is called on different objects.

Copyright: see the Copyright Notice.

Version:
1.0
Author:
Alessandro Pasetti (University of Konstanz)
See Also:
The Framework Design Document.

Method Summary
 boolean initialize()
          Initialize an active object before it is scheduled.
 void runOneCycle(int deadline)
          Perform all actions associated to the current cycle.
 boolean terminate()
          Perfrom any shutdown actions before an active is de-scheduled.
 

Method Detail

runOneCycle

public void runOneCycle(int deadline)
Perform all actions associated to the current cycle.

Parameters:
deadline - deadline by which the object must have returned. This parameter allows implementation of cooperative scheduling.

initialize

public boolean initialize()
Initialize an active object before it is scheduled.

Returns:
true if initialization was successful.

terminate

public boolean terminate()
Perfrom any shutdown actions before an active is de-scheduled.

Returns:
true if shutdown was successful.

Real-Time Java AOCS Framework v1.0 API Specification

Real-Time Java AOCS Framework project home page

Automatic Control Laboratory, ETH Zuerich
Physikstrasse 3
CH-8092 Zuerich, Switzerland