private void btn_AddRoom_Tapped(object sender, TappedRoutedEventArgs e)
        {
            Core.Classes.Room NewRoom = new Core.Classes.Room();

            NewRoom.I2C_SlaveAdress = 0x40;
            NewRoom.Color           = "";
            NewRoom.Name            = tbx_RoomName.Text.ToString();

            MainPage.MyHome.Rooms.Add(NewRoom);
            UpdateListBox(1);
        }
Example #2
0
 private void lv_Rooms_Tapped(object sender, TappedRoutedEventArgs e)
 {
     SelectedRoom = (Core.Classes.Room)lv_Rooms.SelectedItem;
     UpdateDeviceListView();
     UpdateWindowShutterListView();
 }
 private void UpdateRoomDetailPane(Core.Classes.Room SelectedRoom)
 {
     tbx_RoomName.Text        = SelectedRoom.Name;
     tbx_I2CslaveAddress.Text = "0x" + SelectedRoom.I2C_SlaveAdress.ToString("X");
 }
        private void UpdateDeviceDetailPane(Core.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)
                        {
                            lb_Devices.Items.Add(_Device);
                        }
                    }
                    catch { }
                    try {
                        foreach (var _Sensor in SelectedRoom.Sensors)
                        {
                            lb_Devices.Items.Add(_Sensor);
                        }
                    }
                    catch { }
                    try {
                        foreach (var _WindowShutter in SelectedRoom.WindowShutters)
                        {
                            lb_Devices.Items.Add(_WindowShutter);
                        }
                    }
                    catch { }
                }

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

                var type = lb_Devices.SelectedItem.GetType();

                if (type == typeof(Core.Classes.Device))
                {
                    Core.Classes.Device SelectedDevice = (Core.Classes.Device)lb_Devices.SelectedItem;
                    try
                    {
                        tbx_DeviceName.Text        = SelectedDevice.Name;
                        cbx_DevicePin.SelectedItem = SelectedDevice.Pin.ToString();
                    }
                    catch
                    {
                        tbx_DeviceName.Text        = "";
                        cbx_DevicePin.SelectedItem = "D0";
                    }
                }
                else if (type == typeof(Core.Classes.WindowShutter))
                {
                    Core.Classes.WindowShutter SelectedDevice = (Core.Classes.WindowShutter)lb_Devices.SelectedItem;
                    try
                    {
                        tbx_DeviceName.Text           = SelectedDevice.Name;
                        cbx_DevicePin.SelectedItem    = SelectedDevice.Pin.ToString();
                        cbx_DevicePinSec.SelectedItem = SelectedDevice.SecondaryPin.ToString();
                    }
                    catch
                    {
                        tbx_DeviceName.Text        = "";
                        cbx_DevicePin.SelectedItem = "D0";
                        cbx_DevicePin.SelectedItem = "D1";
                    }
                }
                else if (type == typeof(Core.Classes.Sensor))
                {
                    Core.Classes.Sensor SelectedDevice = (Core.Classes.Sensor)lb_Devices.SelectedItem;
                    try
                    {
                        tbx_DeviceName.Text        = SelectedDevice.Name;
                        cbx_DevicePin.SelectedItem = SelectedDevice.Pin.ToString();
                    }
                    catch
                    {
                        tbx_DeviceName.Text        = "";
                        cbx_DevicePin.SelectedItem = "A2";
                    }
                }
            }
        }
        private void btn_Save_Tapped(object sender, TappedRoutedEventArgs e)
        {
            if (lb_Rooms.Items.Count > 0 && lb_Rooms.SelectedIndex != -1)
            {
                // Update Room Detail
                Core.Classes.Room SelectedRoom = (Core.Classes.Room)lb_Rooms.SelectedItem;

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

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

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

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

                            SelectedDevice.Name = tbx_DeviceName.Text.ToString();
                            try
                            {
                                SelectedDevice.Pin          = (Core.Classes.Device.PinsEnum)Enum.Parse(typeof(Core.Classes.Device.PinsEnum), cbx_DevicePin.SelectedItem.ToString());
                                SelectedDevice.SecondaryPin = (Core.Classes.Device.PinsEnum)Enum.Parse(typeof(Core.Classes.Device.PinsEnum), cbx_DevicePinSec.SelectedItem.ToString());
                            }
                            catch
                            {
                                SelectedDevice.Pin          = (Core.Classes.Device.PinsEnum)Enum.Parse(typeof(Core.Classes.Device.PinsEnum), "D0");
                                SelectedDevice.SecondaryPin = (Core.Classes.Device.PinsEnum)Enum.Parse(typeof(Core.Classes.Device.PinsEnum), "D1");
                            }
                        }
                        else if (type == typeof(Core.Classes.Sensor))
                        {
                            Core.Classes.Sensor SelectedDevice = (Core.Classes.Sensor)lb_Devices.SelectedItem;

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

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