MultiClock

Package: inet.clock.model

MultiClock

compound module

This module contains several subclocks and also implements the clock module interface itself. It exposes the currently active clock to its users. The active clock can be changed programmatically. This module is primarily useful for multi domain gPTP time synchronization.

See also: MultiDomainGptp

clock[numClocks] : like IClock

SettableClock: Models a clock which can be set to a different clock time.

IClock: This module interface is implemented by clock models.

Source:
clock[numClocks]: <default("SettableClock")> like IClock {
    @display("p=200,200,row,200");
}

Usage diagram

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Parameters

Name Type Default value Description
numClocks int

number of subclocks

activeClockIndex int 0

the currently active subclock

Properties

Name Value Description
display i=block/timer
class MultiClock

Signals

Name Type Unit
timeChanged simtime_t

Statistics

Name Title Source Record Unit Interpolation Mode
timeChanged Clock time localSignal(timeChanged) vector linear

Source code

//
// This module contains several subclocks and also implements the clock module
// interface itself. It exposes the currently active clock to its users. The
// active clock can be changed programmatically. This module is primarily useful
// for multi domain gPTP time synchronization.
//
// @see ~MultiDomainGptp
//
module MultiClock like IClock
{
    parameters:
        int numClocks; // number of subclocks
        int activeClockIndex @mutable = default(0); // the currently active subclock
        @display("i=block/timer");
        @class(MultiClock);
        @signal[timeChanged](type=simtime_t);
        @statistic[timeChanged](title="Clock time"; source=localSignal(timeChanged); record=vector; interpolationmode=linear);
    submodules:
        clock[numClocks]: <default("SettableClock")> like IClock {
            @display("p=200,200,row,200");
        }
}

File: src/inet/clock/model/MultiClock.ned