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); }
private void lv_Devices_Tapped(object sender, TappedRoutedEventArgs e) { SelectedDevice = (Core.Classes.Device)lv_Devices.SelectedItem; if (SelectedDevice.Status == Core.Classes.Device.StatusEnum.Off) { Task.Factory.StartNew(() => { SelectedDevice.TurnOn(); }).Wait(1000); SelectedDevice.Status = Core.Classes.Device.StatusEnum.On; } else { Task.Factory.StartNew(() => { SelectedDevice.TurnOff(); }).Wait(1000); SelectedDevice.Status = Core.Classes.Device.StatusEnum.Off; } }
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); }