.vs/HDL_APP_Project/xs/sqlite3/storage.ideBinary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-shmBinary files differ
.vs/HDL_APP_Project/xs/sqlite3/storage.ide-walBinary files differ
HDL-ON_Android/Assets/Phone/LogicIcon/airconditionerlogic.pngHDL-ON_Android/Assets/Phone/LogicIcon/curtainlogic.pngHDL-ON_Android/Assets/Phone/LogicIcon/functionicon.pngHDL-ON_Android/Assets/Phone/LogicIcon/heatlogic.pngHDL-ON_Android/Assets/Phone/LogicIcon/lightloguc.pngHDL-ON_Android/Assets/Phone/LogicIcon/link.png
HDL-ON_Android/Assets/Phone/LogicIcon/outletlogic.pngHDL-ON_Android/Assets/Phone/LogicIcon/scene.pngHDL-ON_Android/Assets/Phone/LogicIcon/selectTheFun.png
HDL-ON_Android/Assets/Phone/LogicIcon/selectTheScene.png
HDL-ON_Android/Assets/Phone/LogicIcon/selectTheTime.png
HDL-ON_Android/Assets/Phone/LogicIcon/timecondition.pngHDL-ON_Android/HDL-ON_Android.csproj
@@ -647,6 +647,10 @@ <AndroidAsset Include="Assets\Phone\LogicIcon\point.png" /> <AndroidAsset Include="Assets\Phone\LogicIcon\ selected+.png" /> <AndroidAsset Include="Assets\Phone\LogicIcon\selected-.png" /> <AndroidAsset Include="Assets\Phone\LogicIcon\link.png" /> <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheFun.png" /> <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheScene.png" /> <AndroidAsset Include="Assets\Phone\LogicIcon\selectTheTime.png" /> </ItemGroup> <ItemGroup> <AndroidNativeLibrary Include="libs\armeabi-v7a\libelianjni.so" /> HDL-ON_Android/Resources/Resource.designer.cs
@@ -2,6 +2,7 @@ //------------------------------------------------------------------------------ // <auto-generated> // This code was generated by a tool. // Runtime Version:4.0.30319.42000 // // Changes to this file may cause incorrect behavior and will be lost if // the code is regenerated. @@ -14,7 +15,7 @@ { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.Tasks", "1.0.0.0")] public partial class Resource { HDL-ON_iOS/Resources/Phone/LogicIcon/airconditionerlogic.pngHDL-ON_iOS/Resources/Phone/LogicIcon/curtainlogic.pngHDL-ON_iOS/Resources/Phone/LogicIcon/functionicon.pngHDL-ON_iOS/Resources/Phone/LogicIcon/heatlogic.pngHDL-ON_iOS/Resources/Phone/LogicIcon/lightloguc.pngHDL-ON_iOS/Resources/Phone/LogicIcon/link.png
HDL-ON_iOS/Resources/Phone/LogicIcon/outletlogic.pngHDL-ON_iOS/Resources/Phone/LogicIcon/scene.pngHDL-ON_iOS/Resources/Phone/LogicIcon/selectTheFun.png
HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheScene.png
HDL-ON_iOS/Resources/Phone/LogicIcon/selectTheTime.png
HDL-ON_iOS/Resources/Phone/LogicIcon/timecondition.pngHDL_ON/DAL/Server/NewAPI.cs
@@ -316,7 +316,7 @@ /// </summary> public const string Api_Post_GetDevcieInfoList = "/home-wisdom/app/device/info"; /// <summary> /// 刷新设备状态 /// 刷新设备状 /// </summary> public const string Api_Post_RefreshDeviceStatus = "/home-wisdom/app/device/status/refresh"; /// <summary> HDL_ON/Entity/DB_ResidenceData.cs
@@ -254,6 +254,7 @@ /// <summary> /// 房间列表 /// </summary> [Newtonsoft.Json.JsonIgnore] public List<Room> Rooms = SpatialInfo.CurrentSpatial.RoomList; #region 功能数据 HDL_ON/Entity/FunctionList.cs
@@ -193,7 +193,7 @@ /// </summary> public List<Function> GetAllDeviceFunctionList() { //if (deviceFunctionList == null) if (deviceFunctionList == null || deviceFunctionList.Count == 0) { deviceFunctionList = new List<Function>(); deviceFunctionList.AddRange(aCs); HDL_ON/UI/UI2/3-Intelligence/Automation/AddLogic.cs
@@ -23,7 +23,7 @@ { RemoveFromParent(); }; if (string.IsNullOrEmpty(Logic.currlogic.sid)) if (string.IsNullOrEmpty(Logic.currlogic.userLogicId)) { topView.topNameBtn.TextID = StringId.newAutomation; topView.setBtn.Visible = false; @@ -128,20 +128,16 @@ viewLayout.AddChidren(cyclicTitle.FLayoutView()); cyclicTitle.btnClick.MouseUpEventHandler += (sender, e) => { FrameLayout fLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; this.AddChidren(fLayout); DateMethod(fLayout, cyclicTitle.btnText); DateMethod(cyclicTitle.btnText); }; #endregion #region 执行推送 发送通知 /////上下间隔12像素 //viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(12) }); ///上下间隔12像素 viewLayout.AddChidren(new FrameLayout { Height = Application.GetRealHeight(12) }); /////执行推送iew //LogicView.LogicTypeTitleView push = new LogicView.LogicTypeTitleView(); //push.frameLayout.Height = Application.GetRealHeight(50); @@ -169,7 +165,7 @@ this.AddChidren(saveView.FLayoutView()); saveView.btnClick.MouseUpEventHandler += (sender, e) => { if (string.IsNullOrEmpty(Logic.currlogic.sid)) if (string.IsNullOrEmpty(Logic.currlogic.userLogicId)) { List<string> list = new List<string>(); foreach (var logic in Logic.LogicList) @@ -188,7 +184,8 @@ LogicMethod.RemoveAllView(); MainView.MainShow(); } else { else { new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail)); } @@ -204,7 +201,8 @@ LogicMethod.RemoveAllView(); MainView.MainShow(); } else { else { new LogicView.TipPopView().FlashingBox(Language.StringByID(StringId.saveFail)); } } @@ -216,11 +214,14 @@ /// <summary> /// 循环方式(每天,每月。。) /// </summary> /// <param name="fLayout">弹框主控件</param> /// <param name="button">显示文本</param> public void DateMethod(FrameLayout fLayout, Button button) public void DateMethod(Button button) { FrameLayout fLayout = new FrameLayout { BackgroundColor = CSS.CSS_Color.viewTrans60lucence, }; this.AddChidren(fLayout); LogicView.DateView dateView = new LogicView.DateView(); dateView.btnTitle.TextID = StringId.cyclic; dateView.FLayoutView(fLayout, 4); @@ -232,7 +233,7 @@ //定义一个局部变量记录选中文本状态 string weekName = ""; //定义一个局部Btn用来记录选中Btn; var selecetdBtn = new Button() { Text=""}; var selecetdBtn = new Button() { Text = "" }; for (int i = 0; i < 4; i++) { LogicView.SelectTypeView dateTypeView = new LogicView.SelectTypeView(); @@ -326,12 +327,6 @@ //确定保存 dateView.btnConfirm.MouseUpEventHandler += (sender3, e3) => { if (selecetdBtn.Text == Language.StringByID(StringId.monthly)|| selecetdBtn.Text == Language.StringByID(StringId.weekly)) { //提示:还未选 return; } if (selecetdBtn.Text == Language.StringByID(StringId.performA)) { //执行一次 @@ -342,6 +337,11 @@ //每天 Logic.currlogic.cycle.type = "day"; } else { //提示:还未选 return; } //选中保存之后显示文本 button.Text = selecetdBtn.Text; @@ -356,125 +356,35 @@ /// <param name="button">显示文本</param> public void WeekMethod(FrameLayout fLayout, Button button) { LogicView.DateView weekView = new LogicView.DateView(); weekView.btnTitle.TextID = StringId.cyclic; weekView.FLayoutView(fLayout, 7); weekView.btnCancel.MouseUpEventHandler += (sender2, e2) => { weekView.frameLayout.RemoveFromParent(); List<string> weekStr = new List<string> { Language.StringByID(StringId.monday), Language.StringByID(StringId.tuesday), Language.StringByID(StringId.wednesday), Language.StringByID(StringId.thursday), Language.StringByID(StringId.friday), Language.StringByID(StringId.saturday), Language.StringByID(StringId.sunday), }; //定义一个局部weekList列表用来记录选中数据; List<string> weekList = new List<string>(); List<string> weekStateList = new List<string>(); weekStateList.Clear(); if (Logic.currlogic.cycle.type == "week") { var list = GetWeekString(Logic.currlogic.cycle.value, "int"); //加载之前保存的数据 weekList.AddRange(Logic.currlogic.cycle.value); weekStateList.AddRange(list); } //定义一个局部变量记录选中文本状态 string weekName = ""; for (int i = 0; i < 7; i++) { LogicView.SelectTypeView weekTypeView = new LogicView.SelectTypeView(); weekTypeView.frameLayout.BackgroundColor = CSS.CSS_Color.viewTranslucence; weekTypeView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i); weekTypeView.btnIcon.Visible = false; weekTypeView.btnText.X = Application.GetRealWidth(20); weekTypeView.btnLine.X = Application.GetRealWidth(20); weekTypeView.btnLine.Width = Application.GetRealWidth(303); weekTypeView.btnNextIcon.X = Application.GetRealWidth(303); weekTypeView.btnNextIcon.Width = Application.GetMinRealAverage(28); weekTypeView.btnNextIcon.Height = Application.GetMinRealAverage(28); weekTypeView.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png"; weekTypeView.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png"; weekView.frameLayout.AddChidren(weekTypeView.FLayoutView()); weekTypeView.btnClick.Tag = i;//标记索引 switch (i) { case 0: { weekName = Language.StringByID(StringId.monday); } break; case 1: { weekName = Language.StringByID(StringId.tuesday); } break; case 2: { weekName = Language.StringByID(StringId.wednesday); } break; case 3: { weekName = Language.StringByID(StringId.thursday); } break; case 4: { weekName = Language.StringByID(StringId.friday); } break; case 5: { weekName = Language.StringByID(StringId.saturday); } break; case 6: { weekName = Language.StringByID(StringId.sunday); } break; PublicInterface weekView = new PublicInterface(); weekView.MultiSelectShow(fLayout, weekStr, Language.StringByID(StringId.cyclic), weekStateList , (list) => { var statelist = GetWeekString(list, "str"); Logic.currlogic.cycle.type = "week"; Logic.currlogic.cycle.value = statelist; button.Text = MainView.GetWeekString(statelist); } weekTypeView.btnText.Text = weekName; if (weekList.Contains(i.ToString())) { //显示之前的选中状态 weekTypeView.btnNextIcon.IsSelected = true; } //星期的点击事件 weekTypeView.btnClick.MouseUpEventHandler += (sender, e) => { string clickIndex = weekTypeView.btnClick.Tag.ToString(); weekTypeView.btnClick.IsSelected = !weekTypeView.btnClick.IsSelected; if (weekTypeView.btnClick.IsSelected) { weekTypeView.btnNextIcon.IsSelected = true; if (!weekList.Contains(clickIndex)) { //添加选中数据 weekList.Add(clickIndex); } } else { weekTypeView.btnNextIcon.IsSelected = false; if (weekList.Contains(clickIndex)) { //移除选中数据 weekList.Remove(clickIndex); } } }; } //确定点击事件 weekView.btnConfirm.MouseUpEventHandler += (sender1, e1) => { if (weekList.Count == 0) { //提示:还没选中执行周期 return; } Logic.currlogic.cycle.type = "week"; Logic.currlogic.cycle.value = weekList; button.Text = MainView.GetWeekString(weekList); fLayout.RemoveFromParent(); }; }); } /// <summary> /// 每月 @@ -556,7 +466,8 @@ } }; if (monList.Contains(i.ToString())) { if (monList.Contains(i.ToString())) { monTextBtn.IsSelected = true; } } @@ -581,6 +492,8 @@ /// <param name="button">显示文本</param> public void AndOrMethod(FrameLayout fLayout, Button button) { LogicView.DateView meetTheConditionView = new LogicView.DateView(); meetTheConditionView.btnTitle.TextID = StringId.meetTheCondition; meetTheConditionView.FLayoutView(fLayout, 2); @@ -600,8 +513,8 @@ andConditionViews.btnLine.X = Application.GetRealWidth(20); andConditionViews.btnLine.Width = Application.GetRealWidth(303); andConditionViews.btnNextIcon.X = Application.GetRealWidth(303); andConditionViews.btnNextIcon.Width = Application.GetMinRealAverage(28); andConditionViews.btnNextIcon.Height = Application.GetMinRealAverage(28); andConditionViews.btnNextIcon.Width = Application.GetRealWidth(28); andConditionViews.btnNextIcon.Height = Application.GetRealWidth(28); andConditionViews.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png"; andConditionViews.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png"; meetTheConditionView.frameLayout.AddChidren(andConditionViews.FLayoutView()); @@ -616,8 +529,8 @@ orConditionView.btnLine.X = Application.GetRealWidth(20); orConditionView.btnLine.Width = Application.GetRealWidth(303); orConditionView.btnNextIcon.X = Application.GetRealWidth(303); orConditionView.btnNextIcon.Width = Application.GetMinRealAverage(28); orConditionView.btnNextIcon.Height = Application.GetMinRealAverage(28); orConditionView.btnNextIcon.Width = Application.GetRealWidth(28); orConditionView.btnNextIcon.Height = Application.GetRealWidth(28); orConditionView.btnNextIcon.UnSelectedImagePath = "LogicIcon/weekoff.png"; orConditionView.btnNextIcon.SelectedImagePath = "LogicIcon/weekon.png"; meetTheConditionView.frameLayout.AddChidren(orConditionView.FLayoutView()); @@ -666,7 +579,97 @@ }; } /// <summary> /// 星期周期转换值的方法 /// </summary> /// <param name="list"></param> /// <param name="str_or_int"></param> /// <returns></returns> public List<string> GetWeekString(List<string> list, string str_or_int) { string weekTextName = ""; List<string> stateList = new List<string>(); for (int i = 0; i < list.Count; i++) { var s = list[i]; if (str_or_int == "int") { switch (s) { case "1": { weekTextName = Language.StringByID(StringId.monday); } break; case "2": { weekTextName = Language.StringByID(StringId.tuesday); } break; case "3": { weekTextName = Language.StringByID(StringId.wednesday); } break; case "4": { weekTextName = Language.StringByID(StringId.thursday); } break; case "5": { weekTextName = Language.StringByID(StringId.friday); } break; case "6": { weekTextName = Language.StringByID(StringId.saturday); } break; case "0": { weekTextName = Language.StringByID(StringId.sunday); } break; } } else { if (Language.StringByID(StringId.monday) == s) { weekTextName = "1"; } else if (Language.StringByID(StringId.tuesday) == s) { weekTextName = "2"; } else if (Language.StringByID(StringId.wednesday) == s) { weekTextName = "3"; } else if (Language.StringByID(StringId.thursday) == s) { weekTextName = "4"; } else if (Language.StringByID(StringId.friday) == s) { weekTextName = "5"; } else if (Language.StringByID(StringId.saturday) == s) { weekTextName = "6"; } else if (Language.StringByID(StringId.sunday) == s) { weekTextName = "0"; } } stateList.Add(weekTextName); } return stateList; } } } HDL_ON/UI/UI2/3-Intelligence/Automation/FunTpye.cs
@@ -94,7 +94,7 @@ bghFrameLyout.AddChidren(areaBgh); bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * roomList.Count); areaBgh.Height = Application.GetRealHeight(44 * roomList.Count); bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{roomList.Count+1}.png"; bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{roomList.Count}.png"; } #endregion @@ -135,6 +135,15 @@ funAllAreaView.btnIcon1.MouseUpEventHandler += roomClick; //功能点击事件 EventHandler<MouseEventArgs> funClick = (sender3, e3) =>{ //获取最终显示列表 var functionList = LogicMethod.GetFunctionDeviceList(selectedRoom, if_type); //获取设备列表的类型(例如:灯光类,窗帘类。。。) var deviceTypeList = LogicMethod.GetDeviceTypeList(functionList); if (deviceTypeList.Count==0) { //没有类型直接返回去; return; } #region 区域弹框界面 FrameLayout fLayout = new FrameLayout { @@ -171,10 +180,7 @@ Height = Application.GetRealHeight(44 * 5), }; //获取最终显示列表 var functionList = LogicMethod.GetFunctionDeviceList(selectedRoom, if_type); //获取设备列表的类型(例如:灯光类,窗帘类。。。) var deviceTypeList = LogicMethod.GetDeviceTypeList(functionList); if (deviceTypeList.Count > 5) @@ -188,7 +194,7 @@ bghFrameLyout.AddChidren(areaBgh); bghFrameLyout.Height = Application.GetRealHeight(21 + 44 * deviceTypeList.Count); areaBgh.Height = Application.GetRealHeight(44 * deviceTypeList.Count); bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{deviceTypeList.Count+1}.png"; bghFrameLyout.BackgroundImagePath = $"LogicIcon/bjicon{deviceTypeList.Count}.png"; } #endregion @@ -213,7 +219,7 @@ funAllAreaView.btnText2.Text = areaView.btnClick.Tag.ToString(); ///获取单个类型(例如:灯光类。。)设备FunctionType列表 var typeFunctionList = LogicMethod.GetDeviceTypeFunctionList(areaView.btnClick.Tag.ToString()); ///获取单个类型(例如:灯光类。。)显示设备列表 ///获取单个灯光类型(例如:灯光1,灯光2。。)显示设备列表 var lists = LogicMethod.GetShowDeviceList(typeFunctionList, functionList); DeviceListView(vv, lists); }; HDL_ON/UI/UI2/3-Intelligence/Automation/Logic.cs
@@ -27,7 +27,7 @@ /// <summary> /// 逻辑名称 /// </summary> public string name = "逻辑一"; public string name = "自动化"; /// <summary> /// 逻辑条件关系(与and:,或:or) /// </summary> HDL_ON/UI/UI2/3-Intelligence/Automation/LogicMethod.cs
@@ -4,7 +4,7 @@ namespace HDL_ON.UI.UI2.Intelligence.Automation { public class LogicMethod { /// <summary> @@ -77,7 +77,7 @@ long m = (long)((dt - startTime).TotalMilliseconds / 10); string sTimeSpan = byteArrayToHexString(int2ByteArray(getTimeStamp())); logicId = sOidBeginsWith + sTimeSpan; @@ -92,10 +92,10 @@ string s = Logic.LogicList[i].sid.Substring(20, 4); int iThisSceneId = Convert.ToInt16(s, 16); if (iThisSceneId > maxId) maxId = iThisSceneId ; maxId = iThisSceneId; } logicId += (maxId+1).ToString("X4");//逻辑号 两个byte logicId += (maxId + 1).ToString("X4");//逻辑号 两个byte logicId += "0000"; } catch @@ -125,7 +125,7 @@ /// 获取网关房间列表 /// </summary> /// <returns></returns> public static List<HDL_ON.Entity.Room> GetGatewayRoomList() public static List<HDL_ON.Entity.Room> GetGatewayRoomList() { return HDL_ON.Entity.DB_ResidenceData.residenceData.Rooms; } @@ -133,7 +133,7 @@ /// 获取网关房间列表 /// </summary> /// <returns></returns> public static List<HDL_ON.Entity.Room> GetGatewayRoomList(string name) public static List<HDL_ON.Entity.Room> GetGatewayRoomList(string name) { List<Entity.Room> roomList = new List<Entity.Room>(); @@ -163,7 +163,7 @@ /// <returns></returns> public static List<HDL_ON.Entity.Scene> GetSceneList() { return HDL_ON.Entity.DB_ResidenceData.functionList.scenes; return HDL_ON.Entity.DB_ResidenceData.functionList.scenes; } /// <summary> /// 获取房间的设备列表 @@ -196,7 +196,7 @@ /// <returns></returns> public static HDL_ON.Entity.Function GetDevice(string sid) { HDL_ON.Entity.Function device = new Entity.Function() { name= "Unknown"}; HDL_ON.Entity.Function device = new Entity.Function() { name = "Unknown" }; List<HDL_ON.Entity.Function> deviceLists = GetGatewayDeviceList(); foreach (var dev in deviceLists) { @@ -216,7 +216,7 @@ /// <returns></returns> public static HDL_ON.Entity.Scene GetSecne(string sid) { HDL_ON.Entity.Scene scene = new Entity.Scene() { name = "Unknown"}; HDL_ON.Entity.Scene scene = new Entity.Scene() { name = "Unknown" }; List<HDL_ON.Entity.Scene> sceneLists = GetSceneList(); foreach (var sce in sceneLists) { @@ -294,17 +294,17 @@ /// </summary> /// <param name="deviceList">设备列表</param> /// <returns></returns> public static List<string> GetDeviceTypeList(List<HDL_ON.Entity.Function> deviceList) public static List<string> GetDeviceTypeList(List<HDL_ON.Entity.Function> deviceList) { List<string> deviceStrTypeList = new List<string>(); List<string> deviceStrTypeList = new List<string>(); deviceStrTypeList.Clear(); var lightjosn = deviceList.Find((device) => device.functionType == FunctionType.Relay || device.functionType == FunctionType.Dimmer|| device.functionType == FunctionType.ColorTemperature || device.functionType == FunctionType.RGB|| device.functionType == FunctionType.RGBW); var lightjosn = deviceList.Find((device) => device.functionType == FunctionType.Relay || device.functionType == FunctionType.Dimmer || device.functionType == FunctionType.ColorTemperature || device.functionType == FunctionType.RGB || device.functionType == FunctionType.RGBW); if (lightjosn != null) { deviceStrTypeList.Add(Language.StringByID(StringId.Lights)); } var curtainjosn = deviceList.Find((device) => device.functionType ==FunctionType.Curtain|| device.functionType == FunctionType.MotorCurtain|| device.functionType == FunctionType.RollingShutter); var curtainjosn = deviceList.Find((device) => device.functionType == FunctionType.Curtain || device.functionType == FunctionType.MotorCurtain || device.functionType == FunctionType.RollingShutter); if (curtainjosn != null) { deviceStrTypeList.Add(Language.StringByID(StringId.Curtain)); @@ -360,11 +360,13 @@ /// 条件/目标支持设备 /// </summary> /// <returns></returns> public static List<FunctionType> GetSupportEquipment(string if_type) public static List<FunctionType> GetSupportEquipment(string if_type) { List<FunctionType> deviceTypeList = new List<FunctionType>(); switch (if_type) { case condition_if: { switch (if_type) { case condition_if: { deviceTypeList.Add(FunctionType.Relay); deviceTypeList.Add(FunctionType.RGB); deviceTypeList.Add(FunctionType.RGBW); HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/AddOutputInputView.cs
@@ -30,8 +30,8 @@ /// </summary> public Button btnIcon= new Button { Width= Application.GetMinRealAverage(28), Height =Application.GetMinRealAverage(28), Width= Application.GetRealWidth(28), Height =Application.GetRealWidth(28), //Y = Application.GetRealHeight(8), X = Application.GetRealWidth(TextSize.left12), HDL_ON/UI/UI2/3-Intelligence/Automation/LogicView/TimeHorizonView.cs
@@ -64,7 +64,7 @@ TextID = StringId.timeTipText, TextSize = TextSize.text12, TextColor = CSS.CSS_Color.textRedColor, Width = Application.GetRealWidth(306), Width = Application.GetRealWidth(340-20), Height = Application.GetRealHeight(17), X = Application.GetRealWidth(20), Y = Application.GetRealHeight(58), HDL_ON/UI/UI2/3-Intelligence/Automation/MainView.cs
@@ -70,6 +70,7 @@ Send.switchLogic(currLogic); }; GetSelectIcon(logicView.frameLayout, currLogic); //if (i==0)降序排列 if (Logic.LogicList.Count - 1 == i) { @@ -164,32 +165,31 @@ public static string GetWeekString(List<string> weekList) { string weekTextName = ""; if (weekList.Contains("0")) if (weekList.Contains("1")) { weekTextName += Language.StringByID(StringId.monday) + ","; } if (weekList.Contains("1")) if (weekList.Contains("2")) { weekTextName += Language.StringByID(StringId.tuesday) + ","; } if (weekList.Contains("2")) if (weekList.Contains("3")) { weekTextName += Language.StringByID(StringId.wednesday) + ","; } if (weekList.Contains("3")) if (weekList.Contains("4")) { weekTextName += Language.StringByID(StringId.thursday) + ","; } if (weekList.Contains("4")) if (weekList.Contains("5")) { weekTextName += Language.StringByID(StringId.friday) + ","; } if (weekList.Contains("5")) if (weekList.Contains("6")) { weekTextName += Language.StringByID(StringId.saturday) + ","; } if (weekList.Contains("6")) if (weekList.Contains("0")) { weekTextName += Language.StringByID(StringId.sunday) + ","; } @@ -199,6 +199,8 @@ } return weekTextName.TrimEnd(','); } /// <summary> /// 获取每月的字符串 /// </summary> @@ -231,7 +233,7 @@ List<string> logicIdList = new List<string>(); //获取逻辑ID列表 var idStr = Send.getLogicIdList(); if (idStr.Code == "0" && idStr.Data != null&& idStr.Data.ToString()!="") if (idStr.Code == "0" && idStr.Data != null && idStr.Data.ToString() != "") { var date = Newtonsoft.Json.JsonConvert.SerializeObject(idStr.Data); var dateList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Date>>(date); @@ -283,6 +285,153 @@ } return false; } /// <summary> /// 显示条件或者目标类型图标 /// </summary> /// <param name="layouFrame">父控件</param> /// <param name="logic">当前逻辑</param> private static void GetSelectIcon(FrameLayout layouFrame, Logic logic) { //重新排列图标序号 List<int> iconIntValue = new List<int>(); iconIntValue.Clear(); //1-10(表示条件图标)自己局部定义为了显示选中条件类型图标 //1-时间图标 //2-功能图标 for (int i = 0; i < logic.input.Count; i++) { var int1 = int.Parse(logic.input[i].condition_type); int iconInt = 0; switch (int1) { case 1: case 2: { iconInt = 1; } break; case 3: { iconInt = 2; } break; } if (!iconIntValue.Contains(iconInt)) { iconIntValue.Add(iconInt); } } //分割条件和目标的图标 iconIntValue.Add(11); //12-20(表示目标图标)自己局部定义为了显示选中目标类型图标 //12-功能图标 //13-场景图标 //14-延时图标 for (int i = 0; i < logic.output.Count; i++) { var int1 = int.Parse(logic.output[i].target_type); int iconInt = 0; switch (int1) { case 1: { iconInt = 12; } break; case 2: { iconInt = 13; } break; case 3: { iconInt = 14; } break; } if (!iconIntValue.Contains(iconInt)) { iconIntValue.Add(iconInt); } } //图标控件的父控件 FrameLayout frame = new FrameLayout { Height=Application.GetRealHeight(40), Width=Application.GetRealWidth(275), Y= Application.GetRealHeight(56), }; layouFrame.AddChidren(frame); for (int i = 0; i < iconIntValue.Count; i++) { //图标控件 Button btnIcon = new Button { Width = Application.GetRealWidth(28), Height = Application.GetRealWidth(28), Gravity=Gravity.CenterVertical, }; frame.AddChidren(btnIcon); if (i == 0) { btnIcon.X = Application.GetRealWidth(12); } else { btnIcon.X = Application.GetRealWidth(12+(28+4)*i); } string strIcon = ""; switch (iconIntValue[i]) { case 1: { strIcon = "LogicIcon/selectTheTime.png"; } break; case 2: { strIcon = "LogicIcon/selectTheFun.png"; } break; case 11: { //分割条件和目标的图标 strIcon = "LogicIcon/link.png"; } break; case 12: { strIcon = "LogicIcon/selectTheFun.png"; } break; case 13: { strIcon = "LogicIcon/selectTheScene.png"; } break; case 14: { //strIcon = "LogicIcon/timeicon.png"; } break; } btnIcon.UnSelectedImagePath = strIcon; } } } class Date { HDL_ON/UI/UI2/3-Intelligence/Automation/PublicInterface.cs
New file @@ -0,0 +1,145 @@ using System; using System.Collections.Generic; using Shared; namespace HDL_ON.UI.UI2.Intelligence.Automation { public class PublicInterface { /// <summary> /// 单选择 /// </summary> /// <param name="frameLayout">父控件</param> /// <param name="list">显示数据源</param> /// <param name="titleText"></param> /// <param name="stateText">之前状态文本</param> /// <param name="action">返回值</param> public void SingleSelectionShow(FrameLayout frameLayout, List<string> list, string titleText, string stateText, Action<string> action) { LogicView.DateView view = new LogicView.DateView(); view.btnTitle.Text = titleText; view.FLayoutView(frameLayout, list.Count); view.btnCancel.MouseUpEventHandler += (sender, e) => { //移除fLayout界面 frameLayout.RemoveFromParent(); }; ///定义一个Btn记录选中状态 Button checkBtn = new Button { Tag = "unknown", }; for (int i = 0; i < list.Count; i++) { string str = list[i]; LogicView.CheckView checkView = new LogicView.CheckView(); checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i); view.frameLayout.AddChidren(checkView.FLayoutView()); checkView.btnText.Text = str; checkView.btnClick.Tag = str;//标记 if (stateText == str) { //显示之前的选中状态 checkBtn.IsSelected = false; checkView.btnCheckIcon.IsSelected = true; checkBtn = checkView.btnCheckIcon; checkBtn.Tag = checkView.btnClick.Tag.ToString(); } //点击事件 checkView.btnClick.MouseUpEventHandler += (sender1, e1) => { checkBtn.IsSelected = false; checkView.btnCheckIcon.IsSelected = true; checkBtn = checkView.btnCheckIcon; checkBtn.Tag = checkView.btnClick.Tag.ToString(); }; } view.btnConfirm.MouseUpEventHandler += (sender1, e1) => { if (checkBtn.Tag.ToString() == "unknown") { return; } action(checkBtn.Tag.ToString()); //移除fLayout界面 frameLayout.RemoveFromParent(); }; } /// <summary> /// 多选择 /// </summary> /// <param name="frameLayout">父控件</param> /// <param name="list">显示数据源</param> /// <param name="titleText"></param> /// <param name="stateTextList">之前状态文本</param> /// <param name="action">返回值</param> public void MultiSelectShow(FrameLayout frameLayout, List<string> list, string titleText, List<string> stateTextList, Action<List<string>> action) { LogicView.DateView view = new LogicView.DateView(); view.btnTitle.Text = titleText; view.FLayoutView(frameLayout, list.Count); view.btnCancel.MouseUpEventHandler += (sender, e) => { //移除fLayout界面 view.frameLayout.RemoveFromParent(); }; for (int i = 0; i < list.Count; i++) { string str = list[i]; LogicView.CheckView checkView = new LogicView.CheckView(); checkView.frameLayout.Y = Application.GetRealHeight(56 + 50 * i); view.frameLayout.AddChidren(checkView.FLayoutView()); checkView.btnText.Text = str; checkView.btnClick.Tag = str;//标记 if (stateTextList.Contains(str)) { //显示之前的选中状态 checkView.btnCheckIcon.IsSelected = true; } //点击事件 checkView.btnClick.MouseUpEventHandler += (sender1, e1) => { string clickIndex = checkView.btnClick.Tag.ToString(); checkView.btnClick.IsSelected = !checkView.btnClick.IsSelected; if (checkView.btnClick.IsSelected) { checkView.btnCheckIcon.IsSelected = true; if (!stateTextList.Contains(clickIndex)) { //添加选中数据 stateTextList.Add(clickIndex); } } else { checkView.btnCheckIcon.IsSelected = false; if (stateTextList.Contains(clickIndex)) { //移除选中数据 stateTextList.Remove(clickIndex); } } }; } view.btnConfirm.MouseUpEventHandler += (sender1, e1) => { if (stateTextList.Count == 0) { return; } action(stateTextList); //移除fLayout界面 frameLayout.RemoveFromParent(); }; } } } HDL_ON/UI/UI2/3-Intelligence/Automation/Send.cs
@@ -1,4 +1,4 @@ using System; using System; using System.IO; using System.Net; using HDL_ON.DAL.Server; @@ -9,23 +9,37 @@ { public class Send { /// <summary> /// 住宅ID /// </summary> public static string homeId = UserInfo.Current.CurReginID; /// <summary> /// 网关ID /// </summary> public static string gatewayId = DriverLayer.Control.Ins.GatewayId; ///// <summary> ///// 网关ID ///// </summary> //public static string gatewayId =Entity.DB_ResidenceData.residenceData.HomeGateway.gatewayId; ///// <summary> ///// 住宅ID ///// </summary> //public static string homeId = Entity.DB_ResidenceData.residenceData.HomeGateway.homeId; //public static string homeId = Entity.DB_ResidenceData.residenceData.CurReginID; ///// <summary> ///// 网关ID(秀桡有网关ID却返回是MAC) ///// </summary> //public static string gatewayId = DriverLayer.Control.Ins.GatewayId; public static string homeId = UserInfo.Current.CurReginID; /// <summary> /// 网关ID(获取嘉乐网关ID) /// </summary> public static string gatewayId { get { if (Entity.DB_ResidenceData.residenceData.HomeGateway == null) { return ""; } return Entity.DB_ResidenceData.residenceData.HomeGateway.gatewayId; } } /// <summary> /// 住宅ID /// </summary> public static string homeId = Entity.DB_ResidenceData.residenceData.residecenInfo.RegionID; /// <summary> /// 获取逻辑ID列表 @@ -35,6 +49,12 @@ { var jObject = new JObject { { "homeId", homeId } }; var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_List); //如果是token过期则刷新token if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) { RefreshToken(); getLogicIdList(); } return responsePackNew; } /// <summary> @@ -51,6 +71,12 @@ } var jObject = new JObject { { "userLogicIds", jArray } }; var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Info); //如果是token过期则刷新token if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) { RefreshToken(); getLogic(listIdList); } return responsePackNew; } /// <summary> @@ -124,6 +150,12 @@ logicjArray.Add(logicIfon); var jObject = new JObject { { "homeId", homeId }, { "logics", logicjArray } }; responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Add); //如果是token过期则刷新token if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) { RefreshToken(); AddLogic(logic); } } catch (Exception e) @@ -206,7 +238,12 @@ logicjArray.Add(logicIfon); var jObject = new JObject { { "homeId", homeId }, { "logics", logicjArray } }; responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Update); //如果是token过期则刷新token if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) { RefreshToken(); updateLogic(logic); } } catch (Exception e) { @@ -226,6 +263,12 @@ jArray.Add(logic.userLogicId); var jObject = new JObject { { "userLogicIds", jArray } }; var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Delete); //如果是token过期则刷新token if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) { RefreshToken(); delLogic(logic); } return responsePackNew; } /// <summary> @@ -239,6 +282,12 @@ jArray.Add(job); var jObject = new JObject { { "logics", jArray } }; var responsePackNew = RequestServerhomeId(jObject, NewAPI.API_POST_Logic_Enable); //如果是token过期则刷新token if (responsePackNew.Code == StateCode.TOKEN_EXPIRED) { RefreshToken(); switchLogic(logic); } return responsePackNew; } /// <summary> @@ -261,6 +310,13 @@ return HttpUtil.RequestHttpsPost(api_Url, requestJson); } /// <summary> /// 刷新Token /// </summary> public static void RefreshToken() { IMessageCommon.Current.StartRefreshToken(); } } } HDL_ON/UI/UI2/3-Intelligence/Automation/TimeTpye.cs
@@ -189,7 +189,7 @@ { TextSize = LogicView.TextSize.text12, Width = Application.GetRealWidth(32 + 3), Height = Application.GetRealHeight(20), Height = Application.GetRealHeight(17), TextColor = CSS.CSS_Color.textCancelColor, Y = Application.GetRealHeight(17), X = Application.GetRealWidth(260), @@ -212,7 +212,7 @@ { TextSize = LogicView.TextSize.text12, Width = Application.GetRealWidth(32 + 3), Height = Application.GetRealHeight(20), Height = Application.GetRealHeight(17), TextColor = CSS.CSS_Color.textCancelColor, Y = Application.GetRealHeight(17), X = Application.GetRealWidth(260),