private void CheckDrivingResult(bool drivingResult, SpiritDispenserPosition newPosition) { if (drivingResult) { _currentStatus.OnNext(Status.Ready); CurrentPosition = newPosition; } else { _currentStatus.OnNext(Status.NotReady); CurrentPosition = SpiritDispenserPosition.Undefined; } }
public async Task ReferenceDriveAsync() { if (_emergencyStop.EmergencyStopPressed) { return; } CurrentPosition = SpiritDispenserPosition.Undefined; _currentStatus.OnNext(Status.NotReady); var timeToMoveMotorCompletelyUp = SpiritDispenserSetting.DriveTimeFromReleaseToHomePosition + SpiritDispenserSetting.DriveTimeFromHomePosToBottleChange; var drivingSuccessfully = await _spiritSpenderMotor.DriveForwardAsync(timeToMoveMotorCompletelyUp, _cancelMovementTokensource.Token); CheckDrivingResult(drivingSuccessfully, SpiritDispenserPosition.BottleChange); }