public bool GetTriggerConfigured(IPlugInAPI.strTrigActInfo actionInfo) { _triggerSettings = GetSettingsFromTriggerInfo(actionInfo); if (_triggerSettings.DeviceIdChosen.HasValue && _triggerSettings.DeviceIdChosen.Value > -1) { OnDeviceIdSet(_triggerSettings.DeviceIdChosen.Value); } return(_triggerSettings.GetTriggerConfigured()); }
public bool TriggerTrue(IPlugInAPI.strTrigActInfo actionInfo, IStorageHandler storageHandler) { _triggerSettings = GetSettingsFromTriggerInfo(actionInfo); if (_triggerSettings != null && _triggerSettings.GetTriggerConfigured()) { var thresholdValue = _triggerSettings.ThresholdValue; var numberOfLastMeasurements = _triggerSettings.NumberOfLastMeasurements ?? 10; var dataPoints = storageHandler.GetLastValuesForDevice(_triggerSettings.DeviceIdChosen.Value, numberOfLastMeasurements); var lastValue = dataPoints.Last(); if (!ThresholdReached(lastValue.Value, thresholdValue, _triggerSettings.AscendingOrDescending)) { return(false); } return(_dataCurveComputationHandler.TriggerTrue(dataPoints, _triggerSettings.AscendingOrDescending, thresholdValue.Value, numberOfLastMeasurements)); } return(false); }