WJC
2020-04-02 ad94907bfe5389114dcb841b339886c6a8ef6851
2020-04-2-02-3
5个文件已修改
123 ■■■■■ 已修改文件
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Common/Logic.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | 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.ide
Binary 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)
        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>();
@@ -708,7 +710,7 @@
            timeConditionsInfo.Add("DateType", "0");
            timeConditionsInfo.Add("RemindTime", "0");
            timeConditionsInfo.Add("EnDelay", "0");
            timeConditionsInfo.Add("DelayTime", "0");
            timeConditionsInfo.Add("DelayTime", "0");
            timeConditionsInfo.Add("StartHour", h);
            timeConditionsInfo.Add("StartMin", m);
            timeConditionsInfo.Add("DoorLockOpenDelayTime", timeVlaue.ToString());
@@ -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)
                    {
                        break;
                        //找到跳出循环体
                    }
                }
            }
            if (logicId == 0)
            foreach (var logic in logicList)
            {
                //没有找到logicId删除没有意义;
                return;
                logic.IsEnable = 3;//改变逻辑使能状态;
                //用foreach发送命令;
                Send.AddModifyLogic(logic);
            }
            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);
                        //
                    }
                }