Example #1
0
 internal MonitoringJob(Sensor sensor, TimeSpan timeSpan, OnNewValue onNewValue)
 {
     Sensor      = sensor;
     Interval    = timeSpan;
     OnNewValue  = onNewValue;
     LastUpdated = DateTimeOffset.UtcNow;
 }
        private void GetValue(object state)
        {
            if (_device.DeviceIsDead)
            {
                state = null;
                _timer.Dispose();
                return;
            }

            try
            {
                if (OnNewValue == null)
                {
                    return;
                }

                var temp = GetTemperature();

                Task.Run(() => OnNewValue.Invoke(temp));
            }
            catch (Exception)
            {
                //ignore
            }
        }