Пример #1
0
        /// <summary>
        /// Инициализация работы ядра приложения.
        /// </summary>
        public void Initialize(AppConfig config)
        {
            isStopped      = false;
            this.appConfig = config;
            snsrLogger     = new SnsrLogger();

            snsrLogger.LogInfo("Initializing application...");


            // Инициализация ядра приложения.
            // Загрузка модулей (каналов) опроса и мониторинга данных приборов.
            // call db initialize from app config.

            // Запуск ядра опроса для работы с этими модулями.
            pollCore = new PollCore();

            snsrLogger.LogInfo("Starting poll core...");
            pollCore.Start();

            while (true)
            {
                lock (syncObject)
                {
                    if (isStopped) // Вызвать закрытия всех потоков приложения в ядре опроса.
                    {
                        snsrLogger.LogInfo("Stopping poll core...");
                        pollCore.Stop();
                        return;
                    }
                }
            }
        }
Пример #2
0
        public void Start()
        {
            if (isStarted)
            {
                return;
            }

            isStarted = true;
            // При старте загружаются каналы из БД с модулями опроса.

            List <IChannel> commChannels = DbService.LoadCommChannels();

            SnsrLogger logger = ApplicationCore.GetInstance().GetLogger();

            logger.LogDebug("Starting poll core.");

            foreach (var commChannel in commChannels)
            {
                StartChannel(commChannel);
            }
        }