Beispiel #1
0
        private void DoCheckLines(object sender, DoWorkEventArgs e)
        {
            var currentTime   = DateTime.Now;
            var currentMinute = currentTime.Hour * 60 + currentTime.Minute;

            if (currentMinute == lastMinutes)
            {
                return;
            }

            lastMinutes = currentMinute;
            foreach (var lineConfiguration in configuration.Lines)
            {
                if (currentMinute % lineConfiguration.Interval == 0)
                {
                    logger.Info("Получение данных серии " + lineConfiguration.Id);
                    ValuesPackage package;
                    var           isReadyParameters = TryGetValuesPackages(lineConfiguration, out package);
                    if (isReadyParameters)
                    {
                        package.Time = new DateTime(currentTime.Year, currentTime.Month, currentTime.Day,
                                                    currentTime.Hour, currentTime.Minute, 0);
                        logger.Info(string.Format("Передача данных серии {0} в ИТС.", lineConfiguration.Id));
                        var isStored = itsConnector.TryWritePackage(package);
                        if (!isStored)
                        {
                            logger.Info(string.Format("Сохранение данных серии {0} " +
                                                      "в буфер", lineConfiguration.Id));
                            dataBuffer.AddValues(package);
                        }
                    }
                }
            }
        }