wjc
2023-03-28 a9d1161b1df96e7ddad566335989a1444e433ef5
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text;
using HDL_ON.DAL;
using HDL_ON.DAL.Server;
using HDL_ON.DriverLayer;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
@@ -11,7 +12,11 @@
namespace HDL_ON.UI
{
    public partial class HomePage : VerticalRefreshLayout
#if __IOS__
    public partial class HomePage :  VerticalRefreshLayout
#else
    public partial class HomePage : VerticalScrolViewLayout
#endif
    {
        #region 控件列表
@@ -90,21 +95,21 @@
        /// 功能区域集合
        /// </summary>
        List<FrameLayout> functionViews;
        #endregion
#endregion
        #region 区域变量
#region 区域变量
        /// <summary>
        /// 当前显示对控制类型是否是设备功能控制
        /// </summary>
        bool CurShowTypeIsFunction = true;
        #endregion
#endregion
        #region 报警信息
#region 报警信息
        Button btnMsgBg;
        Button btnMsgTime;
        Button btnMsg;
        Button btnMsgIcon;
        #endregion
#endregion
        public HomePage()
        {
@@ -132,9 +137,34 @@
            MainPage.CurPageIndex = 0;
            try
            {
                this.BeginHeaderRefreshingAction = () =>
                bodyView.RemoveAll();
#if __IOS__
                bodyView.BeginHeaderRefreshingAction = () =>
                {
                    this.EndHeaderRefreshing();
                    bodyView.EndHeaderRefreshing();
                    Common.ApiUtlis.Ins.DownloadData();
                    LoadContentView();
                    if (!CurShowTypeIsFunction)
                    {
                        contentView.PageIndex = 1;
                    }
                };
                topView = new FrameLayout()
                {
                    Height = Application.GetRealHeight(216),
                    BackgroundImagePath = DB_ResidenceData.Instance.residenceImage,
                };
                bodyView.AddChidren(topView);
#else
                VerticalRefreshLayout refreshLayout = new VerticalRefreshLayout()
                {
                    Height = Application.GetRealHeight(216),
                    BackgroundImagePath = DB_ResidenceData.Instance.residenceImage,
                };
                bodyView.AddChidren(refreshLayout);
                refreshLayout.BeginHeaderRefreshingAction = () =>
                {
                    refreshLayout.EndHeaderRefreshing();
                    Common.ApiUtlis.Ins.DownloadData();
                    LoadContentView();
                    if(!CurShowTypeIsFunction)
@@ -142,17 +172,15 @@
                        contentView.PageIndex = 1;
                    }
                };
                #region topView
                bodyView.RemoveAll();
                topView = new FrameLayout()
                {
                    Height = Application.GetRealHeight(216),
                    BackgroundImagePath = DB_ResidenceData.Instance.residenceImage,
                };
                bodyView.AddChidren(topView);
                refreshLayout.AddChidren(topView);
#endif
                #region topView
                Button btnTop;
                btnTop = new Button()
@@ -179,7 +207,7 @@
                    //X = Application.GetRealWidth(16),
                    Y = btnResidenceName.Bottom,
                    Height = Application.GetRealWidth(14),
                    BackgroundColor = CSS_Color.LinkTipFail,
                    //BackgroundColor = CSS_Color.LinkTipFail,
                    TextAlignment = TextAlignment.Center,
                    TextSize = CSS_FontSize.PromptFontSize_FirstLevel,
                    TextColor = CSS_Color.MainBackgroundColor,
@@ -189,41 +217,51 @@
                //更新链接状态icon颜色
                int ddd = 0;
#if DEBUG
                int ddd = 0;
                btnResidenceName.MouseUpEventHandler = (sender, e) =>
                {
                        var imageUrl = ImageUtlis.Current.GetSceneDefaultIconList();
                    if (imageUrl != null)
                    {
                    }
                    //if (UserInfo.Current.VerOpenDoorPw || string.IsNullOrEmpty(UserInfo.Current.doorPasswordString))
                    //827a98c98da7469b8bc19bb6a3c7651906
                    //St_00009073b431d8b2490c9df0c5cb0e73
                    //Com.Hdl.HdlToLc.InitData(Shared.Application.Activity,false, "827a98c98da7469b8bc19bb6a3c7651906");
                    //Com.Hdl.HdlToLc.OpenActivity();
                    //new System.Threading.Thread(() =>
                    //{
                    //    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);
                    //}
                //ddd++;
                //    Function function_online = FunctionList.List.GetLightList().Find((obj) => obj.sid == "0001017DB92D2602020100010101");
                //    if(ddd%2 == 0)
                //    {
                //        function_online.online = true;
                //    }
                //    else
                //    {
                //        function_online.online = false;
                //    }
                //    HomePage.LoadEvent_RefreshDevcieOnline(function_online);
                    //    var http = new HttpServerRequest();
                    //    var pack = http.GetLcSubAccountToken();
                    //    if (pack.Code == StateCode.SUCCESS)
                    //    {
                    //        if(pack.Data == null || string.IsNullOrEmpty(pack.Data.ToString()))
                    //        {
                    //            Application.RunOnMainThread(() =>
                    //            {
                    //                new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.huoqushujushibao));
                    //            });
                    //        }
                    //        Com.Utils.HdlToLcUtils.Instance.HomeId = DB_ResidenceData.Instance.CurrentRegion.id;
                    //        Com.Utils.HdlToLcUtils.Instance.Token = UserInfo.Current.AccessToken;
                    //        Com.Utils.HdlToLcUtils.Instance.SubAccessToken = pack.Data.ToString();
                    //        Application.RunOnMainThread(() =>
                    //        {
                    //            //Com.Utils.HdlToLcUtils.Instance.OpenActivity();
                    //            //Com.Utils.HdlToLcUtils.Instance.Play()
                    //            var backTemp = new AddLcCam();
                    //            backTemp.backAction = () =>
                    //            {
                    //                //Load3tyBrandDeviceList();
                    //            };
                    //            Com.Utils.HdlToLcUtils.Instance.AddCamera(backTemp);
                    //        });
                    //    }
                    //    else
                    //    {
                    //        Application.RunOnMainThread(() =>
                    //        {
                    //            new PublicAssmebly().TipMsg(Language.StringByID(StringId.Tip), Language.StringByID(StringId.huoqushujushibao) + $"({pack.Code})");
                    //        });
                    //    }
                    //})
                    //{ IsBackground = true }.Start();
                };
#endif
@@ -235,7 +273,7 @@
                topView.AddChidren(environmentalView);
                CheckLinkStatus();//2020-12-22
                #region 环境数据
#region 环境数据
                var tempSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorTemperature);
                var humiSensorList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => obj.spk == SPK.SensorHumidity);
                var enviList = FunctionList.List.GetEnvirSensorsList().FindAll((obj) => SPK.EvironmentSensorList().Contains(obj.spk));
@@ -411,7 +449,7 @@
                };
                btnPm25Values.Width = btnPm25Values.GetTextWidth();
                environmentalView.AddChidren(btnPm25Values);
                #endregion
#endregion
                btnSecurityStatus = new Button()
                {
@@ -452,7 +490,7 @@
                }
                #region msg
#region msg
                FrameLayout msgView;
                msgView = new FrameLayout()
                {
@@ -507,11 +545,11 @@
                LoadEvent_GotoMessageCenterPage();
                #endregion
#endregion
                #endregion
#endregion
                #region 功能场景切换
#region 功能场景切换
                bodyView.AddChidren(new Button() { Height = Application.GetRealHeight(20), BackgroundColor = 0x00000000 });
@@ -560,9 +598,9 @@
                    TextAlignment = TextAlignment.Center,
                };
                changeView.AddChidren(btnChangeScene);
                #endregion
#endregion
                #region ContextView
#region ContextView
                contentView = new PageLayout()
                {
                    //Y = changeView.Bottom,
@@ -575,7 +613,7 @@
                LoadContentView();
                #endregion
#endregion
            }
            catch (Exception ex)
            {
@@ -583,292 +621,13 @@
            }
#if DEBUG
            FunctionList.List.Functions.Add(new Function
            {
                name = "测试梦幻窗帘",
                spk = SPK.CurtainDream,
                sid = "1234577",
                attributes = new List<FunctionAttributes> {
                    new FunctionAttributes(){ key = "on_off",curValue= "on",state = "on" },
                    new FunctionAttributes(){ key = "percent",curValue= "100",state = "100" },
                    new FunctionAttributes(){ key = "angle",curValue= "0",state = "0" },
                }
            });
            //FunctionList.List.Functions.Add(new Function
            //{
            //    name = "测试毫米波传感器",
            //    spk = SPK.SenesorMegahealth,
            //    attributes = new List<FunctionAttributes>
            //    {
            //        new FunctionAttributes(){ key = "enable",curValue = "true",state = "true" },
            //        new FunctionAttributes(){ key = "people_num",curValue = "0",state = "0" },
            //        new FunctionAttributes(){ key = "people_id",curValue = "1",state = "1" },
            //        new FunctionAttributes(){ key = "target_status",curValue = "0",state = "0" },//0空,1走,2跑,3坐,4跌倒,5站
            //        new FunctionAttributes(){ key = "people_status",curValue = "false",state = "false" },//状态  有人无人
            //        //new FunctionAttributes(){ key = "",curValue = "",state = "" },
            //        //new FunctionAttributes(){ key = "",curValue = "",state = "" },
            //        //new FunctionAttributes(){ key = "",curValue = "",state = "" },
            //    }
            //});
            FunctionList.List.Functions.Add(new Function
            {
                name = "测试温控器",
                spk = SPK.HvacCac,
                attributes = new List<FunctionAttributes>
                {
                    new FunctionAttributes(){ key = "on_off",curValue = "on",state = "on" },
                    new FunctionAttributes(){ key = "cac_valve",curValue = "on",state = "on" },//毛细阀
                    new FunctionAttributes(){ key = "fh_valve",curValue = "on",state = "on" },//地暖阀
                    new FunctionAttributes(){ key = "mode",curValue = "cool",state = "cool", value = new List<string>{ "cool","heat"} },
                    new FunctionAttributes(){ key = "set_temp",curValue = "20",state = "20",min = 16,max = 30 },
                    new FunctionAttributes(){ key = "room_temp",curValue = "20",state = "20" },
                    new FunctionAttributes(){ key = "dew_point_temp",curValue = "20",state = "20" },//露点温度
                    new FunctionAttributes(){ key = "surface_temp",curValue = "20",state = "20" },//表面温度
                    new FunctionAttributes(){ key = "energy_saving",curValue = "true",state = "true" },//节能
                    new FunctionAttributes(){ key = "room_humidity",curValue = "66",state = "66" },
                    //new FunctionAttributes(){ key = "",curValue = "",state = "" },
                }
            });
            //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 = "测试新风",
            //    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.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>
        /// 加载内容区域
        /// </summary>
        void LoadContentView()
        {
            if (!Common.ApiUtlis.Ins.DownloadDataComplete)
            if (!Common.ApiUtlis.Ins.DownloadDataComplete && !MainPage.NoLoginMode)
            {
                var waitPage = new Loading();
                MainPage.BaseView.AddChidren(waitPage);
@@ -958,7 +717,7 @@
        /// </summary>
        void LoadDeviceFunctionControlZone()
        {
            #region ContextView
#region ContextView
            deviceFunctionView.RemoveAll();
            functionViews.Clear();
            var rowView = new FrameLayout();
@@ -972,40 +731,11 @@
                    if (SPK.MusicSpkList().Contains( function.spk))
                    {
                        continue;
                        //var music = function as Music.A31MusicModel;
                        //var music = Music.A31MusicModel.A31MusicModelList.Find((obj) => obj.sid == function.sid);
                        //if (music == null)
                        //{
                        //    continue;
                        //}
                        //if (music.ServerClientType == -1)
                        //{
                        //    continue;
                        //}
                        //else if (music.ServerClientType == 1)
                        //{
                        //    if (!music.MainPlayCollection)
                        //    {
                        //        continue;
                        //    }
                        //}
                        //else
                        //{
                        //    if (!music.collect)
                        //    {
                        //        continue;
                        //    }
                        //}
                    }
                    else
                    {
                        if (!function.collect)
                            continue;
                        //if (function.roomIdList.Count == 0)//如何在房间已经移除了这个功能,则收藏界面也不会再显示
                        //{
                        //    function.collection = false;
                        //    continue;
                        //}
                    }
                    if (index % 2 == 0)
                    {
@@ -1029,28 +759,30 @@
                        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);
                    index++;
                    if(SPK.ArmSensorSpkList().Contains(function.spk))
                    //绿建人居环境,科技系统
                    if (function.spk == SPK.AcstParent)
                    {
                        btnbg.UnSelectedImagePath = "Collection/FunctionOnbg.png";
                        btnbg.SelectedImagePath = "Collection/FunctionArmOnbg.png";
                        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 (!function.online)
                    //{
                    //    btnbg.UnSelectedImagePath = "Collection/FunctionOfflineBg.png";
                    //}
                        if (SPK.ArmSensorSpkList().Contains(function.spk))
                        {
                            btnbg.UnSelectedImagePath = "Collection/FunctionOnbg.png";
                            btnbg.SelectedImagePath = "Collection/FunctionArmOnbg.png";
                        }
                    }
                    index++;
                }
                if (index == 0)
@@ -1085,7 +817,7 @@
                MainPage.Log("homepage error : " + ex.Message);
            }
            deviceFunctionView.AddChidren(new Button { Height = Application.GetRealHeight(30) });
            #endregion
#endregion
        }
        /// <summary>
@@ -1235,7 +967,7 @@
                };
                if (function.spk == SPK.SenesorMegahealth)
                if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose)
                {
                    btnIcon.UnSelectedImagePath = "FunctionIcon/Icon/HomeIcon/sensormegahealth.png";
                    btnIcon.SelectedImagePath = "FunctionIcon/Icon/HomeIcon/sensormegahealth.png";
@@ -1448,7 +1180,7 @@
                }
                
                else if (function.spk == SPK.SenesorMegahealth)
                else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose)
                {
                    //btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}.png";
                    //btnIcon.SelectedImagePath = "FunctionIcon/Icon/HomeIcon/sensormegahealth.png";
@@ -1464,6 +1196,11 @@
                    btnName.SelectedTextColor = CSS_Color.MainBackgroundColor;
                    btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                    btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_white.png";
                }
                else if (function.spk == SPK.IpCam_Imou)
                {
                    btnIcon.UnSelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                    btnIcon.SelectedImagePath = $"FunctionIcon/Icon/HomeIcon/{function.IconName}_blue.png";
                }
                else
@@ -1507,7 +1244,7 @@
                btnIcon.MouseUpEventHandler = skipControlPageEvent;
                btnState.MouseUpEventHandler = skipControlPageEvent;
                //不需要更新状态的动能列表
                if(!SPK.NotStatusSpkList.Contains(function.spk))
                if(!SPK.NotStatusSpkList.Contains(function.spk) || function.spk != SPK.IpCam_Imou)
                {
                    UpdataFunctionStates(function);
                }
@@ -1532,6 +1269,97 @@
                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.GetRealHeight(65),
                UnSelectedImagePath = "FunctionIcon/Acst/LvJianLogo.png",
                SelectedImagePath = "FunctionIcon/Acst/LvJianLogo.png",
                Width = Application.GetRealWidth(80),
                Height = Application.GetRealHeight(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;
            //    new System.Threading.Thread(() =>
            //    {
            //        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);
            //        }
            //    })
            //    { IsBackground = true }.Start();
            //};
        }
        /// <summary>
        /// 加载场景控制卡片