陈嘉乐
2020-05-28 f759dc1e6f49c53733eafda82207c85af18f9931
2020-05-28-1

最新代码,请各位大神合并
7个文件已修改
157 ■■■■■ 已修改文件
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
@@ -1,13 +1,13 @@
<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/OneLogic.cs">
  <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/Device/Logic/SkipView.cs">
    <Files>
      <File FileName="Shared/Phone/Device/Logic/SoneLogicList.cs" Line="190" Column="41" />
      <File FileName="Shared/Phone/Device/Logic/SkipView.cs" Line="323" Column="92" />
      <File FileName="Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs" Line="1066" Column="38" />
      <File FileName="Shared/Phone/Device/Logic/AddLogicPage.cs" Line="77" Column="60" />
      <File FileName="Shared/Phone/Device/Logic/OneLogic.cs" Line="16" Column="16" />
      <File FileName="Shared/Phone/Device/Logic/SkipView.cs" Line="23" Column="38" />
      <File FileName="Shared/Phone/Device/Logic/SoneLogicList.cs" Line="427" Column="59" />
      <File FileName="Shared/Phone/Device/Logic/Send.cs" Line="12" Column="2" />
      <File FileName="Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs" Line="1086" Column="47" />
      <File FileName="Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs" Line="1" Column="1" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
@@ -18,10 +18,13 @@
              <Node name="Phone" expanded="True">
                <Node name="Device" expanded="True">
                  <Node name="Logic" expanded="True">
                    <Node name="OneLogic.cs" selected="True" />
                    <Node name="SkipView.cs" selected="True" />
                  </Node>
                </Node>
                <Node name="UserCenter" expanded="True">
                  <Node name="CommonBase" expanded="True">
                    <Node name="Logic" expanded="True" />
                  </Node>
                  <Node name="DoorLock" expanded="True" />
                </Node>
              </Node>
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
Binary files differ
ZigbeeApp/Shared/Phone/Device/Logic/DoorLockLogic/LockLogicList.cs
old mode 100755 new mode 100644
@@ -99,31 +99,7 @@
                            continue;
                        }
                        Common.Logic.LockLogicList.Add(logic);
                        //bool yes = false;
                        //for (int a = 0; a < logic.Accounts.Count; a++)
                        //{
                        //    //Option4是设备mac;Option2是设备端口;
                        //    if (logic.Accounts[a]["Option4"].ToString() != Send.CurrentDoorLock.DeviceAddr)
                        //    {
                        //        //查找是否是那个门锁;
                        //        //如果不是该门锁联动事件不显示出来;
                        //        yes = false;
                        //    }
                        //    else
                        //    {
                        //        yes = true;
                        //    }
                        //    //if (logic.Accounts[a]["Account"].ToString() == Config.Instance.Guid)
                        //    //{
                        //    //    //查找自己账号下的创建联动事件;
                        //    //    yes = true;
                        //    //    break;
                        //    //}
                        //}
                        //if (yes)
                        //{
                        //    Common.Logic.LockLogicList.Add(listlogic[j]);
                        //}
                    }
                }
            }
ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
@@ -20,7 +20,6 @@
            {
                case 0:
                    {
                        //new一个新逻辑对象;
                        //新增正常自动化入口
                        Common.Logic.CurrentLogic = new Common.Logic();
@@ -31,7 +30,6 @@
                        UserView.HomePage.Instance.AddChidren(addLogicPage);
                        UserView.HomePage.Instance.PageIndex += 1;
                        addLogicPage.Show();
                    }
                    break;
                case 1:
@@ -765,36 +763,30 @@
        public static async System.Threading.Tasks.Task<int> Exist(int valueInt, ZigBee.Device.DoorLock doorLock)
        {
            int exist = 0;
            var Idlist = await Send.GetLogicId(valueInt);
            if (Idlist.Count != 0)
            var IdList = await Send.GetLogicId(valueInt);
            if (IdList.Count != 0)
            {
                //默认取第一个逻辑ID
                var id = Idlist[0];
                if (valueInt != 3)
                for (int i = 0; i < IdList.Count; i++)
                {
                    exist = id;
                }
                else
                {
                    var logic = await Send.GetLogic(id, 3);
                    var id = IdList[i];
                    var logic = await Send.GetLogic(id, valueInt);
                    if (logic != null)
                    {
                        if (ExistLogic(logic, doorLock))
                        {
                            exist = id;
                        }
                        else
                        {
                            exist = 0;
                            ///找到退出
                            break;
                        }
                    }
                }
            }
            return exist;
        }
        ///<summary>
        ///获取门锁逻辑信息
        ///获取门锁时效性逻辑信息
        /// 返回值:null不存在;其它值都存在;
        /// </summary>
        public static async System.Threading.Tasks.Task<Common.Logic> GetLogicIfon(ZigBee.Device.DoorLock doorLock)
@@ -818,14 +810,12 @@
        ///删除该门锁所有时效性自动化
        /// 返回值:true成功;false失败;
        /// </summary>
        public static async System.Threading.Tasks.Task<bool> GetLogicAll(ZigBee.Device.DoorLock doorLock)
        public static async System.Threading.Tasks.Task<bool> DelAllLogic(ZigBee.Device.DoorLock doorLock)
        {
            bool _if = false;
            var Idlist = await Send.GetLogicId(3);
            if (Idlist.Count != 0)
            {
                _if = true;
                for (int i = 0; i < Idlist.Count; i++)
                {
                    int id = Idlist[i];
@@ -836,7 +826,16 @@
                        {
                            //本来只有一条时效性自动化,
                            //防止特殊情况,找到就删除掉;
                            //var valueInt = await Send.DelLogic(id);
                            //if (valueInt == 0)
                            //{
                            //    _if = true;
                            //}
                            //(考虑性能默认删除成功,直接返回成功结果true)
                            _if = true;
                            Send.DelLogic(id);
                        }
                    }
                }
@@ -852,7 +851,7 @@
        {
            for (int j = 0; j < logic.Accounts.Count; j++)
            {
                //Option4是设备mac;Option2是设备端口;
                //Option4是设备mac;
                if (logic.Accounts[j]["Option4"].ToString() == doorLock.DeviceAddr)
                {
                    //查找是否是那个门锁;
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -32,13 +32,9 @@
        /// </summary>
        public int timeValue = 0;
        /// <summary>
        /// 标记显示执行日期(用网关的,还是用系统的时间)
        /// 记录时间戳
        /// </summary>
        public bool _if = false;
        /// <summary>
        /// 时间戳
        /// </summary>
        public long timeLong = 0;
        public int timeLong = 0;
        public async void Show()
        {
@@ -58,7 +54,7 @@
                    action(Send.CurrentDoorLock.IsDoorLockNormallyMode);
                }
            };
            var middle = new FrameLayout
            {
                Y = view.topRowLayout.Bottom,
@@ -68,7 +64,7 @@
            this.AddChidren(middle);
            #endregion
            //是常开模式再去读取
            Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
            if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
            {
                //进来更新一次
@@ -81,8 +77,7 @@
                        //进来更新一次值
                        logicId = logic.LogicId;
                        timeValue = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]) / 3600;
                        timeLong = long.Parse(logic.Conditions[0]["TriggerTime"]);
                        timeLong = int.Parse(logic.Conditions[0]["TriggerTime"]);
                    }
                    catch { }
                }
@@ -226,7 +221,8 @@
                }
                catch { }
            };
            //UserCenter.DoorLock.DoorLockCommonInfo.UpdateCurrentDoorlockAction += (DoorlockKey, _bool) =>             //{             //    var key = Send.CurrentDoorLock.DeviceAddr + Send.CurrentDoorLock.DeviceEpoint;             //    if (DoorlockKey == key)             //    {             //        try             //        {             //            Application.RunOnMainThread(() =>             //            {             //                Send.CurrentDoorLock.IsDoorLockNormallyMode = _bool;             //                ModeView();             //            });             //        }             //        catch { }             //    }             //};
        }
        /// <summary>
        /// 常开模式开关切换图标界面
@@ -285,7 +281,6 @@
                                Send.DelLogic(logicId);
                            }
                            Send.CurrentDoorLock.IsDoorLockNormallyMode = false;
                            _if = false;
                            ModeView();
                        }
                        else
@@ -304,7 +299,7 @@
                    }
                };
                if (logicId != 0)
                {
                    ///显示失效设置时间文本控件
@@ -312,7 +307,7 @@
                    {
                        Y = Application.GetRealHeight(127 + 69),
                        X = Application.GetRealWidth(80),//125
                        Width = Application.GetRealWidth(907+12),//634 + 200
                        Width = Application.GetRealWidth(907 + 12),//634 + 200
                        Height = Application.GetRealHeight(60),
                        TextSize = 15,
                        TextColor = ZigbeeColor.Current.LogicTextBlackColor,
@@ -331,22 +326,23 @@
                    int hour = 0;
                    int minute = 0;
                    if (_if)
                    if (timeLong != 0)
                    {
                        ///第一次进来读取网关时间;
                        ///读取网关时间;
                        var datetime = GetLocalTime(timeLong);
                        ///有时效性常开才显示时间条件文本
                        year = datetime.Year.ToString();//那一年
                        month = datetime.Month.ToString();//那一月
                        days = int.Parse(datetime.ToString("dd"));//那一天
                        hour = int.Parse(datetime.ToString("HH"));//小时
                        var d = int.Parse(datetime.ToString("dd"));//那一天
                        var h = int.Parse(datetime.ToString("HH"));//小时
                        int dayInt = (h + timeValue) / 24;//设置时间+当前系统时间是否超出24小时
                        hour = (h + timeValue) % 24;//设置时间+当前系统时间是否超出24小时剩下多少小时
                        days = d + dayInt;//当前系统天数+执行后天数
                        minute = datetime.Minute;//分钟
                    }
                    else
                    {
                        ///在当前界面编辑显示系统时间(不能每一次编辑都去网关拿数据)                         year = DateTime.Now.Year.ToString();//那一年
                        ///读取系统时间                         year = DateTime.Now.Year.ToString();//那一年
                        month = DateTime.Now.Month.ToString();//那一月
                        var d = DateTime.Now.ToString("dd");//那一天
                        var h = int.Parse(DateTime.Now.ToString("HH"));//小时
@@ -416,6 +412,7 @@
                    {///再次确认
                        LogicView.TipView.ShowInputTip(true, async (str) =>
                        {///确认发送命令
                            CommonPage.Loading.Start();
                            try
                            {
@@ -429,7 +426,7 @@
                                else
                                {
                                    ///因为有常开模式下才可以创建失效逻辑;
                                    SkipView.GetLogicAll(Send.CurrentDoorLock);//删除之前所有失效逻辑
                                    SkipView.DelAllLogic(Send.CurrentDoorLock);//删除之前所有失效逻辑
                                    var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//添加一条失效逻辑
                                    if (addResult == 0)
                                    {
@@ -444,7 +441,6 @@
                                        logicId = addResult;
                                        timeValue = int.Parse(str);
                                        Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
                                        _if = false;
                                        ModeView();
                                        ///添加APP开启常开模式的历史记录
                                        UserCenter.HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(Send.CurrentDoorLock, 9001, string.Empty);
@@ -714,16 +710,13 @@
        /// </summary>
        /// <param name="unixTimeStamp">时间戳</param>
        /// <returns></returns>
        public DateTime GetLocalTime(long unixTimeStamp)
        public DateTime GetLocalTime(int unixTimeStamp)
        {
            //DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            //long lTime = long.Parse(unixTimeStamp + "0000000");
            //TimeSpan toNow = new TimeSpan(lTime);
            //DateTime dtResult = dtStart.Add(toNow);
            //return dtResult;
            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); // 当地时区
            return startTime.AddMilliseconds(unixTimeStamp);
            DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
            long lTime = long.Parse(unixTimeStamp + "0000000");
            TimeSpan toNow = new TimeSpan(lTime);
            DateTime dtResult = dtStart.Add(toNow);
            return dtResult;
        }
    }
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
old mode 100755 new mode 100644
@@ -198,7 +198,7 @@
                    if (haveLogic)
                    {
                        //此处删除温居城的常开模式特殊逻辑
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                    }
                }
                else
@@ -220,7 +220,7 @@
                    if (haveLogic)
                    {
                        //此处删除温居城的常开模式特殊逻辑
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                    }
                    //app重新开启“常开模式”
@@ -298,7 +298,7 @@
                    if (haveLogic)
                    {
                        //此处删除温居城的常开模式特殊逻辑
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                    }
                }
                else
@@ -347,7 +347,7 @@
                        if (haveLogic)
                        {
                            //此处删除温居城的常开模式特殊逻辑
                            var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                            var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                        }
                        Application.RunOnMainThread(() =>
                        {
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
old mode 100755 new mode 100644
@@ -1131,7 +1131,7 @@
                    if (haveLogicNormallyOpenMode)
                    {
                        //此处删除温居城的常开模式特殊逻辑
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                    }
                }
                else
@@ -1155,7 +1155,7 @@
                    if (haveLogicNormallyOpenMode)
                    {
                        //此处删除温居城的常开模式特殊逻辑
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                    }
                    //app重新开启“常开模式”
                    var result = await doorLock.SetNormallyOpenModeFuncAsync(true);
@@ -1226,7 +1226,7 @@
                    if (haveLogicNormallyOpenMode)
                    {
                        //此处删除温居城的常开模式特殊逻辑
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                        var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                    }
                }
                else
@@ -1261,7 +1261,7 @@
                        if (haveLogicNormallyOpenMode)
                        {
                            //此处删除温居城的常开模式特殊逻辑
                            var resTemp1 = await Shared.Phone.Device.Logic.SkipView.GetLogicAll(doorLock);
                            var resTemp1 = await Shared.Phone.Device.Logic.SkipView.DelAllLogic(doorLock);
                        }
                        string msg2 = Language.StringByID(R.MyInternationalizationString.CloseNormallyOpenModeSuccess);
                        this.ShowTipMsg(msg2);