陈嘉乐
2020-05-08 2ebaff33420cabdf1c9c2937343185ae4b5ff985
2020-05-08-1
10个文件已修改
563 ■■■■ 已修改文件
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/GateWay.Droid/Assets/Language.ini 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Home.Ios/Resources/Language.ini 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/LogicView/TipView.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/Method.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs 488 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ZigbeeApp/.vs/GateWay/xs/UserPrefs.xml
@@ -1,19 +1,18 @@
<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/R.cs">
  <MonoDevelop.Ide.Workbench ActiveDocument="Shared/Phone/Device/Logic/SkipView.cs">
    <Files>
      <File FileName="Shared/Phone/Category/SelectFloorForm.cs" Line="168" Column="1" IsPinned="True" />
      <File FileName="Shared/Phone/Device/Logic/SkipView.cs" Line="21" Column="24" />
      <File FileName="Shared/Phone/Device/Logic/LogicView/TipView.cs" Line="271" Column="15" />
      <File FileName="Shared/Phone/Device/Logic/SoneLogicList.cs" Line="148" Column="118" />
      <File FileName="Shared/Phone/Device/Logic/AddLogicPage.cs" Line="22" Column="12" />
      <File FileName="Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs" Line="1055" Column="70" />
      <File FileName="Shared/Phone/ZigBee/Device/DoorLock.cs" Line="1" Column="1" />
      <File FileName="Shared/Phone/Device/Logic/LogicCommunalPage.cs" Line="41" Column="36" />
      <File FileName="Shared/Phone/UserCenter/CommonBase/Controls/MessageControls/ShowMsgControl.cs" Line="100" Column="22" />
      <File FileName="GateWay.Droid/Assets/Language.ini" Line="549" Column="1" />
      <File FileName="Shared/R.cs" Line="127" Column="64" />
      <File FileName="Shared/Phone/Category/SelectFloorForm.cs" Line="149" Column="1" IsPinned="True" />
      <File FileName="Shared/Phone/Device/Logic/SkipView.cs" Line="24" Column="23" />
      <File FileName="Shared/Phone/Device/Logic/LogicView/TipView.cs" Line="99" Column="61" />
      <File FileName="Shared/Phone/Device/Logic/SoneLogicList.cs" Line="24" Column="21" />
      <File FileName="Shared/Phone/Device/Logic/AddLogicPage.cs" />
      <File FileName="Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs" Line="1066" Column="15" />
      <File FileName="Shared/Phone/Device/Logic/LogicCommunalPage.cs" Line="1265" Column="28" />
      <File FileName="Shared/Phone/Device/Logic/OneLogic.cs" Line="190" Column="43" />
      <File FileName="Shared/Phone/Device/Logic/Method.cs" Line="658" Column="10" />
      <File FileName="Shared/Phone/Category/CategoryMainForm.cs" Line="58" Column="13" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
@@ -32,12 +31,16 @@
                <Node name="Device" expanded="True">
                  <Node name="Logic" expanded="True">
                    <Node name="LogicView" expanded="True" />
                    <Node name="SkipView.cs" selected="True" />
                  </Node>
                </Node>
                <Node name="UserCenter" expanded="True">
                  <Node name="CommonBase" expanded="True">
                    <Node name="Common" expanded="True" />
                    <Node name="Controls" expanded="True">
                      <Node name="BaseCommonControl" expanded="True">
                        <Node name="Base" expanded="True" />
                      </Node>
                      <Node name="MessageControls" expanded="True" />
                    </Node>
                  </Node>
@@ -45,10 +48,10 @@
                  <Node name="Residence" expanded="True" />
                </Node>
                <Node name="ZigBee" expanded="True">
                  <Node name="Common" expanded="True" />
                  <Node name="Device" expanded="True" />
                </Node>
              </Node>
              <Node name="R.cs" selected="True" />
            </Node>
          </Node>
        </State>
ZigbeeApp/.vs/GateWay/xs/sqlite3/storage.ide
Binary files differ
ZigbeeApp/GateWay.Droid/Assets/Language.ini
@@ -550,7 +550,7 @@
5400=开启失败
5401=添加失败
5402=时效性常开设置
5403=时执行
5403=时关闭
10000=HDL Home
10001=常用
ZigbeeApp/Home.Ios/Resources/Language.ini
@@ -549,7 +549,8 @@
5400=开启失败
5401=添加失败
5402=时效性常开设置
5403=时执行
5403=时关闭
ZigbeeApp/Shared/Phone/Device/Logic/LogicView/TipView.cs
@@ -412,7 +412,6 @@
                dialog.Close();
            };
        }
        /// <summary>
        ///  闪错提示框
        /// </summary>
ZigbeeApp/Shared/Phone/Device/Logic/Method.cs
@@ -882,11 +882,13 @@
            else if (LogicView.IfString._SoneLogic == if_logic)
            {
                //跳到Sone门锁联动事件列表界面
                UserView.HomePage.Instance.RemoveViewByTag("SoneLogic");//移除所有标记LockListView界面
                var soneLogicList = new SoneLogicList();
                UserView.HomePage.Instance.AddChidren(soneLogicList);
                UserView.HomePage.Instance.PageIndex += 1;
                soneLogicList.Show();
                //UserView.HomePage.Instance.RemoveViewByTag("SoneLogic");//移除所有标记LockListView界面
                //var soneLogicList = new SoneLogicList();
                //UserView.HomePage.Instance.AddChidren(soneLogicList);
                //UserView.HomePage.Instance.PageIndex += 1;
                //soneLogicList.Show();
                SoneLogicList.soneLogicList?.RefreshView();
            }
        }
ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
@@ -20,31 +20,6 @@
            {
                case 0:
                    {
                        //  if (doorLock == null)
                        //  {
                        //      ///防止抛异常
                        //      Send.CurrentDoorLock = new DoorLock();
                        //  }
                        //  ///备注:WJC的
                        ////  Shared.Phone.Device.Logic.Send.CurrentDoorLock = doorLock;
                        //  ///进来刷新一次设备列表;
                        //  Common.Logic.LogicDviceList.Clear();
                        //  if (Common.Logic.LogicDviceList.Count == 0)
                        //  {
                        //      Common.Logic.LogicDviceList.AddRange(LocalDevice.Current.listAllDevice.ToArray());
                        //  }
                        //  var addLogicPage = new Shared.Phone.Device.Logic.SoneLogicList();
                        //  UserView.HomePage.Instance.AddChidren(addLogicPage);
                        //  UserView.HomePage.Instance.PageIndex += 1;
                        //  addLogicPage.Show();
                        //  addLogicPage.action += (w) =>
                        //  {
                        //      //doorLock.IsDoorLockNormallyMode = w;
                        //      /////留给徐梅用的
                        //      //UpdateNomallyOpenStatus();
                        //  };
                        //new一个新逻辑对象;
                        //新增正常自动化入口
                        Common.Logic.CurrentLogic = new Common.Logic();
ZigbeeApp/Shared/Phone/Device/Logic/SoneLogicList.cs
@@ -8,28 +8,46 @@
{
    public class SoneLogicList : FrameLayout
    {
        /// <summary>
        /// 给Sone门锁徐梅更新界面用的
        /// </summary>
        ///
        public static SoneLogicList soneLogicList;
        public SoneLogicList()
        {
            Tag = "SoneLogic";
            soneLogicList = this;
        }
        /// 给徐梅刷新界面用的
        public Action<bool> action;
        ///第二块第一级父控件
        FrameLayout fLayout = new FrameLayout();
        ///常开模式图标
        Button modeIconBtn = new Button();
        ///第二块第二级父控件
        FrameLayout modeFl = new FrameLayout();
        Button button1 = new Button();
        Button button2= new Button();
        ///第三块第一级父控件
        FrameLayout listLogicFl = new FrameLayout();
        ///常开自动化列表上下滑动的控件
        VerticalRefreshLayout verticalRefresh = new VerticalRefreshLayout();
        public async void Show()
        {
            #region  界面的布局代码
            UserView.HomePage.Instance.ScrollEnabled = false;//锁住左滑
            TopView view = new TopView();
            this.AddChidren(view.TopRowView());
            view.toptitleNameBtn.TextID = MyInternationalizationString.selection;
            view.toptitleNameBtn.TextID = MyInternationalizationString.openmode;
            view.clickBtn.MouseDownEventHandler += (sender, e) =>
            {
                UserView.HomePage.Instance.ScrollEnabled = true;
                RemoveFromParent();
                if (updateThread != null && updateThread.IsAlive)
                {
                    updateThread.Abort();
                }
                //把静态变量的这个东西置空
                soneLogicList = null;
                this.RemoveFromParent();
                if (action != null)
                {
                    action(Send.CurrentDoorLock.IsDoorLockNormallyMode);
@@ -47,7 +65,7 @@
            #region  常开模式图标 时效性常开设置
            ///第二块第一级父控件
            var fLayout = new FrameLayout
            fLayout = new FrameLayout
            {
                Width = Application.GetRealWidth(1080),
                Height = Application.GetRealHeight(829 - 184),
@@ -55,7 +73,7 @@
            };
            middle.AddChidren(fLayout);
            ///常开模式图标
            var modeIconBtn = new Button
            modeIconBtn = new Button
            {
                X = Application.GetRealWidth(395),
                Y = Application.GetRealHeight(92),
@@ -63,204 +81,27 @@
                Height = Application.GetMinRealAverage(294),
            };
            fLayout.AddChidren(modeIconBtn);
            if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
            ///第二块第二级父控件
            modeFl = new FrameLayout
            {
                /// 查找是否存在时效性自动化;有的话就返回自动化对象;
                var logic = await SkipView.GetLogicIfon();
            };
            fLayout.AddChidren(modeFl);
                fLayout.Height = Application.GetRealHeight(780);//改变高度
                modeIconBtn.UnSelectedImagePath = "ZigeeLogic/openMode.png";//改变图标状态
                ///第二级父控件
                var openModeFl = new FrameLayout
                {
                    Y = Application.GetRealHeight(455),
                    Height = Application.GetRealHeight(127 + 199),
                    Width = Application.GetRealWidth(1080),
                };
                fLayout.AddChidren(openModeFl);
                ///关闭时效性自动化
                Button closeBtn = new Button
                {
                    X = Application.GetRealWidth(86),
                    Height = Application.GetRealHeight(127),
                    Width = Application.GetRealWidth(907),
                    Radius = (uint)Application.GetRealHeight(58),
                    BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor,
                    TextID = MyInternationalizationString.closeUp,
                    TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor,
                    TextSize = 16,
                };
                openModeFl.AddChidren(closeBtn);
                closeBtn.MouseUpEventHandler += async (sender, e) =>
                {
                    var result = await UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
                    if (result)
                    {
                        if (logic != null)
                        {
                            ///有可能只有常开模式,没有时效性自动化
                            ///没有判断的话,逻辑会为空,抛出异常;
                            Send.DelLogic(logic.LogicId);
                        }
                        Send.CurrentDoorLock.IsDoorLockNormallyMode = false;
                        this.RemoveFromParent();
                        var soneLogicList = new SoneLogicList();
                        UserView.HomePage.Instance.AddChidren(soneLogicList);
                        UserView.HomePage.Instance.PageIndex += 1;
                        soneLogicList.Show();
                        soneLogicList.action = action;
                    }
                    else
                    {
                        LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.closeFailed));
                    }
                };
                ///显示失效设置时间文本控件
                var timeTextBtn = new Button
                {
                    Y = Application.GetRealHeight(127 + 69),
                    X = Application.GetRealWidth(125),
                    Width = Application.GetRealWidth(634+200),
                    Height = Application.GetRealHeight(60),
                    TextSize = 15,
                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                };
                if (logic != null)
                {
                    ///有时效性常开才显示时间条件文本
                    openModeFl.AddChidren(timeTextBtn);
                }
                ///时效性常开只有一个条件;
                try
                {
                    var y = DateTime.Now.Year.ToString();//那一年
                    var m = DateTime.Now.Month.ToString();//那一月
                    var d = DateTime.Now.ToString("dd");//那一天
                    var h = int.Parse(DateTime.Now.ToString("HH"));//当前系统时间
                    var timeInt = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
                    int dayInt = (h + timeInt) / 24;//算出几天后执行
                    int hour = (h + timeInt) % 24;//算出几天后那个时间执行
                    int days = int.Parse(d) + dayInt;
                    string text1 = Language.StringByID(MyInternationalizationString.timeSensitive);
                    string text2= Language.StringByID(MyInternationalizationString.yearSone);
                    string text3 = Language.StringByID(MyInternationalizationString.monthSone);
                    string text4= Language.StringByID(MyInternationalizationString.numberSone);
                    string text5= Language.StringByID(MyInternationalizationString.executeSone);
                    timeTextBtn.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5;
                }
                catch { }
            }
            else
            button1 = new Button
            {
                fLayout.Height = Application.GetRealHeight(645);//改变高度
                modeIconBtn.UnSelectedImagePath = "ZigeeLogic/noMode.png";//改变图标状态
                ///第二级父控件
                var modeFl = new FrameLayout
                {
                    Y = Application.GetRealHeight(478),
                    X = Application.GetRealWidth(58),
                    Height = Application.GetRealHeight(138),
                    Width = Application.GetRealWidth(1022),
                    BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor,
                };
                fLayout.AddChidren(modeFl);
                modeFl.SetCornerWithSameRadius(Application.GetRealHeight(17), HDLUtils.RectCornerTopLeft);
                modeFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
                ///时效性常开设置显示文本控件
                var modeTextBtn = new Button
                {
            };
            modeFl.AddChidren(button1);
                    Y = Application.GetRealHeight(40),
                    X = Application.GetRealWidth(58),
                    Width = Application.GetRealWidth(600),
                    Height = Application.GetRealHeight(60),
                    TextSize = 15,
                    TextColor = ZigbeeColor.Current.LogicTextBlackColor,
                    TextAlignment = TextAlignment.CenterLeft,
                    // Text = "时效性常开设置",
                    TextID = MyInternationalizationString.timeSetSone,
                };
                modeFl.AddChidren(modeTextBtn);
                ///下一级菜单图标控件
                var nextIconBtn = new Button
                {
                    Width = Application.GetMinRealAverage(104),
                    Height = Application.GetMinRealAverage(104),
                    X = Application.GetRealWidth(861),
                    Y = Application.GetRealHeight(17),
                    UnSelectedImagePath = "ZigeeLogic/nextIconSone.png",
                };
                modeFl.AddChidren(nextIconBtn);
                nextIconBtn.MouseUpEventHandler += (sender, e) =>
                 {
                     LogicView.TipView.ShowConfrimTip(() =>
                     {///再次确认
                       LogicView.TipView.ShowInputTip(true, async (str) =>
                         {///确认发送命令
                           try
                             {
                               ///xm
                               var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
                                 if (!result)
                                 {
                                     LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
                                     return;
                                 }
                                 else
                                 {
                                   ///因为有常开模式下才可以创建失效逻辑;
                                   SkipView.GetLogicAll();//删除之前所有失效逻辑
                                   var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//添加一条失效逻辑
                                   if (!addResult)
                                     {
                                         ///可欣说如果常开模式开,创建自动化失败,那么将要发一条常开模式关闭命令;
                                         UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
                                         ///提示失败
                                         LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
                                         return;
                                     }
                                     Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
                                     this.RemoveFromParent();
                                     var soneLogicList = new SoneLogicList();
                                     UserView.HomePage.Instance.AddChidren(soneLogicList);
                                     UserView.HomePage.Instance.PageIndex += 1;
                                     soneLogicList.Show();
                                      soneLogicList.action= action;
                                     //soneLogicList.action += (c) => {
                                     //    if (action != null)
                                     //    {
                                     //        action(Send.CurrentDoorLock.IsDoorLockNormallyMode);
                                     //    }
                                     //};
                                 }
                             }
                             catch
                             {
                             }
                         });
                     });
                 };
            }
            button2 = new Button
            {
            };
            modeFl.AddChidren(button2);
            ModeView();
            #endregion
            #region 常开自动化
            ///第三块第一级父控件
            var listLogicFl = new FrameLayout
            listLogicFl = new FrameLayout
            {
                Y = fLayout.Bottom,
                X = Application.GetRealWidth(58),
@@ -302,7 +143,16 @@
                UnSelectedImagePath = "ZigeeLogic/add.png",
            };
            addLogicfL.AddChidren(addIconBtn);
            addIconBtn.MouseUpEventHandler += (sender, e) =>
            var addIconclickBtn = new Button
            {
                Width = Application.GetRealWidth(90+69+63),
                Height = Application.GetRealHeight(69),
                X = Application.GetRealWidth(800),
                Y = Application.GetRealHeight(60),
            };
            addLogicfL.AddChidren(addIconclickBtn);
            addIconclickBtn.MouseUpEventHandler += (sender, e) =>
            {
                //读取系统当前时间:时-分
@@ -340,7 +190,7 @@
            };
            ///常开自动化列表上下滑动的控件
            var verticalRefresh = new VerticalRefreshLayout
            verticalRefresh = new VerticalRefreshLayout
            {
                Y = addLogicfL.Bottom,
@@ -352,17 +202,193 @@
            verticalRefresh.BeginHeaderRefreshingAction += () =>
            {
                Common.Logic.SoneLogicList.Clear();
                Read(verticalRefresh, false);
                Read(false);
                verticalRefresh.EndHeaderRefreshing();
            };
            Read(verticalRefresh, true);
            Read(true);
            #endregion
        }
        /// <summary>
        /// 常开模式开关切换图标界面
        /// </summary>
        public async void ModeView()
        {
            if (Send.CurrentDoorLock.IsDoorLockNormallyMode)
            {
                /// 查找是否存在时效性自动化;有的话就返回自动化对象;
                var logic = await SkipView.GetLogicIfon();
                fLayout.Height = Application.GetRealHeight(780);//改变高度
                modeIconBtn.UnSelectedImagePath = "ZigeeLogic/openMode.png";//改变图标状态
                modeFl.Y = modeIconBtn.Bottom + Application.GetRealHeight(64);
                modeFl.X = Application.GetRealWidth(0);
                modeFl.Height = Application.GetRealHeight(127 + 199);
                modeFl.Width = Application.GetRealHeight(1080);
                modeFl.BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor;
                modeFl.SetCornerWithSameRadius(Application.GetRealHeight(0), HDLUtils.RectCornerBottomLeft);
                ///关闭时效性自动化
                button1.Y = Application.GetRealHeight(0);
                button1.X = Application.GetRealWidth(86);
                button1.Width = Application.GetRealWidth(907);
                button1.Height = Application.GetRealHeight(127);
                button1.Radius = (uint)Application.GetRealHeight(58);
                button1.BackgroundColor = ZigbeeColor.Current.LogicBtnSaveBackgroundColor;
                button1.TextAlignment = TextAlignment.Center;
                button1.TextColor = ZigbeeColor.Current.LogicBtnSaveTextColor;
                button1.TextID = MyInternationalizationString.closeUp;
                button1.TextSize = 16;
                button1.MouseUpEventHandler = async (sender, e) =>
                {
                    var result = await UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
                    if (result)
                    {
                        if (logic != null)
                        {
                            ///有可能只有常开模式,没有时效性自动化
                            ///没有判断的话,逻辑会为空,抛出异常;
                            Send.DelLogic(logic.LogicId);
                        }
                        Send.CurrentDoorLock.IsDoorLockNormallyMode = false;
                        ModeView();
                    }
                    else
                    {
                        LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.closeFailed));
                    }
                };
                if (logic != null)
                {
                    ///显示失效设置时间文本控件
                    button2.Y = Application.GetRealHeight(127 + 69);
                    button2.X = Application.GetRealWidth(125);
                    button2.Width = Application.GetRealWidth(634 + 200);
                    button2.Height = Application.GetRealHeight(60);
                    button2.UnSelectedImagePath = "ZigeeLogic/1234.png";
                    button2.TextSize = 15;
                    button2.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
                    ///有时效性常开才显示时间条件文本
                }
                else
                {
                    button2.Width = Application.GetRealWidth(0);
                    button2.Height = Application.GetRealHeight(0);
                }
                ///时效性常开只有一个条件;
                try
                {
                    var y = DateTime.Now.Year.ToString();//那一年
                    var m = DateTime.Now.Month.ToString();//那一月
                    var d = DateTime.Now.ToString("dd");//那一天
                    var h = int.Parse(DateTime.Now.ToString("HH"));//当前系统时间
                    var timeInt = int.Parse(logic.Conditions[0]["DoorLockOpenDelayTime"]);
                    int dayInt = (h + timeInt) / 24;//算出几天后执行
                    int hour = (h + timeInt) % 24;//算出几天后那个时间执行
                    int days = int.Parse(d) + dayInt;
                    string text1 = Language.StringByID(MyInternationalizationString.timeSensitive);
                    string text2 = Language.StringByID(MyInternationalizationString.yearSone);
                    string text3 = Language.StringByID(MyInternationalizationString.monthSone);
                    string text4 = Language.StringByID(MyInternationalizationString.numberSone);
                    string text5 = Language.StringByID(MyInternationalizationString.executeSone);
                    button2.Text = text1 + y + text2 + m + text3 + days.ToString() + text4 + hour.ToString() + text5;
                }
                catch { }
            }
            else
            {
                fLayout.Height = Application.GetRealHeight(645);//改变高度
                modeIconBtn.UnSelectedImagePath = "ZigeeLogic/noMode.png";//改变图标状态
                modeFl.Y = modeIconBtn.Bottom + Application.GetRealHeight(92);
                modeFl.X = Application.GetRealWidth(58);
                modeFl.Height = Application.GetRealHeight(138);
                modeFl.Width = Application.GetRealHeight(1022);
                modeFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
                modeFl.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerBottomLeft);
                ///时效性常开设置显示文本控件
                button1.Y = Application.GetRealHeight(40);
                button1.X = Application.GetRealWidth(58);
                button1.Width = Application.GetRealWidth(600);
                button1.Height = Application.GetRealHeight(60);
                button1.Radius = (uint)Application.GetRealHeight(0);
                button1.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
                button1.TextAlignment = TextAlignment.CenterLeft;
                button1.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
                // Text = "时效性常开设置",
                button1.TextID = MyInternationalizationString.timeSetSone;
                button1.TextSize = 15;
                ///下一级菜单图标控件
                button2.Width = Application.GetMinRealAverage(104);
                button2.Height = Application.GetMinRealAverage(104);
                button2.X = Application.GetRealWidth(861);
                button2.Y = Application.GetRealHeight(17);
                button2.UnSelectedImagePath = "ZigeeLogic/nextIconSone.png";
                button2.TextSize = 15;
                button2.TextColor = ZigbeeColor.Current.LogicTextBlackColor;
                button2.MouseUpEventHandler = (sender, e) =>
                {
                    LogicView.TipView.ShowConfrimTip(() =>
                    {///再次确认
                        LogicView.TipView.ShowInputTip(true, async (str) =>
                        {///确认发送命令
                            try
                            {
                                ///xm
                                var result = await UserCenter.DoorLock.DoorLockCommonInfo.SetNormallyOpenModeFuncAsync(Send.CurrentDoorLock);
                                if (!result)
                                {
                                    LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.openFailed));
                                    return;
                                }
                                else
                                {
                                    ///因为有常开模式下才可以创建失效逻辑;
                                    SkipView.GetLogicAll();//删除之前所有失效逻辑
                                    var addResult = await SkipView.LockAddModifyLogic(int.Parse(str), Send.CurrentDoorLock);//添加一条失效逻辑
                                    if (!addResult)
                                    {
                                        ///可欣说如果常开模式开,创建自动化失败,那么将要发一条常开模式关闭命令;
                                        UserCenter.DoorLock.DoorLockCommonInfo.DelNormallyOpenMode(Send.CurrentDoorLock);
                                        ///提示失败
                                        LogicView.TipView.ShowFlashTip(Language.StringByID(MyInternationalizationString.addFailed));
                                        return;
                                    }
                                    Send.CurrentDoorLock.IsDoorLockNormallyMode = true;
                                    ModeView();
                                }
                            }
                            catch
                            {
                            }
                        });
                    });
                };
            }
            listLogicFl.Y = fLayout.Bottom;
            listLogicFl.X = Application.GetRealWidth(58);
            listLogicFl.Height = Application.GetRealHeight(Method.H - 184) - fLayout.Height;
            listLogicFl.Width = Application.GetRealWidth(1022);
            listLogicFl.BackgroundColor = ZigbeeColor.Current.LogicBlankBackgroundColor;
        }
        /// <summary>
        /// 读取自动化列表数据;
        /// </summary>
        /// <param name="verticalRefresh"></param>
        private async void Read(VerticalRefreshLayout verticalRefresh, bool yes)
        /// <param name="yes"></param>
        private async void Read( bool yes)
        {
            if (yes)
            {
@@ -393,32 +419,31 @@
                var dd = e.Message;
            }
            //自动化
            RefreshView(verticalRefresh);
            RefreshView();
            if (yes)
            {
                CommonPage.Loading.Hide();
            }
        }
        RowLayout selectedRow = new RowLayout() { Tag = "0" };//记录左滑状态
        int a = 1;
        /// <summary>
        /// 加载自动化列表
        /// </summary>
        /// <param name="verticalRefresh"></param>
        RowLayout selectedRow = new RowLayout() { Tag = "0" };//记录左滑状态
        int a = 1;
        private void RefreshView(VerticalRefreshLayout verticalRefresh)
        public void RefreshView()
        {
            verticalRefresh.RemoveAll();
            foreach (var logic in Common.Logic.SoneLogicList)
            {
                #region  自动化布局View
                ///自动化父控件
                var fLayout = new FrameLayout
                var fLayoutLogic = new FrameLayout
                {
                    Height = Application.GetRealHeight(184),
                };
                verticalRefresh.AddChidren(fLayout);
                verticalRefresh.AddChidren(fLayoutLogic);
                ///左右可滑动控件
                var logicRow = new RowLayout
                {
@@ -427,7 +452,7 @@
                    SubViewWidth = Application.GetRealWidth(184),//改变编辑控件宽度多少;
                    Tag = a.ToString(),
                };
                fLayout.AddChidren(logicRow);
                fLayoutLogic.AddChidren(logicRow);
                //左滑菜单事件
                logicRow.OpenMenuAction += () =>
                {
@@ -517,12 +542,12 @@
                ///线的控件
                var line = new Button
                {
                    Y = fLayout.Height - 1,
                    Y = fLayoutLogic.Height - 1,
                    Height = 1,
                    Width = Application.GetRealWidth(976),
                    BackgroundColor = ZigbeeColor.Current.LogicRowLayoutLineColor,
                };
                fLayout.AddChidren(line);
                fLayoutLogic.AddChidren(line);
                #endregion
                ///开关点击事件
                switchBtn.MouseUpEventHandler += (sender1, e1) =>
@@ -564,14 +589,39 @@
                    {
                        Common.Logic.SoneLogicList.Remove(logic);
                        //logicRow.Parent.RemoveFromParent();
                        fLayout.RemoveFromParent();
                        fLayoutLogic.RemoveFromParent();
                        Send.DelLogic(logic.LogicId);
                    };
                };
            }
        }
        /// <summary>
        /// 定时更新常开模式(防止通过门锁关闭没及时刷新状态)
        /// </summary>
        System.Threading.Thread updateThread;
        public void UpdateModeIcon()
        {
            updateThread = new System.Threading.Thread(() =>
            {
                while (this.Parent != null)
                {
                    System.Threading.Thread.Sleep(1000);
                    Application.RunOnMainThread(() =>
                    {
                        try
                        {
                            ModeView();
                        }
                        catch { }
                    });
                }
            });
            updateThread.Start();
        }
    }
}
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/UserDoorLockPage.cs
@@ -1056,6 +1056,7 @@
                UserView.HomePage.Instance.AddChidren(addLogicPage);
                UserView.HomePage.Instance.PageIndex += 1;
                addLogicPage.Show();
                addLogicPage.UpdateModeIcon();
                addLogicPage.action += (w) =>
                {
                    doorLock.IsDoorLockNormallyMode = w;
ZigbeeApp/Shared/Phone/ZigBee/Device/CommonDevice.cs
old mode 100755 new mode 100644
@@ -323,7 +323,7 @@
        /// <summary>
        /// MAC地址
        /// </summary>
        public string DeviceAddr;
        public string DeviceAddr="123456";
        /// <summary>
        /// 设备端口号