INET Framework for OMNeT++/OMNEST
inet::IdealOscillator Class Reference

#include <IdealOscillator.h>

Inheritance diagram for inet::IdealOscillator:
inet::OscillatorBase inet::IOscillator inet::StringFormat::IDirectiveResolver

Public Member Functions

virtual simtime_t getComputationOrigin () const override
 Returns the oscillator computation origin from which the ticks are measured. More...
 
virtual simtime_t getNominalTickLength () const override
 Returns the nominal time interval between subsequent ticks. More...
 
virtual int64_t computeTicksForInterval (simtime_t timeInterval) const override
 Returns the number of ticks in the specified time interval measured from the oscillator computation origin. More...
 
virtual simtime_t computeIntervalForTicks (int64_t numTicks) const override
 Returns the smallest simulation time interval for the specified number of ticks measured from the oscillator computation origin. More...
 
- Public Member Functions inherited from inet::OscillatorBase
virtual const char * resolveDirective (char directive) const override
 
- Public Member Functions inherited from inet::IOscillator
virtual ~IOscillator ()
 

Protected Member Functions

virtual void initialize (int stage) override
 
virtual void finish () override
 
- Protected Member Functions inherited from inet::OscillatorBase
virtual int numInitStages () const override
 
virtual void updateDisplayString () const
 

Protected Attributes

simtime_t origin
 
simtime_t tickLength
 
- Protected Attributes inherited from inet::OscillatorBase
const char * displayStringTextFormat = nullptr
 

Additional Inherited Members

- Static Public Attributes inherited from inet::OscillatorBase
static simsignal_t driftRateChangedSignal = cComponent::registerSignal("driftRateChanged")
 
- Static Public Attributes inherited from inet::IOscillator
static simsignal_t preOscillatorStateChangedSignal = cComponent::registerSignal("preOscillatorStateChanged")
 
static simsignal_t postOscillatorStateChangedSignal = cComponent::registerSignal("postOscillatorStateChanged")
 

Member Function Documentation

◆ computeIntervalForTicks()

simtime_t inet::IdealOscillator::computeIntervalForTicks ( int64_t  numTicks) const
overridevirtual

Returns the smallest simulation time interval for the specified number of ticks measured from the oscillator computation origin.

For example, for 0 ticks returns 0, for 1 tick returns the remaining time till the next tick, and so on.

Implements inet::IOscillator.

39 {
40  return tickLength * numTicks;
41 }

◆ computeTicksForInterval()

int64_t inet::IdealOscillator::computeTicksForInterval ( simtime_t  timeInterval) const
overridevirtual

Returns the number of ticks in the specified time interval measured from the oscillator computation origin.

Note that each tick interval taken into consideration may be different from the nominal tick length. Returns the #ticks in (computation origin, computation origin + time interval].

Implements inet::IOscillator.

34 {
35  return timeInterval.raw() / tickLength.raw();
36 }

◆ finish()

void inet::IdealOscillator::finish ( )
overrideprotectedvirtual
28 {
29  OscillatorBase::finish();
30  emit(driftRateChangedSignal, 0.0);
31 }

◆ getComputationOrigin()

virtual simtime_t inet::IdealOscillator::getComputationOrigin ( ) const
inlineoverridevirtual

Returns the oscillator computation origin from which the ticks are measured.

There may or may not be an actual tick at the returned simulation time.

Implements inet::IOscillator.

27 { return origin; }

◆ getNominalTickLength()

virtual simtime_t inet::IdealOscillator::getNominalTickLength ( ) const
inlineoverridevirtual

Returns the nominal time interval between subsequent ticks.

This value is usually different from the actual amount of elapsed time between ticks.

Implements inet::IOscillator.

28 { return tickLength; }

◆ initialize()

void inet::IdealOscillator::initialize ( int  stage)
overrideprotectedvirtual

Reimplemented from inet::OscillatorBase.

15 {
17  if (stage == INITSTAGE_LOCAL) {
18  origin = simTime();
19  tickLength = par("tickLength");
20  if (tickLength == 0)
21  tickLength.setRaw(1);
22  WATCH(tickLength);
23  emit(driftRateChangedSignal, 0.0);
24  }
25 }

Member Data Documentation

◆ origin

simtime_t inet::IdealOscillator::origin
protected

Referenced by initialize().

◆ tickLength

simtime_t inet::IdealOscillator::tickLength
protected

The documentation for this class was generated from the following files:
inet::OscillatorBase::initialize
virtual void initialize(int stage) override
Definition: OscillatorBase.cc:14
inet::IdealOscillator::tickLength
simtime_t tickLength
Definition: IdealOscillator.h:20
inet::OscillatorBase::driftRateChangedSignal
static simsignal_t driftRateChangedSignal
Definition: OscillatorBase.h:19
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::IdealOscillator::origin
simtime_t origin
Definition: IdealOscillator.h:19