advance method

  1. @override
Future<void> advance(
  1. NmDomeCalibrationAnswer answer
)
override

Answers a step that needs the operator (display selection, review, blend, colour).

Implementation

@override
Future<void> advance(NmDomeCalibrationAnswer answer) async {
  log.add('calibration.advance ${answer.step.name}${answer.retry ? ' retry' : ''}');
  switch (answer.step) {
    case NmDomeCalibrationStepKind.displaySelect:
      _emit(const NmDomeCalibrationStep(kind: NmDomeCalibrationStepKind.capture, pattern: 'gray-code'));
    case NmDomeCalibrationStepKind.review:
      _emit(
        answer.retry
            ? const NmDomeCalibrationStep(kind: NmDomeCalibrationStepKind.capture, pattern: 'gray-code')
            : const NmDomeCalibrationStep(kind: NmDomeCalibrationStepKind.blend, blendWidth: .15),
      );
    case NmDomeCalibrationStepKind.blend:
      _emit(const NmDomeCalibrationStep(kind: NmDomeCalibrationStepKind.colour, colourGain: 1));
    case NmDomeCalibrationStepKind.colour || NmDomeCalibrationStepKind.audioCorrect:
      _emit(const NmDomeCalibrationStep(kind: NmDomeCalibrationStepKind.apply, resultId: 'result-1'));
    case NmDomeCalibrationStepKind.audioPlay:
      _emit(const NmDomeCalibrationStep(kind: NmDomeCalibrationStepKind.audioCapture, progress: .6));
    case NmDomeCalibrationStepKind.audioCapture:
      _emit(const NmDomeCalibrationStep(kind: NmDomeCalibrationStepKind.audioCorrect, progress: .9));
    default:
  }
}