Пример #1
0
 public static ApplicationSensorReading FromIApplicationSensorReading(IApplicationSensorReading sensorReading) => new ApplicationSensorReading()
 {
     Temperature           = sensorReading.Temperature,
     IsCritical            = sensorReading.IsCritical,
     IsBelowLowerThreshold = sensorReading.IsBelowLowerThreshold,
     IsAboveUpperThreshold = sensorReading.IsAboveUpperThreshold,
     CriticalThreshold     = sensorReading.CriticalThreshold,
     UpperThreshold        = sensorReading.UpperThreshold,
     LowerThreshold        = sensorReading.LowerThreshold,
     Source       = sensorReading.Source,
     TimestampUtc = sensorReading.TimestampUtc
 };
		public static ApplicationSensorReading FromIApplicationSensorReading(IApplicationSensorReading sensorReading) => new ApplicationSensorReading()
		{
			Temperature = sensorReading.Temperature,
			IsCritical = sensorReading.IsCritical,
			IsBelowLowerThreshold = sensorReading.IsBelowLowerThreshold,
			IsAboveUpperThreshold = sensorReading.IsAboveUpperThreshold,
			CriticalThreshold = sensorReading.CriticalThreshold,
			UpperThreshold = sensorReading.UpperThreshold,
			LowerThreshold = sensorReading.LowerThreshold,
			Source = sensorReading.Source,
			TimestampUtc = sensorReading.TimestampUtc
		};
Пример #3
0
        public async Task <IApplicationSensorReading> GetSensorReading()
        {
            IApplicationSensorReading returnValue = null;

            try
            {
                if (this.Device != null && this.Device.IsInitialized)
                {
                    IDeviceSensorReading sensorReading = (await this.Device.ReadSensor());
                    returnValue = sensorReading.ConvertToApplicationSensorReading(ApplicationSensorReadingSource.Device);
                }
            }
            catch (Exception ex)
            {
                this.EventAggregator.GetEvent <Events.DebugEvent>().Publish(new DebugEventArgs(ex));
            }

            return(returnValue);
        }
Пример #4
0
        private async Task SendSensorReading(bool force)
        {
            try
            {
                IApplicationSensorReading sensorReading = await this.GetSensorReading();

                // ***
                // *** Add the temperature thresholds
                // ***
                sensorReading.CriticalThreshold = this.Device.CriticalTemperatureThreshold;
                sensorReading.LowerThreshold    = this.Device.LowerTemperatureThreshold;
                sensorReading.UpperThreshold    = this.Device.UpperTemperatureThreshold;

                // ***
                // *** Only send the event when the reading has changed
                // ***
                if (force ||
                    _previousReading == null ||
                    _previousReading.Temperature != sensorReading.Temperature ||
                    _previousReading.IsCritical != sensorReading.IsCritical ||
                    _previousReading.IsAboveUpperThreshold != sensorReading.IsAboveUpperThreshold ||
                    _previousReading.IsBelowLowerThreshold != sensorReading.IsBelowLowerThreshold ||
                    _previousReading.CriticalThreshold != sensorReading.CriticalThreshold ||
                    _previousReading.LowerThreshold != sensorReading.LowerThreshold ||
                    _previousReading.UpperThreshold != sensorReading.UpperThreshold)
                {
                    this.EventAggregator.GetEvent <Events.TemperatureChangedEvent>().Publish(new TemperatureChangedEventArgs()
                    {
                        SensorReading = ApplicationSensorReading.FromIApplicationSensorReading(sensorReading)
                    });
                    _previousReading = sensorReading;
                }
            }
            catch (Exception ex)
            {
                this.EventAggregator.GetEvent <Events.DebugEvent>().Publish(new DebugEventArgs(ex));
            }
        }
		private async Task SendSensorReading(bool force)
		{
			try
			{
				IApplicationSensorReading sensorReading = await this.GetSensorReading();

				// ***
				// *** Add the temperature thresholds
				// ***
				sensorReading.CriticalThreshold = this.Device.CriticalTemperatureThreshold;
				sensorReading.LowerThreshold = this.Device.LowerTemperatureThreshold;
				sensorReading.UpperThreshold = this.Device.UpperTemperatureThreshold;

				// ***
				// *** Only send the event when the reading has changed
				// ***
				if (force ||
					_previousReading == null ||
					_previousReading.Temperature != sensorReading.Temperature ||
					_previousReading.IsCritical != sensorReading.IsCritical ||
					_previousReading.IsAboveUpperThreshold != sensorReading.IsAboveUpperThreshold ||
					_previousReading.IsBelowLowerThreshold != sensorReading.IsBelowLowerThreshold ||
					_previousReading.CriticalThreshold != sensorReading.CriticalThreshold ||
					_previousReading.LowerThreshold != sensorReading.LowerThreshold ||
					_previousReading.UpperThreshold != sensorReading.UpperThreshold)
				{
					this.EventAggregator.GetEvent<Events.TemperatureChangedEvent>().Publish(new TemperatureChangedEventArgs()
					{
						SensorReading = ApplicationSensorReading.FromIApplicationSensorReading(sensorReading)
					});
					_previousReading = sensorReading;
				}
			}
			catch (Exception ex)
			{
				this.EventAggregator.GetEvent<Events.DebugEvent>().Publish(new DebugEventArgs(ex));
			}
		}