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
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
Inheritance diagram¶
Known subclasses¶
Name |
Type |
Description |
|---|---|---|
compound module |
No-op clock servo. |
|
compound module |
Step (bang-bang) clock servo. |
Extends¶
Name |
Type |
Description |
|---|---|---|
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");
}