Ejemplo n.º 1
0
 private void RemoveDevice(IOneWireDevice oneWireDevice)
 {
     oneWireDevice.MarkAsDead();
     _logger.LogInformation(this, "removing device " + oneWireDevice.SerialNumber + " from the device list");
     Devices.Remove(oneWireDevice);
     RaiseOneWireDeviceIsDead(oneWireDevice);
 }
Ejemplo n.º 2
0
        private async void _oneWireConnector_OnOneWireDeviceIsDead(IOneWireDevice device)
        {
            await OneWirePanel.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                var uiElements = (from uiElement in OneWirePanel.Children let oneWireCtrl = uiElement as OneWireDeviceControl let controlDevice = oneWireCtrl?.Tag as IOneWireDevice where controlDevice != null where device.SerialNumber == controlDevice.SerialNumber select uiElement).ToList();

                foreach (var uiElement in uiElements)
                {
                    OneWirePanel.Children.Remove(uiElement);
                }
            });
        }
Ejemplo n.º 3
0
        public Family38Device(IOneWireDevice device, TimeSpan getValueTimeSpan)
        {
            if (device.FamilyCode != 38)
            {
                throw new Exception("The Device doesn't fit to the family code");
            }

            _device = device;

            if (getValueTimeSpan != TimeSpan.Zero)
            {
                _timer = new Timer(GetValue, new object(), getValueTimeSpan, getValueTimeSpan);
            }
        }
Ejemplo n.º 4
0
        private async void RaiseOneWireDeviceIsDead(IOneWireDevice device)
        {
            if (OnOneWireDeviceIsDead == null)
            {
                return;
            }

            _logger.LogDebug(this, "raising dead one wire device event");
            var task = Task.Run(() => OnOneWireDeviceIsDead.Invoke(device));

            if (task != null)
            {
                await task.ConfigureAwait(false);
            }
        }
Ejemplo n.º 5
0
        private async void _oneWireConnector_OnNewOnWireDevice(IOneWireDevice device)
        {
            await OneWirePanel.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            {
                if (device.FamilyCode == 40)
                {
                    var device40 = new Family40Device(device, TimeSpan.FromSeconds(10));


                    var control = new OneWireDeviceControl(device40.SerialNumber, device40.FamilyCode)
                    {
                        Margin = new Thickness(10)
                    };


                    device40.OnNewValue += value =>
                    {
                        if (value == null)
                        {
                            control.SetValue("----");
                        }
                        else
                        {
                            control.SetValue(value.Value.ToString(CultureInfo.InvariantCulture) + " °C");
                        }
                    };


                    control.Tag = device;

                    OneWirePanel.Children.Add(control);
                }
                //else if (device.FamilyCode == 38)
                //{
                //    var device38 = new Family38Device(device, TimeSpan.FromSeconds(10));


                //    var control = new OneWireDeviceControl(device38.SerialNumber, device38.FamilyCode)
                //    {
                //        Margin = new Thickness(10)
                //    };


                //    device38.OnNewValue += value =>
                //    {
                //        if (value == null)
                //        {
                //            control.SetValue("----");
                //        }
                //        else
                //        {
                //            control.SetValue(value.Value.ToString(CultureInfo.InvariantCulture) + "");
                //        }
                //    };


                //    control.Tag = device;

                //    OneWirePanel.Children.Add(control);
                //}
                else
                {
                    var control = new OneWireDeviceControl(device.SerialNumber, device.FamilyCode)
                    {
                        Tag    = device,
                        Margin = new Thickness(10)
                    };
                    OneWirePanel.Children.Add(control);
                }
            });
        }