wxr
2022-07-22 d9feb1d52963982a89a6e6d741a9b841042ce0b6
毫米波传感器,温控一体化
4个文件已添加
23个文件已修改
519 ■■■■■ 已修改文件
HDL-ON_Android/Assets/Language.ini 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/Collection/FunctionArmOnbg.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/sensormegahealth.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/HDL-ON_Android.csproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Properties/AndroidManifest.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/HDL-ON_iOS.csproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Info.plist 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Language.ini 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/Collection/FunctionArmOnbg.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/sensormegahealth.png 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/ImageUtlis.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/UserInfo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control.cs 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpUtil.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/NewAPI.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Function.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/MainPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePage.cs 119 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/ArmSensor/SenesorMegahealthPage.cs 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/ChooseRoomPage.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/Curtain/MotorCurtainPageBLL.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/DoorLock/DoorLockUnlockPage.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPageBLL.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL-ON_Android/Assets/Language.ini
@@ -1741,7 +1741,7 @@
551=湿度校准
552=毛细阀
553=地暖阀
554=*为保障最佳延时效果,建议人数在4人一下。
554=*为保障最佳延时效果,建议人数在4人以下。
555=退出实验室模式
556=有人在跑
557=有人站着
HDL-ON_Android/Assets/Phone/Collection/FunctionArmOnbg.png
HDL-ON_Android/Assets/Phone/FunctionIcon/Icon/HomeIcon/sensormegahealth.png
HDL-ON_Android/HDL-ON_Android.csproj
@@ -256,6 +256,8 @@
    <AndroidAsset Include="Assets\Phone\FunctionIcon\ArmSensor\SomeoneRunBgIcon.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\ArmSensor\SomeoneSitBgIcon.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\ArmSensor\SomeoneStandBgIcon.png" />
    <AndroidAsset Include="Assets\Phone\Collection\FunctionArmOnbg.png" />
    <AndroidAsset Include="Assets\Phone\FunctionIcon\Icon\HomeIcon\sensormegahealth.png" />
  </ItemGroup>
  <ItemGroup>
    <AndroidResource Include="Resources\values\colors.xml" />
HDL-ON_Android/Properties/AndroidManifest.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.5.9" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202207181">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.5.9" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202207222">
    <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="29" />
    <!--友盟-->
    <!--<uses-sdk android:minSdkVersion="8"></uses-sdk>-->
HDL-ON_iOS/HDL-ON_iOS.csproj
@@ -1418,6 +1418,8 @@
      <BundleResource Include="Resources\Phone\FunctionIcon\ArmSensor\SomeoneRunBgIcon.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\ArmSensor\SomeoneSitBgIcon.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\ArmSensor\SomeoneStandBgIcon.png" />
      <BundleResource Include="Resources\Phone\Collection\FunctionArmOnbg.png" />
      <BundleResource Include="Resources\Phone\FunctionIcon\Icon\HomeIcon\sensormegahealth.png" />
    </ItemGroup>
    <ItemGroup>
      <ITunesArtwork Include="iTunesArtwork" />
HDL-ON_iOS/Info.plist
@@ -100,9 +100,9 @@
    <key>UIStatusBarStyle</key>
    <string>UIStatusBarStyleLightContent</string>
    <key>CFBundleShortVersionString</key>
    <string>1.5.902207181</string>
    <string>1.5.902207191</string>
    <key>CFBundleVersion</key>
    <string>1.5.907181</string>
    <string>1.5.907191</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Use geographic location to provide services such as weather</string>
    <key>NSAppleMusicUsageDescription</key>
HDL-ON_iOS/Resources/Language.ini
@@ -1742,7 +1742,7 @@
551=湿度校准
552=毛细阀
553=地暖阀
554=*为保障最佳延时效果,建议人数在4人一下。
554=*为保障最佳延时效果,建议人数在4人以下。
555=退出实验室模式
556=有人在跑
557=有人站着
HDL-ON_iOS/Resources/Phone/Collection/FunctionArmOnbg.png
HDL-ON_iOS/Resources/Phone/FunctionIcon/Icon/HomeIcon/sensormegahealth.png
HDL_ON/Common/ImageUtlis.cs
@@ -3,6 +3,7 @@
using HDL_ON.DAL.Server;
using System.IO;
using HDL_ON.Common;
using System.Collections.Generic;
namespace HDL_ON
{
@@ -160,6 +161,17 @@
            }
            return "";
        }
        /// <summary>
        /// 获取场景默认图库列表
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew GetSceneDefaultIconList()
        {
            var d = new Dictionary<string, object>();
            var requestJson = HttpUtil.GetSignRequestJson(d);
            var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetSceneDefaultIconList, requestJson);
            return revertObj;
        }
        /// <summary>
        /// 通过图片路径下载图片
HDL_ON/Common/UserInfo.cs
@@ -166,7 +166,7 @@
        {
            get
            {
                return (DateTime.Now - LastTime).TotalMinutes > 5;
                return (DateTime.Now - LastTimeOpenDoor).TotalMinutes > 5;
            }
        }
        [Newtonsoft.Json.JsonIgnore]
HDL_ON/DAL/DriverLayer/Control.cs
@@ -1267,15 +1267,57 @@
                            case SPK.SensorSmoke:
                            case SPK.SensorWater:
                            case SPK.ClothesHanger:
                            case SPK.SenesorMegahealth:
                            case SPK.SenesorMegahealth2:
                            case SPK.AirFreshStandard:
                            case SPK.HvacAirFresh:
                            case SPK.SensorGas:
                            case SPK.HvacCac:
                                //设备状态推送
                                //状态更新
                                Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status);
                                break;
                            case SPK.SenesorMegahealth:
                            case SPK.SenesorMegahealth2:
                                var tempStatus = localFunction.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus);
                                if (tempStatus != null)
                                {
                                    switch (tempStatus.state)
                                    {//0空,1走,2跑,3坐,4跌倒,5站
                                        case "0":
                                            localFunction.lastState = Language.StringByID(StringId.SensorNormalState);
                                            break;
                                        case "1":
                                            localFunction.lastState = Language.StringByID(StringId.SomeoneIn);
                                            break;
                                        case "2":
                                            if (localFunction.extSet.labModel)
                                            {
                                                localFunction.lastState = Language.StringByID(StringId.SomeoneRunning);
                                            }
                                            break;
                                        case "3":
                                            if (localFunction.extSet.labModel)
                                            {
                                                localFunction.lastState = Language.StringByID(StringId.SomeoneSitting);
                                            }
                                            break;
                                        case "4":
                                            localFunction.lastState = Language.StringByID(StringId.SomeoneFell);
                                            break;
                                        case "5":
                                            if (localFunction.extSet.labModel)
                                            {
                                                localFunction.lastState = Language.StringByID(StringId.SomeoneStanding);
                                            }
                                            break;
                                        default:
                                            break;
                                    }
                                }
                                Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status);
                                break;
                            case SPK.AvMusic:
                            case SPK.MusicStandard:
                                //UI.Music.MusicMain.mMusicMain.RefreshView(updateTemp);
HDL_ON/DAL/Server/HttpUtil.cs
@@ -31,9 +31,9 @@
        /// 特殊接口请求超时时间
        /// </summary>
        public const int TIME_OUT_LONG = 20;
        /////// <summary>
        /////// Bearer 暂时设为空,从登陆成功的返回的headerPrefix参数动态获取
        /////// </summary>
        ///// <summary>
        ///// Bearer 暂时设为空,从登陆成功的返回的headerPrefix参数动态获取
        ///// </summary>
        //public const string TOKEN_BEARER = "Bearer ";
        #endregion
HDL_ON/DAL/Server/NewAPI.cs
@@ -363,6 +363,10 @@
        /// </summary>
        public const string API_POST_UploadImage = "/home-wisdom/app/images/upload_image";
        /// <summary>
        /// 获取场景默认图库列表
        /// </summary>
        public const string Api_Post_GetSceneDefaultIconList = "/iot-cloud/mgmt/scene/default/icon/list";
        /// <summary>
        /// 查询图片路径
        /// </summary>
        public const string API_POST_GetImageUrl = "/home-wisdom/app/images/get_image_url";
HDL_ON/Entity/Function/Function.cs
@@ -423,6 +423,31 @@
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string lastState = "";
        /// <summary>
        /// 获取状态显示文本
        /// </summary>
        /// <returns></returns>
        public string GetLastStateText()
        {
            var text = "";
            switch (spk)
            {
                case SPK.HvacCac:
                    switch (GetAttrState(FunctionAttributeKey.Mode))
                    {
                        case "cool":
                            text = Language.StringByID(StringId.Cool);
                            break;
                        case "heat":
                            text = Language.StringByID(StringId.Heat);
                            break;
                    }
                    break;
            }
            return text;
        }
        FunctionAttributes _trait_on_off;
        [Newtonsoft.Json.JsonIgnore]
HDL_ON/UI/MainPage.cs
@@ -131,7 +131,7 @@
                    _RoomNotSupportFunctionList.Add(SPK.AirSwitch);
                    _RoomNotSupportFunctionList.Add(SPK.ElectricEnergy);
                    _RoomNotSupportFunctionList.AddRange(SPK.EnvironDeviceSpkList());
                    _RoomNotSupportFunctionList.AddRange(SPK.ArmSensorSpkList());
                    //_RoomNotSupportFunctionList.AddRange(SPK.ArmSensorSpkList());
                }
                return _RoomNotSupportFunctionList;
            }
HDL_ON/UI/UI2/1-HomePage/HomePage.cs
@@ -193,7 +193,12 @@
#if DEBUG
                btnResidenceName.MouseUpEventHandler = (sender, e) =>
                {
                        var imageUrl = ImageUtlis.Current.GetSceneDefaultIconList();
                    if (imageUrl != null)
                    {
                    }
                    //if (UserInfo.Current.VerOpenDoorPw || string.IsNullOrEmpty(UserInfo.Current.doorPasswordString))
                    //{
                    //    var page = new DoorLockUnlockPage(new Function());
@@ -591,22 +596,22 @@
                }
            });
            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.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 = "测试温控器",
@@ -1036,6 +1041,11 @@
                    LoadDeviceFunctionDiv(functionView, function);
                    index++;
                    if(SPK.ArmSensorSpkList().Contains(function.spk))
                    {
                        btnbg.UnSelectedImagePath = "Collection/FunctionOnbg.png";
                        btnbg.SelectedImagePath = "Collection/FunctionArmOnbg.png";
                    }
                    if (!function.online)
                    {
@@ -1178,9 +1188,6 @@
                };
                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()
                {
@@ -1211,6 +1218,7 @@
                };
                view.AddChidren(btnZone);
                Button btnState;
                btnState = new Button()
                {
@@ -1225,6 +1233,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)
                {
@@ -1376,7 +1447,15 @@
                    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
                {
                    Button btnSwitch;
HDL_ON/UI/UI2/1-HomePage/HomePageBLL.cs
@@ -400,13 +400,52 @@
                                    if (function.GetAttribute(FunctionAttributeKey.Percent) != null)
                                    {
                                        state = function.GetAttrState(FunctionAttributeKey.Percent) != "0";
                                    }else
                                    }
                                    else
                                    {
                                        if (function.GetAttrState(FunctionAttributeKey.OnOff) == "stop")
                                            return;
                                        state = function.trait_on_off.curValue.ToString() == "on";
                                    }
                                }
                                else if (function.spk == SPK.SenesorMegahealth)
                                {
                                    var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus);
                                    if (tempStatus != null)
                                    {
                                        switch (tempStatus.state)
                                        {//0空,1走,2跑,3坐,4跌倒,5站
                                            case "0":
                                                state = false;
                                                break;
                                            case "1":
                                                state = true;
                                                break;
                                            case "2":
                                                if (function.extSet.labModel)
                                                {
                                                    state = true;
                                                }
                                                break;
                                            case "3":
                                                if (function.extSet.labModel)
                                                {
                                                    state = true;
                                                }
                                                break;
                                            case "4":
                                                state = true;
                                                break;
                                            case "5":
                                                if (function.extSet.labModel)
                                                {
                                                    state = true;
                                                }
                                                break;
                                        }
                                    }
                                }
                                else
                                {
                                    state = function.trait_on_off.curValue.ToString() == "on";
HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
@@ -171,6 +171,89 @@
                                        }
                                        #endregion
                                    }
                                    //更新毫米波传感器状态
                                    else if(SPK.SenesorMegahealth == updataFunction.spk)
                                    {
                                        if (cTag == updataFunction.sid + "_SenesorMegahealth_Status")
                                        {
                                            try
                                            {
                                                Button btnStatus = (fcView.GetChildren(j) as Button);
                                                var tempStatus = updataFunction.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus);
                                                if (tempStatus != null)
                                                {
                                                    switch (tempStatus.state)
                                                    {//0空,1走,2跑,3坐,4跌倒,5站
                                                        case "0":
                                                            btnStatus.TextID = StringId.SensorNormalState;
                                                            btnStatus.TextColor = CSS_Color.MainColor;
                                                            break;
                                                        case "1":
                                                            btnStatus.TextID = StringId.SomeoneIn;
                                                            break;
                                                        case "2":
                                                            if (updataFunction.extSet.labModel)
                                                            {
                                                                btnStatus.TextID = StringId.SomeoneRunning;
                                                            }
                                                            else
                                                            {
                                                                btnStatus.TextID = StringId.Someone;
                                                            }
                                                            btnStatus.TextColor = CSS_Color.WarningColor;
                                                            break;
                                                        case "3":
                                                            if (updataFunction.extSet.labModel)
                                                            {
                                                                btnStatus.TextID = StringId.SomeoneSitting;
                                                            }
                                                            else
                                                            {
                                                                btnStatus.TextID = StringId.Someone;
                                                            }
                                                            btnStatus.TextColor = CSS_Color.WarningColor;
                                                            break;
                                                        case "4":
                                                            btnStatus.TextID = StringId.SomeoneFell;
                                                            btnStatus.TextColor = CSS_Color.WarningColor;
                                                            break;
                                                        case "5":
                                                            if (updataFunction.extSet.labModel)
                                                            {
                                                                btnStatus.TextID = StringId.SomeoneStanding;
                                                            }
                                                            else
                                                            {
                                                                btnStatus.TextID = StringId.Someone;
                                                            }
                                                            btnStatus.TextColor = CSS_Color.WarningColor;
                                                            break;
                                                    }
                                                }
                                            }
                                            catch (Exception ex)
                                            {
                                                MainPage.Log($"{this.GetType()} error 3 : {ex.Message}");
                                            }
                                        }
                                    }
                                    //更新温控器状态
                                    else if(SPK.HvacCac == updataFunction.spk)
                                    {
                                        if (cTag == updataFunction.sid + "_Humidity")
                                        {
                                            (fcView.GetChildren(j) as Button).Text = updataFunction.GetAttrState(FunctionAttributeKey.RoomHumidity) + "%";
                                        }
                                        else if (cTag == updataFunction.sid + "_Temp")
                                        {
                                            (fcView.GetChildren(j) as Button).Text = updataFunction.GetAttrState(FunctionAttributeKey.RoomTemp) + "°C";
                                        }
                                    }
                                }
                            }
                        }
HDL_ON/UI/UI2/2-Classification/FunctionControlZone.cs
@@ -95,6 +95,87 @@
                        this.AddChidren(btnTipPowerLow);
                    }
                }
                else if (function.spk == SPK.SenesorMegahealth)
                {
                    var btnStatus = new Button()
                    {
                        X = Application.GetRealWidth(51),
                        Y = Application.GetRealHeight(64),
                        Height = Application.GetRealHeight(18),
                        TextColor = CSS_Color.MainColor,
                        TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
                        Text = "",
                        TextAlignment = TextAlignment.CenterLeft,
                        Tag = function.sid + "_SenesorMegahealth_Status"
                    };
                    bodyDiv.AddChidren(btnStatus);
                    var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus);
                    if (tempStatus != null)
                    {
                        switch (tempStatus.state)
                        {//0空,1走,2跑,3坐,4跌倒,5站
                            case "0":
                                btnStatus.TextID = StringId.SensorNormalState;
                                btnStatus.TextColor = CSS_Color.MainColor;
                                break;
                            case "1":
                                btnStatus.TextID = StringId.SomeoneIn;
                                btnStatus.TextColor = CSS_Color.WarningColor;
                                break;
                            case "2":
                                if (function.extSet.labModel)
                                {
                                    btnStatus.TextID = StringId.SomeoneRunning;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                else
                                {
                                    btnStatus.TextID = StringId.SomeoneIn;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                break;
                            case "3":
                                if (function.extSet.labModel)
                                {
                                    btnStatus.TextID = StringId.SomeoneSitting;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                else
                                {
                                    btnStatus.TextID = StringId.SomeoneIn;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                break;
                            case "4":
                                btnStatus.TextID = StringId.SomeoneFell;
                                btnStatus.TextColor = CSS_Color.WarningColor;
                                break;
                            case "5":
                                if (function.extSet.labModel)
                                {
                                    btnStatus.TextID = StringId.SomeoneStanding;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                else
                                {
                                    btnStatus.TextID = StringId.SomeoneIn;
                                    btnStatus.TextColor = CSS_Color.WarningColor;
                                }
                                break;
                        }
                    }
                }
            }
            else if (function.spk == SPK.DoorLock)
            {
@@ -120,6 +201,7 @@
                    TextSize = CSS_FontSize.TextFontSize,
                    Text = function.GetAttrState(FunctionAttributeKey.RoomHumidity) + "%",
                    TextAlignment = TextAlignment.CenterLeft,
                    Tag = function.sid + "_Humidity",
                };
                btnHumidityValues.Width = btnHumidityValues.GetTextWidth();
                bodyDiv.AddChidren(btnHumidityValues);
@@ -143,6 +225,7 @@
                    TextSize = CSS_FontSize.TextFontSize,
                    Text = function.GetAttrState(FunctionAttributeKey.RoomTemp) + "°C",
                    TextAlignment = TextAlignment.CenterLeft,
                    Tag = function.sid + "_Temp",
                };
                btnTempValues.Width = btnTempValues.GetTextWidth();
                bodyDiv.AddChidren(btnTempValues);
@@ -290,6 +373,11 @@
                bodyDiv.AddChidren(btnCollectionIcon);
            }
            if(function.spk == SPK.SenesorMegahealth)
            {
                bodyDiv.AddChidren(btnCollectionIcon);
            }
            if (!function.online)
            {
                bodyDiv.BackgroundColor = CSS_Color.PromptingColor2;
HDL_ON/UI/UI2/FuntionControlView/ArmSensor/SenesorMegahealthPage.cs
@@ -83,6 +83,12 @@
            FrameWhiteCentet1.AddChidren(btnSuctionView);
            //int i = 0;
            //btnIcon.MouseUpEventHandler = (sender, e) => {
            //    device.GetAttribute(FunctionAttributeKey.TargetStatus).state = i.ToString();
            //    i++;
            //    RefreshFormStatu();
            //};
            
@@ -172,7 +178,7 @@
                })
                { IsBackground = true }.Start();
            };
            //回到置顶刷新
            base.SettionFinishEvent += () => {
                exitLabView.Visible = device.extSet.labModel;
            };
@@ -298,6 +304,14 @@
                                        btnSuctionView.TextID = StringId.SomeoneRunning;
                                        btnSuctionView.IsSelected = true;
                                    }
                                    else
                                    {
                                        btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/SomeoneInBgIcon.png";
                                        btnIcon.IsSelected = true;
                                        btnIcon.IsSelected = false;
                                        btnSuctionView.TextID = StringId.SomeoneIn;
                                        btnSuctionView.IsSelected = true;
                                    }
                                    break;
                                case "3":
                                    if (device.extSet.labModel)
@@ -306,6 +320,14 @@
                                        btnIcon.IsSelected = true;
                                        btnIcon.IsSelected = false;
                                        btnSuctionView.TextID = StringId.SomeoneSitting;
                                        btnSuctionView.IsSelected = true;
                                    }
                                    else
                                    {
                                        btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/SomeoneInBgIcon.png";
                                        btnIcon.IsSelected = true;
                                        btnIcon.IsSelected = false;
                                        btnSuctionView.TextID = StringId.SomeoneIn;
                                        btnSuctionView.IsSelected = true;
                                    }
                                    break;
@@ -325,7 +347,14 @@
                                        btnSuctionView.TextID = StringId.SomeoneStanding;
                                        btnSuctionView.IsSelected = true;
                                    }
                                    Console.WriteLine(btnSuctionView.Text);
                                    else
                                    {
                                        btnIcon.UnSelectedImagePath = "FunctionIcon/ArmSensor/SomeoneInBgIcon.png";
                                        btnIcon.IsSelected = true;
                                        btnIcon.IsSelected = false;
                                        btnSuctionView.TextID = StringId.SomeoneIn;
                                        btnSuctionView.IsSelected = true;
                                    }
                                    break;
                                default:
HDL_ON/UI/UI2/FuntionControlView/ChooseRoomPage.cs
@@ -40,7 +40,14 @@
        public override void RemoveFromParent()
        {
            backAction?.Invoke();
            new System.Threading.Thread(() =>
            {
                Application.RunOnMainThread(() =>
                {
                    backAction?.Invoke();
                });
            })
            { IsBackground = true }.Start();
            base.RemoveFromParent();
        }
HDL_ON/UI/UI2/FuntionControlView/Curtain/MotorCurtainPageBLL.cs
@@ -31,7 +31,9 @@
                    {
                        if (!bodyView.onCurtainAnimation)
                        {
                            bodyView.CurtainAnimation(Convert.ToInt32(updateTemp.GetAttrState(FunctionAttributeKey.Percent)));
                            bodyView.btnProgress.Text = updateTemp.GetAttrState(FunctionAttributeKey.Percent) + "%";
                            bodyView.curtainSeekBar.Progress = Convert.ToInt32(updateTemp.GetAttrState(FunctionAttributeKey.Percent));
                            //bodyView.CurtainAnimation(Convert.ToInt32(updateTemp.GetAttrState(FunctionAttributeKey.Percent)));
                        }
                    }
                    catch { }
HDL_ON/UI/UI2/FuntionControlView/DoorLock/DoorLockUnlockPage.cs
@@ -182,6 +182,7 @@
                if (agreeBtn.IsSelected)
                {
                    UserInfo.Current.doorPasswordString = password;
                    UserInfo.Current.LastTimeOpenDoor = DateTime.Now;
                }
                Control.Ins.OneKeyUnlocking(this.device, etPassword.Text.Trim());
                this.RemoveFromParent();
HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPage.cs
@@ -49,7 +49,14 @@
        public override void RemoveFromParent()
        {
            actionRefresh?.Invoke();
            new System.Threading.Thread(() =>
            {
                Application.RunOnMainThread(() =>
                {
                    actionRefresh?.Invoke();
                });
            })
            { IsBackground = true }.Start();
            base.RemoveFromParent();
        }
@@ -497,7 +504,7 @@
                    btnTempCcValue.MouseUpEventHandler = (sender, e) =>
                    {
                        LoadEditDialog(-5, 5, Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.room_humidity_cc)), (reslut) =>
                        LoadEditDialog(-10, 10, Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.room_humidity_cc)), (reslut) =>
                        {
                            btnTempCcValue.Text = reslut + "°C";
                            Dictionary<string, string> dic = new Dictionary<string, string>();
@@ -558,7 +565,7 @@
                    btnHumidityCcValue.MouseUpEventHandler = (sender, e) =>
                    {
                        LoadEditDialog(-10, 10, Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.room_humidity_cc)), (reslut) =>
                        LoadEditDialog(-20, 20, Convert.ToInt32(function.GetAttrState(FunctionAttributeKey.room_humidity_cc)), (reslut) =>
                        {
                            btnHumidityCcValue.Text = reslut + "%";
                            Dictionary<string, string> dic = new Dictionary<string, string>();
@@ -603,7 +610,7 @@
                        TextAlignment = TextAlignment.CenterRight,
                        TextColor = CSS_Color.PromptingColor1,
                        TextSize = CSS_FontSize.TextFontSize,
                        Text = function.GetAttrState(FunctionAttributeKey.cac_valve) + "°C",
                        TextID = function.GetAttrState(FunctionAttributeKey.cac_valve) == "on"? StringId.On:StringId.OFF,
                    };
                    cacValveRow.AddChidren(btnCacValvaValue);
                }
@@ -641,7 +648,7 @@
                        TextAlignment = TextAlignment.CenterRight,
                        TextColor = CSS_Color.PromptingColor1,
                        TextSize = CSS_FontSize.TextFontSize,
                        Text = function.GetAttrState(FunctionAttributeKey.fh_valve),
                        TextID = function.GetAttrState(FunctionAttributeKey.fh_valve) == "on"? StringId.On:StringId.OFF,
                    };
                    fhValveRow.AddChidren(btnFhValvaValue);
                }
@@ -701,14 +708,7 @@
                        {
                            if (result != null && result.Code == StateCode.SUCCESS)
                            {
                                if (result.Data.ToString() == "true")
                                {
                                    deviceMessageRules.push = push;
                                }
                                else
                                {
                                    btnSwtichIcon0.IsSelected = deviceMessageRules.push;
                                }
                            }
                            else
                            {
HDL_ON/UI/UI2/FuntionControlView/FunctionBaseInfoSetPageBLL.cs
@@ -56,7 +56,11 @@
            {
                //修改功能所属房间之后的回调事件
                Action chooseRoomBackAction = () => {
                    btnLocationValues.Text = function.GetRoomListName();
                    try
                    {
                        btnLocationValues.Text = function.GetRoomListName();
                    }
                    catch { }
                };
                var view = new ChooseRoomPage(function,chooseRoomBackAction);
                MainPage.BasePageView.AddChidren(view);