wxr
2024-04-16 1b6d5116f9f3e291da636b9ec510d65a4fedf639
HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -22,76 +22,6 @@
                Application.HideSoftInput();
            };
            pm = new HttpServerRequest();
#if __ANDROID__
            BaseActivity.HideKeyboardEvent = () => {
                if (this.Y != 0)
                {
                    Application.RunOnMainThread(() =>
                    {
                        try
                        {
                            this.Y = 0;
                        }
                        catch { }
                    });
                }
            };
            BaseActivity.ShowKeyboardEvent = () => {
                try
                {
                    if (etPassword.Foucs)
                    {
                        new Thread(() =>
                        {
                            Thread.Sleep(100);
                            if (this.Y < 0)
                            {
                                return;
                            }
                            for (var i = 0; i < 10; i++)
                            {
                                Application.RunOnMainThread(() =>
                                {
                                    try
                                    {
                                        this.Y = 0 - Application.GetRealHeight(10 * i);
                                    }
                                    catch { }
                                });
                                Thread.Sleep(10);
                            }
                        })
                        { IsBackground = true }.Start();
                    }
                }
                catch { }
            };
            BaseActivity.SmsAction = (message) => {
                Console.WriteLine($"接收到短信:"+ message);
                string pattern = @"【HDL】.*(\d{6}).*";
                Regex regex = new Regex(pattern);
                Match match = regex.Match(message);
                if (match.Success)
                {
                    string code = match.Groups[1].Value;
                    Console.WriteLine("验证码为:" + code);
                    if(loginType==0 && logintMode == 1)
                    {
                        etPassword.Text = code;
                    }
                    smsCode = code;
                }
                else
                {
                    Console.WriteLine("未找到验证码!");
                }
            };
#endif
        }
        public override void RemoveFromParent()
@@ -103,20 +33,13 @@
                waitPage = null;
            }
#if __ANDROID__
            BaseActivity.HideKeyboardEvent = () => {
            };
            BaseActivity.ShowKeyboardEvent = () => { };
            BaseActivity.SmsAction = (sms) => { };
#endif
            base.RemoveFromParent();
            //2020-12-22 增加点击隐藏键盘事件
            ////2020-12-22 增加点击隐藏键盘事件
            //Application.HideSoftInput();
        }
#region 局部变量
        #region 局部变量
        /// <summary>
        /// 登录类型
        /// 0:手机
@@ -131,13 +54,9 @@
        int logintMode = 0;
        string account = "";
        string password = "";
        /// <summary>
        /// 短信验证码
        /// </summary>
        string smsCode = "";
#endregion
        #endregion
#region 控件列表
        #region 控件列表
        /// <summary>
        /// 等待提示
        /// </summary>
@@ -230,7 +149,7 @@
        /// 服务器请求对象
        /// </summary>
        HttpServerRequest pm;
#endregion
        #endregion
        string verAccount = "";
@@ -252,8 +171,6 @@
#if __Android__
            OnAppConfig.Instance.isAgreePrivacyPolicy = true;
#endif
            this.BackgroundColor = CSS_Color.MainBackgroundColor;
            var btnIcon = new Button()
            {
                X = Application.GetRealWidth(28),
@@ -270,12 +187,9 @@
                Y = Application.GetRealHeight(69),
                Width = Application.GetMinRealAverage(254),
                Height = Application.GetMinRealAverage(156),
                UnSelectedImagePath = "Public/Logo-bg.png"
                UnSelectedImagePath = "Public/Logo-bg000.png"
            };
            bodyView.AddChidren(btnIcon_bg);
            btnIcon_bg.MouseDownEventHandler += (sender, e) => {
                Application.HideSoftInput();
            };
#if DEBUG
            btnIcon_bg.MouseUpEventHandler += (sender, e) =>
@@ -294,10 +208,9 @@
                //return;
                if (b)
                {
                    etAccount.Text = "13580507523";
                    etAccount.Text = "wxr@hdlchina.com.cn";
                    etAccount.Text = "13682244600";
                }
                else
                {
@@ -306,9 +219,12 @@
                }
                b = !b;
                etPassword.Text = "123456";
                if(etAccount.Text == "13580507523")
                if(etAccount.Text == "wxr@hdlchina.com.cn")
                {
                    etPassword.Text = "a123456";
                    etPassword.Text = "CQDWYEOV";
                }else if(etAccount.Text == "13682244600")
                {
                    etPassword.Text = "asd123456789asd";
                }
                btnLogin.IsSelected = true;
            };
@@ -336,7 +252,7 @@
                Height = Application.GetRealHeight(40),
                TextID = StringId.LoginByEmail,
                TextColor = CSS_Color.PromptingColor1,
                TextAlignment = TextAlignment.CenterLeft,
                TextAlignment = TextAlignment.Center,
                TextSize = CSS_FontSize.TextFontSize,
            };
            bodyView.AddChidren(btnEmailLogin);
@@ -401,9 +317,6 @@
                PlaceholderText = Language.StringByID(StringId.PlsEntryPhoneNumber),
                TextAlignment = TextAlignment.CenterLeft,
            };
#if __IOS__
            etAccount.MyTextContentType = UIKit.UITextContentType.Name;
#endif
            accountView.AddChidren(etAccount);
            if (userInfo != null && userInfo.ID != "1234567890")
@@ -599,6 +512,11 @@
            if (Language.CurrentLanguage != "Chinese")
            {
                if (Language.CurrentLanguage == "russian")
                {
                    btnDomeLogin.Text = "Гостевой режим";
                }
                else
                {
                    btnDomeLogin.Text = "Tourist experience";
                }
@@ -698,8 +616,8 @@
#region 功能
                var lightRgb1 = new Function()
                {
                    sid = "light10000000000",
                    deviceId = "light10000000000",
                    sid = "light1",
                    deviceId = "light1",
                    name = Language.CurrentLanguage == "Chinese"?  "客厅氛围灯1": "RGB light 1",
                    spk = SPK.LightRGB,
                    roomIds = new List<string>() { "1405771024583090178"},
@@ -709,12 +627,8 @@
                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
                        new FunctionAttributes() { key = "brightness",value =new List<string>(){ "0","100" }, curValue="100",state = "100"   },
                        new FunctionAttributes() { key = "rgb",value =new List<string>(){ "0","100" }, curValue="0,0,0",state = "0,0,0"   },
                        new FunctionAttributes() { key = "fade_time",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
                        //new FunctionAttributes() { key = "fade_time",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
                        new FunctionAttributes() { key = "delay",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
                        new FunctionAttributes() { key = "colorful",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
                        new FunctionAttributes() { key = FunctionAttributeKey.ColorfulBegin,value =new List<string>(){ "0","100" }, curValue="0,0,0",state = "0,0,0"   },
                        new FunctionAttributes() { key = FunctionAttributeKey.ColorfulEnd,value =new List<string>(){ "0","100" }, curValue="0,0,0",state = "0,0,0"   },
                        new FunctionAttributes() { key = FunctionAttributeKey.ColorfulTime,value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
                    },
                };
                lightRgb1.SaveFunctionFile();
@@ -841,7 +755,6 @@
                        new FunctionAttributes() { key = "mode",value =new List<string>(){ "day", "night", "away", "normal", "timer" }, curValue="day",state = "day"   },
                        new FunctionAttributes() { key = "set_temp",value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 35,min = 5  },
                        new FunctionAttributes() { key = "room_temp",value =new List<string>(){ "" }, curValue="26",state = "26"   },
                        new FunctionAttributes() { key = "temperature_type", value = new List<string>() { "°F", "°C" }, curValue = "°C", state = "°C" },
                    },
                };
                fh.SaveFunctionFile();
@@ -849,119 +762,6 @@
#if DEBUG
                var hesTv = new Function()
                {
                    sid = "hisense000000000001",
                    deviceId = "hisense000000000001",
                    name = "海信电视",
                    spk = SPK.ElectricalTvHisense,
                    roomIds = new List<string>() { "1405771024583090178" },
                    attributes = new List<FunctionAttributes>()
                    {
                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "off" }, curValue="on",state = "on"   },
                        new FunctionAttributes() { key = "wol",value =new List<string>(){ "on" }, curValue="on",state = "on"   },
                    }
                };
                hesTv.SaveFunctionFile();
                var airSwitchP3 = new Function()
                {
                    sid = "airSwitchP3000000000001",
                    deviceId = "airSwitchP3000000000001",
                    name = "测试-三相智能空开",
                    spk = SPK.AirSwitchP3,
                    roomIds = new List<string>() { "1405771024583090178" },
                    attributes = new List<FunctionAttributes>()
                    {
                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
                        new FunctionAttributes() { key = "delay",value =new List<string>(){ "0","100" }, curValue="0",state = "0"   },
                        new FunctionAttributes() { key = FunctionAttributeKey.PowerA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.PowerB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.PowerC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.VoltageA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.VoltageB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.VoltageC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.CurrentA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.CurrentB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.CurrentC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.TempA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.TempB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.TempC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.MaxCurrent,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.MaxTemp,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.ElectricityA,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.ElectricityB,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.ElectricityC,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                        new FunctionAttributes() { key = FunctionAttributeKey.TotalElectricity,value =new List<string>(){ "" }, curValue="26",state = "26" ,max = 1000,min = 0  },
                    },
                    //collect = true,
                };
                airSwitchP3.SaveFunctionFile();
                if (FunctionList.List.groupControls.Count == 0)
                {
                    FunctionList.List.groupControls.Add(new GroupControl()
                    {
                        name = "群控测试",
                        collect = true,
                        sid = "234567876545678765",
                        uids = new List<string>()
                        {
                            "1405771024583090178",
                            "9191a3a2-026f-4667-a0b1-e3af699e7295",
                        },
                        roomIds = new List<string>()
                        {
                            "1405771024583090178",
                            "9191a3a2-026f-4667-a0b1-e3af699e7295",
                        },
                        sids = new List<GroupControlFunction>()
                        {
                            new GroupControlFunction(){
                                sid = lightRgb1.sid,
                                spk = SPK.LightRGB,
                            },
                            new GroupControlFunction(){
                                sid = "light2",
                                spk = SPK.LightRGB,
                            },
                        }
                    });
                }
                var series1 = new Function()
                {
                    sid = "light10000000000series1",
                    deviceId = "light10000000000series1",
                    name = Language.CurrentLanguage == "Chinese" ? "序列1" : "Series1",
                    spk = SPK.CommonSeries,
                    roomIds = new List<string>() { "1405771024583090178" },
                    attributes = new List<FunctionAttributes>()
                    {
                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
                    },
                };
                series1.SaveFunctionFile();
                var series2 = new Function()
                {
                    sid = "light10000000000series2",
                    deviceId = "light10000000000series2",
                    name = Language.CurrentLanguage == "Chinese" ? "序列2" : "Series2",
                    spk = SPK.CommonSeries,
                    roomIds = new List<string>() { "1405771024583090178" },
                    attributes = new List<FunctionAttributes>()
                    {
                        new FunctionAttributes() { key = "on_off",value =new List<string>(){ "on","off" }, curValue="on",state = "on"   },
                    },
                };
                series2.SaveFunctionFile();
                var mechanicalArm = new Function()
                {
                    sid = "mechanicalArm1",
@@ -996,161 +796,35 @@
                };
                FunctionList.List.Functions.Add(lightRgbw1);
                FunctionList.List.Functions.Add(new Function
                {
                    name = "测试-空调科技系统总控",
                    spk = SPK.AcstParent,
                    //collect = true,
                    attributes = new List<FunctionAttributes>()
                {
                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
                    new FunctionAttributes(){ key = AcstParent_AttrEnum.mode.ToString(),curValue = AcstParent_Attr_ModeValueEnum.cool.ToString(),state = AcstParent_Attr_ModeValueEnum.cool.ToString(),
                         value = new List<string>
                         {
                             AcstParent_Attr_ModeValueEnum.cool.ToString(),
                             AcstParent_Attr_ModeValueEnum.dry.ToString(),
                             AcstParent_Attr_ModeValueEnum.fan.ToString(),
                             AcstParent_Attr_ModeValueEnum.heat.ToString(),
                             AcstParent_Attr_ModeValueEnum.humidity.ToString(),
                             AcstParent_Attr_ModeValueEnum.heat_humidity.ToString(),
                         }
                    },
                    new FunctionAttributes(){ key = AcstParent_AttrEnum.scene.ToString(), curValue = AcstParent_Attr_SceneValueEnum.at_home.ToString(), state = AcstParent_Attr_SceneValueEnum.at_home.ToString(),
                        value = new List<string>()
                        {
                            AcstParent_Attr_SceneValueEnum.at_home.ToString(),
                            AcstParent_Attr_SceneValueEnum.leave_home.ToString(),
                            AcstParent_Attr_SceneValueEnum.sleep.ToString(),
                        }
                    },
                    new FunctionAttributes(){ key = AcstParent_AttrEnum.day_electricity.ToString(),curValue = "99",state = "99"},
                    new FunctionAttributes(){ key = AcstParent_AttrEnum.month_electricity.ToString(),curValue = "999",state = "999"},
                    new FunctionAttributes(){ key = AcstParent_AttrEnum.total_electricity.ToString(),curValue = "9999",state = "9999"},
                    new FunctionAttributes(){ key = AcstParent_AttrEnum.active_power.ToString(),curValue = "9999",state = "9999"},
                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.co2.ToString(),curValue = "266",state = "266"},
                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.tvoc.ToString(),curValue = "666",state = "666"},
                    //new FunctionAttributes(){ key = AcstParent_AttrEnum.pm25.ToString(),curValue = "36",state = "36"},
                }
                });
                FunctionList.List.Functions.Add(new Function
                {
                    name = "测试-空调科技系统子控-1",
                    spk = SPK.AcstSub,
                    sid = "0000001",
                    attributes = new List<FunctionAttributes>()
                {
                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.set_temp.ToString(),curValue = "26",state = "26"},
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
                }
                });
                FunctionList.List.Functions.Add(new Function
                {
                    name = "测试-空调科技系统子控-2",
                    spk = SPK.AcstSub,
                    sid = "0000002",
                    attributes = new List<FunctionAttributes>()
                {
                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.set_temp.ToString(),curValue = "26",state = "26"},
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
                }
                });
                FunctionList.List.Functions.Add(new Function
                {
                    name = "测试-空调科技系统子控-3",
                    spk = SPK.AcstSub,
                    sid = "0000003",
                    attributes = new List<FunctionAttributes>()
                {
                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.set_temp.ToString(),curValue = "26",state = "26"},
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
                }
                });
                FunctionList.List.Functions.Add(new Function
                {
                    name = "测试-空调科技系统子控-4",
                    spk = SPK.AcstSub,
                    sid = "0000004",
                    attributes = new List<FunctionAttributes>()
                {
                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.set_temp.ToString(),curValue = "26",state = "26"},
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
                }
                });
                FunctionList.List.Functions.Add(new Function
                {
                    name = "测试-空调科技系统子控-5",
                    spk = SPK.AcstSub,
                    sid = "0000005",
                    attributes = new List<FunctionAttributes>()
                {
                    new FunctionAttributes(){ key = FunctionAttributeKey.OnOff ,curValue = "on",state = "on" },
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.set_temp.ToString(),curValue = "26",state = "26"},
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_temp.ToString(),curValue = "26",state = "26"},
                    new FunctionAttributes(){ key = AcstSub_AttrEnum.room_humidity.ToString(),curValue = "66",state = "66"},
                }
                });
                //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.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 = "1",state = "1" },//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.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
                //{
@@ -1202,69 +876,15 @@
                //    }
                //});
                FunctionList.List.Functions.Add(new Function()
                {
                    spk = SPK.SensorDryContact,
                    name = "干接点",
                    //collect = true,
                    sid = "sss000001",
                    attributes = new List<FunctionAttributes>()
                    {
                        new FunctionAttributes(){ key = "contact_status",curValue= "open",state = "open" },
                    },
                });
                FunctionList.List.Functions.Add(new Function()
                {
                    spk = SPK.SensorLight,
                    name = "光照传感器",
                    //collect = true,
                    sid = "SensorLightsss000001",
                    attributes = new List<FunctionAttributes>()
                    {
                        new FunctionAttributes(){ key = "illuminance",curValue= "100",state = "100" },
                    },
                });
                FunctionList.List.Functions.Add(new Function()
                {
                    spk = SPK.OtherCommon,
                    name = "通用开关",
                    //collect = true,
                    sid = "sssCommon000001",
                    attributes = new List<FunctionAttributes>()
                    {
                        new FunctionAttributes(){ key = "on_off",curValue= "on",state = "off" },
                    },
                });
                FunctionList.List.Functions.Add(new Function()
                {
                    spk = SPK.SensorPir,
                    name = "人体存在传感器1",
                    collect = true,
                    sid = "sss000001111",
                    attributes = new List<FunctionAttributes>()
                    {
                        new FunctionAttributes(){ key = "people_status",curValue= "false",state = "false" },
                    },
                });
                FunctionList.List.Functions.Add(new Function()
                {
                    spk = SPK.SensorPirHold,
                    name = "人体存在传感器2",
                    collect = true,
                    sid = "sss0000011112",
                    attributes = new List<FunctionAttributes>()
                    {
                        new FunctionAttributes(){ key = "people_status",curValue= "true",state = "true" },
                    },
                });
                //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()
                //{
@@ -1279,7 +899,7 @@
                //        new AttrKeyConfig (){
                //            key = "pm2.5",
                //            type = "interval" ,
                //            unit = "ug/m³",
                //            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 = "轻/中度污染"},
@@ -1289,19 +909,19 @@
                //    },
                //});
                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.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()
                //{
@@ -1343,16 +963,16 @@
                //    },
                //});
                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.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>() {
@@ -1438,7 +1058,6 @@
                #endregion
                #region 场景
                var scene1 = new Scene()
                {
@@ -1711,8 +1330,7 @@
                        new FunctionAttributes() { key = "on_off", value = new List<string>() { "on", "off" }, curValue = "on", state = "on" },
                        new FunctionAttributes() { key = "mode", value = new List<string>() { "cool", "heat", "fan", "auto", "dry" }, curValue = "cool", state = "cool" },
                        new FunctionAttributes() { key = "fan", value = new List<string>() { "high", "medium", "low", "auto" }, curValue = "auto", state = "auto" },
                        new FunctionAttributes() { key = "set_temp",unit = "F", step = "1", value = new List<string>() { "16", "30"}, curValue = "16", state = "16",max = 30,min = 16 },
                        new FunctionAttributes() { key = FunctionAttributeKey.TempType,unit = "F", step = "1", value = new List<string>() { "16", "30"}, curValue = "16", state = "16",max = 30,min = 16 },
                        new FunctionAttributes() { key = "set_temp",step = "1", value = new List<string>() { "16", "30"}, curValue = "16", state = "16",max = 30,min = 16 },
                        new FunctionAttributes() { key = "room_temp", value = new List<string>() { }, curValue = "20", state = "20" },
                        new FunctionAttributes() { key = "swing", value = new List<string>() {"up_down", "left_right", "stop" }, curValue = "20", state = "20" },
                    }
@@ -1734,7 +1352,6 @@
                        new FunctionAttributes() { key = "set_temp",step = "0.5", value = new List<string>() { "16", "30"}, curValue = "16", state = "16",max = 30,min = 16 },
                        new FunctionAttributes() { key = "room_temp", value = new List<string>() { }, curValue = "20", state = "20" },
                        new FunctionAttributes() { key = "swing", value = new List<string>() {"up_down", "left_right", "stop" }, curValue = "20", state = "20" },
                        new FunctionAttributes() { key = "temperature_type", value = new List<string>() { "°F", "°C" }, curValue = "°C", state = "°C" },
                    }
                };
                ac2.SaveFunctionFile();
@@ -1760,7 +1377,7 @@
                //    collect = false,
                //};
                //scene6.SaveSceneFile();
#endregion
                #endregion
                var lightSwitch6 = new Function()
@@ -1797,14 +1414,37 @@
            LoadEventList();
            account = etAccount.Text.Trim();
#if DEBUG1211
            //本地模式
            Button btnLocalMode = new Button()
            {
                Y = Application.GetRealHeight(600),
                Height = Application.GetRealHeight(67),
                Text = "Local Mode",
                TextAlignment = TextAlignment.Center,
                BackgroundColor  = CSS_Color.MainColor,
                TextColor = CSS_Color.TextualColor,
            };
            bodyView.AddChidren(btnLocalMode);
            btnLocalMode.MouseUpEventHandler = (sender, e) =>
            {
                MainPage.LocalMode = true;
                 UserInfo.Current = new UserInfo();
                MainPage.GoUserPage();
            };
            MainPage.Log("etAccount.TextAlignment : " + etAccount.TextAlignment.ToString());
#endif
#region 隐私政策
            AddServiceAgreementControl(bodyView);
#endregion
            #endregion
        }
#region ■ 服务协议___________________________
        #region ■ 服务协议___________________________
        bool isAgreePrivacyPolicy = false;
        /// <summary>
        /// 添加服务协议控件
@@ -1926,12 +1566,12 @@
                OpenWebViewPage(true);
            };
#if __ANDROID__
            #if __ANDROID__
            //if(OnAppConfig.Instance.FirstRunApp || !OnAppConfig.Instance.isAgreePrivacyPolicy)
            //{
            //    HDL_ON_Android.HDLONUtils.StartSplashActivity();    
            //}
#endif
            #endif
        }
        /// <summary>
@@ -1951,13 +1591,6 @@
        /// <returns></returns>
        private bool CheckPrivacyPolicy()
        {
#if DEBUG
            return true;
#endif
            if(HttpUtil.GlobalRequestHttpsHost == "https://test-gz.hdlcontrol.com")
            {
                return true;
            }
            if (isAgreePrivacyPolicy == false)
            {
                //请同意《用户协议》和《隐私政策》