private void Phx42OnDataPolled(object sender, DataPolledEventArgs dataPolledEventArgs) { try { IsRunning = bool.Parse(dataPolledEventArgs.PhxProperties[Phx42PropNames.IsIgnited]); PhxProperties = dataPolledEventArgs.PhxProperties; try { var lastPpmsCount = phx42.LastPpms.Count; var skip = Math.Max(lastPpmsCount - PpmAverageCount, 0); var take = Math.Min(PpmAverageCount, lastPpmsCount); dataPolledEventArgs.PhxProperties["PPMAverage"] = Math.Round(phx42.LastPpms.Skip(skip).Take(take).Average(), 1).ToString(); } catch (Exception) { dataPolledEventArgs.PhxProperties["PPMAverage"] = "-100"; //ignore } Ppm = dataPolledEventArgs.Ppm; OnPhxDataPolled(dataPolledEventArgs); } catch (Exception ex) { phx42.WriteToPhxLog("Couldn't parse polled data:"); phx42.WriteExceptionToPhxLog(ex); } }
protected virtual void OnPhxDataPolled(DataPolledEventArgs e) { PhxDataPolled?.Invoke(this, e); InvokeReadingUpdated(new ReadingUpdatedEventArgs(e.Ppm, e.Ppm.ToString())); }