WJC
2020-04-02 94e4e5b9fd3da964c44b7b14227d6fe2bbb426d7
ZigbeeApp/Shared/Phone/Device/Logic/SkipView.cs
@@ -13,7 +13,7 @@
        /// <summary>
        /// 其它界面跳进来的入口
        /// </summary>
        public static void SkipAddLogic(int intvalue,UserCenter.MemberInfoRes accountObj = null,DoorLock doorLock=null)
        public static void SkipAddLogic(int intvalue,DoorLock doorLock=null,UserCenter.MemberInfoRes accountObj = null)
        {
            /// 0.正常自动化;1.门锁自动化;2.门锁常开.关;
            switch (intvalue)
@@ -56,16 +56,48 @@
                        doorLockLogicList.Show();
                    } break;
                case 2: {
                        Common.Logic.LogicDviceList.Clear();
                        if (Common.Logic.LogicDviceList.Count == 0)
                        {
                            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个时间)
                        Dictionary<string, string> timeDictionary = new Dictionary<string, string>();
                        timeDictionary.Add("Type", "5");
                        timeDictionary.Add("IsValid", "1");
                        timeDictionary.Add("StartHour", h.ToString());
                        timeDictionary.Add("StartMin", m.ToString());
                        if (h + 1 == 24)
                        {
                            //结束时间超出24小时处理方法;
                            timeDictionary.Add("StopHour", h.ToString());
                            timeDictionary.Add("StopMin", "59");
                        }
                        else
                        {
                            timeDictionary.Add("StopHour", (h + 1).ToString());
                            timeDictionary.Add("StopMin", m.ToString());
                        }
                        Dictionary<string, object> actionsInfo = new Dictionary<string, object>();
                        actionsInfo.Add("LinkType", 8);
                        actionsInfo.Add("DeviceAddr", doorLock.DeviceAddr);
                        actionsInfo.Add("Epoint", doorLock.DeviceEpoint);
                        actionsInfo.Add("PassData", "055704010112");//默认门锁常开
                        //new一个新逻辑对象;
                        //新增门锁常开模式自动化入口;
                        Common.Logic.CurrentLogic = new Common.Logic();
                        Common.Logic.CurrentLogic.IsEnable = 1;//默认为开
                        Common.Logic.CurrentLogic.LogicType = 2;//标记逻辑类型
                        Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.openmode);
                        var logicCommunalPage = new LogicCommunalPage();
                        UserView.HomePage.Instance.AddChidren(logicCommunalPage);
                        Common.Logic.CurrentLogic.LogicName = Language.StringByID(MyInternationalizationString.automation1);
                        Common.Logic.CurrentLogic.Conditions.Add(timeDictionary);//添加条件
                        Common.Logic.CurrentLogic.Actions.Add(actionsInfo);//添加目标
                        var oneLogic = new OneLogic();
                        UserView.HomePage.Instance.AddChidren(oneLogic);
                        UserView.HomePage.Instance.PageIndex += 1;
                        logicCommunalPage.Show(() => { });
                        oneLogic.Show(false);
                    } break;
            }
@@ -358,10 +390,10 @@
                    refresview.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor;
                }
            }
            int i = 1;//局部变量,默认是第一条逻辑;
            foreach (var logic in Common.Logic.LogicList)
            {
                var fLayout = new FrameLayout
                {
                    Height = Application.GetRealHeight(190 + 30),
@@ -369,7 +401,7 @@
                    BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor,
                };
                refresview.AddChidren(fLayout);
                var logicRowlayout = new RowLayout
                {
                    Height = Application.GetRealHeight(190 + 30),
@@ -380,7 +412,14 @@
                };
                fLayout.AddChidren(logicRowlayout);
                if (i == 1)
                {
                    //实现android显示逻辑列表的圆角;
                    fLayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
                    logicRowlayout.SetCornerWithSameRadius(Application.GetRealHeight(58), HDLUtils.RectCornerTopLeft);
                    i = 2;
                }
                var logicnameBtn = new Button
                {
                    Height = Application.GetRealHeight(58),
@@ -396,8 +435,8 @@
                var logicswitchBtn = new Button
                {
                    Width = Application.GetRealWidth(104),
                    Height = Application.GetRealHeight(63),
                    Width = Application.GetMinRealAverage(104),
                    Height = Application.GetMinRealAverage(63),
                    UnSelectedImagePath = "ZigeeLogic/logicclose.png",
                    SelectedImagePath = "ZigeeLogic/logicopen.png",
                    X = logicRowlayout.Width - Application.GetRealWidth(104 + 58),
@@ -421,7 +460,7 @@
                        logic.IsEnable = 0;
                        StatusColor(logic, logicRowlayout, 0);
                    }
                    Device.Logic.Send.LogicControlSwitch(logic);
                   Send.LogicControlSwitch(logic);
                    //Logic.Send.AddModifyLogic(logic);
                };
                if (logic.IsEnable == 1)
@@ -445,11 +484,20 @@
                edit.MouseUpEventHandler += (sender, e) =>
                {
                    Common.Logic.CurrentLogic = logic;
                    var logicCommunalPage = new LogicCommunalPage();
                    HomePage.Instance.AddChidren(logicCommunalPage);
                    HomePage.Instance.PageIndex += 1;
                    logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview, no); });
                    if (Common.Logic.CurrentLogic.LogicType == 2)
                    {
                        var oneLogic = new OneLogic();
                        UserView.HomePage.Instance.AddChidren(oneLogic);
                        UserView.HomePage.Instance.PageIndex += 1;
                        oneLogic.Show(true);
                    }
                    else
                    {
                        var logicCommunalPage = new LogicCommunalPage();
                        HomePage.Instance.AddChidren(logicCommunalPage);
                        HomePage.Instance.PageIndex += 1;
                        logicCommunalPage.Show(() => { logicnameBtn.Text = logic.LogicName; Automationview(refresview, no); });
                    }
                };
                ///删除
@@ -507,7 +555,7 @@
            logicRowlayout.AddChidren(logictimeBtn);
            ///显示执行周期
            Device.Logic.Method.UpdateWeek(logictimeBtn, logic);
            Method.UpdateWeek(logictimeBtn, logic);
            List<string> indexlist = new List<string>();
@@ -521,7 +569,8 @@
                    indexlist.Add(linkType);
                }
            }
            if (indexlist.Contains("0"))
             //排列图标顺序;
            if (indexlist.Contains("0")|| indexlist.Contains("8"))
            {
                iconIndexlist.Add("0");
            }
@@ -546,7 +595,7 @@
                    Height = Application.GetMinRealAverage(82),
                    X = Application.GetRealWidth(58) + Application.GetRealWidth(12 + (12 + 82 + 45 + 12) * i),
                    Y = Application.GetRealHeight(58 + 30 + 30),
                    Radius = (uint)Application.GetRealHeight(41),
                    Radius = (uint)Application.GetMinRealAverage(41),
                    BackgroundColor = ZigbeeColor.Current.LogicMiddleBackgroundColor,
                };
                logicRowlayout.AddChidren(typebjBtn);
@@ -644,33 +693,35 @@
        #endregion
        /// <summary>
        /// 门锁取消设置用的方法
        /// 门锁取消设置用的方法(相当一个关闭常开模式按钮,不需要显示该自动化)
        /// </summary>
        /// <param name="timeVlaue">时间值</param>
        /// <param name="common">设备</param>
        /// <returns></returns>
        public static void LockAddModifyLogic(int timeVlaue, CommonDevice common)
        {
            int hour = timeVlaue / 60;
            int min = timeVlaue % 60;
            var h = DateTime.Now.ToString("hh");
            var m = DateTime.Now.ToString("mm");
            Dictionary<string, string> timeConditionsInfo = new Dictionary<string, string>();
            timeConditionsInfo.Add("Type", "0");
            timeConditionsInfo.Add("IsValid", "1");
            timeConditionsInfo.Add("DateType", "0");
            timeConditionsInfo.Add("RemindTime", "0");
            timeConditionsInfo.Add("DelayTime", "0");
            timeConditionsInfo.Add("StartHour", hour.ToString());
            timeConditionsInfo.Add("StartMin", min.ToString());
            timeConditionsInfo.Add("EnDelay", "0");
            timeConditionsInfo.Add("DelayTime", "0");
            timeConditionsInfo.Add("StartHour", h);
            timeConditionsInfo.Add("StartMin", m);
            timeConditionsInfo.Add("DoorLockOpenDelayTime", timeVlaue.ToString());
            Dictionary<string, object> actionsInfo = new Dictionary<string, object>();
            actionsInfo.Add("LinkType", 8);
            actionsInfo.Add("DeviceAddr", common.DeviceAddr);
            actionsInfo.Add("Epoint", common.DeviceEpoint);
            actionsInfo.Add("PassData", "055704010112");//默认门锁常开
            actionsInfo.Add("PassData", "055704010113");//默认门锁常关
            Common.Logic currentLogic = new Common.Logic();
            currentLogic.IsEnable = 0;//默认禁用
            currentLogic.IsEnable = 1;//默认为开
            currentLogic.TimeAttribute.Repeat = 0;//执行一次
            currentLogic.LogicType = 3;//标记逻辑类型
            currentLogic.LogicName = Language.StringByID(R.MyInternationalizationString.openmode);
            currentLogic.Conditions.Add(timeConditionsInfo);
            currentLogic.Actions.Add(actionsInfo);