private void btn_AddDevice_Tapped(object sender, TappedRoutedEventArgs e)
        {
            switch (cbx_DeviceType.SelectedIndex)
            {
            case 0:
                Core.Classes.Device NewDevice = new Core.Classes.Device();
                NewDevice.Name = "My Device";
                NewDevice.Pin  = Core.Classes.Device.PinsEnum.D0;
                MainPage.MyHome.Rooms[lb_Rooms.SelectedIndex].AddDevice(NewDevice);
                break;

            case 1:
                Core.Classes.WindowShutter NewWindowShutter = new Core.Classes.WindowShutter();
                NewWindowShutter.Name         = "My Window Shutter";
                NewWindowShutter.Pin          = Core.Classes.Device.PinsEnum.D0;
                NewWindowShutter.SecondaryPin = Core.Classes.Device.PinsEnum.D1;
                MainPage.MyHome.Rooms[lb_Rooms.SelectedIndex].AddWindowShutter(NewWindowShutter);
                break;

            case 2:
                Core.Classes.Sensor NewSensor = new Core.Classes.Sensor();
                NewSensor.Name = "My Sensor";
                NewSensor.Pin  = Core.Classes.Sensor.PinsEnum.D0;
                MainPage.MyHome.Rooms[lb_Rooms.SelectedIndex].AddSensor(NewSensor);
                break;
            }

            // Only update device listbox
            UpdateListBox(2);
        }
Пример #2
0
 private void btn_down_Click(object sender, RoutedEventArgs e)
 {
     SelectedWindowShutter = (Core.Classes.WindowShutter)lv_WindowShutter.SelectedItem;
     Task.Factory.StartNew(() =>
     {
         SelectedWindowShutter.moveDown();
     }).Wait(1000);
 }
Пример #3
0
        private void UpdateWindowShutterListView()
        {
            if (lv_WindowShutter.Items != null && lv_WindowShutter.Items.Count > 0)
            {
                lv_WindowShutter.Items.Clear();
            }
            foreach (var WindowShutter in SelectedRoom.WindowShutters)
            {
                Core.Classes.WindowShutter _WSInfo = new Core.Classes.WindowShutter();
                _WSInfo.Id                = WindowShutter.Id;
                _WSInfo.ImagePath         = WindowShutter.ImagePath;
                _WSInfo.Name              = WindowShutter.Name;
                _WSInfo.Pin               = WindowShutter.Pin;
                _WSInfo.SecondaryPin      = WindowShutter.SecondaryPin;
                _WSInfo.Status            = WindowShutter.Status;
                _WSInfo.I2C_Slave_Address = WindowShutter.I2C_Slave_Address;

                lv_WindowShutter.Items.Add(_WSInfo);
            }
        }
        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);
        }