private void btn_AddDevice_Tapped(object sender, TappedRoutedEventArgs e) { switch (deviceType) { case 0: Shared.Classes.Device NewDevice = new Shared.Classes.Device(); NewDevice.Name = tbx_DeviceName.Text; NewDevice.Pin = Shared.Classes.Device.PinsEnum.D0; MainPage.MyHome.Rooms[lv_Rooms.SelectedIndex].AddDevice(NewDevice); break; case 1: Shared.Classes.WindowShutter NewWindowShutter = new Shared.Classes.WindowShutter(); NewWindowShutter.Name = tbx_DeviceName.Text; NewWindowShutter.Pin = Shared.Classes.Device.PinsEnum.D0; NewWindowShutter.SecondaryPin = Shared.Classes.Device.PinsEnum.D1; MainPage.MyHome.Rooms[lv_Rooms.SelectedIndex].AddWindowShutter(NewWindowShutter); break; case 2: Shared.Classes.Sensor NewSensor = new Shared.Classes.Sensor(); NewSensor.Name = tbx_DeviceName.Text; NewSensor.Pin = Shared.Classes.Sensor.PinsEnum.D0; MainPage.MyHome.Rooms[lv_Rooms.SelectedIndex].AddSensor(NewSensor); break; } // Only update device listbox UpdateListBox(2); }
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); }