/// <summary> /// Инициализирует аргументы события останова причиной останова машины. /// </summary> /// <param name="reason">Причина останова машины Поста.</param> public PostMachineStopEventArgs(PostMachineStopReason reason) { _reason = reason; }
private void Stop(PostMachineStopReason reason) { if (_ops == null) throw new Exception("Невозможно остановить работу машины Поста. Машина итак не запущена"); _ops = null; _opNum = 0; if (OnMachineStopped != null) OnMachineStopped(this, new PostMachineStopEventArgs(reason)); }
/// <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; }