From d53e6af2c5f17838fa79659614b15a2a1f383399 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期五, 31 三月 2023 10:04:58 +0800 Subject: [PATCH] 1 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs | 1004 +++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 608 insertions(+), 396 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs index 9bbfeea..0ef1cff 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs @@ -1,5 +1,6 @@ 锘縰sing System; using System.Collections.Generic; +using Newtonsoft.Json.Linq; using Shared.SimpleControl.Phone.Music; namespace Shared.SimpleControl.Phone @@ -176,65 +177,69 @@ timeView.AddChidren (btnTimelbl); btnTimelbl.MouseUpEventHandler += (timeSender, eee) => { - var dialog = new Dialog (); - var chooseTimeBodyView = new FrameLayout () { - }; - dialog.AddChidren (chooseTimeBodyView); - var chooseTime = new TimeView () { - Y = Application.GetRealHeight (1136 - 420 - 90), - Height = Application.GetRealHeight (420), - BackgroundColor = 0xFFD7D7D7, - //BackgroundColor = SkinStyle.Current.ViewColor, - }; - chooseTimeBodyView.AddChidren (chooseTime); + ShowTimePickerView (btnTimelbl); + return; - var bottomView = new FrameLayout () { - Y = chooseTime.Bottom, - Height = Application.GetRealHeight (90) + 1, - BackgroundColor = 0xFFD7D7D7, - }; - chooseTimeBodyView.AddChidren (bottomView); + //var dialog = new Dialog (); + //var chooseTimeBodyView = new FrameLayout () { + //}; + //dialog.AddChidren (chooseTimeBodyView); - var btnCloseTime = new Button () { - Y = 1, - Width = Application.GetRealWidth (320), - BackgroundColor = SkinStyle.Current.ViewColor, - TextID = R.MyInternationalizationString.Close, - TextAlignment = TextAlignment.Center, - TextColor = SkinStyle.Current.TextColor1, - }; - bottomView.AddChidren (btnCloseTime); - btnCloseTime.MouseUpEventHandler += (ddf, dddf) => { - chooseTimeBodyView.RemoveAll (); - chooseTimeBodyView.RemoveFromParent (); - dialog.Close (); - }; + //var chooseTime = new TimeView () { + // Y = Application.GetRealHeight (1136 - 420 - 90), + // Height = Application.GetRealHeight (420), + // BackgroundColor = 0xFFD7D7D7, + // //BackgroundColor = SkinStyle.Current.ViewColor, + //}; + //chooseTimeBodyView.AddChidren (chooseTime); - var btnSaveTime = new Button () { - X = btnCloseTime.Right + 1, - Y = 1, - Width = Application.GetRealWidth (320), - TextID = R.MyInternationalizationString.SAVE, - BackgroundColor = SkinStyle.Current.ViewColor, - TextAlignment = TextAlignment.Center, - TextColor = SkinStyle.Current.TextColor1, - }; - bottomView.AddChidren (btnSaveTime); - btnSaveTime.MouseUpEventHandler += (sender3, e3) => { - // var chooseHour = chooseTime.Hour - timerTemp.TimeZone; - var chooseTimeString = chooseTime.Hour.ToString ().PadLeft (2, '0') + ":" + chooseTime.Minute.ToString ().PadLeft (2, '0'); - //if (chooseTime.Hour > 12) { - // chooseTimeString = (chooseTime.Hour -12) + ":" + chooseTime.Minute + " PM"; - //} else { - // chooseTimeString = chooseTime.Hour + ":" + chooseTime.Minute + " AM"; - //} - btnTimelbl.Text = chooseTimeString; - dialog.Close (); - }; + //var bottomView = new FrameLayout () { + // Y = chooseTime.Bottom, + // Height = Application.GetRealHeight (90) + 1, + // BackgroundColor = 0xFFD7D7D7, + //}; + //chooseTimeBodyView.AddChidren (bottomView); + + //var btnCloseTime = new Button () { + // Y = 1, + // Width = Application.GetRealWidth (320), + // BackgroundColor = SkinStyle.Current.ViewColor, + // TextID = R.MyInternationalizationString.Close, + // TextAlignment = TextAlignment.Center, + // TextColor = SkinStyle.Current.TextColor1, + //}; + //bottomView.AddChidren (btnCloseTime); + //btnCloseTime.MouseUpEventHandler += (ddf, dddf) => { + // chooseTimeBodyView.RemoveAll (); + // chooseTimeBodyView.RemoveFromParent (); + // dialog.Close (); + //}; + + //var btnSaveTime = new Button () { + // X = btnCloseTime.Right + 1, + // Y = 1, + // Width = Application.GetRealWidth (320), + // TextID = R.MyInternationalizationString.SAVE, + // BackgroundColor = SkinStyle.Current.ViewColor, + // TextAlignment = TextAlignment.Center, + // TextColor = SkinStyle.Current.TextColor1, + //}; + //bottomView.AddChidren (btnSaveTime); + //btnSaveTime.MouseUpEventHandler += (sender3, e3) => { + // // var chooseHour = chooseTime.Hour - timerTemp.TimeZone; + // var chooseTimeString = chooseTime.Hour.ToString ().PadLeft (2, '0') + ":" + chooseTime.Minute.ToString ().PadLeft (2, '0'); + // //if (chooseTime.Hour > 12) { + // // chooseTimeString = (chooseTime.Hour -12) + ":" + chooseTime.Minute + " PM"; + // //} else { + // // chooseTimeString = chooseTime.Hour + ":" + chooseTime.Minute + " AM"; + // //} + // btnTimelbl.Text = chooseTimeString; + // dialog.Close (); + //}; - dialog.Show (); + //dialog.Show (); }; #endregion @@ -446,12 +451,12 @@ Height = Application.GetRealHeight (60), TextAlignment = TextAlignment.CenterLeft, TextColor = SkinStyle.Current.TextColor1, - Text = "ALL", + Text = timerTemp.RoomName, }; roomContenView.AddChidren (btnRoomChoose); - + #endregion #region Devices @@ -480,7 +485,7 @@ MainPage.Loading.Start ("Please wait..."); SmartHome.Method mMthod = new SmartHome.Method (); - var devList = mMthod.GetRoomDeviceList ("ALL"); + var devList = mMthod.GetRoomDeviceList (timerTemp.RoomName); InitDeviceListView (devList); #region -----Room 鐐瑰嚮浜嬩欢 btnRoomChoose.MouseUpEventHandler += (sender, e) => { @@ -517,7 +522,7 @@ }; chooseRoomView.AddChidren (roomListView); //鑾峰彇鎴块棿鍒楄〃 - var roomList= mMthod.GetRoomList (); + var roomList = mMthod.GetRoomList (); for (int i = 0; i < roomList.Count; i++) { var room = roomList [i]; var btnRoomNameChoose = new Button () { @@ -535,6 +540,8 @@ roomListView.AddChidren (btnLine); btnRoomNameChoose.MouseUpEventHandler += (sd, ds) => { + //鍒囨崲鎴块棿娓呯┖涔嬪墠閫夋嫨鏁版嵁; + selectedDeviceList.Clear (); btnRoomChoose.Text = (sd as Button).Text; //鑾峰彇璁惧鍒楄〃 var deviceList = mMthod.GetRoomDeviceList (btnRoomChoose.Text); @@ -620,6 +627,8 @@ return; } } + // 2021-03-30 鍏堟竻绌猴紝鍐嶉噸鏂扮粺璁� + timerTemp.whichDay = new List<int>(); if (btnMonday.IsSelected == true && btnFriday.IsSelected == true && btnThursday.IsSelected == true && btnSunday.IsSelected == true && btnTuesday.IsSelected == true && btnSaturday.IsSelected == true && btnWednesday.IsSelected == true) { timerTemp.timerType = TimerType.EveryDay; @@ -636,7 +645,7 @@ } } if (btnSaturday.IsSelected) { - if (!timerTemp.whichDay.Contains (6)) { + if (!timerTemp.whichDay.Contains (6)) { timerTemp.whichDay.Add (6); } } @@ -649,7 +658,7 @@ if (!timerTemp.whichDay.Contains (2)) { timerTemp.whichDay.Add (2); } - + } if (btnWednesday.IsSelected) { if (!timerTemp.whichDay.Contains (3)) { @@ -666,13 +675,15 @@ timerTemp.whichDay.Add (5); } } - if (string.IsNullOrEmpty (timerTemp.id)) { - timerTemp.id =Guid.NewGuid().ToString (); - } + //if (string.IsNullOrEmpty (timerTemp.id)) { + // timerTemp.id = Guid.NewGuid ().ToString (); + //} DeviceDate deviceDate = new DeviceDate (); deviceDate.gatewayId = SmartHome.Send.GatewayId; deviceDate.homeId = SmartHome.Send.HomeId; + + deviceDate.actions.AddRange (selectedDeviceList); timerTemp.controlData = deviceDate; @@ -687,6 +698,8 @@ revertObj = SmartHome.Send.UpdateTimer (timerTemp); } else { + + revertObj = SmartHome.Send.AddTimer (timerTemp); } @@ -694,12 +707,21 @@ if (revertObj == null) { new Alert ("", "Unable to save data, please check the network.", "Close").Show (); } else if (revertObj.Code == StateCode.SUCCESS) { + string id = ""; + if (!isEdit) { + var jObject = JObject.Parse (revertObj.Data.ToString ()); + id = jObject ["id"].ToString (); + timerTemp.id = id; + } this.RemoveFromParent (); action (timerTemp); + + } else if (revertObj.Code == "10107") { + new Alert ("", "Timer name already exists.", "Close").Show (); } else { //鎻愮ず閿欒 - SmartHome.Method method = new SmartHome.Method (); - method.ShowGetTimerListErrorInfo (revertObj.Data.ToString ()); + IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code); + } }); } catch (Exception ex) { @@ -713,119 +735,235 @@ }; } + + /// <summary> + /// 鑷畾涔塗imePickerView + /// 2021-03-24 + /// </summary> + void ShowTimePickerView (Button btnTimelbl) + { + var chooseTimeString = "00:00"; + var dialog = new Dialog (); + var chooseTimeBodyView = new FrameLayout () { + }; + dialog.AddChidren (chooseTimeBodyView); + + var timeView = new FrameLayout () { + Y = Application.GetRealHeight (1136 - 420 - 90), + Height = Application.GetRealHeight (420), + BackgroundColor = SkinStyle.Current.ViewColor, + }; + chooseTimeBodyView.AddChidren (timeView); + + var chooseTime = new UIPickerView () { + Height = Application.GetRealHeight (400), + BackgroundColor = SkinStyle.Current.Transparent, + Gravity = Gravity.CenterVertical + }; + timeView.AddChidren (chooseTime); + + var bottomView = new FrameLayout () { + Y = timeView.Bottom, + Height = Application.GetRealHeight (90) + 1, + BackgroundColor = 0xFFD7D7D7, + }; + chooseTimeBodyView.AddChidren (bottomView); + + var btnCloseTime = new Button () { + Y = 1, + Width = Application.GetRealWidth (320), + BackgroundColor = SkinStyle.Current.ViewColor, + TextID = R.MyInternationalizationString.Close, + TextAlignment = TextAlignment.Center, + TextColor = SkinStyle.Current.TextColor1, + }; + bottomView.AddChidren (btnCloseTime); + btnCloseTime.MouseUpEventHandler += (ddf, dddf) => { + chooseTimeBodyView.RemoveAll (); + chooseTimeBodyView.RemoveFromParent (); + dialog.Close (); + }; + + var btnSaveTime = new Button () { + X = btnCloseTime.Right + 1, + Y = 1, + Width = Application.GetRealWidth (320), + TextID = R.MyInternationalizationString.SAVE, + BackgroundColor = SkinStyle.Current.ViewColor, + TextAlignment = TextAlignment.Center, + TextColor = SkinStyle.Current.TextColor1, + }; + bottomView.AddChidren (btnSaveTime); + btnSaveTime.MouseUpEventHandler += (sender3, e3) => { + btnTimelbl.Text = chooseTimeString; + dialog.Close (); + }; + + var nowDateTime = DateTime.Now; + var hour = nowDateTime.Hour; + //hourStr + var hourStr = hour.ToString(); + if (hour < 10) { + hourStr = "0" + hour; + } + + var minute = nowDateTime.Minute; + //minuteStr + var minuteStr = minute.ToString (); + if (minute < 10) { + minuteStr = "0" + minute; + } + var hourList = new List<string> (); + for (int i = 0; i < 24; i++) { + if (i < 10) { + var a = "0" + i.ToString (); + hourList.Add (a); + } else { + hourList.Add (i.ToString ()); + } + + } + + var minuteList = new List<string> (); + for (int i = 0; i < 60; i++) { + if (i < 10) { + var a = "0" + i.ToString (); + minuteList.Add (a); + } else { + minuteList.Add (i.ToString ()); + } + + } + + chooseTime.setNPicker (hourList, minuteList, null); + chooseTime.setCurrentItems (hour, minute, 0); + chooseTimeString = hourStr + ":" + minuteStr; + + //string selectde = ""; + chooseTime.OnSelectChangeEvent += (s1, s2, s3) => { + var hourV = hourList [s1]; + var minuteV = minuteList [s2]; + chooseTimeString = hourV + ":" + minuteV; + + }; + + dialog.Show (); + + } + /// <summary> /// 鍔犺浇鎴块棿璁惧鍒楄〃鐣岄潰 /// </summary> /// <param name="deviceList">鎴块棿璁惧鍒楄〃</param> - private void InitDeviceListView (List<Function> deviceList) + private void InitDeviceListView (List<Function> deviceList) { devicesListView.RemoveAll (); //鎴块棿璁惧鍒楄〃 - devicesListView.Height = Application.GetRealHeight (130 * deviceList.Count); + devicesListView.Height = Application.GetRealHeight (130 * deviceList.Count); System.Threading.Tasks.Task.Run (() => { try { - Application.RunOnMainThread (() => { - try { - string value = ""; - for (int i = 0; i < deviceList.Count; i++) { - var device = deviceList [i]; - var deviceRowView = new RowLayout () { - Y = Application.GetRealHeight (130 * i), - Radius = 1, - BorderColor = SkinStyle.Current.Transparent, - BorderWidth = (uint)Application.GetMinRealAverage (5), - Height = Application.GetRealHeight (110), - Tag = device, - }; - devicesListView.AddChidren (deviceRowView); + Application.RunOnMainThread (() => { + try { + string value = ""; + for (int i = 0; i < deviceList.Count; i++) { + var device = deviceList [i]; + var deviceRowView = new RowLayout () { + Y = Application.GetRealHeight (130 * i), + Radius = 1, + BorderColor = SkinStyle.Current.Transparent, + BorderWidth = (uint)Application.GetMinRealAverage (5), + Height = Application.GetRealHeight (110), + Tag = device, + }; + devicesListView.AddChidren (deviceRowView); - var btnChoose = new Button () { - Width = Application.GetRealWidth (60), - Height = Application.GetRealWidth (60), - X = Application.GetRealWidth (40), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "CrabtreeAdd/Choose.png", - SelectedImagePath = "CrabtreeAdd/ChooseOn.png", - Tag = device, - }; - deviceRowView.AddChidren (btnChoose); + var btnChoose = new Button () { + Width = Application.GetRealWidth (60), + Height = Application.GetRealWidth (60), + X = Application.GetRealWidth (40), + Gravity = Gravity.CenterVertical, + UnSelectedImagePath = "CrabtreeAdd/Choose.png", + SelectedImagePath = "CrabtreeAdd/ChooseOn.png", + Tag = device, + }; + deviceRowView.AddChidren (btnChoose); - Button btnDeviceName = new Button () { - Width = Application.GetRealWidth (342), - Height = Application.GetRealHeight (70), - Text = device.name, - TextAlignment = TextAlignment.CenterLeft, - X = btnChoose.Right + Application.GetRealWidth (10), - Y = Application.GetRealHeight (20), - SelectedTextColor = SkinStyle.Current.TextColor1, - TextColor = SkinStyle.Current.TextColor1, - }; - deviceRowView.AddChidren (btnDeviceName); - Button tempSwitch = new Button { - Width = Application.GetRealWidth (90), - Height = Application.GetRealWidth (53), - X = Application.GetRealWidth (640 - 90 - 20), - Gravity = Gravity.CenterVertical, - UnSelectedImagePath = "Item/SwitchClose.png", - SelectedImagePath = "Item/SwitchOpen.png", - Tag = device, - }; - deviceRowView.AddChidren (tempSwitch); + Button btnDeviceName = new Button () { + Width = Application.GetRealWidth (342), + Height = Application.GetRealHeight (70), + Text = device.name, + TextAlignment = TextAlignment.CenterLeft, + X = btnChoose.Right + Application.GetRealWidth (10), + Y = Application.GetRealHeight (20), + SelectedTextColor = SkinStyle.Current.TextColor1, + TextColor = SkinStyle.Current.TextColor1, + }; + deviceRowView.AddChidren (btnDeviceName); + Button tempSwitch = new Button { + Width = Application.GetRealWidth (90), + Height = Application.GetRealWidth (53), + X = Application.GetRealWidth (640 - 90 - 20), + Gravity = Gravity.CenterVertical, + UnSelectedImagePath = "Item/SwitchClose.png", + SelectedImagePath = "Item/SwitchOpen.png", + Tag = device, + }; + deviceRowView.AddChidren (tempSwitch); - switch (device.spk) { - //DeviceType.LightDALI - case SPK.LightDimming: { - #region 璋冨厜鍣ˋ - tempSwitch.RemoveFromParent (); + switch (device.spk) { + //DeviceType.LightDALI + case SPK.LightDimming: { + #region 璋冨厜鍣ˋ + tempSwitch.RemoveFromParent (); - deviceRowView.Height = Application.GetRealHeight (130); - btnChoose.Y = Application.GetRealHeight (20); - btnDeviceName.Y = Application.GetRealHeight (15); + deviceRowView.Height = Application.GetRealHeight (130); + btnChoose.Y = Application.GetRealHeight (20); + btnDeviceName.Y = Application.GetRealHeight (15); - var btnLevel = new Button () { - X = btnChoose.X + Application.GetRealWidth (10), - Y = btnChoose.Bottom, - Width = Application.GetRealWidth (75), - Height = Application.GetRealHeight (45), - TextColor = SkinStyle.Current.TextColor1, - SelectedTextColor = SkinStyle.Current.TextColor1, - Text = "OFF", - TextAlignment = TextAlignment.CenterLeft, - }; - deviceRowView.AddChidren (btnLevel); + var btnLevel = new Button () { + X = btnChoose.X + Application.GetRealWidth (10), + Y = btnChoose.Bottom, + Width = Application.GetRealWidth (75), + Height = Application.GetRealHeight (45), + TextColor = SkinStyle.Current.TextColor1, + SelectedTextColor = SkinStyle.Current.TextColor1, + Text = "OFF", + TextAlignment = TextAlignment.CenterLeft, + }; + deviceRowView.AddChidren (btnLevel); - var levelBar = new HorizontalSeekBar () { - X = btnLevel.Right, - Y = btnLevel.Y, - Width = Application.GetRealWidth (460), - Height = Application.GetRealHeight (45), - ThumbColor = SkinStyle.Current.ThumbColor, - ProgressColor = SkinStyle.Current.SelectedColor, - ThumbRadius = 6, - Max = 100, - }; - deviceRowView.AddChidren (levelBar); + var levelBar = new HorizontalSeekBar () { + X = btnLevel.Right, + Y = btnLevel.Y, + Width = Application.GetRealWidth (460), + Height = Application.GetRealHeight (45), + ThumbColor = SkinStyle.Current.ThumbColor, + ProgressColor = SkinStyle.Current.SelectedColor, + ThumbRadius = 6, + Max = 100, + }; + deviceRowView.AddChidren (levelBar); - levelBar.ProgressChanged += (sender, e) => { - if (!btnChoose.IsSelected) { - btnChoose.IsSelected = true; - } - if (e == 0) { - btnLevel.Text = "OFF"; - } else { - btnLevel.Text = e.ToString () + "%"; - } - value = e.ToString (); - DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); - }; + levelBar.ProgressChanged += (sender, e) => { + if (!btnChoose.IsSelected) { + btnChoose.IsSelected = true; + } + if (e == 0) { + btnLevel.Text = "OFF"; + } else { + btnLevel.Text = e.ToString () + "%"; + } + value = e.ToString (); + DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); + }; - btnChoose.MouseUpEventHandler += (dds, ddss) => { - btnChoose.IsSelected = !btnChoose.IsSelected; - DeviceDateFun (btnChoose.Tag as Function, "0", btnChoose.IsSelected); - }; + btnChoose.MouseUpEventHandler += (dds, ddss) => { + btnChoose.IsSelected = !btnChoose.IsSelected; + DeviceDateFun (btnChoose.Tag as Function, "0", btnChoose.IsSelected); + }; - if (IsEdit) { - try { + if (IsEdit) { + try { var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId)); if (dev != null) { if (!btnChoose.IsSelected) { @@ -833,243 +971,259 @@ } for (int a = 0; a < dev.attributes.Count; a++) { var fundev = dev.attributes [a]; - if (fundev.value == "0") { - btnLevel.Text = "OFF"; - } else { - btnLevel.Text = fundev.value + "%"; - } - levelBar.Progress = int.Parse (fundev.value); - } - } - } catch { } - } - #endregion - } - break; - //DeviceType.LightEnergySwitch - //DeviceType.LightEnergySocket - //DeviceType.LightSwitchSocket - case SPK.LightSwitch: { - #region 缁х數鍣� - tempSwitch.MouseUpEventHandler += (sender3, e3) => { - tempSwitch.IsSelected = !tempSwitch.IsSelected; - - if (tempSwitch.IsSelected) { - value = "on"; - } else { - value = "off"; - } - if (!btnChoose.IsSelected) { - btnChoose.IsSelected = true; - } - DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); - - }; - - btnChoose.MouseUpEventHandler += (dds, ddss) => { - btnChoose.IsSelected = !btnChoose.IsSelected; - if (btnChoose.IsSelected) { - value = "on"; - } else { - value = "off"; - } - DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); - - }; - - if (IsEdit) { - try { - var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId)); - if (dev != null) { - if (!btnChoose.IsSelected) { - btnChoose.IsSelected = true; - } - for (int a = 0; a < dev.attributes.Count; a++) { - var fundev = dev.attributes [a]; - if (fundev.value == "on") { - tempSwitch.IsSelected = true; - } else { - tempSwitch.IsSelected = false; - } - } - } - } catch { } - } - #endregion - } - break; - case SPK.CurtainRoller: - case SPK.CurtainTrietex: - case SPK.CurtainSwitch: - { - #region 绐楀笜 - tempSwitch.RemoveFromParent (); - var tempSwitch1 = new Button () { - Width = Application.GetRealWidth (90), - Height = Application.GetRealWidth (53), - X = Application.GetRealWidth (640 - 90 - 20), - Radius = 5, - BorderColor = SkinStyle.Current.Transparent, - BorderWidth = 1, - Gravity = Gravity.CenterVertical, - TextAlignment = TextAlignment.Center, - BackgroundColor = SkinStyle.Current.ButtonColor, - SelectedBackgroundColor = SkinStyle.Current.SelectedColor, - Text = "CLOSE", - Tag = device, - }; - deviceRowView.AddChidren (tempSwitch1); - - tempSwitch1.MouseUpEventHandler += (sender3, e3) => { - tempSwitch1.IsSelected = !tempSwitch1.IsSelected; - if (tempSwitch1.IsSelected) { - value = "on"; - tempSwitch1.Text = "OPEN"; - tempSwitch1.BackgroundColor = SkinStyle.Current.SelectedColor; - } else { - value = "off"; - tempSwitch1.Text = "CLOSE"; - tempSwitch1.BackgroundColor = SkinStyle.Current.ButtonColor; - } - if (!btnChoose.IsSelected) { - btnChoose.IsSelected = true; - } - DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); - - - }; - - btnChoose.MouseUpEventHandler += (dds, ddss) => { - btnChoose.IsSelected = !btnChoose.IsSelected; - if (tempSwitch1.IsSelected) { - value = "on"; - } else { - value = "off"; - } - DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); - }; - - if (IsEdit) { - try { - var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId)); - if (dev != null) { - if (!btnChoose.IsSelected) { - btnChoose.IsSelected = true; - } - for (int a = 0; a < dev.attributes.Count; a++) { - var fundev = dev.attributes [a]; - if (fundev.value == "on") { - tempSwitch1.IsSelected = true; - tempSwitch1.Text = "OPEN"; - } else { - tempSwitch1.IsSelected = false; - tempSwitch1.Text = "CLOSE"; - } - } - } - } catch { } - } - #endregion - } - break; - case "electrical.socket": { - - } - break; - case SPK.ElectricFan: { - #region 椋庢墖 - tempSwitch.RemoveFromParent (); - deviceRowView.Height = Application.GetRealHeight (130); - btnChoose.Y = Application.GetRealHeight (5); - btnDeviceName.Y = Application.GetRealHeight (0); - - var btnFanLevel = new Button () { - X = btnChoose.X + Application.GetRealWidth (10), - Y = btnChoose.Bottom, - Width = Application.GetRealWidth (75), - Height = Application.GetRealHeight (45), - TextColor = SkinStyle.Current.TextColor1, - SelectedTextColor = SkinStyle.Current.TextColor1, - Text = "OFF", - TextAlignment = TextAlignment.CenterLeft, - }; - deviceRowView.AddChidren (btnFanLevel); - - var wi = Application.GetRealWidth (480 / 8); - for (int a = 0; a < 9; a++) { - var btnFanLevelTip = new Button () { - X = btnFanLevel.Right + wi * a - Application.GetRealWidth (0), - Y = btnFanLevel.Y - Application.GetRealHeight (5), - Width = wi, - Height = Application.GetRealHeight (27), - TextAlignment = TextAlignment.TopLeft, - Text = a.ToString (), - TextColor = SkinStyle.Current.TextColor1, - TextSize = 12, - }; - deviceRowView.AddChidren (btnFanLevelTip); - if (a == 0) { - btnFanLevelTip.Text = "OFF"; - btnFanLevelTip.TextSize = 11; - } - } - - var fanLevel = new HorizontalSeekBar () { - X = btnFanLevel.Right, - Y = btnFanLevel.Y + Application.GetRealHeight (10), - Width = Application.GetRealWidth (492), - Height = Application.GetRealHeight (45), - ThumbColor = SkinStyle.Current.ThumbColor, - ProgressColor = SkinStyle.Current.SelectedColor, - ThumbRadius = Application.GetRealWidth (3), - Max = 8, - Progress = 2, - - }; - deviceRowView.AddChidren (fanLevel); - fanLevel.ProgressChanged += (sender, e) => { - value = e.ToString (); - DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); - }; - - btnChoose.MouseUpEventHandler += (dds, ddss) => { - btnChoose.IsSelected = !btnChoose.IsSelected; - DeviceDateFun (btnChoose.Tag as Function, "0", btnChoose.IsSelected); - }; - if (IsEdit) { - try { - var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId)); - if (dev != null) { - if (!btnChoose.IsSelected) { - btnChoose.IsSelected = true; - } - for (int a = 0; a < dev.attributes.Count; a++) { - var fundev = dev.attributes [a]; + if (fundev.key == "brightness") { if (fundev.value == "0") { - //btnLevel.Text = "OFF"; + btnLevel.Text = "OFF"; } else { - fanLevel.Progress = int.Parse (fundev.value); + btnLevel.Text = fundev.value + "%"; } - + levelBar.Progress = int.Parse (fundev.value); } } - } catch { } - } - #endregion + } + } catch { } } - break; + #endregion } + break; + //DeviceType.LightEnergySwitch + //DeviceType.LightEnergySocket + //DeviceType.LightSwitchSocket + case SPK.ElectricSocket: + case SPK.LightSwitch: { + #region 缁х數鍣� + tempSwitch.MouseUpEventHandler += (sender3, e3) => { + tempSwitch.IsSelected = !tempSwitch.IsSelected; - - - + if (tempSwitch.IsSelected) { + value = "on"; + } else { + value = "off"; + } + if (!btnChoose.IsSelected) { + btnChoose.IsSelected = true; + } + DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); + + }; + + btnChoose.MouseUpEventHandler += (dds, ddss) => { + btnChoose.IsSelected = !btnChoose.IsSelected; + if (tempSwitch.IsSelected) { + value = "on"; + } else { + value = "off"; + } + DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); + + }; + + if (IsEdit) { + try { + var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId)); + if (dev != null) { + if (!btnChoose.IsSelected) { + btnChoose.IsSelected = true; + } + for (int a = 0; a < dev.attributes.Count; a++) { + var fundev = dev.attributes [a]; + if (fundev.value == "on") { + tempSwitch.IsSelected = true; + } else { + tempSwitch.IsSelected = false; + } + } + } + } catch { } + } + #endregion + } + break; + case SPK.CurtainRoller: + case SPK.CurtainTrietex: + case SPK.CurtainSwitch: { + #region 绐楀笜 + tempSwitch.RemoveFromParent (); + var tempSwitch1 = new Button () { + Width = Application.GetRealWidth (90), + Height = Application.GetRealWidth (53), + X = Application.GetRealWidth (640 - 90 - 20), + Radius = 5, + BorderColor = SkinStyle.Current.Transparent, + BorderWidth = 1, + Gravity = Gravity.CenterVertical, + TextAlignment = TextAlignment.Center, + BackgroundColor = SkinStyle.Current.ButtonColor, + SelectedBackgroundColor = SkinStyle.Current.SelectedColor, + Text = "CLOSE", + Tag = device, + }; + deviceRowView.AddChidren (tempSwitch1); + + tempSwitch1.MouseUpEventHandler += (sender3, e3) => { + tempSwitch1.IsSelected = !tempSwitch1.IsSelected; + if (tempSwitch1.IsSelected) { + value = "on"; + tempSwitch1.Text = "OPEN"; + tempSwitch1.BackgroundColor = SkinStyle.Current.SelectedColor; + } else { + value = "off"; + tempSwitch1.Text = "CLOSE"; + tempSwitch1.BackgroundColor = SkinStyle.Current.ButtonColor; + } + if (!btnChoose.IsSelected) { + btnChoose.IsSelected = true; + } + DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); + + + }; + + btnChoose.MouseUpEventHandler += (dds, ddss) => { + btnChoose.IsSelected = !btnChoose.IsSelected; + if (tempSwitch1.IsSelected) { + value = "on"; + } else { + value = "off"; + } + DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); + }; + + if (IsEdit) { + try { + var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId)); + if (dev != null) { + if (!btnChoose.IsSelected) { + btnChoose.IsSelected = true; + } + for (int a = 0; a < dev.attributes.Count; a++) { + var fundev = dev.attributes [a]; + if (fundev.value == "on") { + tempSwitch1.IsSelected = true; + tempSwitch1.Text = "OPEN"; + } else { + tempSwitch1.IsSelected = false; + tempSwitch1.Text = "CLOSE"; + } + } + } + } catch { } + } + #endregion + } + break; + case SPK.ElectricFan: { + #region 椋庢墖 + tempSwitch.RemoveFromParent (); + deviceRowView.Height = Application.GetRealHeight (130); + btnChoose.Y = Application.GetRealHeight (5); + btnDeviceName.Y = Application.GetRealHeight (0); + + var btnFanLevel = new Button () { + X = btnChoose.X + Application.GetRealWidth (10), + Y = btnChoose.Bottom, + Width = Application.GetRealWidth (75), + Height = Application.GetRealHeight (45), + TextColor = SkinStyle.Current.TextColor1, + SelectedTextColor = SkinStyle.Current.TextColor1, + Text = "OFF", + //Text = "", + TextAlignment = TextAlignment.CenterLeft, + }; + deviceRowView.AddChidren (btnFanLevel); + + var wi = Application.GetRealWidth (480 / 8); + for (int a = 0; a < 9; a++) { + var btnFanLevelTip = new Button () { + X = btnFanLevel.Right + wi * a - Application.GetRealWidth (0), + Y = btnFanLevel.Y - Application.GetRealHeight (5), + Width = wi, + Height = Application.GetRealHeight (27), + TextAlignment = TextAlignment.TopLeft, + Text = a.ToString (), + TextColor = SkinStyle.Current.TextColor1, + TextSize = 12, + }; + deviceRowView.AddChidren (btnFanLevelTip); + if (a == 0) { + btnFanLevelTip.Text = "OFF"; + btnFanLevelTip.TextSize = 11; + } + } + var fanLevel = new HorizontalSeekBar () { + X = btnFanLevel.Right, + Y = btnFanLevel.Y + Application.GetRealHeight (10), + Width = Application.GetRealWidth (492), + Height = Application.GetRealHeight (45), + ThumbColor = SkinStyle.Current.ThumbColor, + ProgressColor = SkinStyle.Current.SelectedColor, + ThumbRadius = Application.GetRealWidth (3), + Max = 8, + Progress = 2, + + }; + deviceRowView.AddChidren (fanLevel); + //鍒氬紑濮嬮粯璁ゆ樉绀�1妗� + value = "2"; + SetFanButtonState (btnFanLevel, value); + + fanLevel.ProgressChanged += (sender, e) => { + if (!btnChoose.IsSelected) { + btnChoose.IsSelected = true; + } + value = e.ToString (); + //if (value == "0") { + // btnFanLevel.Text = "OFF"; + //} else { + // btnFanLevel.Text = value; + //} + + SetFanButtonState (btnFanLevel, value); + + DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); + }; + + btnChoose.MouseUpEventHandler += (dds, ddss) => { + btnChoose.IsSelected = !btnChoose.IsSelected; + DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); + }; + if (IsEdit) { + try { + var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId)); + if (dev != null) { + if (!btnChoose.IsSelected) { + btnChoose.IsSelected = true; + } + for (int a = 0; a < dev.attributes.Count; a++) { + var fundev = dev.attributes [a]; + if (fundev.key == "fan_speed_percent") { + fanLevel.Progress = int.Parse (fundev.value); + //if (fundev.value == "0") { + // btnFanLevel.Text = "OFF"; + //} else { + // btnFanLevel.Text = fundev.value; + //} + SetFanButtonState (btnFanLevel, fundev.value); + } + } + } + } catch { } + } + #endregion + } + break; } - } catch (Exception ex) { - Utlis.WriteLine ("AddSchedule error : " + ex.Message); - } - }); - + + + + } + } catch (Exception ex) { + Utlis.WriteLine ("AddSchedule error : " + ex.Message); + } + }); + + } catch (Exception ex) { Utlis.WriteLine (ex.Message); } finally { @@ -1079,26 +1233,47 @@ } }); } + + /// <summary> + /// + /// </summary> + /// <param name="btnFanLevel"></param> + /// <param name="value"></param> + void SetFanButtonState (Button btnFanLevel, string value) + { + if (btnFanLevel == null) return; + + if (value == "0") { + btnFanLevel.Text = "OFF"; + } else { + btnFanLevel.Text = value; + } + } + /// <summary> /// 璁惧鏁版嵁杞崲 /// </summary> /// <param name="function"></param> /// <param name="value">寮�鍏崇姸鎬佸��</param> /// <param name="isSelected">鍒ゆ柇鎺т欢鐐瑰嚮鐘舵��</param> - public void DeviceDateFun (Function function, string value, bool isSelected) + public void DeviceDateFun (Function function, string value, bool isSelected) { string keyValue = ""; switch (function.spk) { - case "curtain.trietex": - case "curtain.roller": - case "light.switch": - case "curtain.switch": - case "electrical.socket": { + case SPK.CurtainTrietex: + case SPK.CurtainRoller: + case SPK.LightSwitch: + case SPK.CurtainSwitch: + case SPK.ElectricSocket: { keyValue = "on_off"; } break; - case "light.dimming": { + case SPK.LightDimming: { keyValue = "brightness"; + } + break; + case SPK.ElectricFan: { + keyValue = "fan_speed_percent"; } break; @@ -1106,7 +1281,7 @@ Fun fun = new Fun (); fun.deviceId = Int64.Parse (function.deviceId); fun.spk = function.spk; - fun.attributes.Add (new Attributes { key= keyValue, value = value }); + fun.attributes.Add (new Attributes { key = keyValue, value = value }); fun.bus.addresses = function.bus.addresses; fun.bus.loopId = function.bus.loopId; AddDeviceList (fun, isSelected); @@ -1116,8 +1291,45 @@ /// </summary> /// <param name="fun"></param> /// <param name="isSelected">鍒ゆ柇鎺т欢鐐瑰嚮鐘舵��</param> - public void AddDeviceList (Fun fun, bool isSelected) + public void AddDeviceList (Fun fun, bool isSelected) { + + switch (fun.spk) { + case SPK.LightDimming: { + //璋冨厜鍋氫簡涓�涓壒娈婂鐞嗭紱 + if (fun.attributes.Count == 1) { + var dic = fun.attributes [0]; + if (dic.key == "brightness") { + Attributes attributes = new Attributes (); + attributes.key = "on_off"; + if (dic.value == "0") { + attributes.value = "off"; + } else { + attributes.value = "on"; + } + fun.attributes.Add (attributes); + } + + } + break; + } + case SPK.ElectricFan: { + if (fun.attributes.Count == 1) { + var dic = fun.attributes [0]; + if (dic.key == "fan_speed_percent") { + Attributes attributes = new Attributes (); + attributes.key = "on_off"; + if (dic.value == "0") { + attributes.value = "off"; + } else { + attributes.value = "on"; + } + fun.attributes.Add (attributes); + } + } + } + break; + } var device = selectedDeviceList.Find ((dev) => dev.deviceId == fun.deviceId); if (device != null) { selectedDeviceList.Remove (device); @@ -1127,6 +1339,6 @@ } } - + } } -- Gitblit v1.8.0