wxr
2022-09-27 0ee75b88cfe03e46289de0de96e8ed4580c797d3
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -194,18 +194,6 @@
                btnResidenceName.MouseUpEventHandler = (sender, e) =>
                {
                    //if (UserInfo.Current.VerOpenDoorPw || string.IsNullOrEmpty(UserInfo.Current.doorPasswordString))
                    //{
                    //    var page = new DoorLockUnlockPage(new Function());
                    //    MainPage.BasePageView.AddChidren(page);
                    //    page.LoadView();
                    //    MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
                    //}
                    //else
                    //{
                    //    Control.Ins.OneKeyUnlocking(new Function(), UserInfo.Current.doorPasswordString);
                    //}
                };
#endif
@@ -565,269 +553,6 @@
            }
#if DEBUG
            FunctionList.List.Functions.Add(new Function
            {
                name = "测试门锁",
                spk = SPK.DoorLock,
                sid = "12345",
                attributes = new List<FunctionAttributes> {
                    new FunctionAttributes(){ key = "door_status",curValue= "open",state = "open" },
                    new FunctionAttributes(){ key = "normal_open",curValue= "true",state = "true" },
                    new FunctionAttributes(){ key = "normal_open_countdown",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "local_id",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "door_volume",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "door_volume_step",curValue= "up",state = "up" },
                    new FunctionAttributes(){ key = "battery_value",curValue= "100",state = "100" },
                    new FunctionAttributes(){ key = "battery_percentage",curValue= "100",state = "100" },
                    new FunctionAttributes(){ key = "battery_state",curValue= "high",state = "high" },
                }
            });
            FunctionList.List.Functions.Add(new Function
            {
                name = "门锁1",
                spk = SPK.DoorLock,
                sid = "123",
                attributes = new List<FunctionAttributes> {
                    new FunctionAttributes(){ key = "door_status",curValue= "open",state = "open" },
                    new FunctionAttributes(){ key = "normal_open",curValue= "true",state = "true" },
                    new FunctionAttributes(){ key = "normal_open_countdown",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "local_id",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "door_volume",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "door_volume_step",curValue= "up",state = "up" },
                    new FunctionAttributes(){ key = "battery_value",curValue= "100",state = "100" },
                    new FunctionAttributes(){ key = "battery_percentage",curValue= "100",state = "100" },
                    new FunctionAttributes(){ key = "battery_state",curValue= "high",state = "high" },
                }
            });
            FunctionList.List.Functions.Add(new Function()
            {
                spk = SPK.PanelSocket,
                name = "面板插座",
                attributes = new List<FunctionAttributes>
                {
                    new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
                    new FunctionAttributes(){ key = "on_off_usb",curValue= "on",state = "on" },
                    new FunctionAttributes(){ key = "active_power",curValue= "220",state = "220" },
                    new FunctionAttributes(){ key = "voltage",curValue= "5",state = "5" },
                    new FunctionAttributes(){ key = "current",curValue= "110",state = "110" },
                    new FunctionAttributes(){ key = "total_electricity",curValue= "123.33",state = "123.33" },
                }
            });
            FunctionList.List.Functions.Add(new Function()
            {
                spk = SPK.SensorDryContact,
                name = "干接点",
                attributes = new List<FunctionAttributes>()
                {
                    new FunctionAttributes(){ key = "status",curValue= "on",state = "on" },
                },
            });
            FunctionList.List.Functions.Add(new Function()
            {
                spk = SPK.SensorPm25,
                name = "测试Pm2.5",
                attributes = new List<FunctionAttributes>()
                {
                    new FunctionAttributes(){ key = "pm25",curValue= "70",state = "70" },
                },
                attrKeyConfigs = new List<AttrKeyConfig>()
                {
                    new AttrKeyConfig (){
                        key = "pm2.5",
                        type = "interval" ,
                        unit = "ug/m²",
                        configs = new List<AttrKeyInfo>(){
                           new AttrKeyInfo(){ start = "0",end = "75",color = 0xFFADE764, desc = "良好"},
                           new AttrKeyInfo(){ start = "76",end = "150",color = 0xFFFFD154,desc = "轻/中度污染"},
                           new AttrKeyInfo(){ start = "151",end = "500",color = 0xFFFF9D54,desc = "重度/严重污染"},
                        }
                    }
                },
            });
            FunctionList.List.Functions.Add(new Function()
            {
                spk = SPK.SensorHelp,
                name = "测试紧急求助按钮",
                attributes = new List<FunctionAttributes>()
                {
                    new FunctionAttributes(){ key = "status",curValue= "on",state = "on" },
                    new FunctionAttributes(){ key = "alarm_status",curValue= "alarm",state = "alarm" },
                    new FunctionAttributes(){ key = "battery_value",curValue= "200",state = "200" },
                    new FunctionAttributes(){ key = "battery_percentage",curValue= "10",state = "10" },
                    new FunctionAttributes(){ key = "battery_state",curValue= "low",state = "low" },
                },
            });
            //FunctionList.List.Functions.Add(new Function()
            //{
            //    spk = SPK.AirSwitch,
            //    name = "智能空开",
            //    attributes = new List<FunctionAttributes>()
            //    {
            //        new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
            //    },
            //});
            FunctionList.List.Functions.Add(new Function()
            {
                spk = SPK.AirFreshStandard,
                name = "测试新风",
                sid = "098765433242342342",
                attributes = new List<FunctionAttributes>()
                {
                    new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
                    new FunctionAttributes(){ key = "fan",curValue= "low",state = "low" ,value = new List<string>(){ "high", "medium", "low" } },
                },
            });
            FunctionList.List.Functions.Add(new Function()
            {
                spk = SPK.PanelEnvironment,
                name = "测试环境面板",
                targetSids = new List<string> {
                    "098765433242342342",
                    "ac1",
                    "floorheat1"
                }
            });
            FunctionList.List.Functions.Add(new Function()
            {
                spk = SPK.HvacCac,
                name = "测试金茂温控",
                attributes = new List<FunctionAttributes>()
                {
                    new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
                    new FunctionAttributes(){ key = "mode",curValue= "cool",state = "cool" ,value = new List<string>(){ "cool", "heat" } },
                    new FunctionAttributes(){ key = "set_temp",curValue= "22",state = "22" ,value = new List<string>(){},min = 0,max = 30 },
                    //new FunctionAttributes(){ key = "set_temp_step",curValue= "low",state = "low" ,value = new List<string>(){ "high", "medium", "low", "auto", "stop" } },
                    new FunctionAttributes(){ key = "humidity",curValue= "0",state = "0" ,value = new List<string>(){  },min = 0,max = 100 },
                    new FunctionAttributes(){ key = "room_temp",curValue= "26",state = "26" ,value = new List<string>(){  },min = 0,max = 100 },
                    new FunctionAttributes(){ key = "dew_point_temp",curValue= "20",state = "20" ,value = new List<string>(){  },min = 0,max = 100 },
                    new FunctionAttributes(){ key = "room_humidity",curValue= "20",state = "20" ,value = new List<string>(){  },min = 0,max = 1000 },
                    //new FunctionAttributes(){ key = "tvoc",curValue= "20",state = "20" ,value = new List<string>(){  },min = 0,max = 100 },
                },
            });
            //FunctionList.List.Functions.Add(new Function()
            //{
            //    spk = SPK.HvacAirFreshJinmao,
            //    name = "测试金茂新风",
            //    attributes = new List<FunctionAttributes>()
            //    {
            //        new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
            //        new FunctionAttributes(){ key = "mode",curValue= "humidification",state = "humidification" ,value = new List<string>(){ "humidification", "fan" } },
            //        new FunctionAttributes(){ key = "energy",curValue= "true",state = "true" ,value = new List<string>(){ "true", "false" } },
            //        new FunctionAttributes(){ key = "fan",curValue= "level_1",state = "level_1" ,value = new List<string>(){ "level_1", "level_2", "level_3","auto" } },
            //        new FunctionAttributes(){ key = "humidity",curValue= "0",state = "0" ,value = new List<string>(){  },min = 0,max = 100 },
            //        new FunctionAttributes(){ key = "indoor_temp",curValue= "26",state = "26" ,value = new List<string>(){  },min = 0,max = 100 },
            //        new FunctionAttributes(){ key = "indoor_humidity",curValue= "0",state = "0" ,value = new List<string>(){  },min = 0,max = 100 },
            //        new FunctionAttributes(){ key = "filter_remain",curValue= "0",state = "0" ,value = new List<string>(){  },min = 0,max = 100 },
            //        new FunctionAttributes(){ key = "filter_timeout",curValue= "false",state = "false" ,value = new List<string>(){ "true", "false"  }},
            //    },
            //});
            //FunctionList.List.Functions.Add(new Function()
            //{
            //    spk = SPK.SensorGas,
            //    name = "燃气传感器",
            //    attributes = new List<FunctionAttributes>()
            //    {
            //        new FunctionAttributes(){ key = "enable",curValue= "true",state = "true" ,value = new List<string>(){ "true", "false" } },
            //        new FunctionAttributes(){ key = "status",curValue= "normal",state = "normal" ,value = new List<string>(){ "alarm", "normal" } },
            //    },
            //});
            //FunctionList.List.Functions.Add(new Function() { spk = SPK.PjtIr, name = "测试投影仪",
            //                            attributes = new List<FunctionAttributes>() {
            //                                new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
            //                                new FunctionAttributes(){ key = "computer",value = new List<string>(){"电脑" } },
            //                                new FunctionAttributes(){ key = "video",value = new List<string>(){"视频" } },
            //                                new FunctionAttributes(){ key = "source",value = new List<string>(){"信号源" } },
            //                                new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"变焦+" } },
            //                                new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"变焦-" } },
            //                                new FunctionAttributes(){ key = "page+",value = new List<string>(){"画面+" } },
            //                                new FunctionAttributes(){ key = "page-",value = new List<string>(){"画面-" } },
            //                                new FunctionAttributes(){ key = "menu",value = new List<string>(){"菜单" } },
            //                                new FunctionAttributes(){ key = "ok",value = new List<string>(){"确认" } },
            //                                new FunctionAttributes(){ key = "up",value = new List<string>(){"上" } },
            //                                new FunctionAttributes(){ key = "left",value = new List<string>(){"左" } },
            //                                new FunctionAttributes(){ key = "right",value = new List<string>(){"右" } },
            //                                new FunctionAttributes(){ key = "down",value = new List<string>(){"下" } },
            //                                new FunctionAttributes(){ key = "exit",value = new List<string>(){"退出" } },
            //                                new FunctionAttributes(){ key = "volume+",value = new List<string>(){"音量+" } },
            //                                new FunctionAttributes(){ key = "volume-",value = new List<string>(){"音量-" } },
            //                                new FunctionAttributes(){ key = "mute",value = new List<string>(){"静音" } },
            //                                new FunctionAttributes(){ key = "auto",value = new List<string>(){"自动" } },
            //                                new FunctionAttributes(){ key = "pause",value = new List<string>(){"暂停" } },
            //                            }
            //});
            //FunctionList.List.Functions.Add(new Function()
            //{
            //    spk = SPK.StbIr,
            //    name = "测试机顶盒",
            //    attributes = new List<FunctionAttributes>() {
            //                                new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
            //                                new FunctionAttributes(){ key = "computer",value = new List<string>(){"电脑" } },
            //                                new FunctionAttributes(){ key = "video",value = new List<string>(){"视频" } },
            //                                new FunctionAttributes(){ key = "source",value = new List<string>(){"信号源" } },
            //                                new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"变焦+" } },
            //                                new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"变焦-" } },
            //                                new FunctionAttributes(){ key = "page+",value = new List<string>(){"画面+" } },
            //                                new FunctionAttributes(){ key = "page-",value = new List<string>(){"画面-" } },
            //                                new FunctionAttributes(){ key = "menu",value = new List<string>(){"菜单" } },
            //                                new FunctionAttributes(){ key = "ok",value = new List<string>(){"确认" } },
            //                                new FunctionAttributes(){ key = "up",value = new List<string>(){"上" } },
            //                                new FunctionAttributes(){ key = "left",value = new List<string>(){"左" } },
            //                                new FunctionAttributes(){ key = "right",value = new List<string>(){"右" } },
            //                                new FunctionAttributes(){ key = "down",value = new List<string>(){"下" } },
            //                                new FunctionAttributes(){ key = "exit",value = new List<string>(){"退出" } },
            //                                new FunctionAttributes(){ key = "volume+",value = new List<string>(){"音量+" } },
            //                                new FunctionAttributes(){ key = "volume-",value = new List<string>(){"音量-" } },
            //                                new FunctionAttributes(){ key = "mute",value = new List<string>(){"静音" } },
            //                                new FunctionAttributes(){ key = "auto",value = new List<string>(){"自动" } },
            //                                new FunctionAttributes(){ key = "pause",value = new List<string>(){"暂停" } },
            //                            }
            //});
            //FunctionList.List.Functions.Add(new Function()
            //{
            //    spk = SPK.TvIr,
            //    name = "测试电视",
            //    attributes = new List<FunctionAttributes>() {
            //                                new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
            //                                new FunctionAttributes(){ key = "computer",value = new List<string>(){"电脑" } },
            //                                new FunctionAttributes(){ key = "video",value = new List<string>(){"视频" } },
            //                                new FunctionAttributes(){ key = "source",value = new List<string>(){"信号源" } },
            //                                new FunctionAttributes(){ key = "zoom+",value = new List<string>(){"变焦+" } },
            //                                new FunctionAttributes(){ key = "zoom-",value = new List<string>(){"变焦-" } },
            //                                new FunctionAttributes(){ key = "page+",value = new List<string>(){"画面+" } },
            //                                new FunctionAttributes(){ key = "page-",value = new List<string>(){"画面-" } },
            //                                new FunctionAttributes(){ key = "menu",value = new List<string>(){"菜单" } },
            //                                new FunctionAttributes(){ key = "ok",value = new List<string>(){"确认" } },
            //                                new FunctionAttributes(){ key = "up",value = new List<string>(){"上" } },
            //                                new FunctionAttributes(){ key = "left",value = new List<string>(){"左" } },
            //                                new FunctionAttributes(){ key = "right",value = new List<string>(){"右" } },
            //                                new FunctionAttributes(){ key = "down",value = new List<string>(){"下" } },
            //                                new FunctionAttributes(){ key = "exit",value = new List<string>(){"退出" } },
            //                                new FunctionAttributes(){ key = "volume+",value = new List<string>(){"音量+" } },
            //                                new FunctionAttributes(){ key = "volume-",value = new List<string>(){"音量-" } },
            //                                new FunctionAttributes(){ key = "mute",value = new List<string>(){"静音" } },
            //                                new FunctionAttributes(){ key = "auto",value = new List<string>(){"自动" } },
            //                                new FunctionAttributes(){ key = "pause",value = new List<string>(){"暂停" } },
            //                            }
            //});
#endif
        }
        /// <summary>
        /// 加载内容区域
@@ -921,7 +646,6 @@
        /// <summary>
        /// 加载设备功能显示区域
        /// Tag 收藏卡片
        /// </summary>
        void LoadDeviceFunctionControlZone()
        {
@@ -935,6 +659,8 @@
                var list = FunctionList.List.GetDeviceFunctionList();
                foreach (var function in list)
                {
                    //音乐模块有主从关系,需要特殊处理
                    if (SPK.MusicSpkList().Contains( function.spk))
                    {
@@ -968,11 +694,6 @@
                    {
                        if (!function.collect)
                            continue;
                        //if (function.roomIdList.Count == 0)//如何在房间已经移除了这个功能,则收藏界面也不会再显示
                        //{
                        //    function.collection = false;
                        //    continue;
                        //}
                    }
                    if (index % 2 == 0)
                    {
@@ -996,23 +717,34 @@
                        Tag = function.sid
                    };
                    rowView.AddChidren(functionView);
                    var btnbg = new Button()
                    {
                        UnSelectedImagePath = "Collection/Functionbg.png",
                        SelectedImagePath = "Collection/FunctionOnbg.png",
                        Tag = function.sid
                    };
                    functionView.AddChidren(btnbg);
                    functionViews.Add(functionView);
                    LoadDeviceFunctionDiv(functionView, function);
                    //绿建人居环境,科技系统
                    if (function.spk == SPK.AcstParent)
                    {
                        LoadAcstDiv(functionView, function);
                    }
                    else //其他设备
                    {
                        var btnbg = new Button()
                        {
                            UnSelectedImagePath = "Collection/Functionbg.png",
                            SelectedImagePath = "Collection/FunctionOnbg.png",
                            Tag = function.sid
                        };
                        functionView.AddChidren(btnbg);
                        LoadDeviceFunctionDiv(functionView, function);
                        if (SPK.ArmSensorSpkList().Contains(function.spk))
                        {
                            btnbg.UnSelectedImagePath = "Collection/FunctionOnbg.png";
                            btnbg.SelectedImagePath = "Collection/FunctionArmOnbg.png";
                        }
                    }
                    index++;
                    //if (!function.online)
                    //{
                    //    btnbg.UnSelectedImagePath = "Collection/FunctionOfflineBg.png";
                    //}
                }
                if (index == 0)
@@ -1135,7 +867,6 @@
        /// <summary>
        /// 加载功能控制卡片
        /// Tag 卡片自定义
        /// </summary>
        void LoadDeviceFunctionDiv(FrameLayout view, Function function)
        {
@@ -1150,11 +881,6 @@
                    Height = Application.GetMinRealAverage(32),
                };
                view.AddChidren(btnIcon);
                btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                Button btnName;
                btnName = new Button()
@@ -1186,6 +912,7 @@
                };
                view.AddChidren(btnZone);
                Button btnState;
                btnState = new Button()
                {
@@ -1200,6 +927,69 @@
                    Tag = "state",
                    Text = function.lastState
                };
                if (function.spk == SPK.SenesorMegahealth)
                {
                    btnIcon.UnSelectedImagePath = "FunctionIcon/Icon/HomeIcon/sensormegahealth.png";
                    btnIcon.SelectedImagePath = "FunctionIcon/Icon/HomeIcon/sensormegahealth.png";
                    btnName.TextColor = CSS_Color.MainBackgroundColor;
                    btnZone.TextColor = CSS_Color.MainBackgroundColor;
                    btnState.TextColor = CSS_Color.MainBackgroundColor;
                    var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus);
                    if (tempStatus != null)
                    {
                        switch (tempStatus.state)
                        {//0空,1走,2跑,3坐,4跌倒,5站
                            case "0":
                                function.lastState = Language.StringByID(StringId.SensorNormalState);
                                break;
                            case "1":
                                function.lastState = Language.StringByID(StringId.SomeoneIn);
                                break;
                            case "2":
                                if (function.extSet.labModel)
                                {
                                    function.lastState = Language.StringByID(StringId.SomeoneRunning);
                                }
                                else
                                {
                                    function.lastState = Language.StringByID(StringId.Someone);
                                }
                                break;
                            case "3":
                                if (function.extSet.labModel)
                                {
                                    function.lastState = Language.StringByID(StringId.SomeoneSitting);
                                }
                                else
                                {
                                    function.lastState = Language.StringByID(StringId.Someone);
                                }
                                break;
                            case "4":
                                function.lastState = Language.StringByID(StringId.SomeoneFell);
                                break;
                            case "5":
                                if (function.extSet.labModel)
                                {
                                    function.lastState = Language.StringByID(StringId.SomeoneStanding);
                                }
                                else
                                {
                                    function.lastState = Language.StringByID(StringId.Someone);
                                }
                                break;
                        }
                        btnState.Text = function.lastState;
                    }
                }
                else
                {
                    btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                    btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                }
                if (function.spk != SPK.LightSwitch)
                {
@@ -1226,6 +1016,7 @@
                LoadEvent_FunctionCollection(btnCollection, function);
                if (//SPK.CurtainSpkList().Contains(function.spk))
                    function.spk == SPK.CurtainRoller || function.spk == SPK.CurtainShades ||
                    function.spk == SPK.CurtainDream ||
                    function.spk == SPK.CurtainSwitch || function.spk == SPK.CurtainTrietex )
                {
                    btnIcon.UnSelectedImagePath = "FunctionIcon/Curtain/CurtainIcon.png";
@@ -1314,7 +1105,7 @@
                       function.SetAttrState("on_off", status);
                        Dictionary<string, string> dic = new Dictionary<string, string>();
                        dic.Add("on_off", status);
                        Music.SendMethod.mMethod.SendControlCommand(function, dic);
                        Music.SendMethod.Current.SendControlCommand(function, dic);
                    };
                }
@@ -1350,10 +1141,23 @@
                    LoadEvent_ControlClothesHanger(function, btnUp, btnDown);
                }
                else if (function.spk == SPK.SenesorMegahealth)
                {
                    //btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}.png";
                    //btnIcon.SelectedImagePath = "FunctionIcon/Icon/HomeIcon/sensormegahealth.png";
                    //btnIcon.IsSelected = true;
                    btnState.SelectedTextColor = CSS_Color.MainBackgroundColor;
                    btnState.TextColor = CSS_Color.MainColor;//PromptingColor1
                }
                //紧急求助
                else if (function.spk == SPK.SensorHelp)
                {
                    btnName.TextColor = CSS_Color.MainBackgroundColor;
                    btnName.SelectedTextColor = CSS_Color.MainBackgroundColor;
                    btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                    btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                }
                else
@@ -1402,19 +1206,19 @@
                    UpdataFunctionStates(function);
                }
                //var btnOffline = new Button()
                //{
                //    X = btnIcon.Right,
                //    Y = Application.GetRealWidth(16),
                //    Height = Application.GetMinRealAverage(32),
                //    TextID = StringId.DeviceOffline,
                //    TextColor = CSS_Color.WarningColor,
                //    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                //    TextAlignment = TextAlignment.CenterLeft,
                //    Tag = "OnlineTag",
                //    Visible = !function.online
                //};
                //view.AddChidren(btnOffline);
                var btnOffline = new Button()
                {
                    X = btnIcon.Right,
                    Y = Application.GetRealWidth(16),
                    Height = Application.GetMinRealAverage(32),
                    TextID = StringId.DeviceOffline,
                    TextColor = CSS_Color.WarningColor,
                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                    TextAlignment = TextAlignment.CenterLeft,
                    Tag = "OnlineTag",
                    Visible = !function.online
                };
                view.AddChidren(btnOffline);
            }
            catch (Exception ex)
@@ -1422,6 +1226,94 @@
                MainPage.Log("homepage LoadControlView error : " + ex.Message);
            }
        }
        /// <summary>
        /// 加载绿建科技系统卡片
        /// </summary>
        void LoadAcstDiv(FrameLayout view1, Function function)
        {
            var view = new FrameLayout()
            {
                X = Application.GetRealWidth(10),
                Y = Application.GetRealHeight(5),
                Width = Application.GetRealWidth(160),
                Height = Application.GetRealHeight(105),
                BackgroundColor = CSS_Color.MainBackgroundColor,
                Radius = (uint)Application.GetRealWidth(15),
            };
            view1.AddChidren(view);
            Button btnName;
            btnName = new Button()
            {
                X = Application.GetRealWidth(11),
                Y = Application.GetRealWidth(10),
                TextID = StringId.Acst,
                IsBold = true,
                TextColor = CSS_Color.FirstLevelTitleColor,
                TextSize = CSS_FontSize.TextFontSize,
                Height = Application.GetRealWidth(24),
                Width = Application.GetRealWidth(140),
                TextAlignment = TextAlignment.CenterLeft,
            };
            view.AddChidren(btnName);
            var btnLogo = new Button()
            {
                Y = Application.GetRealWidth(85),
                UnSelectedImagePath = "FunctionIcon/Acst/LvJianLogo.png",
                SelectedImagePath = "FunctionIcon/Acst/LvJianLogo.png",
                Width = Application.GetRealWidth(80),
                Height = Application.GetRealWidth(37),
            };
            view.AddChidren(btnLogo);
            Button btnFunctionViewBg;
            btnFunctionViewBg = new Button()
            {
                Height = Application.GetRealWidth(100),
                Width = Application.GetRealWidth(102),
                UnSelectedImagePath = "FunctionIcon/FunctionBg/AcstFunctionBg.png",
            };
            view.AddChidren(btnFunctionViewBg);
            btnFunctionViewBg.MouseUpEventHandler = (sender, e) => {
                var page = new AcstParentPage();
                MainPage.BasePageView.AddChidren(page);
                page.LoadPage();
                MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
            };
            Button btnAcstPower = new Button()
            {
                X = Application.GetRealWidth(115),
                Y = Application.GetRealHeight(70),
                Width = Application.GetRealWidth(32),
                Height = Application.GetRealWidth(32),
                SelectedImagePath = "Public/PowerOpen.png",
                UnSelectedImagePath = "Public/PowerClose.png",
                IsSelected = function.trait_on_off.curValue.ToString() == "on",
            };
            view.AddChidren(btnAcstPower);
            btnAcstPower.MouseUpEventHandler = (sender, e) => {
                btnAcstPower.IsSelected = !btnAcstPower.IsSelected;
                string onoff = btnAcstPower.IsSelected ? "on" : "off";
                Dictionary<string, string> d = new Dictionary<string, string>();
                d.Add(FunctionAttributeKey.OnOff, onoff);
                foreach(var temp in FunctionList.List.GetAcstParentList())
                {
                    Control.Ins.SendWriteCommand(temp, d);
                }
            };
        }
        /// <summary>
        /// 加载场景控制卡片