ClockServoBase
Package: inet.clock.base
ClockServoBase
compound moduleBase 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 |
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