From 4e343aa2d3bba9e1dc5519afa2564a230c556496 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期五, 05 二月 2021 15:13:14 +0800 Subject: [PATCH] 2021-2-5-1 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs | 970 ++++++++++++++++++++++++++------------------------------ 1 files changed, 451 insertions(+), 519 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs index 55f8122..cbafc6e 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs @@ -6,27 +6,63 @@ { public class AddSchedule : FrameLayout { + /// <summary> + /// 涓婁笅婊戝姩VerticalScrolViewLayout + /// </summary> VerticalScrolViewLayout bodyView; + /// <summary> + /// 璁惧瀵硅薄鐖舵帶浠� + /// </summary> FrameLayout devicesListView; + /// <summary> + /// 瀹氫箟涓�涓洖璋冨嚱鏁� + /// </summary> Action<Timer> action; - List<Common> roomDeviceList = new List<Common>(); - List<string> roomNameList = new List<string> (); - List<DeviceInfo> timerControlDeviceList = new List<DeviceInfo> (); - + /// <summary> + /// 閫変腑璁惧鍒楄〃 + /// </summary> + List<Fun> selectedDeviceList = new List<Fun> (); + /// <summary> + /// 鏄惁缂栬緫锛坱rue=缂栬緫锛� + /// </summary> + bool IsEdit = false; + /// <summary> + /// 瀵硅薄鏋勯�犲嚱鏁� + /// </summary> + /// <param name="act">杩斿洖鍑芥暟</param> public AddSchedule (Action<Timer> act) { action = act; } + /// <summary> + /// 閲嶅啓鏂规硶 + /// </summary> public override void RemoveFromParent () { UserMiddle.SettingPageView.ScrollEnabled = true; base.RemoveFromParent (); } - + /// <summary> + /// 瀵硅薄涓诲叆鍙� + /// </summary> + /// <param name="timerTemp">褰撳墠瀵硅薄</param> + /// <param name="listTimer">璁℃椂鍣ㄥ垪琛�</param> + /// <param name="isEdit">缂栬緫鐘舵��</param> public void ShowPage (Timer timerTemp, List<Timer> listTimer, bool isEdit = false) { + IsEdit = isEdit; + selectedDeviceList.Clear (); + if (isEdit) { + for (int j = 0; j < timerTemp.controlData.actions.Count; j++) { + var fun = timerTemp.controlData.actions [j]; + var dev = selectedDeviceList.Find ((c) => c.deviceId == fun.deviceId); + if (dev == null) { + selectedDeviceList.Add (fun); + } + } + + } UserMiddle.SettingPageView.ScrollEnabled = false; - timerTemp.RegionID = UserConfig.Instance.CurrentRegion.Id; #region topview var topView = new RowLayout () { Y = Application.GetRealHeight (36), @@ -98,7 +134,7 @@ BorderWidth = 1, TextAlignment = TextAlignment.Center, TextColor = SkinStyle.Current.TextColor1, - Text = timerTemp.TimerName + Text = timerTemp.timerName }; nameView.AddChidren (etName); etName.EditorEnterAction += (obj) => { @@ -133,7 +169,7 @@ var btnTimelbl = new Button () { X = btnTimeIcon.Right, Width = Application.GetRealWidth (110), - Text = timerTemp.ExecutionTime, + Text = timerTemp.executeUtcTime, TextAlignment = TextAlignment.Center, TextColor = SkinStyle.Current.TextColor1, }; @@ -186,7 +222,7 @@ }; bottomView.AddChidren (btnSaveTime); btnSaveTime.MouseUpEventHandler += (sender3, e3) => { - var chooseHour = chooseTime.Hour - timerTemp.TimeZone; + // 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"; @@ -230,7 +266,7 @@ Radius = (uint)Application.GetMinRealAverage (22), BorderWidth = 1, BorderColor = SkinStyle.Current.Transparent, - IsSelected = timerTemp.Periodicity.Contains ("0"), + IsSelected = timerTemp.whichDay.Contains (0), Tag = 0, }; repeatView.AddChidren (btnSunday); @@ -249,7 +285,7 @@ Radius = (uint)Application.GetMinRealAverage (22), BorderWidth = 1, BorderColor = SkinStyle.Current.Transparent, - IsSelected = timerTemp.Periodicity.Contains ("1"), + IsSelected = timerTemp.whichDay.Contains (1), Tag = 1, }; repeatView.AddChidren (btnMonday); @@ -268,7 +304,7 @@ Radius = (uint)Application.GetMinRealAverage (22), BorderWidth = 1, BorderColor = SkinStyle.Current.Transparent, - IsSelected = timerTemp.Periodicity.Contains ("2"), + IsSelected = timerTemp.whichDay.Contains (2), Tag = 2, }; repeatView.AddChidren (btnTuesday); @@ -286,7 +322,7 @@ Radius = (uint)Application.GetMinRealAverage (22), BorderWidth = 1, BorderColor = SkinStyle.Current.Transparent, - IsSelected = timerTemp.Periodicity.Contains ("3"), + IsSelected = timerTemp.whichDay.Contains (3), Tag = 3, }; repeatView.AddChidren (btnWednesday); @@ -304,7 +340,7 @@ Radius = (uint)Application.GetMinRealAverage (22), BorderWidth = 1, BorderColor = SkinStyle.Current.Transparent, - IsSelected = timerTemp.Periodicity.Contains ("4"), + IsSelected = timerTemp.whichDay.Contains (4), Tag = 4, }; repeatView.AddChidren (btnThursday); @@ -323,7 +359,7 @@ Radius = (uint)Application.GetMinRealAverage (22), BorderWidth = 1, BorderColor = SkinStyle.Current.Transparent, - IsSelected = timerTemp.Periodicity.Contains ("5"), + IsSelected = timerTemp.whichDay.Contains (5), Tag = 5, }; repeatView.AddChidren (btnFriday); @@ -342,7 +378,7 @@ Radius = (uint)Application.GetMinRealAverage (22), BorderWidth = 1, BorderColor = SkinStyle.Current.Transparent, - IsSelected = timerTemp.Periodicity.Contains ("6"), + IsSelected = timerTemp.whichDay.Contains (6), Tag = 6, }; repeatView.AddChidren (btnSaturday); @@ -395,7 +431,7 @@ var downSelectedButton = new Button () { X = Application.GetRealWidth (310), - Height = Application.GetRealHeight (50), + Height = Application.GetRealWidth (50), Width = Application.GetRealWidth (55), UnSelectedImagePath = "Item/Down.png", SelectedImagePath = "Item/DownSelected.png", @@ -410,40 +446,15 @@ Height = Application.GetRealHeight (60), TextAlignment = TextAlignment.CenterLeft, TextColor = SkinStyle.Current.TextColor1, + Text = "ALL", }; roomContenView.AddChidren (btnRoomChoose); - roomNameList.Add ("ALL"); - foreach (var room in Room.Lists) { - if (string.IsNullOrEmpty (room.Name)) { - continue; - } - roomNameList.Add (room.Name); - if (timerTemp.RoomName == "ALL") { - roomDeviceList.AddRange (room.DeviceList); - } else { - if(timerTemp.RoomName == room.Name) { - roomDeviceList.Clear (); - roomDeviceList.AddRange (room.DeviceList); - } - } - } - if (roomNameList.Count > 0 && !isEdit) { - timerTemp.RoomName = roomNameList [0]; - } - btnRoomChoose.Text = timerTemp.RoomName; + #endregion #region Devices - try { - timerControlDeviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<DeviceInfo>> (timerTemp.ControlDeviceData);//devicesControlDataList - } catch { - timerControlDeviceList = null; - } - - if (timerControlDeviceList == null) - timerControlDeviceList = new List<DeviceInfo> (); var devicesView = new RowLayout () { Height = Application.GetRealHeight (110), @@ -460,17 +471,18 @@ }; devicesView.AddChidren (btnDeviceTitle); - devicesListView = new FrameLayout () { - Height = Application.GetRealHeight (130 * roomDeviceList.Count), + devicesListView = new FrameLayout () { + Height = Application.GetRealHeight (130), }; bodyView.AddChidren (devicesListView); - MainPage.Loading.Start ("Please wait..."); - InitDeviceListView (roomDeviceList, timerControlDeviceList, devicesListView); #endregion - - #region -----Room + MainPage.Loading.Start ("Please wait..."); + SmartHome.Method mMthod = new SmartHome.Method (); + var devList = mMthod.GetRoomDeviceList ("ALL"); + InitDeviceListView (devList); + #region -----Room 鐐瑰嚮浜嬩欢 btnRoomChoose.MouseUpEventHandler += (sender, e) => { Application.HideSoftInput (); var roomDialog = new Dialog (); @@ -504,11 +516,13 @@ BackgroundColor = SkinStyle.Current.ViewColor, }; chooseRoomView.AddChidren (roomListView); - - foreach (var roomName in roomNameList) { + //鑾峰彇鎴块棿鍒楄〃 + var roomList= mMthod.GetRoomList (); + for (int i = 0; i < roomList.Count; i++) { + var room = roomList [i]; var btnRoomNameChoose = new Button () { Height = Application.GetRealHeight (90), - Text = roomName, + Text = room.Name, TextColor = SkinStyle.Current.TextColor1, TextAlignment = TextAlignment.Center, }; @@ -522,21 +536,9 @@ btnRoomNameChoose.MouseUpEventHandler += (sd, ds) => { btnRoomChoose.Text = (sd as Button).Text; - foreach (var room in Room.Lists) { - if (string.IsNullOrEmpty (room.Name)) { - continue; - } - if (btnRoomChoose.Text == "ALL") { - roomDeviceList.AddRange (room.DeviceList); - } else { - if (btnRoomChoose.Text == room.Name) { - roomDeviceList.Clear (); - roomDeviceList.AddRange (room.DeviceList); - } - } - } - timerControlDeviceList = new List<DeviceInfo> (); - InitDeviceListView (roomDeviceList, timerControlDeviceList, devicesListView); + //鑾峰彇璁惧鍒楄〃 + var deviceList = mMthod.GetRoomDeviceList (btnRoomChoose.Text); + InitDeviceListView (deviceList); roomDialog.Close (); }; } @@ -562,11 +564,7 @@ saveTimeBottomView.AddChidren (btnSaveTimerBottom); btnSaveTimerBottom.MouseUpEventHandler += (ll, kk) => { - //WorkingDay, //宸ヤ綔鏃� - //Weekend, //鍛ㄦ湯 - //Week, //鎸囧畾鏄熸湡鍑� - //Period, //鎸囧畾鏃堕棿娈� - //AppointDay, //鎸囧畾鏃� Periodicity + if (btnMonday.IsSelected == false && btnFriday.IsSelected == false && btnThursday.IsSelected == false && btnSunday.IsSelected == false && btnTuesday.IsSelected == false && btnSaturday.IsSelected == false && btnWednesday.IsSelected == false) { //new Alert ("", "璇烽�夋嫨鏃ユ湡!", "Close").Show (); @@ -587,16 +585,16 @@ // new Alert ("", "The timer name already exists. Please change it before saving it.", "Close").Show (); // return; //} - - if (timerControlDeviceList.Count == 0) { + + if (selectedDeviceList.Count == 0) { new Alert ("", "Please choose at least one device!", "Close").Show (); return; } //鍚嶅瓧閲嶅鍒ゆ柇闄愬埗 - var mTimer = listTimer.Find ((obj) => obj.TimerName == mTimerName); + var mTimer = listTimer.Find ((obj) => obj.timerName == mTimerName); if (isEdit) { - if (mTimer != null && mTimer.Id != timerTemp.Id) { + if (mTimer != null && mTimer.id != timerTemp.id) { new Alert ("", "The timer name already exists. Please change it before saving it.", "Close").Show (); return; } @@ -610,9 +608,9 @@ //2020-02-10 鏃堕棿閲嶅鍒ゆ柇闄愬埗 string mExecutionTime = btnTimelbl.Text; //timerTemp.ExecutionTime = btnTimelbl.Text; - var mTimerExecutionTime = listTimer.Find ((obj) => (obj.ExecutionTime == mExecutionTime)); + var mTimerExecutionTime = listTimer.Find ((obj) => (obj.executeUtcTime == mExecutionTime)); if (isEdit) { - if (mTimerExecutionTime != null && mTimerExecutionTime.Id != timerTemp.Id) { + if (mTimerExecutionTime != null && mTimerExecutionTime.id != timerTemp.id) { new Alert ("", "The timer time already exists. Please change it before saving it.", "Close").Show (); return; } @@ -623,72 +621,85 @@ } } - timerTemp.Periodicity = ""; 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; + timerTemp.timerType = TimerType.EveryDay; } else if (btnSunday.IsSelected == true && btnSaturday.IsSelected == true && btnMonday.IsSelected == false && btnFriday.IsSelected == false && btnThursday.IsSelected == false && btnTuesday.IsSelected == false && btnWednesday.IsSelected == false) { - timerTemp.TimerType = TimerType.Weekend; + timerTemp.timerType = TimerType.Weekend; } else if (btnSunday.IsSelected == false && btnSaturday.IsSelected == false && btnMonday.IsSelected == true && btnFriday.IsSelected == true && btnThursday.IsSelected == true && btnTuesday.IsSelected == true && btnWednesday.IsSelected) { - timerTemp.TimerType = TimerType.WorkingDay; + timerTemp.timerType = TimerType.WorkingDay; } else { - timerTemp.TimerType = TimerType.Week; - timerTemp.Periodicity = ""; + timerTemp.timerType = TimerType.Week; } if (btnSunday.IsSelected) { - timerTemp.Periodicity += "0,"; + if (!timerTemp.whichDay.Contains (0)) { + timerTemp.whichDay.Add (0); + } } if (btnSaturday.IsSelected) { - timerTemp.Periodicity += "6,"; + if (!timerTemp.whichDay.Contains (6)) { + timerTemp.whichDay.Add (6); + } } if (btnMonday.IsSelected) { - timerTemp.Periodicity += "1,"; - } - if (btnFriday.IsSelected) { - timerTemp.Periodicity += "5,"; - } - if (btnThursday.IsSelected) { - timerTemp.Periodicity += "4,"; + if (!timerTemp.whichDay.Contains (1)) { + timerTemp.whichDay.Add (1); + } } if (btnTuesday.IsSelected) { - timerTemp.Periodicity += "2,"; + if (!timerTemp.whichDay.Contains (2)) { + timerTemp.whichDay.Add (2); + } + } if (btnWednesday.IsSelected) { - timerTemp.Periodicity += "3,"; + if (!timerTemp.whichDay.Contains (3)) { + timerTemp.whichDay.Add (3); + } + } + if (btnThursday.IsSelected) { + if (!timerTemp.whichDay.Contains (4)) { + timerTemp.whichDay.Add (4); + } + } + if (btnFriday.IsSelected) { + if (!timerTemp.whichDay.Contains (5)) { + timerTemp.whichDay.Add (5); + } + } + if (string.IsNullOrEmpty (timerTemp.id)) { + timerTemp.id =Guid.NewGuid().ToString (); } - if (timerTemp.Periodicity [timerTemp.Periodicity.Length - 1] == ',') { - timerTemp.Periodicity = timerTemp.Periodicity.Remove (timerTemp.Periodicity.Length - 1, 1); - } + DeviceDate deviceDate = new DeviceDate (); + deviceDate.gatewayId = SmartHome.Send.GatewayId; + deviceDate.homeId = SmartHome.Send.HomeId; + deviceDate.actions.AddRange (selectedDeviceList); + timerTemp.controlData = deviceDate; - - - timerTemp.IsStart = true; - if (string.IsNullOrEmpty (timerTemp.Id)) { - timerTemp.Id = Guid.NewGuid ().ToString (); - } - timerTemp.ControlDeviceData = Newtonsoft.Json.JsonConvert.SerializeObject (timerControlDeviceList); MainPage.Loading.Start ("Saving..."); timerTemp.RoomName = btnRoomChoose.Text; - timerTemp.ExecutionTime = btnTimelbl.Text; - timerTemp.TimerName = etName.Text.Trim (); + timerTemp.executeUtcTime = btnTimelbl.Text; + timerTemp.timerName = etName.Text.Trim (); System.Threading.Tasks.Task.Run (() => { try { - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (timerTemp); - ResponsePack revertObj = null; + ResponsePackNew revertObj = null; if (isEdit) { - revertObj = MainPage.RequestHttps (API.EditTimer, requestJson); - } else { - revertObj = MainPage.RequestHttps (API.AddTimer, requestJson); + revertObj = SmartHome.Send.UpdateTimer (timerTemp); + + } else { + revertObj = SmartHome.Send.AddTimer (timerTemp); } Application.RunOnMainThread (() => { if (revertObj == null) { new Alert ("", "Unable to save data, please check the network.", "Close").Show (); - } else if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) { + } else if (revertObj.Code == StateCode.SUCCESS) { this.RemoveFromParent (); action (timerTemp); } else { - ShowErrorInfo (revertObj.StateCode); + //鎻愮ず閿欒 + SmartHome.Method method = new SmartHome.Method (); + method.ShowGetTimerListErrorInfo (revertObj.Data.ToString ()); } }); } catch (Exception ex) { @@ -702,486 +713,358 @@ }; } - - - /// <summary> - //(1)Success 鍒欒皟鐢ㄦ鎺ュ彛鎴愬姛 - //(2)NoRecord 浣忓畢鏈粦瀹氱綉鍏筹紒 - //(3)NoExist 浣忓畢涓嶅瓨鍦紒 - //(4)Exist 鐢熸垚鐨凣uid宸插瓨鍦紒 + /// 鍔犺浇鎴块棿璁惧鍒楄〃鐣岄潰 /// </summary> - void ShowErrorInfo (string stateCodeStr) - { - string mes = ""; - if (stateCodeStr == "NoRecord") { - // 浣忓畢鏈粦瀹氱綉鍏筹紒 - mes = ErrorCode.HomeNoRecord; - } else if (stateCodeStr == "NoExist") { - //浣忓畢涓嶅瓨鍦紒 - mes = ErrorCode.HomeNoExist; - } else if (stateCodeStr == "Exist") { - //鐢熸垚鐨凣uid宸插瓨鍦紒 - mes = ErrorCode.GuidExist; - } else if (stateCodeStr == ErrorCode.NetworkError) { - mes = ErrorCode.NetworkError; - } else { - mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr; - - } - if (!string.IsNullOrEmpty (mes)) { - //Application.RunOnMainThread (() => { - new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show (); - //}); - } - - } - - private static void InitDeviceListView (List<Common> roomDeviceList, List<DeviceInfo> timerControlDeviceList, FrameLayout devicesListView) + /// <param name="deviceList">鎴块棿璁惧鍒楄〃</param> + private void InitDeviceListView (List<Function> deviceList) { devicesListView.RemoveAll (); - + //鎴块棿璁惧鍒楄〃 + devicesListView.Height = Application.GetRealHeight (130 * deviceList.Count); System.Threading.Tasks.Task.Run (() => { try { - int iniIndex = 0; - for (int i = 0; i < timerControlDeviceList.Count;) { - if (timerControlDeviceList [i] == null) { - timerControlDeviceList.RemoveAt (i); - } else { - i++; - } - } - -#if __IOS__ - - -#else - //鍒锋柊devicesListView 楂樺害 - devicesListView.Height = Application.GetRealHeight (130 * roomDeviceList.Count); -#endif - - foreach (var deviceCommon2 in roomDeviceList) { - if (deviceCommon2 == null) - continue; - var deviceCommon = new DeviceInfo () { - DevicePath = deviceCommon2.SavePath, DeviceType = (int)deviceCommon2.Type, SubnetID = deviceCommon2.SubnetID, - DeviceID = deviceCommon2.DeviceID, LoopID = deviceCommon2.LoopID, Command = (int)Command.SetSingleLight, - Type = deviceCommon2.Type,Name = deviceCommon2.Name,SavePath = deviceCommon2.SavePath, - }; - if (deviceCommon.Type == DeviceType.LightDimming || deviceCommon.Type == DeviceType.FanModule || - deviceCommon.Type == DeviceType.LightSwitch || deviceCommon.Type == DeviceType.LightEnergySwitch || deviceCommon.Type == DeviceType.LightEnergySocket || deviceCommon.Type == DeviceType.LightSwitchSocket || - deviceCommon.Type == DeviceType.CurtainModel || deviceCommon.Type == DeviceType.CurtainRoller || deviceCommon.Type == DeviceType.CurtainTrietex) { - Application.RunOnMainThread (() => { - try { - DeviceInfo timerControlDevice = null; - try { - timerControlDevice = timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath); - } catch { } - if (timerControlDevice != null) - deviceCommon.SendBytes = timerControlDevice.SendBytes; - var DeviceRowView = new RowLayout () { - Y = Application.GetRealHeight (130 * iniIndex), + 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 = deviceCommon.Type + "_" + deviceCommon.CommonLoopID + Tag = device, }; - devicesListView.AddChidren (DeviceRowView); - iniIndex++; + devicesListView.AddChidren (deviceRowView); var btnChoose = new Button () { - Width = Application.GetRealHeight (60), - Height = Application.GetRealHeight (60), + Width = Application.GetRealWidth (60), + Height = Application.GetRealWidth (60), X = Application.GetRealWidth (40), Gravity = Gravity.CenterVertical, UnSelectedImagePath = "CrabtreeAdd/Choose.png", SelectedImagePath = "CrabtreeAdd/ChooseOn.png", - IsSelected = timerControlDevice != null, - //Tag = deviceFilePath + Tag = device, }; - DeviceRowView.AddChidren (btnChoose); + deviceRowView.AddChidren (btnChoose); Button btnDeviceName = new Button () { Width = Application.GetRealWidth (342), Height = Application.GetRealHeight (70), - Text = deviceCommon.Name, + 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.GetMinRealAverage (90), - Height = Application.GetMinRealAverage (53), + 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 = deviceCommon.CommonLoopID, + Tag = device, }; - DeviceRowView.AddChidren (tempSwitch); + deviceRowView.AddChidren (tempSwitch); + switch (device.spk) { + case "light.dimming": { + #region 璋冨厜鍣ˋ + tempSwitch.RemoveFromParent (); - if (deviceCommon.Type == DeviceType.FanModule) { - #region 椋庢墖 - tempSwitch.RemoveFromParent (); - //FanModule fanModule = deviceCommon as FanModule; + deviceRowView.Height = Application.GetRealHeight (130); + btnChoose.Y = Application.GetRealHeight (20); + btnDeviceName.Y = Application.GetRealHeight (15); - 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 i = 0; i < 9; i++) { - var btnFanLevelTip = new Button () { - X = btnFanLevel.Right + wi * i - Application.GetRealWidth (0), - Y = btnFanLevel.Y - Application.GetRealHeight (5), - Width = wi, - Height = Application.GetRealHeight (27), - TextAlignment = TextAlignment.TopLeft, - Text = i.ToString (), + 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, - TextSize = 12, + SelectedTextColor = SkinStyle.Current.TextColor1, + Text = "OFF", + TextAlignment = TextAlignment.CenterLeft, }; - DeviceRowView.AddChidren (btnFanLevelTip); - if (i == 0) { - btnFanLevelTip.Text = "OFF"; - btnFanLevelTip.TextSize = 11; - } - } + deviceRowView.AddChidren (btnLevel); - 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,// (int)(deviceCommon.SendBytes[1]), + 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); - }; - DeviceRowView.AddChidren (fanLevel); - fanLevel.ProgressChanged += (sender, e) => { - try { + levelBar.ProgressChanged += (sender, e) => { if (!btnChoose.IsSelected) { btnChoose.IsSelected = true; - } - deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)(fanLevel.Progress) }; - if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) { - timerControlDeviceList.Add (deviceCommon); - } else { - timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)fanLevel.Progress }; } if (e == 0) { - btnFanLevel.Text = "OFF"; + btnLevel.Text = "OFF"; } else { - btnFanLevel.Text = "S" + e.ToString (); + btnLevel.Text = e.ToString () + "%"; } - } catch (Exception ex) { - Utlis.WriteLine ("ss1: " + ex.Message); - } - }; + value = e.ToString (); + DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); + }; - if (timerControlDevice != null) { - if (timerControlDevice.SendBytes [1] == 0) { - btnFanLevel.Text = "OFF"; - } else { - btnFanLevel.Text = "S" + timerControlDevice.SendBytes [1].ToString (); - } - fanLevel.Progress = timerControlDevice.SendBytes [1]; - } + btnChoose.MouseUpEventHandler += (dds, ddss) => { + btnChoose.IsSelected = !btnChoose.IsSelected; + DeviceDateFun (btnChoose.Tag as Function, "0", btnChoose.IsSelected); + }; - fanLevel.MouseDownEventHandler += (sss, ff) => { - try { - timerControlDevice = timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath); - if (!btnChoose.IsSelected) { - btnChoose.IsSelected = true; - } - if (timerControlDevice == null) { - deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)(fanLevel.Progress) }; - if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) { - timerControlDeviceList.Add (deviceCommon); - } else { - timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)fanLevel.Progress }; + 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 == "0") { + btnLevel.Text = "OFF"; + } else { + btnLevel.Text = fundev.value + "%"; + } + levelBar.Progress = int.Parse (fundev.value); } } - timerControlDevice.SendBytes [1] = (byte)fanLevel.Progress; - } catch { } - }; - - btnChoose.MouseUpEventHandler += (dds, ddss) => { - btnChoose.IsSelected = !btnChoose.IsSelected; - if (btnChoose.IsSelected) { - deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)(fanLevel.Progress) }; - if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) { - timerControlDeviceList.Add (deviceCommon); - } else { - timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)fanLevel.Progress }; - } - } else { - timerControlDeviceList.Remove (timerControlDeviceList.Find ((obj) => obj.DeviceType == (int)deviceCommon.Type && - obj.SubnetID == deviceCommon.SubnetID && obj.DeviceID == deviceCommon.DeviceID && obj.LoopID == deviceCommon.LoopID)); + } catch { } } - }; - - #endregion - } else if (deviceCommon.Type == DeviceType.LightDimming || deviceCommon.Type == DeviceType.LightDALI) { - #region 璋冨厜鍣ˋ - tempSwitch.RemoveFromParent (); - - 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 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; - } - deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)levelBar.Progress }; - //timerControlDevice = deviceCommon; - if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) { - timerControlDeviceList.Add (deviceCommon); - } else { - timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)levelBar.Progress }; - } - if (e == 0) { - btnLevel.Text = "OFF"; - } else { - btnLevel.Text = e.ToString () + "%"; - } - }; - - - if (timerControlDevice != null) { - if (timerControlDevice.SendBytes [1] == 0) { - btnLevel.Text = "OFF"; - } else { - btnLevel.Text = timerControlDevice.SendBytes [1].ToString () + "%"; - } - levelBar.Progress = timerControlDevice.SendBytes [1]; + #endregion } + break; + case "light.switch": { + #region 缁х數鍣� + tempSwitch.MouseUpEventHandler += (sender3, e3) => { + tempSwitch.IsSelected = !tempSwitch.IsSelected; - levelBar.MouseDownEventHandler += (sss, ff) => { - try { - timerControlDevice = timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath); - if (!btnChoose.IsSelected) { - btnChoose.IsSelected = true; - } - if (timerControlDevice == null) { - deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)(levelBar.Progress) }; - if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) { - timerControlDeviceList.Add (deviceCommon); - } else { - timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)levelBar.Progress }; - } - } - } catch { } - }; - btnChoose.MouseUpEventHandler += (dds, ddss) => { - btnChoose.IsSelected = !btnChoose.IsSelected; - if (btnChoose.IsSelected) { - deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)(levelBar.Progress) }; - if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) { - timerControlDeviceList.Add (deviceCommon); - } else { - timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)levelBar.Progress }; - } - } else { - timerControlDeviceList.Remove (timerControlDeviceList.Find ((obj) => obj.DeviceType == (int)deviceCommon.Type && - obj.SubnetID == deviceCommon.SubnetID && obj.DeviceID == deviceCommon.DeviceID && obj.LoopID == deviceCommon.LoopID)); - } - }; - #endregion - } else if (deviceCommon.Type == DeviceType.LightSwitch || deviceCommon.Type == DeviceType.LightEnergySwitch || deviceCommon.Type == DeviceType.LightEnergySocket || deviceCommon.Type == DeviceType.LightSwitchSocket) { - #region 缁х數鍣� - //LightSwitch switchLight = deviceCommon as LightSwitch; - //tempSwitch.IsSelected = switchLight.CurrentBrightness == 100 ? true : false; - - tempSwitch.MouseUpEventHandler += (sender3, e3) => { - tempSwitch.IsSelected = !tempSwitch.IsSelected; - var CurrentBrightness = 0; - if (tempSwitch.IsSelected) { - CurrentBrightness = 100; - } else { - CurrentBrightness = 0; - } - if (!btnChoose.IsSelected) { - btnChoose.IsSelected = true; - } - deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness }; - if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) { - timerControlDeviceList.Add (deviceCommon); - } else { - timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness }; - } - }; - if (timerControlDevice != null) { - try { - tempSwitch.IsSelected = timerControlDevice.SendBytes [1] == 100; - } catch { } - } - btnChoose.MouseUpEventHandler += (dds, ddss) => { - btnChoose.IsSelected = !btnChoose.IsSelected; - if (btnChoose.IsSelected) { - var CurrentBrightness = 0; if (tempSwitch.IsSelected) { - CurrentBrightness = 100; + value = "on"; } else { - CurrentBrightness = 0; + value = "off"; } - deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness }; - if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) - timerControlDeviceList.Add (deviceCommon); - else { - timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness }; + if (!btnChoose.IsSelected) { + btnChoose.IsSelected = true; } - } else { - timerControlDeviceList.Remove (timerControlDeviceList.Find ((obj) => obj.DeviceType == (int)deviceCommon.Type && - obj.SubnetID == deviceCommon.SubnetID && obj.DeviceID == deviceCommon.DeviceID && obj.LoopID == deviceCommon.LoopID)); - } - }; - #endregion - } else if (deviceCommon.Type == DeviceType.CurtainModel || deviceCommon.Type == DeviceType.CurtainTrietex || deviceCommon.Type == DeviceType.CurtainRoller) { - #region 绐楀笜 - //2020-07-09 鍒锋柊鎺у埗鎿嶄綔鐮� - deviceCommon.Command = (int)Command.UpdataCurtainModelStutas; - tempSwitch.RemoveFromParent (); - var tempSwitch1 = new Button () { - Width = Application.GetMinRealAverage (90), - Height = Application.GetMinRealAverage (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 = deviceCommon.CommonLoopID, - }; - DeviceRowView.AddChidren (tempSwitch1); + 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); - tempSwitch1.MouseUpEventHandler += (sender3, e3) => { - tempSwitch1.IsSelected = !tempSwitch1.IsSelected; + }; - var CurrentBrightness = 0; - if (tempSwitch1.IsSelected) { - CurrentBrightness = 1; - tempSwitch1.Text = "OPEN"; - tempSwitch1.BackgroundColor = SkinStyle.Current.SelectedColor; - } else { - CurrentBrightness = 2; - tempSwitch1.Text = "CLOSE"; - tempSwitch1.BackgroundColor = SkinStyle.Current.ButtonColor; + 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 { } } - if (!btnChoose.IsSelected) { - btnChoose.IsSelected = true; - } - deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness }; - //2020-07-09 - DeviceInfo mDeviceInfo = timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath); - if (mDeviceInfo == null) { - timerControlDeviceList.Add (deviceCommon); - } else { - mDeviceInfo.Command = (int)Command.UpdataCurtainModelStutas; - mDeviceInfo.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness }; - } - }; + #endregion + } + break; + case "curtain.roller": + case "curtain.trietex": + case "curtain.switch": { + #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); - if (timerControlDevice != null) { - try { - if (timerControlDevice.SendBytes [1] == 1) { + tempSwitch1.MouseUpEventHandler += (sender3, e3) => { + tempSwitch1.IsSelected = !tempSwitch1.IsSelected; + if (tempSwitch1.IsSelected) { + value = "on"; tempSwitch1.Text = "OPEN"; - tempSwitch1.IsSelected = true; tempSwitch1.BackgroundColor = SkinStyle.Current.SelectedColor; } else { + value = "off"; tempSwitch1.Text = "CLOSE"; - tempSwitch1.IsSelected = false; tempSwitch1.BackgroundColor = SkinStyle.Current.ButtonColor; } - } catch { } - } - - btnChoose.MouseUpEventHandler += (dds, ddss) => { - btnChoose.IsSelected = !btnChoose.IsSelected; - if (btnChoose.IsSelected) { - var CurrentBrightness = 0; - if (tempSwitch.IsSelected) { - CurrentBrightness = 1; - } else { - CurrentBrightness = 2; + if (!btnChoose.IsSelected) { + btnChoose.IsSelected = true; } - deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness }; + DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected); - //if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) { - // timerControlDeviceList.Add (deviceCommon); - //} else { - // timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness }; - //} - //2020-07-09 - DeviceInfo mDeviceInfo = timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath); - if (mDeviceInfo == null) { - timerControlDeviceList.Add (deviceCommon); + }; + + btnChoose.MouseUpEventHandler += (dds, ddss) => { + btnChoose.IsSelected = !btnChoose.IsSelected; + if (tempSwitch1.IsSelected) { + value = "on"; } else { - mDeviceInfo.Command = (int)Command.UpdataCurtainModelStutas; - mDeviceInfo.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness }; + value = "off"; } - } else { - timerControlDeviceList.Remove (timerControlDeviceList.Find ((obj) => obj.DeviceType == (int)deviceCommon.Type && - obj.SubnetID == deviceCommon.SubnetID && obj.DeviceID == deviceCommon.DeviceID && obj.LoopID == deviceCommon.LoopID)); + 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 + #endregion + } + break; + case "electrical.socket": { + + } + break; + case "fan": { + #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.value == "0") { + //btnLevel.Text = "OFF"; + } else { + fanLevel.Progress = int.Parse (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 { @@ -1191,5 +1074,54 @@ } }); } + /// <summary> + /// 璁惧鏁版嵁杞崲 + /// </summary> + /// <param name="function"></param> + /// <param name="value">寮�鍏崇姸鎬佸��</param> + /// <param name="isSelected">鍒ゆ柇鎺т欢鐐瑰嚮鐘舵��</param> + 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": { + keyValue = "on_off"; + } + break; + case "light.dimming": { + keyValue = "brightness"; + } + break; + + } + Fun fun = new Fun (); + fun.deviceId = Int64.Parse (function.deviceId); + fun.spk = function.spk; + fun.attributes.Add (new Attributes { key= keyValue, value = value }); + fun.bus.addresses = function.bus.addresses; + fun.bus.loopId = function.bus.loopId; + AddDeviceList (fun, isSelected); + } + /// <summary> + /// 娣诲姞璁惧鏁版嵁鍒板垪琛ㄩ噷 + /// </summary> + /// <param name="fun"></param> + /// <param name="isSelected">鍒ゆ柇鎺т欢鐐瑰嚮鐘舵��</param> + public void AddDeviceList (Fun fun, bool isSelected) + { + var device = selectedDeviceList.Find ((dev) => dev.deviceId == fun.deviceId); + if (device != null) { + selectedDeviceList.Remove (device); + } + if (isSelected) { + selectedDeviceList.Add (fun); + } + } + + } } -- Gitblit v1.8.0