/// <summary>
 /// Инициализирует аргументы события останова причиной останова машины.
 /// </summary>
 /// <param name="reason">Причина останова машины Поста.</param>
 public PostMachineStopEventArgs(PostMachineStopReason reason)
 {
     _reason = reason;
 }
예제 #2
0
        private void Stop(PostMachineStopReason reason)
        {
            if (_ops == null)
                throw new Exception("Невозможно остановить работу машины Поста. Машина итак не запущена");

            _ops = null;
            _opNum = 0;

            if (OnMachineStopped != null)
                OnMachineStopped(this, new PostMachineStopEventArgs(reason));
        }
예제 #3
0
        /// <summary>
        /// Возвращает строковую интерпретацию кода причины останова машины Поста.
        /// </summary>
        /// <param name="reason">Код причины останова машины Поста.</param>
        private string DecodeReason(PostMachineStopReason reason)
        {
            string res;

            switch (reason)
            {
                case PostMachineStopReason.OUT_OF_OPERATION_NUMBER:
                    res = "Переход к несуществующей операции";
                    break;
                case PostMachineStopReason.REMOVE_NULL_LABEL:
                    res = "Попытка стирания несуществующей метки";
                    break;
                case PostMachineStopReason.SET_EXISTING_LABEL:
                    res = "Попытка установки метки в ячейку с меткой";
                    break;
                case PostMachineStopReason.STOP_OPERATION:
                    res = "Вызвана команда останова";
                    break;
                case PostMachineStopReason.USER_INTERRUPT:
                    res = "Вмешательство пользователя";
                    break;
                default:
                    res = "Причина неизвестна";
                    break;
            }

            return res;
        }