} = true; //space out sample requests so they don't all fall on the same 'tick' public void Add(ISampleSubject subject, int interval, int sampleSize, SamplingOptions samplingOptions = SamplingOptions.MEAN_COUNT, int intervalDeviation = -1) { if (!_subjects2data.ContainsKey(subject)) { SubjectData sd = new SubjectData(subject, interval, sampleSize, samplingOptions, intervalDeviation); _subjects2data[subject] = sd; } }
public SubjectData(ISampleSubject subject, int interval, int sampleSize, SamplingOptions samplingOptions, int intervalDeviation) { Subject = subject; Interval = interval; SampleSize = sampleSize; Options = samplingOptions; IntervalDeviation = intervalDeviation; }
public void Remove(ISampleSubject subject) { if (_subjects2data.ContainsKey(subject)) { lock (_subjects2data) { _subjects2data.Remove(subject); } } }
public SubjectData GetSubjectData(ISampleSubject subject) { if (!_subjects2data.ContainsKey(subject)) { return(null); } SubjectData sd = _subjects2data[subject]; return(sd); }
public List <double> GetSubjectSamples(ISampleSubject subject) { if (!_subjects2data.ContainsKey(subject)) { return(null); } SubjectData sd = _subjects2data[subject]; return(sd.Samples); }
public double ProvideSample(ISampleSubject subject, double sample, long interval = -1) { if (!_subjects2data.ContainsKey(subject)) { return(0); } SubjectData sd = _subjects2data[subject]; sd.AddSample(sample, interval); SampleProvided?.Invoke(this, subject); return(sd.Average); }
private void HandleSampleError(ISampleSubject subject, Exception e) { String desc = String.Format("Error when sampling subject {0}: {1} {2}", subject.GetType(), e.GetType(), e.Message); String source; if (subject is ArduinoDevice) { source = ((ArduinoDevice)subject).ID; } else { source = subject.GetType().ToString(); } _erdb.LogEvent(EngineRoomServiceDB.LogEventType.ERROR, source, desc); }
public long GetDurationTotal(ISampleSubject subject) { return(_subjects2data.ContainsKey(subject) ? _subjects2data[subject].DurationTotal : 0); }
public double GetSampleCount(ISampleSubject subject) { return(_subjects2data.ContainsKey(subject) ? _subjects2data[subject].SampleCount : 0); }
public double GetAverage(ISampleSubject subject) { return(_subjects2data.ContainsKey(subject) ? _subjects2data[subject].Average : 0); }
private void HandleSampleProvided(Sampler sampler, ISampleSubject subject) { Sampler.SubjectData sd = sampler.GetSubjectData(subject); //outputSampleData(sd); }