Пример #1
0
 private void lv_Rooms_Tapped(object sender, TappedRoutedEventArgs e)
 {
     SelectedRoom = (Shared.Classes.Room)lv_Rooms.SelectedItem;
     UpdateDeviceListView();
     UpdateWindowShutterListView();
     UpdateSensorListView();
 }
        private void btn_RoomAdd_Tapped(object sender, TappedRoutedEventArgs e)
        {
            Shared.Classes.Room NewRoom = new Shared.Classes.Room();

            NewRoom.I2C_SlaveAdress = 0x40;
            NewRoom.Color           = "";
            NewRoom.Name            = "New Room";

            MainPage.MyHome.Rooms.Add(NewRoom);
            UpdateListBox(1);
        }
 private void UpdateRoomDetailPane(Shared.Classes.Room SelectedRoom)
 {
     tbx_RoomName.Text  = SelectedRoom.Name;
     tbx_I2CAdress.Text = "0x" + SelectedRoom.I2C_SlaveAdress.ToString("X");
 }
        private void UpdateDeviceDetailPane(Shared.Classes.Room SelectedRoom, bool SelectFirst = false, bool SkipClear = false)
        {
            if (SkipClear == false)
            {
                ClearDeviceDetailPane();
            }
            if (SelectedRoom.Devices.Count > 0 || SelectedRoom.Sensors.Count > 0 || SelectedRoom.WindowShutters.Count > 0)
            {
                if (SkipClear == false)
                {
                    try
                    {
                        foreach (var _Device in SelectedRoom.Devices)
                        {
                            lv_Devices.Items.Add(_Device);
                        }
                    }
                    catch { }
                    try
                    {
                        foreach (var _Sensor in SelectedRoom.Sensors)
                        {
                            lv_Devices.Items.Add(_Sensor);
                        }
                    }
                    catch { }
                    try
                    {
                        foreach (var _WindowShutter in SelectedRoom.WindowShutters)
                        {
                            lv_Devices.Items.Add(_WindowShutter);
                        }
                    }
                    catch { }
                }

                if (SelectFirst)
                {
                    lv_Devices.SelectedIndex = 0;
                }

                var type = lv_Devices.SelectedItem.GetType();

                if (type == typeof(Shared.Classes.Device))
                {
                    Shared.Classes.Device SelectedDevice = (Shared.Classes.Device)lv_Devices.SelectedItem;
                    try
                    {
                        deviceType_Device();
                        tbx_DeviceName.Text       = SelectedDevice.Name;
                        fv_DevicePin.SelectedItem = SelectedDevice.Pin.ToString();
                    }
                    catch
                    {
                        tbx_DeviceName.Text       = "";
                        fv_DevicePin.SelectedItem = "D0";
                    }
                }
                else if (type == typeof(Shared.Classes.WindowShutter))
                {
                    Shared.Classes.WindowShutter SelectedDevice = (Shared.Classes.WindowShutter)lv_Devices.SelectedItem;
                    try
                    {
                        deviceType_WindowShutter();
                        tbx_DeviceName.Text          = SelectedDevice.Name;
                        fv_DevicePin.SelectedItem    = SelectedDevice.Pin.ToString();
                        fv_DevicePinSec.SelectedItem = SelectedDevice.SecondaryPin.ToString();
                    }
                    catch
                    {
                        tbx_DeviceName.Text          = "";
                        fv_DevicePin.SelectedItem    = "D0";
                        fv_DevicePinSec.SelectedItem = "D1";
                    }
                }
                else if (type == typeof(Shared.Classes.Sensor))
                {
                    Shared.Classes.Sensor SelectedDevice = (Shared.Classes.Sensor)lv_Devices.SelectedItem;
                    try
                    {
                        deviceType_Sensor();
                        tbx_DeviceName.Text       = SelectedDevice.Name;
                        fv_DevicePin.SelectedItem = SelectedDevice.Pin.ToString();
                    }
                    catch
                    {
                        tbx_DeviceName.Text       = "";
                        fv_DevicePin.SelectedItem = "A2";
                    }
                }
            }
        }
        private void btn_Save_Tapped(object sender, TappedRoutedEventArgs e)
        {
            if (lv_Rooms.Items.Count > 0 && lv_Rooms.SelectedIndex != -1)
            {
                // Update Room Detail
                Shared.Classes.Room SelectedRoom = (Shared.Classes.Room)lv_Rooms.SelectedItem;

                SelectedRoom.Name = tbx_RoomName.Text.ToString();

                int             NewAddress = 0;
                IFormatProvider _Culture   = new CultureInfo("en-US");
                int.TryParse(tbx_I2CAdress.Text.Replace("0x", ""), System.Globalization.NumberStyles.HexNumber, _Culture, out NewAddress);
                SelectedRoom.I2C_SlaveAdress = NewAddress;

                // Update Device Detail
                if (lv_Devices.Items.Count > 0)
                {
                    if (lv_Devices.SelectedIndex != -1)
                    {
                        System.Type type = lv_Devices.SelectedItem.GetType();
                        if (type == typeof(Shared.Classes.Device))
                        {
                            Shared.Classes.Device SelectedDevice = (Shared.Classes.Device)lv_Devices.SelectedItem;

                            SelectedDevice.Name = tbx_DeviceName.Text.ToString();
                            try
                            {
                                SelectedDevice.Pin = (Shared.Classes.Device.PinsEnum)Enum.Parse(typeof(Shared.Classes.Device.PinsEnum), fv_DevicePin.SelectedItem.ToString());
                            }
                            catch
                            {
                                SelectedDevice.Pin = (Shared.Classes.Device.PinsEnum)Enum.Parse(typeof(Shared.Classes.Device.PinsEnum), "D0");
                            }
                        }
                        else if (type == typeof(Shared.Classes.WindowShutter))
                        {
                            Shared.Classes.WindowShutter SelectedDevice = (Shared.Classes.WindowShutter)lv_Devices.SelectedItem;

                            SelectedDevice.Name = tbx_DeviceName.Text.ToString();
                            try
                            {
                                SelectedDevice.Pin          = (Shared.Classes.Device.PinsEnum)Enum.Parse(typeof(Shared.Classes.Device.PinsEnum), fv_DevicePin.SelectedItem.ToString());
                                SelectedDevice.SecondaryPin = (Shared.Classes.Device.PinsEnum)Enum.Parse(typeof(Shared.Classes.Device.PinsEnum), fv_DevicePinSec.SelectedItem.ToString());
                            }
                            catch
                            {
                                SelectedDevice.Pin          = (Shared.Classes.Device.PinsEnum)Enum.Parse(typeof(Shared.Classes.Device.PinsEnum), "D0");
                                SelectedDevice.SecondaryPin = (Shared.Classes.Device.PinsEnum)Enum.Parse(typeof(Shared.Classes.Device.PinsEnum), "D1");
                            }
                        }
                        else if (type == typeof(Shared.Classes.Sensor))
                        {
                            Shared.Classes.Sensor SelectedDevice = (Shared.Classes.Sensor)lv_Devices.SelectedItem;

                            SelectedDevice.Name = tbx_DeviceName.Text.ToString();
                            try
                            {
                                SelectedDevice.Pin = (Shared.Classes.Device.PinsEnum)Enum.Parse(typeof(Shared.Classes.Device.PinsEnum), fv_DevicePin.SelectedItem.ToString());
                            }
                            catch
                            {
                                SelectedDevice.Pin = (Shared.Classes.Device.PinsEnum)Enum.Parse(typeof(Shared.Classes.Device.PinsEnum), "A1");
                            }
                        }
                    }
                }
            }

            // Save
            Shared.Classes.Home.SaveHome(MainPage.MyHome);
        }