29 launchDetector_->update(accel);
30 if (launchDetector_->isLaunched()) {
35 dataSaver_->saveDataPoint(
41 dataSaver_->launchDetected(launchDetector_->getLaunchedTime());
47 verticalVelocityEstimator_->update(accel, alt);
55 fastLaunchDetector_->update(accel);
56 if (fastLaunchDetector_->hasLaunched()) {
61 fldLaunchTime_ms_ = fastLaunchDetector_->getLaunchedTime();
64 dataSaver_->saveDataPoint(
70 dataSaver_->launchDetected(fastLaunchDetector_->getLaunchedTime());
83 launchDetector_->update(accel);
84 if (launchDetector_->isLaunched()) {
89 dataSaver_->saveDataPoint(
98 verticalVelocityEstimator_->update(accel, alt);
101 if (accel.
x.
timestamp_ms - fldLaunchTime_ms_ > fastLaunchDetector_->getConfirmationWindow()) {
105 fldLaunchTime_ms_ = 0;
106 fastLaunchDetector_->reset();
109 dataSaver_->saveDataPoint(
115 dataSaver_->clearPostLaunchMode();
123 verticalVelocityEstimator_->update(accel, alt);
124 apogeeDetector_->update(verticalVelocityEstimator_);
125 if (apogeeDetector_->isApogeeDetected()) {
129 dataSaver_->saveDataPoint(
StateMachine(IDataSaver *dataSaver, LaunchDetector *launchDetector, ApogeeDetector *apogeeDetector, VerticalVelocityEstimator *verticalVelocityEstimator, FastLaunchDetector *fastLaunchDetector)
Wire dependencies for the state machine.