ClockServoBase

Package: inet.clock.base

compound module ClockServoBase

Base module for clock servos.

Summary


Provides common wiring/parameters for modules that implement a clock servo (see inet.clock.contract.IClockServo). A servo disciplines a local clock (inet.clock.contract.IClock) based on measured offset/rate differences from a reference source. Concrete algorithms (PI/PLL/FLL, etc.) are implemented in subclasses.

Parameters


  • clockModule (string):
    Module path to the controlled clock (implements IClock(1,:ref:2 <neddoc-msg-inet-iclock>)). Typical forms:

    “^.clock” // sibling submodule “host.clock”

    Derived servos resolve and use this clock to apply offset/rate adjustments.

Notes

  • This base does not define the control law or measurement inputs; subclasses

    should obtain measurements (e.g., from a sync protocol) and call their IClockServo implementation to steer the clock.

  • Display icon: control block.

See also: inet.clock.contract.IClock, inet.clock.contract.IClockServo

ClockServoBase

Inheritance diagram

Known subclasses

Name

Type

Description

NoClockServo

compound module

No-op clock servo.

StepClockServo

compound module

Step (bang-bang) clock servo.

Extends

Name

Type

Description

Module

compound module

Base module for all INET compound modules.

Parameters

Name

Type

Default value

Description

displayStringTextFormat

string

“”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

clockModule

string

Path to the controlled clock module (IClock(1,:ref:2 <neddoc-msg-inet-iclock>))

Properties

Name

Value

Description

class

ClockServoBase

display

i=block/control

Source code

//
// Base module for clock servos.
//
// Summary
// -------
// Provides common wiring/parameters for modules that implement a clock servo
// (see ~inet.clock.contract.IClockServo). A servo disciplines a local clock
// (~inet.clock.contract.IClock) based on measured offset/rate differences
// from a reference source. Concrete algorithms (PI/PLL/FLL, etc.) are
// implemented in subclasses.
//
// Parameters
// ----------
// - clockModule (string):
//     Module path to the controlled clock (implements ~IClock). Typical forms:
//       "^.clock"   // sibling submodule
//       "host.clock"
//     Derived servos resolve and use this clock to apply offset/rate adjustments.
//
// Notes
// -----
// - This base does not define the control law or measurement inputs; subclasses
//   should obtain measurements (e.g., from a sync protocol) and call their
//   IClockServo implementation to steer the clock.
// - Display icon: control block.
//
// @see ~inet.clock.contract.IClock, ~inet.clock.contract.IClockServo
//
module ClockServoBase extends Module
{
    parameters:
        string clockModule;         // Path to the controlled clock module (IClock)
        @class(ClockServoBase);
        @display("i=block/control");
}

File: src/inet/clock/base/ClockServoBase.ned