| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using HDL_ON.DriverLayer; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.UI.CSS; |
| | | using Shared; |
| | |
| | | { |
| | | /// <summary> |
| | | /// 更新界面信息 |
| | | /// 更新功能打开数量 |
| | | /// 更新全关功能状态 |
| | | /// </summary> |
| | | /// <param name="function"></param> |
| | | public static void UpdataInfo(Function function) |
| | |
| | | if (view2.GetChildren(k).GetType() == typeof(FrameLayout)) |
| | | { |
| | | var view3 = view2.GetChildren(j) as FrameLayout; |
| | | if(view3== null) |
| | | { |
| | | continue; |
| | | } |
| | | for (var o = 0; o < view3.ChildrenCount; o++) |
| | | { |
| | | if (view3.GetChildren(o).GetType() == typeof(Button)) |
| | | { |
| | | var btn = view3.GetChildren(o) as Button; |
| | | if (btn.Tag != null && btn.Tag.ToString() == functionCategory + "_onCount") |
| | | if (btn.Tag != null) |
| | | { |
| | | string btnText = "0/0"; |
| | | switch (functionCategory) |
| | | if (btn.Tag.ToString() == functionCategory + "_onCount") |
| | | { |
| | | case FunctionCategory.Thermostat: |
| | | switch (functionType) |
| | | { |
| | | case FunctionType.FloorHeating: |
| | | btnText = DB_ResidenceData.residenceData.functionList.floorHeatings.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.floorHeatings.Count; |
| | | break; |
| | | case FunctionType.AC: |
| | | btnText = DB_ResidenceData.residenceData.functionList.aCs.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.aCs.Count; |
| | | break; |
| | | } |
| | | break; |
| | | case FunctionCategory.Curtain: |
| | | btnText = DB_ResidenceData.residenceData.functionList.curtains.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.curtains.Count; |
| | | break; |
| | | case FunctionCategory.Light: |
| | | btnText = DB_ResidenceData.residenceData.functionList.lights.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.lights.Count; |
| | | break; |
| | | case FunctionCategory.Electrical: |
| | | btnText = DB_ResidenceData.residenceData.functionList.electricals.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.electricals.Count; |
| | | break; |
| | | string btnText = "0"; |
| | | switch (functionCategory) |
| | | { |
| | | case FunctionCategory.Thermostat: |
| | | switch (functionType) |
| | | { |
| | | case FunctionType.FloorHeating: |
| | | btnText = DB_ResidenceData.functionList.floorHeatings.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); |
| | | break; |
| | | case FunctionType.AC: |
| | | btnText = DB_ResidenceData.functionList.aCs.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); |
| | | break; |
| | | } |
| | | break; |
| | | case FunctionCategory.Curtain: |
| | | btnText = DB_ResidenceData.functionList.curtains.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); |
| | | break; |
| | | case FunctionCategory.Light: |
| | | btnText = DB_ResidenceData.functionList.lights.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); |
| | | break; |
| | | case FunctionCategory.Electrical: |
| | | btnText = DB_ResidenceData.functionList.electricals.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count.ToString(); |
| | | break; |
| | | } |
| | | btn.Text = btnText; |
| | | } |
| | | btn.Text = btnText; |
| | | else if (btn.Tag.ToString() == functionCategory + "_AllControl") |
| | | { |
| | | var openCount = 0; |
| | | switch (functionCategory) |
| | | { |
| | | case FunctionCategory.Thermostat: |
| | | switch (functionType) |
| | | { |
| | | case FunctionType.FloorHeating: |
| | | openCount = DB_ResidenceData.functionList.floorHeatings.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; |
| | | break; |
| | | case FunctionType.AC: |
| | | openCount = DB_ResidenceData.functionList.aCs.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; |
| | | break; |
| | | } |
| | | break; |
| | | case FunctionCategory.Curtain: |
| | | openCount = DB_ResidenceData.functionList.curtains.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; |
| | | break; |
| | | case FunctionCategory.Light: |
| | | openCount = DB_ResidenceData.functionList.lights.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; |
| | | break; |
| | | case FunctionCategory.Electrical: |
| | | openCount = DB_ResidenceData.functionList.electricals.FindAll((obj) => obj.trait_on_off.value.ToString() == "on").Count; |
| | | break; |
| | | } |
| | | btn.IsSelected = openCount != 0; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | var btn = view1.GetChildren(j) as Button; |
| | | if (btn.Tag != null && btn.Tag.ToString() == "AllClose") |
| | | { |
| | | if (function.on_off == "on") |
| | | if (function.trait_on_off.value.ToString() == "on") |
| | | { |
| | | btn.Visible = true; |
| | | } |
| | |
| | | { |
| | | foreach (var rId in function.roomIdList) |
| | | { |
| | | var r = DB_ResidenceData.residenceData.rooms.Find(s => s.sid == rId); |
| | | var ssd = r.functions.FindAll((obj) => obj.on_off == "on" && obj.functionCategory != FunctionCategory.Scene); |
| | | if(rId == null) |
| | | { |
| | | continue; |
| | | } |
| | | var r = DB_ResidenceData.rooms.Find(s => s.sid == rId); |
| | | if(r == null) |
| | | { |
| | | continue; |
| | | } |
| | | var ssd = r.GetRoomFunctions(false).FindAll((obj) => obj.trait_on_off.value.ToString() == "on" && obj.functionCategory != FunctionCategory.Scene); |
| | | var sss = ssd.Count; |
| | | if (sss == 0) |
| | | { |
| | |
| | | { |
| | | Action action = () => |
| | | { |
| | | foreach (var f in room.functions) |
| | | new System.Threading.Thread(() => |
| | | { |
| | | if (f.functionCategory == FunctionCategory.Scene) |
| | | foreach (var f in room.GetRoomFunctions(false)) |
| | | { |
| | | continue; |
| | | if (f.functionCategory == FunctionCategory.Scene) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | f.trait_on_off.value = "off"; |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("on_off", f.trait_on_off.value.ToString()); |
| | | Control.ins.SendWriteCommand(f, d); |
| | | } |
| | | f.on_off = "off"; |
| | | Control.Send(CommandType_A.write, f); |
| | | } |
| | | |
| | | foreach (var m in Music.A31MusicModel.A31MusicModelList) |
| | | { |
| | | if (m.roomIdList.Contains(room.sid)) |
| | | { |
| | | Music.SendMethod.Pause(m); |
| | | } |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | |
| | | btn.Visible = false; |
| | | }; |
| | | new PublicAssmebly().TipMsg(StringId.Tip, StringId.TipCloseAllFunctionInRoom, action); |
| | | }; |
| | | foreach (var f in room.functions) |
| | | foreach (var f in room.GetRoomFunctions(false)) |
| | | { |
| | | if (f.functionCategory == FunctionCategory.Scene) |
| | | { |
| | | continue; |
| | | } |
| | | if (f.on_off == "on") |
| | | if (f.trait_on_off.value.ToString() == "on") |
| | | { |
| | | btn.Visible = true; |
| | | break; |
| | |
| | | { |
| | | btn.MouseUpEventHandler = (sender, e) => { |
| | | btn.IsSelected = !btn.IsSelected; |
| | | switch(functionCategory) |
| | | var onoff = btn.IsSelected ? "on" : "off"; |
| | | switch (functionCategory) |
| | | { |
| | | case ShowFunction.AC: |
| | | foreach(var f in DB_ResidenceData.residenceData.functionList.aCs) |
| | | foreach(var f in DB_ResidenceData.functionList.aCs) |
| | | { |
| | | f.on_off = btn.IsSelected ? "on" : "off"; |
| | | Control.Send(CommandType_A.write, f); |
| | | f.trait_on_off.value = onoff; |
| | | //Control.Send(CommandType_A.write, f); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("on_off", f.trait_on_off.value.ToString()); |
| | | Control.ins.SendWriteCommand(f, d); |
| | | } |
| | | break; |
| | | case ShowFunction.Curtain: |
| | | |
| | | //foreach (var f in DB_ResidenceData.functionList.curtains) |
| | | //{ |
| | | // f.trait_on_off.value = onoff; |
| | | // //Control.Send(CommandType_A.write, f); |
| | | // Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | // d.Add("percent", "100"); |
| | | // Control.SendWriteCommand(f, d); |
| | | //} |
| | | break; |
| | | case ShowFunction.Light: |
| | | foreach (var f in DB_ResidenceData.residenceData.functionList.lights) |
| | | foreach (var f in DB_ResidenceData.functionList.lights) |
| | | { |
| | | f.on_off = btn.IsSelected ? "on" : "off"; |
| | | Control.Send(CommandType_A.write, f); |
| | | f.trait_on_off.value = onoff; |
| | | //Control.Send(CommandType_A.write, f); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("on_off", f.trait_on_off.value.ToString()); |
| | | Control.ins.SendWriteCommand(f, d); |
| | | } |
| | | break; |
| | | } |
| | |
| | | { |
| | | btnOpen.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | if (btnOpen.IsSelected) |
| | | foreach (var f in DB_ResidenceData.functionList.curtains) |
| | | { |
| | | return; |
| | | } |
| | | btnOpen.IsSelected = true; |
| | | btnClose.IsSelected = false; |
| | | foreach (var f in DB_ResidenceData.residenceData.functionList.curtains) |
| | | { |
| | | f.on_off = "on"; |
| | | Control.Send(CommandType_A.write, f); |
| | | f.trait_on_off.value = "on"; |
| | | f.percent = 100; |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("on_off", f.trait_on_off.value.ToString()); |
| | | Control.ins.SendWriteCommand(f, d); |
| | | } |
| | | }; |
| | | |
| | | btnClose.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | if (btnClose.IsSelected) |
| | | foreach (var f in DB_ResidenceData.functionList.curtains) |
| | | { |
| | | return; |
| | | } |
| | | btnClose.IsSelected = true; |
| | | btnOpen.IsSelected = false; |
| | | foreach (var f in DB_ResidenceData.residenceData.functionList.curtains) |
| | | { |
| | | f.on_off = "off"; |
| | | Control.Send(CommandType_A.write, f); |
| | | f.trait_on_off.value = "off"; |
| | | f.percent = 0; |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add("on_off", f.trait_on_off.value.ToString()); |
| | | Control.ins.SendWriteCommand(f, d); |
| | | } |
| | | }; |
| | | |