ClockServoBase.ned

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

Name Type Description
ClockServoBase compound module

Base module for clock servos.

Source code

//
// Copyright (C) 2025 OpenSim Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
//


package inet.clock.base;

import inet.common.Module;

//
// 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");
}