ClockServoBase

Package: inet.clock.base

ClockServoBase

compound module

Base module for clock servos.

Summary


Provides common wiring/parameters for modules that implement a clock servo (see ~IClockServo). A servo disciplines a local clock (~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,2)). 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.

<b>See also:</b> ~IClock, ~IClockServo

Inheritance diagram

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the 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,2))

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