start method
Starts a run; the stream reports each step until done, failed or cancel.
Implementation
@override
Stream<NmDomeCalibrationStep> start(NmDomeCalibrationPlan plan) {
log.add('calibration.start ${plan.kind.name}');
unawaited(_out?.close());
_kind = plan.kind;
final out = _out = StreamController<NmDomeCalibrationStep>();
scheduleMicrotask(() {
if (_kind == NmDomeCalibrationKind.audio) {
_emit(const NmDomeCalibrationStep(kind: NmDomeCalibrationStepKind.audioPlay, progress: .3));
} else {
_emit(NmDomeCalibrationStep(kind: NmDomeCalibrationStepKind.displaySelect, displays: displays));
}
});
return out.stream;
}