wei
2021-03-23 d3a9358843b9539017debde289fb38e4fdf26938
增加新风bus命令
15个文件已修改
288 ■■■■ 已修改文件
.vs/HDL_APP_Project/xs/UserPrefs.xml 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DLL/.DS_Store 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Common/ApiUtlis.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Control_Udp.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/DriverLayer/Packet.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/DAL/Server/HttpServerRequest.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Enumerative/Command.cs 87 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Function.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/Function/Scene.cs 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/Entity/FunctionList.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI1-Login/LoginPage.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/FhControlPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/AC/ACPageBLL.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HDL_ON/UI/UI2/FuntionControlView/FoolHeating/FloorHeatingPageBLL.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
.vs/HDL_APP_Project/xs/UserPrefs.xml
@@ -1,15 +1,20 @@
<Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default">
  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneSimulatorTarget." />
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_Pie.cs">
  <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneSimulatorTarget.94B44E9C-E1BC-4BF7-812E-FC71E9B623B2" />
  <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/Entity/Function/Function.cs">
    <Files>
      <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="6" Column="19" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalPage.cs" />
      <File FileName="HDL_ON/UI/MainPage.cs" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EnvironmentalSensorPage.cs" />
      <File FileName="HDL_ON/UI/UI0-Public/PublicAssmebly.cs" />
      <File FileName="HDL_ON/DAL/Server/IMessageCommon.cs" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption.cs" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_Pie.cs" Line="34" Column="1" />
      <File FileName="HDL_ON/UI/UI2/FuntionControlView/EnvironmentalScience/EchartsOption_Pie.cs" Line="26" Column="29" />
      <File FileName="HDL_ON/Entity/Enumerative/MyEnum.cs" Line="47" Column="23" />
      <File FileName="HDL_ON/DAL/DriverLayer/Control_Udp.cs" Line="633" Column="51" />
      <File FileName="HDL_ON/DAL/DriverLayer/Packet.cs" Line="641" Column="59" />
      <File FileName="HDL_ON/UI/UI1-Login/LoginPage.cs" Line="197" Column="18" />
      <File FileName="HDL_ON/DAL/DriverLayer/Control.cs" Line="382" Column="59" />
      <File FileName="HDL_ON/Entity/Function/Function.cs" Line="1052" Column="47" />
    </Files>
    <Pads>
      <Pad Id="ProjectPad">
@@ -23,21 +28,24 @@
              </Node>
              <Node name="Entity" expanded="True">
                <Node name="Device" expanded="True" />
                <Node name="Function" expanded="True" />
                <Node name="Enumerative" expanded="True" />
                <Node name="Function" expanded="True">
                  <Node name="Function.cs" selected="True" />
                </Node>
                <Node name="ResponseEntity" expanded="True" />
              </Node>
              <Node name="UI" expanded="True">
                <Node name="CSS" expanded="True" />
                <Node name="UI0-Public" expanded="True" />
                <Node name="UI1-Login" expanded="True" />
                <Node name="UI2" expanded="True">
                  <Node name="1-HomePage" expanded="True" />
                  <Node name="2-Classification" expanded="True" />
                  <Node name="4-PersonalCenter" expanded="True">
                    <Node name="AddDevice" expanded="True" />
                  </Node>
                  <Node name="FuntionControlView" expanded="True">
                    <Node name="1ContorlPage" expanded="True" />
                    <Node name="EnvironmentalScience" expanded="True">
                      <Node name="EchartsOption_Pie.cs" selected="True" />
                    </Node>
                    <Node name="EnvironmentalScience" expanded="True" />
                  </Node>
                </Node>
              </Node>
@@ -72,7 +80,6 @@
    <String>Shared.IOS/Shared.IOS.csproj</String>
  </DisabledProjects>
  <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug" />
  <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.SelectDevice" />
  <MonoDevelop.Ide.DebuggingService.Breakpoints>
    <BreakpointStore />
  </MonoDevelop.Ide.DebuggingService.Breakpoints>
DLL/.DS_Store
Binary files differ
HDL_ON/Common/ApiUtlis.cs
@@ -172,28 +172,6 @@
                                    continue;
                                }
                                var newFunction = deviceList.list.Find((obj) => obj.deviceId == localFunction.deviceId);
                                //if (newFunction == null)//如果云端最新数据没有该条数据,则本地需要删掉该数据记录
                                //{
                                //    FunctionList.List.DeleteFunction(localFunction);
                                //}
                                //else
                                //{
                                //    MainPage.Log($"deviceType:{localFunction.spk} local:{localFunction.modifyTime} server:{newFunction.modifyTime}");
                                //    i++;
                                //    //if (localFunction.modifyTime != newFunction.modifyTime)
                                //    //{
                                //    //    //可优化
                                //    //    localFunction.name = newFunction.name;
                                //    //    localFunction.collect = newFunction.collect;
                                //    //    localFunction.modifyTime = newFunction.modifyTime;
                                //    //    localFunction.roomIds = newFunction.roomIds;
                                //    //    localFunction.bus = newFunction.bus;
                                //    //    localFunction.SaveFunctionFile();
                                //    //}
                                //    localFunction = newFunction;
                                //    localFunction.SaveFunctionFile();
                                //    deviceList.list.Remove(newFunction);//操作完的数据清理掉,剩下的就是新增的功能
                                //}
                                if (delFile == localFunction.savePath)
                                {
@@ -202,10 +180,7 @@
                                }
                                delFile = localFunction.savePath;
                                FunctionList.List.DeleteFunction(localFunction);
                            }
                        }
                        //处理剩下的新增功能
                        foreach (var newFunction in deviceList.list) 
@@ -369,5 +344,24 @@
            })
            { IsBackground = true }.Start();
        }
        /// <summary>
        /// 获取功能信息
        /// </summary>
        public void GetFunctionInfo(string functionId)
        {
            var deviceResult = Ins.HttpRequest.GetDeviceInfo(functionId);
            if (deviceResult.Code == StateCode.SUCCESS)
            {
                MainPage.Log($"读取设备信息成功");
                var packList = Newtonsoft.Json.JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString());
                foreach(var function in packList.list)
                {
                    function.SaveFunctionFile();
                    FunctionList.List.IniFunctionList(function.savePath,true);
                }
            }
        }
    }
}
HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -630,6 +630,9 @@
                                break;
                        }
                        break;
                    case FunctionCategory.AirFresh:
                        break;
                }
                #region 发送命令立即更新UI
                //HomePage.UpdataFunctionStates(function);
@@ -890,6 +893,10 @@
                case Command.SetACMode:
                case Command.ReadFloorHeat:
                case Command.SetFloorHeat:
                case Command.FreshAirRead:
                case Command.FreshAirControl:
                case Command.FreshAirRead_JinMao:
                case Command.FreshAirControl_JinMao:
                    this.sendFlag += string.Format("{0}", target.AddData[0]);
                    break;
                case Command.SetLogicLoopColor:
HDL_ON/DAL/DriverLayer/Packet.cs
@@ -315,7 +315,7 @@
                            if (function.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
                            {
                                function.SetAttrState(FunctionAttributeKey.TempType, receiveBytes[1].ToString());
                                function.SetAttrState(FunctionAttributeKey.IndoorTemp, receiveBytes[2].ToString());
                                function.SetAttrState(FunctionAttributeKey.RoomTemp, receiveBytes[2].ToString());
                                function.trait_on_off.curValue = receiveBytes[8] == 1 ? "on" : "off";
                                acFunction.SetMode(receiveBytes[9],function);
                                acFunction.SetFan(receiveBytes[10],function);
@@ -446,7 +446,7 @@
                                {
                                    indoorTemp = receiveBytes[9];
                                }
                                function.SetAttrState(FunctionAttributeKey.IndoorTemp, indoorTemp);
                                function.SetAttrState(FunctionAttributeKey.RoomTemp, indoorTemp);
                                function.lastState += " " + function.GetAttrState(FunctionAttributeKey.Mode) + new FloorHeating().GetTempUnitString(function);
                                RoomPage.UpdataStates(function);
@@ -621,7 +621,7 @@
                        {
                            if (ac.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
                            {
                                ac.SetAttrState(FunctionAttributeKey.IndoorTemp, receiveBytes[1].ToString());
                                ac.SetAttrState(FunctionAttributeKey.RoomTemp, receiveBytes[1].ToString());
                                FunctionPage.UpdataStates(ac);
                            }
                        }
@@ -636,6 +636,45 @@
                            Control.Ins.IsSearchLocalGatewaySuccessful = true;
                            Control.Ins.GatewayOnline_Local = true;
                            DAL.Mqtt.MqttClient.DisConnectRemote();//断开mqtt
                        }
                        break;
                    case Command.FreshAirControlACK_JinMao:
                    case Command.FreshAirReadACK_JinMao:
                        var airFresh = FunctionList.List.GetAirFreshList().Find((obj) => obj.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0]);
                        if (airFresh != null)
                        {
                            /// 3    开关    0-关机,1-开机
                            /// 4    运行模式    1-通风,2-加湿 humidification/fan
                            /// 5    节能舒适选择    1-舒适,2-节能 true/false
                            /// 6    风速档位    0-自动,1-1档,2-2档,3-3档  level_1/level_2/level_3/auto
                            /// 7    湿度设定    %
                            /// 8    室内温度值    ℃
                            /// 9    室内湿度值    ℃
                            /// 10    过滤网剩余    %
                            /// 11    过滤网使用超时    1 超时 0 无 true/false
                            airFresh.SetAttrState(FunctionAttributeKey.OnOff, receiveBytes[2] == 0 ? "off" : "on");
                            airFresh.SetAttrState(FunctionAttributeKey.Mode, receiveBytes[3] == 1 ? "humidification" : "fan");
                            airFresh.SetAttrState(FunctionAttributeKey.Energy, receiveBytes[4] == 1 ? "true" : "false");
                            switch (receiveBytes[5])
                            {
                                case 0:
                                    airFresh.SetAttrState(FunctionAttributeKey.FanSpeed, "auto");
                                    break;
                                case 1:
                                    airFresh.SetAttrState(FunctionAttributeKey.FanSpeed, "level_1");
                                    break;
                                case 2:
                                    airFresh.SetAttrState(FunctionAttributeKey.FanSpeed, "level_2");
                                    break;
                                case 3:
                                    airFresh.SetAttrState(FunctionAttributeKey.FanSpeed, "level_3");
                                    break;
                            }
                            airFresh.SetAttrState(FunctionAttributeKey.Humidity, receiveBytes[6].ToString());
                            airFresh.SetAttrState(FunctionAttributeKey.IndoorTemp, receiveBytes[7].ToString());
                            airFresh.SetAttrState(FunctionAttributeKey.IndoorHumidity, receiveBytes[8].ToString());
                            airFresh.SetAttrState(FunctionAttributeKey.FilterRemain, receiveBytes[9].ToString());
                            airFresh.SetAttrState(FunctionAttributeKey.FilterTimeout, receiveBytes[10] == 1 ? "true" : "false");
                        }
                        break;
                }
@@ -672,6 +711,10 @@
                switch (command)
                {
                    case Command.SetSingleLightACK:
                    case Command.FreshAirReadACK:
                    case Command.FreshAirControlACK:
                    case Command.FreshAirReadACK_JinMao:
                    case Command.FreshAirControlACK_JinMao:
                        receiveFlag += string.Format("{0}", usefulBytes[0]);
                        break;
                    case Command.SetLogicLoopColorACK:
HDL_ON/DAL/Server/HttpServerRequest.cs
@@ -1816,7 +1816,19 @@
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_Get3tyBrandDevcieList, requestJson);
        }
        /// <summary>
        /// 获取设备详情
        /// </summary>
        /// <returns></returns>
        public ResponsePackNew GetDeviceInfo(string functionId)
        {
            Dictionary<string, object> d = new Dictionary<string, object>();
            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.RegionID);
            d.Add("deviceIds", new List<string>() { functionId });
            var requestJson = HttpUtil.GetSignRequestJson(d);
            return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_GetDevcieInfoList, requestJson);
        }
        /// <summary>
        /// 获取设备详情列表
HDL_ON/Entity/Enumerative/Command.cs
@@ -14,6 +14,75 @@
        ReadAnalog = 0xE50A,
        ReadAnalogACK = 0xE50B,
        #region 新风协议
        //新风协议控制
        //附加数据:  新风通道号(1 - 200) + 开关(0,1) + 风速(0 关,1低,2中,3高) + 模式(0手动,1 自动,2 智能,3 定时)
        FreshAirControl = 0x144A,
        //返回:新风通道号(1 - 200) + 开关(0,1) + 风速(0 关,1低,2中,3高) + 模式(0手动,1 自动,2 智能,3 定时)+模拟量(2byte==16bit)+
        //室内温度(4byte) + 室外温度(4byte) + 室内湿度(4byte)+ PM2.5(4byte) + TVOC(4byte) + CO2(4byte)
        FreshAirControlACK = 0x144B,
        //2.新风协议读状态
        //附加数据:  新风通道号(1 - 200)
        FreshAirRead = 0x144C,
        //返回:新风通道号(1 - 200) + 开关(0,1) + 风速(0 关,1低,2中,3高) + 模式(0手动,1 自动,2 智能,3 定时) +模拟量(2byte==16bit)+
        //室内温度(4byte) + 室外温度(4byte) + 室内湿度(4byte)+ PM2.5(4byte) + TVOC(4byte) + CO2(4byte)
        FreshAirReadACK = 0x144D,
        #endregion
        #region 金茂府 昆明 温州 新风协议
        /// <summary>
        /// 附加数据长度:1
        /// 新风编号    1~200
        /// </summary>
        FreshAirRead_JinMao = 0x1446,
        /// <summary>
        /// 附加数据长度:30
        /// 1    新风编号    1~200
        /// 2    类型  第三方类型  0:金茂新风
        /// 3    开关    0-关机,1-开机
        /// 4    运行模式    1-通风,2-加湿
        /// 5    节能舒适选择    1-舒适,2-节能
        /// 6    风速档位    0-自动,1-1档,2-2档,3-3档
        /// 7    湿度设定    %
        /// 8    室内温度值    ℃
        /// 9    室内湿度值    ℃
        /// 10    过滤网剩余    %
        /// 11    过滤网使用超时    1 超时 0 无
        /// </summary>
        FreshAirReadACK_JinMao = 0x1447,
        /// <summary>
        /// 附加数据长度:4
        /// 1    新风编号    1~200
        /// 2    类型  第三方类型  0:金茂新风
        /// 3    开关    0-关机,1-开机
        /// 4    运行模式    1-通风,2-加湿
        /// 5    节能舒适选择    1-舒适,2-节能
        /// 6    风速档位    0-自动,1-1档,2-2档,3-3档
        /// 7    湿度设定    %
        /// 8    室内温度值    ℃
        /// 9    室内湿度值    ℃
        /// 10    过滤网剩余    %
        /// 11    过滤网使用超时    1 超时 0 无
        /// </summary>
        FreshAirControl_JinMao = 0x1448,
        /// <summary>
        /// 附加数据长度:30
        /// 1    新风编号    1~200
        /// 2    类型  第三方类型  0:金茂新风
        /// 3    开关    0-关机,1-开机
        /// 4    运行模式    1-通风,2-加湿
        /// 5    节能舒适选择    1-舒适,2-节能
        /// 6    风速档位    0-自动,1-1档,2-2档,3-3档
        /// 7    湿度设定    %
        /// 8    室内温度值    ℃
        /// 9    室内湿度值    ℃
        /// 10    过滤网剩余    %
        /// 11    过滤网使用超时
        /// </summary>
        FreshAirControlACK_JinMao = 0x1449,
        #endregion
        #region 绿建温控器协议
        /// <summary>
        /// 读取温控器主机指令
@@ -1222,24 +1291,6 @@
        LogicstateControl = 0xE014,
        LogicstateControlACK = 0xE015,
        #region 新风协议
        //新风协议控制
        //附加数据:  新风通道号(1 - 200) + 开关(0,1) + 风速(0 关,1低,2中,3高) + 模式(0手动,1 自动,2 智能,3 定时)
        FreshAirControl = 0x144A,
        //返回:新风通道号(1 - 200) + 开关(0,1) + 风速(0 关,1低,2中,3高) + 模式(0手动,1 自动,2 智能,3 定时)+模拟量(2byte==16bit)+
        //室内温度(4byte) + 室外温度(4byte) + 室内湿度(4byte)+ PM2.5(4byte) + TVOC(4byte) + CO2(4byte)
        FreshAirControlACK = 0x144B,
        //2.新风协议读状态
        //附加数据:  新风通道号(1 - 200)
        FreshAirRead = 0x144C,
        //返回:新风通道号(1 - 200) + 开关(0,1) + 风速(0 关,1低,2中,3高) + 模式(0手动,1 自动,2 智能,3 定时) +模拟量(2byte==16bit)+
        //室内温度(4byte) + 室外温度(4byte) + 室内湿度(4byte)+ PM2.5(4byte) + TVOC(4byte) + CO2(4byte)
        FreshAirReadACK = 0x144D,
        #endregion
        /// <summary>
        /// 布防设置       
HDL_ON/Entity/Function/Function.cs
@@ -768,7 +768,7 @@
        /// <summary>
        /// 室内温度
        /// </summary>
        public const string IndoorTemp = "room_temp";
        public const string RoomTemp = "room_temp";
        /// <summary>
        /// value
        /// </summary>
@@ -838,7 +838,7 @@
        /// </summary>
        public const string AnionTimeLeft = "anion_time_surplus";
        /// <summary>
        /// 打开登记(风扇)
        /// 打开等级(风扇)
        /// </summary>
        public const string OpenLevel = "openLevel";
        /// <summary>
@@ -846,6 +846,30 @@
        /// </summary>
        public const string Key = "key";
        /// <summary>
        /// 节能
        /// </summary>
        public const string Energy = "energy";
        /// <summary>
        /// 湿度
        /// </summary>
        public const string Humidity = "humidity";
        /// <summary>
        /// 室内温度
        /// </summary>
        public const string IndoorTemp = "indoor_temp";
        /// <summary>
        /// 室内湿度
        /// </summary>
        public const string IndoorHumidity = "indoor_humidity";
        /// <summary>
        /// 过滤网剩余量
        /// </summary>
        public const string FilterRemain = "filter_remain";
        /// <summary>
        /// 过滤网是否超时警告
        /// </summary>
        public const string FilterTimeout = "filter_timeout";
        #region tuya
        /// <summary>
@@ -1022,6 +1046,10 @@
        /// (新风)
        /// </summary>
        public const string AirFreshStandard = "airFresh.standard";
        /// <summary>
        /// 新风 ——金茂定制
        /// </summary>
        public const string AirFreshJinmao = "airFresh.jinmao";
        /// <summary>
        /// 新风spk列表
@@ -1031,6 +1059,7 @@
        {
            var spkList = new List<string>();
            spkList.Add(AirFreshStandard);
            spkList.Add(AirFreshJinmao);
            return spkList;
        }
        #endregion
@@ -1181,6 +1210,7 @@
        /// 红外遥控器
        /// </summary>
        public const string IrLearn = "ir.learn";
        #region 涂鸦
        /// <summary>
        /// 家电、涂鸦空气净化器
HDL_ON/Entity/Function/Scene.cs
@@ -446,7 +446,7 @@
                case FunctionAttributeKey.SetTemp:
                    text = Language.StringByID(StringId.Temp);
                    break;
                case FunctionAttributeKey.IndoorTemp:
                case FunctionAttributeKey.RoomTemp:
                    text = Language.StringByID(StringId.IndoorTemp);
                    break;
                case FunctionAttributeKey.Delay:
@@ -475,7 +475,7 @@
            switch (key)
            {
                case FunctionAttributeKey.SetTemp:
                case FunctionAttributeKey.IndoorTemp:
                case FunctionAttributeKey.RoomTemp:
                    us = "°C";
                    break;
                case FunctionAttributeKey.Percent:
@@ -500,7 +500,7 @@
                    text = value == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF);
                    break;
                case FunctionAttributeKey.SetTemp:
                case FunctionAttributeKey.IndoorTemp:
                case FunctionAttributeKey.RoomTemp:
                case FunctionAttributeKey.Brightness:
                case FunctionAttributeKey.Percent:
                    if (value == "")
HDL_ON/Entity/FunctionList.cs
@@ -70,6 +70,16 @@
            var spkList = SPK.FhSpkList();
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        /// <summary>
        /// 新风列表
        /// </summary>
        /// <returns></returns>
        public List<Function> GetAirFreshList()
        {
            var spkList = SPK.AirFreshSpkList();
            return Functions.FindAll((obj) => spkList.Contains(obj.spk));
        }
        #region 家电列表 electricals
        /// <summary>
        /// 家电列表
HDL_ON/UI/UI1-Login/LoginPage.cs
@@ -192,13 +192,13 @@
                //return;
                if (b)
                {
                    etAccount.Text = "18316672920";//"18316120654";//lcg "18316672920";//hzx;// "13415629083"//cf;//tujie"18316120654";
                    etAccount.Text = "Sumant.Bhatia@havells.com";//"18316120654";//lcg "18316672920";//hzx;// "13415629083"//cf;//tujie"18316120654";
                    // "15622703419"lwn;// "18824864143";//"464027401@qq.com"; //"2791308028@qq.com";//13697499568 
                }
                else
                {
                    etAccount.Text = "15971583093";//凉霸"18666455392";//13375012446//13602944661//tzy 18778381374
                    //15971583093 gs//tzy 274116637@qq.com
                    //15971583093 gs//tzy 274116637@qq.com//Sumant.Bhatia@havells.com 国外服务器测试
                }
                b = !b;
                etPassword.Text = "123456";
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/AcControlPage.cs
@@ -723,7 +723,7 @@
            Application.RunOnMainThread(() =>
            {
                btnTemp.Text = device.GetAttrState(FunctionAttributeKey.SetTemp);
                btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.IndoorTemp))) + "°C";
                btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.RoomTemp))) + "°C";
                btnMode.UnSelectedImagePath = acFunction.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode));
                btnWindSpeed.UnSelectedImagePath = acFunction.GetFanIconPath(device.GetAttrState(FunctionAttributeKey.FanSpeed));
                arcBar.Progress = Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp)));
HDL_ON/UI/UI2/FuntionControlView/1ContorlPage/FhControlPage.cs
@@ -458,7 +458,7 @@
            Application.RunOnMainThread(() =>
            {
                btnTemp.Text = device.GetAttrState(FunctionAttributeKey.SetTemp);
                btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.IndoorTemp))) + "°C";
                btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.RoomTemp))) + "°C";
                btnMode.UnSelectedImagePath = fhTemp.GetModeIconPath(device.GetAttrState(FunctionAttributeKey.Mode));
                arcBar.Progress = Convert.ToInt32(Convert.ToDouble(device.GetAttrState(FunctionAttributeKey.SetTemp)));
                if (device.trait_on_off.curValue.ToString() == "on")
HDL_ON/UI/UI2/FuntionControlView/AC/ACPageBLL.cs
@@ -26,7 +26,7 @@
                    AC temp = new AC();
                    updataTime = DateTime.Now;
                    bodyView.btnTemp.Text = updateTemp.GetAttrState(FunctionAttributeKey.SetTemp);
                    bodyView.btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(updateTemp.GetAttrState((string)FunctionAttributeKey.IndoorTemp))) + "°C";
                    bodyView.btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(updateTemp.GetAttrState((string)FunctionAttributeKey.RoomTemp))) + "°C";
                    bodyView.btnMode.UnSelectedImagePath = temp.GetModeIconPath(updateTemp.GetAttrState(FunctionAttributeKey.Mode));
                    bodyView.btnWindSpeed.UnSelectedImagePath = temp.GetFanIconPath(updateTemp.GetAttrState(FunctionAttributeKey.FanSpeed));
                    bodyView.arcBar.Progress = Convert.ToInt32(Convert.ToDouble(updateTemp.GetAttrState(FunctionAttributeKey.SetTemp)));
HDL_ON/UI/UI2/FuntionControlView/FoolHeating/FloorHeatingPageBLL.cs
@@ -20,7 +20,7 @@
                        return;
                    }
                    bodyView.btnTemp.Text = updateTemp.GetAttrState(FunctionAttributeKey.SetTemp);
                    bodyView.btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(updateTemp.GetAttrState(FunctionAttributeKey.IndoorTemp))) + "°C";
                    bodyView.btnIndoorTemp.Text = Language.StringByID(StringId.IndoorTemp) + Convert.ToInt32(Convert.ToDouble(updateTemp.GetAttrState(FunctionAttributeKey.RoomTemp))) + "°C";
                    bodyView.btnMode.UnSelectedImagePath = bodyView.fhTemp.GetModeIconPath(updateTemp.GetAttrState(FunctionAttributeKey.Mode));
                    bodyView.arcBar.Progress = Convert.ToInt32(Convert.ToDouble(updateTemp.GetAttrState(FunctionAttributeKey.SetTemp)));
                    if (updateTemp.trait_on_off.curValue.ToString() == "on")