ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide | 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/Shared/Common/Logic.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
@@ -1,15 +1,9 @@ <Properties StartupConfiguration="{28EDE1FF-20EF-476B-8AF8-24A3EEB69F45}|Default"> <MonoDevelop.Ide.ItemProperties.GateWay.Droid PreferredExecutionTarget="Android.5c86e4357d63" /> <MonoDevelop.Ide.ItemProperties.ShardLib PreferredExecutionTarget="Android.M7BBB18B19152766" /> <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/Device/Logic/LogicIfon.cs"> <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/Device/Logic/SkipView.cs"> <Files> <File FileName="Shared/Phone/Device/Logic/LogicCommunalPage.cs" Line="732" Column="1" /> <File FileName="Shared/Phone/Device/Logic/SkipView.cs" Line="98" Column="74" /> <File FileName="Shared/Phone/Device/Logic/OneLogic.cs" Line="428" Column="47" /> <File FileName="Shared/Common/Device.cs" Line="1" Column="1" /> <File FileName="Shared/Phone/Device/Logic/Method.cs" Line="643" Column="8" /> <File FileName="Shared/Phone/Category/CategoryMainForm.cs" Line="205" Column="19" /> <File FileName="Shared/Phone/Device/Logic/LogicIfon.cs" Line="1" Column="1" /> <File FileName="Shared/Phone/Device/Logic/SkipView.cs" Line="272" Column="18" /> </Files> <Pads> <Pad Id="ProjectPad"> @@ -22,8 +16,12 @@ <Node name="CommonForm" expanded="True" /> <Node name="Device" expanded="True"> <Node name="Logic" expanded="True"> <Node name="LogicIfon.cs" selected="True" /> <Node name="LogicView" expanded="True" /> <Node name="SkipView.cs" selected="True" /> </Node> </Node> <Node name="UserCenter" expanded="True"> <Node name="DoorLock" expanded="True" /> </Node> </Node> </Node> @@ -32,13 +30,11 @@ </Pad> </Pads> </MonoDevelop.Ide.Workbench> <MonoDevelop.Ide.ItemProperties.Home.IOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneSimulatorTarget.9992EB40-E6DD-48F4-AFED-CEB5E811ACDD" /> <MonoDevelop.Ide.ItemProperties.Home.IOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008020-001674E61438002E" /> <MonoDevelop.Ide.DebuggingService.PinnedWatches /> <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhoneSimulator" /> <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" /> <MonoDevelop.Ide.DebuggingService.Breakpoints> <BreakpointStore> <Breakpoint file="/Users/hdl/Desktop/HomeApp/ZigbeeApp/Shared/Phone/Device/Logic/Method.cs" relfile="Shared/Phone/Device/Logic/Method.cs" line="643" column="1" /> </BreakpointStore> <BreakpointStore /> </MonoDevelop.Ide.DebuggingService.Breakpoints> <MultiItemStartupConfigurations /> </Properties> ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ideBinary files differ
ZigbeeApp/Shared/Common/Logic.cs
@@ -29,6 +29,7 @@ ///<para>0:禁用该逻辑</para> ///<para>1:使能该逻辑</para> ///<para>2: 只触发一次。触发后该字段将自动置为0,即禁用状态。</para> ///3:失能一次(条件第一次成立会被忽略,触发不了逻辑,然后IsValid自动置1。以后条件再成立将不会被忽略) /// </summary> public int IsEnable; ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
@@ -61,6 +61,7 @@ { Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray()); } //读取系统当前时间:时-分 int h =int.Parse(DateTime.Now.ToString("hh")); int m = int.Parse(DateTime.Now.ToString("mm")); //默认一个时间段(开始时间为:系统当前,结束时间为:开始时间+1个时间) @@ -91,7 +92,7 @@ Common.Logic.CurrentLogic = new Common.Logic(); Common.Logic.CurrentLogic.IsEnable = 1;//默认为开 Common.Logic.CurrentLogic.LogicType = 2;//标记逻辑类型 Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1); Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.openmode); Common.Logic.CurrentLogic.Conditions.Add(timeDictionary);//添加条件 Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//添加目标 var oneLogic = new OneLogic(); @@ -693,13 +694,14 @@ #endregion /// <summary> /// 门锁取消设置用的方法(相当一个关闭常开模式按钮,不需要显示该自动化) /// 门锁取消设置用的方法(相当一个关闭常开模式按钮,分类-自动化-不需要显示该自动化) /// </summary> /// <param name="timeVlaue">时间值</param> /// <param name="common">设备</param> /// <returns></returns> public static void LockAddModifyLogic(int timeVlaue, CommonDevice common) { //读取系统当前时间:时-分 var h = DateTime.Now.ToString("hh"); var m = DateTime.Now.ToString("mm"); Dictionary<string, string> timeConditionsInfo = new Dictionary<string, string>(); @@ -725,57 +727,79 @@ currentLogic.LogicName = Language.StringByID(R.MyInternationalizationString.openmode); currentLogic.Conditions.Add(timeConditionsInfo); currentLogic.Actions.Add(actionsInfo); //修改或者添加是根据逻辑id值(0新增;1,修改) Exist(3);//查找是否存在设置过失效时间(有的话删除,再添加) Send.AddModifyLogic(currentLogic); } ///<summary> /// 门锁删除逻辑 /// 是否存在S-one逻辑方法(true为存在) /// </summary> public static async void LockDelLogic(CommonDevice common) public static async System.Threading.Tasks.Task<bool> Exist(int valueInt=2) { int logicId = 0; bool exist = false; var Idlist = await Send.GetLogicId(valueInt); if (Idlist.Count != 0) { if (valueInt==3) { for (int i = 0; i < Idlist.Count; i++) { //valueInt=3一条特殊的自动化(用来设置失效时间) Send.DelLogic(Idlist[i]); } } exist = true; } return exist; } ///<summary> /// s-one门锁确认取消发送的方法 /// </summary> public static async void LockCloseLogic(CommonDevice common) { //读取系统当前时间:时-分 int h =int.Parse(DateTime.Now.ToString("hh")); int m= int.Parse(DateTime.Now.ToString("mm")); //转化为多少分钟; int s = h * 60 + m; List<Common.Logic> logicList = new List<Common.Logic>(); logicList.Clear(); var Idlist = await Send.GetLogicId(2); if (Idlist.Count != 0) { //先去读取网关看是否存在数据; var listlogic = await Send.ReadList(Idlist.Count, 2); for (int j = 0; j < listlogic.Count; j++) var list = await Send.ReadList(Idlist.Count, 2); for (int j = 0; j < list.Count; j++) { var logic = listlogic[j]; foreach (var actions in logic.Actions) var logic = list[j]; foreach (var conditions in logic.Conditions) { var linkType = actions["LinkType"].ToString(); if (linkType != "8") var linkType = conditions["Type"]; if (linkType == "5") { //用户有可能在自动化那里再次编辑; //必须过滤掉不需要的信息(输出功能延时:是没有DeviceAddr和Epoint),否则有异常; continue; int startMin = int.Parse(conditions["StartMin"]); int startHour = int.Parse(conditions["StartHour"]); int stopMin = int.Parse(conditions["StopMin"]); int stopHour = int.Parse(conditions["StopHour"]); int s1 = startMin + startHour * 60;//开始时间值 int s2 = stopMin + stopHour * 60;//结束时间值 if (s >= s1&&s<=s2) { //查找系统时间值是否属于这个范围; logicList.Add(logic); } var obj1 = actions["DeviceAddr"].ToString(); var obj2 = actions["Epoint"].ToString(); if (common.DeviceAddr == obj1 && common.DeviceEpoint.ToString() == obj2) { logicId = logic.LogicId; break; //找到跳出循环体 } } } if (logicId != 0) } foreach (var logic in logicList) { break; //找到跳出循环体 logic.IsEnable = 3;//改变逻辑使能状态; //用foreach发送命令; Send.AddModifyLogic(logic); } } } if (logicId == 0) { //没有找到logicId删除没有意义; return; } Send.DelLogic(logicId); } } } ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -1101,7 +1101,7 @@ UpdateNomallyOpenStatus(); string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess); this.ShowTipMsg(msg2); Shared.Phone.Device.Logic.SkipView.LockDelLogic(doorLock); Shared.Phone.Device.Logic.SkipView.LockCloseLogic(doorLock); // } }