Esempio n. 1
0
        private CollectCommand RunDanger(int reps, int repserr, LoggerStability stability, bool useThread, bool useException)
        {
            StartCollect(false, true);
            StartLog("Log");
            int num = Logs.Count - 1;

            Assert.AreEqual(0, Logs[num].Events.Count);
            int i = 0;

            StartDanger(reps, stability, "Операция", useThread).Run(() =>
            {
                Assert.AreEqual(i * 4 + 1, Logs[num].Events.Count);
                AddEvent("Попытка");
                Assert.AreEqual(i * 4 + 2, Logs[num].Events.Count);
                if (i++ < repserr)
                {
                    if (useException)
                    {
                        throw new Exception("Err");
                    }
                    AddError("Ошибка");
                }
            }, () =>
            {
                Assert.AreEqual(i * 4, Logs[num].Events.Count);
                AddEvent("Повтор");
                Assert.AreEqual(i * 4 + 1, Logs[num].Events.Count);
                return(true);
            });
            return(FinishCollect());
        }
Esempio n. 2
0
        //Создание тестового логгера
        public static Logger CreateTestLogger(LoggerStability stability = LoggerStability.Single)
        {
            var logger = new Logger(new TestIndicator(), stability);

            logger.History = new TestHistory(logger);
            return(logger);
        }
Esempio n. 3
0
 //Запуск команды, обрамляющей опасную операцию
 public DangerCommand StartDanger(double startProcent, double finishProcent,
                                  int repetitions,           //Cколько раз повторять, если не удалась (вместе с первым)
                                  LoggerStability stability, //Минимальная LoggerStability, начиная с которой выполняется более одного повторения операции
                                  string eventMess,          //Сообщение о событии для записи в историю
                                  bool useThread = false,    //Запускать опасную операцию в другом потоке, чтобы была возможность ее жестко прервать
                                  int errWaiting = 0)        //Cколько мс ждать при ошибке
 {
     return(Logger.StartDanger(startProcent, finishProcent, repetitions, stability, eventMess, useThread, errWaiting));
 }
Esempio n. 4
0
 internal DangerCommand(Logger logger, Command parent, double startProcent, double finishProcent,
                        int repetitions,
                        LoggerStability stability,          //Минимальная LoggerStability, начиная с которой выполняется более одного повторения операции
                        string eventMess,
                        bool useThread = false,
                        int errWaiting = 0)
     : base(logger, parent, startProcent, finishProcent)
 {
     _repetitions = Logger.Stability >= stability ? repetitions : 1;
     _useThread   = useThread;
     _errWaiting  = errWaiting;
     _eventMess   = eventMess;
 }
Esempio n. 5
0
        public static string ToEnglish(this LoggerStability stability)
        {
            switch (stability)
            {
            case LoggerStability.Periodic:
                return("Reriodic");

            case LoggerStability.Single:
                return("Single");

            case LoggerStability.RealTimeFast:
            case LoggerStability.RealTimeSlow:
                return("RealTime");
            }
            return(null);
        }
Esempio n. 6
0
 protected BaseThread(ProcessProject project, int id, string name, IIndicator indicator, LoggerStability stability)
     : base(null, project.Context, project.ProgressContext)
 {
     Logger         = new Logger(indicator, stability);
     Logger.History = ItStatic.CreateHistory(Logger, project.App.Code + '\\' + project.Code + id);
     State          = ThreadState.Stopped;
     Project        = project;
     Id             = id;
     Name           = name;
 }
Esempio n. 7
0
 public Logger(IIndicator indicator, LoggerStability stability = LoggerStability.Single)
 {
     Indicator = indicator;
     Stability = stability;
 }
Esempio n. 8
0
 public DangerCommand StartDanger(int repetitions, LoggerStability stability, string eventMess, bool useThread = false, int errWaiting = 0)
 {
     return(StartDanger(Procent, Procent, repetitions, stability, eventMess, useThread, errWaiting));
 }