Ejemplo n.º 1
0
        void LogTemperatures(ThreadPoolTimer timer)
        {
            try
            {
                using (var oneWireDeviceHandler = new OneWireDeviceHandler())
                {
                    foreach (var device in oneWireDeviceHandler.GetDevices<DS18S20>())
                    {
                        var result = device.GetTemperature();
                        var extendedResult = device.GetExtendedTemperature();

                        // Insert code to log result in some way
                    }

                    foreach (var device in oneWireDeviceHandler.OneWireDevices.GetDevices<DS18B20>())
                    {
                        var result = device.GetTemperature();

                        // Insert code to log result in some way
                    }
                }
            }
            catch (Exception e)
            {
                // Insert code to log all exceptions!
            }
        }
Ejemplo n.º 2
0
        void LogTemperatures(ThreadPoolTimer timer)
        {
            try
            {
                using (var oneWireDeviceHandler = new OneWireDeviceHandler())
                {
                    foreach (var device in oneWireDeviceHandler.GetDevices <DS18S20>())
                    {
                        var result         = device.GetTemperature();
                        var extendedResult = device.GetExtendedTemperature();

                        // Insert code to log result in some way
                    }

                    foreach (var device in oneWireDeviceHandler.OneWireDevices.GetDevices <DS18B20>())
                    {
                        var result = device.GetTemperature();
                        Debug.WriteLine(result);

                        // Insert code to log result in some way
                    }
                }
            }
            catch (Exception e)
            {
                // Insert code to log all exceptions!
            }
        }
Ejemplo n.º 3
0
 private async void GetTemperatures(ThreadPoolTimer timer)
 {
     try
     {
         using (var oneWireDeviceHandler = new OneWireDeviceHandler(true, true))
         {
             foreach (var device in oneWireDeviceHandler.OneWireDevices.GetDevices <DS18B20>())
             {
                 var result = device.GetTemperature();
                 this.tempData.Temperature = result;
             }
         }
     }
     catch (Exception e)
     {
         this.oneWireDeviceHandler.Dispose();
         this.oneWireDeviceHandler = null;
     }
 }
 public RinsenOneWireClient()
 {
     _handler = new OneWireDeviceHandler(false, false);
 }
Ejemplo n.º 5
0
        private async void GetTemperature()
        {
            if (Utilities.IsDesktopComputer())
            {
                return;
            }

            bool firstTime = true;

            while (true)
            {
                try
                {
                    if (_cancelToken.IsCancellationRequested)
                    {
                        _cancelToken.ThrowIfCancellationRequested();
                    }

                    using (var oneWireDeviceHandler = new OneWireDeviceHandler(false, false))
                    {
                        var devices = oneWireDeviceHandler.OneWireDevices.GetDevices <DS18B20>().ToList();
                        if (!devices.Any())
                        {
                            if (_hasDetectedDevices)
                            {
                                //We have had devices detected, so something must have gone wrong!
                                //Device might have been unplugged!
                                Temperature = -1;
                                if (!_hasShownError)
                                {
                                    //await UIMessager.Instance.ShowMessageAndWaitForFeedback(
                                    //    "Temperature device error!",
                                    //    "Temperature sensor may have been plugged out!",
                                    //    UIMessageButtons.OK,
                                    //    UIMessageType.Error);
                                    _hasShownError = true;
                                }
                            }
                        }
                        else
                        {
                            foreach (var device in devices)
                            {
                                var result = device.GetTemperature();

                                if (firstTime)
                                {
                                    if (result > 0)
                                    {
                                        Temperature = result;
                                        firstTime   = false;
                                    }
                                    await Task.Delay(TEMPERATURE_PULL_INTERVAL);

                                    continue;
                                }

                                //We should have some  sanity check of the temperature
                                //in case some noise gets in the way.
                                //If we for example had a temperature of 25, and
                                //then noise ruins the next result and returns 85, then
                                //we should not trust the result, it should instead be discarded.
                                //Temperature cant increase by 2 within 500ms???
                                if ((Math.Abs(result - Temperature) <= TEMPERATURE_SANITY))
                                {
                                    Temperature = result;
                                }
                            }

                            _hasDetectedDevices = true;
                            _hasShownError      = false;
                        }
                    }
                }
                catch (OperationCanceledException)
                {
                    break;
                }
                catch (Exception e)
                {
                    // Insert code to log all exceptions!
                    Debug.WriteLine("Could not get temperature: " + e);
                }

                await Task.Delay(TEMPERATURE_PULL_INTERVAL);
            }
            Temperature = 0;
            _tokenSource.Dispose();
            _tokenSource = null;
        }
Ejemplo n.º 6
0
 public MainPage()
 {
     _oneWireDeviceHandler = new OneWireDeviceHandler();
     this.InitializeComponent();
 }
 public RinsenDefensiveOneWireClient()
 {
     _handler = new OneWireDeviceHandler();
 }
Ejemplo n.º 8
0
 public MainPage()
 {
     _oneWireDeviceHandler = new OneWireDeviceHandler();
     this.InitializeComponent();
 }