Simple Module Oscillator

Package: core4inet.scheduler.oscillator
File: src/core4inet/scheduler/oscillator/Oscillator.ned

C++ definition

Abstract Base for a Module representing an oscillator.

See also: ~IOscillator, ~SimpleOscillator

Author: Till Steinbach

Oscillator

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Known subclasses:

Name Type Description
SimpleOscillator simple module

Module representing an oscillator with a simple clock drift behavior. The module schedules a message for every cycle at action_point 0 and then changes the drift by using the drift_change parameter.

Parameters:

Name Type Default value Description
tick double 80ns

Length of a tick

Properties:

Name Value Description
class AbstractSimpleModule
display i=block/mac

Signal emitted when drift changes, contains new drift

Gates:

Name Direction Size Description
out output

Output to the timer module (currently unused)

Signals:

Name Type Unit
currentDrift simtime_t s

Statistics:

Name Title Source Record Unit Interpolation Mode
currentDrift Current drift vector s

Source code:

//
// Abstract Base for a Module representing an oscillator.
//
// @see ~IOscillator, ~SimpleOscillator
//
// @author Till Steinbach
//
simple Oscillator like IOscillator
{
    parameters:
        @class(AbstractSimpleModule);
        @display("i=block/mac");

	    //Signal emitted when drift changes, contains new drift
        @signal[currentDrift](type=simtime_t; unit=s);
        //Statistic of the current drift (Difference of configured and actual tick length in seconds)
        @statistic[currentDrift](title="Current drift"; unit=s; record=vector);

        // Length of a tick
        double tick @unit(s) = default(80ns);

    gates:
        //Output to the timer module (currently unused)
        output out;
}