30 lpStatus = launchDetector->update(accel);
31 fldStatus = fastLaunchDetector->update(accel);
33 if (fastLaunchDetector->hasLaunched()) {
38 fldLaunchTime_ms = fastLaunchDetector->getLaunchedTime();
41 dataSaver->saveDataPoint(
47 dataSaver->launchDetected(fastLaunchDetector->getLaunchedTime());
51 if (launchDetector->isLaunched()) {
56 dataSaver->saveDataPoint(
62 dataSaver->launchDetected(launchDetector->getLaunchedTime());
68 verticalVelocityEstimator->update(accel, alt);
80 lpStatus = launchDetector->update(accel);
82 if (launchDetector->isLaunched()) {
87 dataSaver->saveDataPoint(
96 verticalVelocityEstimator->update(accel, alt);
98 else if (accel.
x.
timestamp_ms - fldLaunchTime_ms > fastLaunchDetector->getConfirmationWindow()) {
102 fldLaunchTime_ms = 0;
103 fastLaunchDetector->reset();
106 dataSaver->saveDataPoint(
112 dataSaver->clearPostLaunchMode();
119 verticalVelocityEstimator->update(accel, alt);
120 apogeeDetector->update(verticalVelocityEstimator);
121 if (apogeeDetector->isApogeeDetected()) {
125 dataSaver->saveDataPoint(
StateMachine(IDataSaver *dataSaver, LaunchDetector *launchDetector, ApogeeDetector *apogeeDetector, VerticalVelocityEstimator *verticalVelocityEstimator, FastLaunchDetector *fastLaunchDetector)
Wire dependencies for the state machine.