Skip to content

Commit a133c68

Browse files
committed
Add resetOscillator parameter to StepClockServo module
1 parent f92d021 commit a133c68

3 files changed

Lines changed: 15 additions & 1 deletion

File tree

src/inet/clock/servo/StepClockServo.cc

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,18 @@ namespace inet {
1313

1414
Define_Module(StepClockServo);
1515

16+
void StepClockServo::initialize(int stage)
17+
{
18+
ClockServoBase::initialize(stage);
19+
if (stage == INITSTAGE_LOCAL)
20+
resetOscillator = par("resetOscillator");
21+
}
22+
1623
void StepClockServo::adjustClockForDifference(clocktime_t timeDifference, ppm rateDifference)
1724
{
1825
Enter_Method("adjustClockForDifference");
1926
EV_INFO << "Immediately adjusting clock time and oscillator compensation for difference" << EV_FIELD(timeDifference) << EV_FIELD(rateDifference) << EV_ENDL;
20-
clock->setClockTime(clock->getClockTime() - timeDifference, rateDifference, true);
27+
clock->setClockTime(clock->getClockTime() - timeDifference, rateDifference, resetOscillator);
2128
}
2229

2330
} // namespace inet

src/inet/clock/servo/StepClockServo.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ namespace inet {
1414

1515
class INET_API StepClockServo : public ClockServoBase
1616
{
17+
protected:
18+
bool resetOscillator = true;
19+
20+
protected:
21+
virtual void initialize(int stage) override;
22+
1723
public:
1824
virtual void adjustClockForDifference(clocktime_t timeDifference, ppm rateDifference) override;
1925
};

src/inet/clock/servo/StepClockServo.ned

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,4 +52,5 @@ module StepClockServo extends ClockServoBase like IClockServo
5252
{
5353
parameters:
5454
@class(StepClockServo);
55+
bool resetOscillator = default(true);
5556
}

0 commit comments

Comments
 (0)