예제 #1
0
        /// <summary>
        /// Обработчик таймера, реализация счетчика перед фотографированием для всего цикла фотографирования
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer1_Tick(object sender, EventArgs e)
        {
            //Выполнять ли таймер (лучше управлять флагом разрешения на эту логику, чем мучаться управлять самим таймером)
            if (!_timerActionEnabled)
            {
                return;
            }

            if (_cameraService.IsPhotoThreadAlive())//Ждем пока завершится потом съемки + выставления картинки. Таймеру дадут работать, как только отфоткает, но не выставит картинку
            {
                return;
            }

            lock (_lock)
            {
                if (_foucesSDKError) //Если ошибка из сдк при наведении фокуса
                {
                    _foucesSDKError = false;

                    _timerActionEnabled = false;
                    new MessageFocusError().ShowDialog();
                    _timerActionEnabled = true;
                }
            }
            switch (_timer)
            {
            case 1:
            {
                pbOne.Visible   = true;
                pbTwo.Visible   = false;
                pbThree.Visible = false;
            }
            break;

            case 2:
            {
                pbOne.Visible   = false;
                pbTwo.Visible   = true;
                pbThree.Visible = false;
            }
            break;

            case 3:
            {
                pbOne.Visible   = false;
                pbTwo.Visible   = false;
                pbThree.Visible = true;
            }
            break;

            case 4:
            {
                pbOne.Visible   = false;
                pbTwo.Visible   = false;
                pbThree.Visible = true;
            }
            break;

            case 5:
            {
                pbOne.Visible   = false;
                pbTwo.Visible   = false;
                pbThree.Visible = false;

                _timer = 0;

                MakeNextFoto();

                //Если фотоцикл завершен
                if (_currentFotoIndex >= _fotoVulae - 1)
                {
                    _timerActionEnabled = false;
                }
                //timer1.Stop();

                return;
            }
            }

            _timer++;
        }