示例#1
0
        private async void CheckState(MeasurementSettingsEntry settingsEntry)
        {
            string statusMessage = "Checking state of '" + settingsEntry.Name + "'";

            Logger.Log(LogLevel.Info, statusMessage);
            statusModel.StatusMessage = statusMessage;

            try
            {
                List <dynamic>[] lines = await downloader.GetLastRows(settingsEntry.Url, settingsEntry.Selector);

                foreach (List <dynamic> line in lines)
                {
                    Logger.Log(LogLevel.Debug, "Adding line to writer controller.");
                    writerController.AddToQueue(new MeasurementResult(settingsEntry, line, DateTime.Now));
                }
            }
            catch (Exception ex)
            {
                Logger.Log(LogLevel.Error, "CheckState failed with an exception: " + ex.Message);
            }
            finally
            {
                Logger.Log(LogLevel.Info, "CheckState of '" + settingsEntry.Name + "' finished.");
            }
        }
示例#2
0
        private Timer CreateMeasurementTimer(MeasurementSettingsEntry entry)
        {
            var timer = new MeasurementTimer(entry);

            timer.Interval        = entry.UpdateInterval;
            timer.Elapsed        += Timer_Elapsed;
            idsToTimers[entry.Id] = timer;
            return(timer);
        }
示例#3
0
        private void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            MeasurementSettingsEntry settingsEntry = ((MeasurementTimer)sender)?.MeasurementSettingsEntry;

            CheckState(settingsEntry);
        }
 public MeasurementTimer(MeasurementSettingsEntry measurementSettingsEntry) : base()
 {
     this.measurementSettingsEntry = measurementSettingsEntry;
 }