FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
0120 — Sample clocks and controllers start at 0 whatever TStart is
ID 0120
Class BUG
Severity 2
Status blocked

Models: —

Found: 2026-10-24 review (doc/reviews/fhsim_fishery-2026-10-24, N4)

Decision needed: fhsim passes the run's start time to FinalSetup. Owner or fhsim feature.

Evidence

ModelAssemblyService::CompleteSimObjectSetup (fhsim/src/engine/model/ModelAssemblyService.cpp:128) calls FinalSetup(0, ...) with a literal 0, not TStart. The fishery clocks (SampledSensor, AuvUndulateDiveControl, AuvUndulateMissionControl) are now moved to the T of FinalSetup (SampleClock::StartAt, fishery 3.1.6), which is correct once fhsim passes TStart. Until then a run with TStart = 1000 s still finds 10 001 sample periods due at its first accepted step and warns that the step is too coarse. AcceptedStep is first called after the first step, so the first call cannot tell the start time either.

Effect

A run with TStart other than 0 takes a burst of samples (sensors) or one evaluation (controllers) at its first step, and a false warning. No shipped input has TStart other than 0.

Possible fix

fhsim: pass the integrator's tStart to FinalSetup (and document it). No fishery change is then needed; SensorCtd::SeedHeldReading also reads that T.

Test that would prove it

AuvSampleClock.StartsAtTStart_N4 pins the clock; an end-to-end run with TStart = 1000 and a 10 Hz CTD would prove the fhsim side.

Risk

None for TStart = 0: StartAt(0) leaves the clock where it was.