示例#1
0
 private void CheckDrivingResult(bool drivingResult, SpiritDispenserPosition newPosition)
 {
     if (drivingResult)
     {
         _currentStatus.OnNext(Status.Ready);
         CurrentPosition = newPosition;
     }
     else
     {
         _currentStatus.OnNext(Status.NotReady);
         CurrentPosition = SpiritDispenserPosition.Undefined;
     }
 }
示例#2
0
        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);
        }