2021-07-07 15:11:03
Bug修复:场景配置地热、空调模式属性无法显示文本
Bug修复:一端口住宅无法接收远程更新数据
Bug修复:无法修改楼层名称
UI优化:场景功能列表界面,去掉滑动效果
| | |
| | | <Properties StartupConfiguration="{D998E133-F0DD-4760-BE3C-461632F54DA4}|Default"> |
| | | <MonoDevelop.Ide.ItemProperties.HDL-ON__iOS PreferredExecutionTarget="MonoDevelop.IPhone.IPhoneDeviceTarget.00008020-000404163432002E" /> |
| | | <MonoDevelop.Ide.Workbench ActiveDocument="HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/MiniRemoteControl/AddMiniRemoteControlDirection4Page.cs"> |
| | | <MonoDevelop.Ide.Workbench> |
| | | <Files> |
| | | <File FileName="HDL_ON/UI/UI1-Login/LoginPage.cs" Line="226" Column="54" /> |
| | | <File FileName="HDL_ON/Common/ApiUtlis.cs" Line="276" Column="72" /> |
| | | <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/PirDevice/PirSend.cs" Line="26" Column="62" /> |
| | | <File FileName="HDL_ON/Entity/Enumerative/Command.cs" Line="1406" Column="38" /> |
| | | <File FileName="HDL_ON/DAL/DriverLayer/Control_Udp.cs" Line="818" Column="84" /> |
| | | <File FileName="HDL_ON/DAL/DriverLayer/Packet.cs" Line="197" Column="51" /> |
| | | <File FileName="HDL_ON/Entity/Function/Light.cs" Line="51" Column="7" /> |
| | | <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/MiniRemoteControl/AddMiniRemoteControlDirection4Page.cs" Line="544" Column="35" /> |
| | | <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/FloorsManagementPage.cs" Line="121" Column="39" /> |
| | | <File FileName="HDL_ON/UI/UI2/4-PersonalCenter/RoomListManage/FloorsManagementPageBLL.cs" Line="44" Column="17" /> |
| | | <File FileName="HDL_ON/DAL/Server/HttpUtil.cs" Line="22" Column="89" /> |
| | | <File FileName="HDL-ON_iOS/Info.plist" /> |
| | | <File FileName="HDL_ON/UI/MainPage.cs" Line="28" Column="55" /> |
| | | </Files> |
| | | <Pads> |
| | | <Pad Id="ProjectPad"> |
| | |
| | | <Node name="Common" expanded="True" /> |
| | | <Node name="DAL" expanded="True"> |
| | | <Node name="DriverLayer" expanded="True" /> |
| | | <Node name="Mqtt" expanded="True" /> |
| | | <Node name="Server" expanded="True" /> |
| | | </Node> |
| | | <Node name="Entity" expanded="True"> |
| | |
| | | <Node name="UI" expanded="True"> |
| | | <Node name="UI1-Login" expanded="True" /> |
| | | <Node name="UI2" expanded="True"> |
| | | <Node name="4-PersonalCenter" expanded="True"> |
| | | <Node name="AddDevice" expanded="True"> |
| | | <Node name="MiniRemoteControl" expanded="True"> |
| | | <Node name="AddMiniRemoteControlDirection4Page.cs" selected="True" /> |
| | | </Node> |
| | | </Node> |
| | | <Node name="2-Classification" expanded="True" /> |
| | | <Node name="3-Intelligence" expanded="True"> |
| | | <Node name="Scene" expanded="True" /> |
| | | </Node> |
| | | <Node name="FuntionControlView" expanded="True" /> |
| | | <Node name="4-PersonalCenter" expanded="True"> |
| | | <Node name="RoomListManage" expanded="True" /> |
| | | </Node> |
| | | </Node> |
| | | </Node> |
| | | </Node> |
| | | <Node name="HDL-ON_iOS" expanded="True" selected="True" /> |
| | | </Node> |
| | | </State> |
| | | </Pad> |
| | |
| | | <String>Shared.Droid.TouchID/Shared.Droid.TouchID.csproj</String> |
| | | <String>Shared.IOS/Shared.IOS.csproj</String> |
| | | </DisabledProjects> |
| | | <MonoDevelop.Ide.Workspace ActiveConfiguration="Debug|iPhone" /> |
| | | <MonoDevelop.Ide.Workspace ActiveConfiguration="Release|iPhone" /> |
| | | <MonoDevelop.Ide.ItemProperties.HDL-ON__Android PreferredExecutionTarget="Android.SelectDevice" /> |
| | | <MonoDevelop.Ide.DebuggingService.Breakpoints> |
| | | <BreakpointStore> |
| | | <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs" relfile="HDL_ON/UI/UI2/FuntionControlView/Electrical/IrFanPage.cs" line="42" column="1" /> |
| | | <Breakpoint file="/Users/kaede/Desktop/HDL_APP_Project/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs" relfile="HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs" line="384" column="1" /> |
| | | </BreakpointStore> |
| | | </MonoDevelop.Ide.DebuggingService.Breakpoints> |
| | | <MultiItemStartupConfigurations /> |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202107052" android:versionName="1.2.202107052" package="com.hdl.onpro"> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="202107061" android:versionName="1.2.202107061" package="com.hdl.onpro"> |
| | | <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="29" /> |
| | | <!-- 可视对讲权限--> |
| | | <uses-permission android:name="android.permission.CAMERA" /> |
| | |
| | | <key>UIStatusBarStyle</key> |
| | | <string>UIStatusBarStyleLightContent</string> |
| | | <key>CFBundleShortVersionString</key> |
| | | <string>1.2.202107052</string> |
| | | <string>1.2.202107071</string> |
| | | <key>CFBundleVersion</key> |
| | | <string>1.2.07052</string> |
| | | <string>1.2.07071</string> |
| | | <key>NSLocationWhenInUseUsageDescription</key> |
| | | <string>Use geographic location to provide services such as weather</string> |
| | | <key>NSAppleMusicUsageDescription</key> |
| | |
| | | //处理剩下的新增功能 |
| | | foreach (var newFunction in deviceList.list) |
| | | { |
| | | MainPage.Log(newFunction.savePath); |
| | | newFunction.SaveFunctionFile(); |
| | | FunctionList.List.IniFunctionList(newFunction.savePath); |
| | | } |
| | |
| | | UI.Music.A31MusicModel.ReadMusicStates(); |
| | | //搜索网关 |
| | | DriverLayer.Control.Ins.SearchLoaclGateway(); |
| | | //重新连接mqtt |
| | | DAL.Mqtt.MqttClient.DisConnectRemote("刷新数据,重连mqtt",false); |
| | | #endregion |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | var count = 0; |
| | | var logString = open ? "打开\r\n" : "关闭\r\n"; |
| | | List<ApiAlinkControlActionObj> actionObjs = new List<ApiAlinkControlActionObj>(); |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(FunctionAttributeKey.OnOff, open ? "on" : "off"); |
| | | var pm = new DAL.Server.HttpServerRequest(); |
| | | foreach (var temp in functions) |
| | | //一端口全开全关需要延时发送 |
| | | if (DB_ResidenceData.Instance.GatewayType == 0) |
| | | { |
| | | logString += temp.spk + ":" + temp.sid + "\r\n"; |
| | | var apiControlData = temp.GetApiControlData(d); |
| | | actionObjs.Add(apiControlData); |
| | | count++; |
| | | if (count > 9) |
| | | new System.Threading.Thread(() => |
| | | { |
| | | var result = pm.ControlDevice(actionObjs); |
| | | actionObjs = new List<ApiAlinkControlActionObj>(); |
| | | count = 0; |
| | | MainPage.Log(logString); |
| | | logString = ""; |
| | | } |
| | | foreach (var temp in functions) |
| | | { |
| | | var apiControlData = temp.GetApiControlData(d); |
| | | var result = pm.ControlDevice(new List<ApiAlinkControlActionObj>() { apiControlData }); |
| | | System.Threading.Thread.Sleep(100); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | var pack = pm.ControlDevice(actionObjs); |
| | | MainPage.Log(logString); |
| | | else |
| | | { |
| | | foreach (var temp in functions) |
| | | { |
| | | var apiControlData = temp.GetApiControlData(d); |
| | | actionObjs.Add(apiControlData); |
| | | count++; |
| | | if (count > 9) |
| | | { |
| | | var result = pm.ControlDevice(actionObjs); |
| | | actionObjs = new List<ApiAlinkControlActionObj>(); |
| | | count = 0; |
| | | System.Threading.Thread.Sleep(100); |
| | | } |
| | | } |
| | | var pack = pm.ControlDevice(actionObjs); |
| | | } |
| | | } |
| | | |
| | | public void SendApiReadCommand(List<string> functionIds) |
| | |
| | | /// <summary> |
| | | /// 加密通讯KEY |
| | | /// </summary> |
| | | static string mqttEncryptKey = ""; |
| | | //static string mqttEncryptKey = ""; |
| | | static string tuyaEncryptKey = ""; |
| | | //static string checkGatewayTopicBase64 = ""; |
| | | static bool hadGateway = true; |
| | |
| | | try |
| | | { |
| | | var topic = e.ApplicationMessage.Topic; |
| | | //MainPage.Log($"收到mqtt主题:{topic}"); |
| | | MainPage.Log($"收到mqtt主题:{topic}"); |
| | | //一端口主题处理 |
| | | if (DB_ResidenceData.Instance.GatewayType == 0 && !DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull()) |
| | | { |
| | |
| | | } |
| | | |
| | | //一些特殊的主题处理(为了执行速度,尽可能的别加耗时的操作 true:执行了特殊处理 false:没有执行特殊处理) |
| | | Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(topic, e.ApplicationMessage.Payload, mqttEncryptKey, tuyaEncryptKey); |
| | | Stan.HdlCloudReceiveLogic.Current.CloudOverallMsgReceiveEx(topic, e.ApplicationMessage.Payload, DB_ResidenceData.Instance.HomeGateway.aesKey, tuyaEncryptKey); |
| | | |
| | | if (topic == $"/BusGateWayToClient/{UserInfo.Current.ID}" + PushNotifySqueeze) |
| | | { |
| | |
| | | { |
| | | var pm = new HttpServerRequest(); |
| | | pm.GetHomeGatewayList(); |
| | | MainPage.Log($"网关密钥变更"); |
| | | MainPage.Log($"旧密钥:{mqttEncryptKey}"); |
| | | mqttEncryptKey = MqttInfoConfig.Current.HomeGatewayInfo.aesKey; |
| | | MainPage.Log($"新密钥:{mqttEncryptKey}"); |
| | | MainPage.Log($"网关密钥变更.新密钥:{DB_ResidenceData.Instance.HomeGateway.aesKey}"); |
| | | } |
| | | |
| | | #endregion |
| | |
| | | //bus数据解析 |
| | | var packet = new Packet(); |
| | | |
| | | if (!string.IsNullOrEmpty(mqttEncryptKey)) |
| | | if (!string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.aesKey)) |
| | | { |
| | | packet.Bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, mqttEncryptKey); |
| | | packet.Bytes = Securitys.EncryptionService.AesDecryptPayload(e.ApplicationMessage.Payload, DB_ResidenceData.Instance.HomeGateway.aesKey); |
| | | } |
| | | else |
| | | { |
| | |
| | | |
| | | |
| | | |
| | | mqttEncryptKey = MqttInfoConfig.Current.HomeGatewayInfo.aesKey; |
| | | //mqttEncryptKey = MqttInfoConfig.Current.HomeGatewayInfo.aesKey; |
| | | //解密密钥规则:已现有的住宅ID为基准,从右边一一获取值,最后如果不够16位,则往右补零 |
| | | string aesKey = string.Empty; |
| | | for (int i = DB_ResidenceData.Instance.CurrentRegion.id.Length - 1; i >= 0; i--) |
| | |
| | | { |
| | | case 0: |
| | | topicName = $"/ClientToBusGateWay/{MqttInfoConfig.Current.HomeGatewayInfo.gatewayId}/Common/ON"; |
| | | if (!string.IsNullOrEmpty(mqttEncryptKey)) |
| | | if (!string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.aesKey)) |
| | | { |
| | | message = Securitys.EncryptionService.AesEncryptPayload(message, mqttEncryptKey); |
| | | message = Securitys.EncryptionService.AesEncryptPayload(message, DB_ResidenceData.Instance.HomeGateway.aesKey); |
| | | } |
| | | await RemoteMqttClient.PublishAsync(new MqttApplicationMessage { Topic = topicName, Payload = message, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce }); |
| | | break; |
| | |
| | | d.Add("actions", actionObjs); |
| | | |
| | | var requestJson = HttpUtil.GetSignRequestJson(d); |
| | | MainPage.Log($"{requestJson}"); |
| | | MainPage.Log($"api功能控制:{requestJson}"); |
| | | return HttpUtil.RequestHttpsPostFroHome(NewAPI.Api_Post_ControlDevice, requestJson); |
| | | } |
| | | /// <summary> |
| | |
| | | { |
| | | attr.curValue = "off"; |
| | | } |
| | | else |
| | | else if (attr.key == FunctionAttributeKey.Mode ) |
| | | { |
| | | if (DB_ResidenceData.Instance.GatewayType == 0) |
| | | { |
| | | attr.curValue = "0"; |
| | | } |
| | | else |
| | | { |
| | | if (SPK.AcSpkList().Contains(spk)) |
| | | { |
| | | attr.curValue = "cool"; |
| | | } |
| | | else if (SPK.FhSpkList().Contains(spk)) |
| | | { |
| | | attr.curValue = "day"; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | attr.curValue = "0"; |
| | | } |
| | |
| | | { |
| | | double vv = 16; |
| | | Double.TryParse(attr.curValue.ToString(), out vv); |
| | | if (vv == 0) |
| | | { |
| | | vv = 26; |
| | | } |
| | | sFunc.status.Add(new SceneFunctionStatus() { key = attr.key, value = Convert.ToInt32(vv).ToString() }); |
| | | } |
| | | else |
| | |
| | | /// 获取指定属性的显示文本 |
| | | /// 中英文显示 |
| | | /// </summary> |
| | | public string GetValueText() |
| | | public string GetValueText(string temp = "") |
| | | { |
| | | string catchString = value; |
| | | if(temp!= "") |
| | | { |
| | | catchString = temp; |
| | | } |
| | | string text = ""; |
| | | switch (key) |
| | | { |
| | | case FunctionAttributeKey.OnOff: |
| | | text = value == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF); |
| | | text = catchString == "on" ? Language.StringByID(StringId.On) : Language.StringByID(StringId.OFF); |
| | | break; |
| | | case FunctionAttributeKey.SetTemp: |
| | | case FunctionAttributeKey.RoomTemp: |
| | | case FunctionAttributeKey.Brightness: |
| | | case FunctionAttributeKey.Percent: |
| | | if (value == "") |
| | | if (catchString == "") |
| | | { |
| | | value = "0"; |
| | | catchString = "0"; |
| | | } |
| | | text = value; |
| | | text = catchString; |
| | | break; |
| | | case FunctionAttributeKey.Mode: |
| | | switch (value) |
| | | switch (catchString) |
| | | { |
| | | //----空调 |
| | | case "auto": |
| | |
| | | text = Language.StringByID(StringId.AirSupply); |
| | | break; |
| | | //-----地热 |
| | | // 1:普通,2:白天,3:夜晚,4:离开,5:时间 |
| | | case "day": |
| | | text = Language.StringByID(StringId.Day); |
| | | break; |
| | |
| | | } |
| | | break; |
| | | case FunctionAttributeKey.FanSpeed: |
| | | switch (value) |
| | | switch (catchString) |
| | | { |
| | | case "high": |
| | | text = Language.StringByID(StringId.HighWindSpeed); |
| | |
| | | /// <summary> |
| | | /// 版本号 |
| | | /// </summary> |
| | | public static string VersionString = "1.2.0705"; |
| | | public static string VersionString = "1.2.0707"; |
| | | ///// <summary> |
| | | ///// 客户端类型 |
| | | ///// </summary> |
| | |
| | | //etAccount.Text = "18316120654";//tujie |
| | | // "15622703419"lwn;// "18824864143";//"464027401@qq.com"; //"2791308028@qq.com";//13697499568 |
| | | etAccount.Text = "15626203746"; |
| | | etAccount.Text = "13450425807";//黄竹溪 knx项目 |
| | | } |
| | | else |
| | | { |
| | |
| | | IsBold = true, |
| | | TextColor = CSS_Color.MainColor, |
| | | TextAlignment = TextAlignment.Center, |
| | | Text = "Dome模式" |
| | | Text = "Demo模式" |
| | | }; |
| | | bodyView.AddChidren(btnDomeLogin); |
| | | btnDomeLogin.MouseUpEventHandler = (sender, e) => { |
| | |
| | | functionListView = new VerticalScrolViewLayout() |
| | | { |
| | | Height = 0, |
| | | ScrollEnabled = false, |
| | | }; |
| | | contentView.AddChidren(functionListView); |
| | | |
| | |
| | | functionListView = new VerticalScrolViewLayout() { |
| | | Height = 0, |
| | | ScrollEnabled = false, |
| | | BackgroundColor = 0xffff0000 |
| | | }; |
| | | contentView.AddChidren(functionListView); |
| | | |
| | |
| | | } |
| | | foreach (var function in functions) |
| | | { |
| | | if (function.Spk_Prefix != FunctionCategory.Light && |
| | | function.Spk_Prefix != FunctionCategory.AC && |
| | | function.Spk_Prefix != FunctionCategory.FloorHeat && |
| | | function.Spk_Prefix != FunctionCategory.Curtain |
| | | ) |
| | | if (!MainPage.SceneSupportFunctionList.Contains(function.spk)) |
| | | { |
| | | continue; |
| | | } |
| | |
| | | LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp)); |
| | | break; |
| | | case FunctionAttributeKey.Mode: |
| | | |
| | | LoadFunctionRow(sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode)); |
| | | break; |
| | | case FunctionAttributeKey.FanSpeed: |
| | |
| | | }; |
| | | row.AddChidren(btnRight); |
| | | |
| | | |
| | | var showCode = ""; |
| | | |
| | | if (sceneStatus.key == FunctionAttributeKey.Mode) |
| | | { |
| | | if (DB_ResidenceData.Instance.GatewayType == 0) |
| | | { |
| | | if (SPK.AcSpkList().Contains(sceneFunction.localFunction.spk)) |
| | | { |
| | | //0 制冷1制热,2通风,3自动,4除湿 |
| | | switch (sceneStatus.value) |
| | | { |
| | | case "0": |
| | | showCode = "cool"; |
| | | break; |
| | | case "1": |
| | | showCode = "heat"; |
| | | break; |
| | | case "2": |
| | | showCode = "fan"; |
| | | break; |
| | | case "3": |
| | | showCode = "auto"; |
| | | break; |
| | | case "4": |
| | | showCode = "dry"; |
| | | break; |
| | | } |
| | | } |
| | | else if (SPK.FhSpkList().Contains(sceneFunction.localFunction.spk)) |
| | | { |
| | | //1:普通,2:白天,3:夜晚,4:离开,5:时间 |
| | | switch (sceneStatus.value) |
| | | { |
| | | case "5": |
| | | showCode = "timer"; |
| | | break; |
| | | case "1": |
| | | showCode = "normal"; |
| | | break; |
| | | case "2": |
| | | showCode = "day"; |
| | | break; |
| | | case "3": |
| | | showCode = "night"; |
| | | break; |
| | | case "4": |
| | | showCode = "away"; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | var btnFunctionText = new Button() |
| | | { |
| | | Width = Application.GetRealWidth(330), |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextColor = CSS_Color.PromptingColor1, |
| | | TextSize = CSS_FontSize.PromptFontSize_FirstLevel, |
| | | Text = sceneStatus.GetValueText() + sceneStatus.GetUintString() |
| | | Text = sceneStatus.GetValueText(showCode) + sceneStatus.GetUintString() |
| | | }; |
| | | row.AddChidren(btnFunctionText); |
| | | |
| | | |
| | | |
| | | if (sceneStatus.key == FunctionAttributeKey.OnOff) |
| | | { |
| | | btnOnText = btnFunctionText; |
| | |
| | | var lastText = ""; |
| | | Dialog dialog = new Dialog(); |
| | | |
| | | if(DB_ResidenceData.Instance.GatewayType == 0) |
| | | { |
| | | if (SPK.AcSpkList().Contains(sceneFunction.localFunction.spk)) |
| | | { |
| | | //0 制冷1制热,2通风,3自动,4除湿 |
| | | for (int i = 0; i < statusList.Count; i++) |
| | | { |
| | | if (statusList[i] == "0") |
| | | { |
| | | statusList[i] = "cool"; |
| | | } |
| | | else if (statusList[i] == "1") |
| | | { |
| | | statusList[i] = "heat"; |
| | | } |
| | | else if (statusList[i] == "2") |
| | | { |
| | | statusList[i] = "fan"; |
| | | } |
| | | else if (statusList[i] == "3") |
| | | { |
| | | statusList[i] = "auto"; |
| | | } |
| | | else if (statusList[i] == "4") |
| | | { |
| | | statusList[i] = "dry"; |
| | | } |
| | | } |
| | | } |
| | | else if (SPK.FhSpkList().Contains(sceneFunction.localFunction.spk)) |
| | | { |
| | | //1:普通,2:白天,3:夜晚,4:离开,5:时间 |
| | | for (int i = 0; i < statusList.Count; i++) |
| | | { |
| | | if (statusList[i] == "5") |
| | | { |
| | | statusList[i] = "timer"; |
| | | } |
| | | else if (statusList[i] == "1") |
| | | { |
| | | statusList[i] = "normal"; |
| | | } |
| | | else if (statusList[i] == "2") |
| | | { |
| | | statusList[i] = "day"; |
| | | } |
| | | else if (statusList[i] == "3") |
| | | { |
| | | statusList[i] = "night"; |
| | | } |
| | | else if (statusList[i] == "4") |
| | | { |
| | | statusList[i] = "away"; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | var pView = new FrameLayout() |
| | | { |
| | | BackgroundColor = CSS_Color.DialogTransparentColor1, |
| | |
| | | TextColor = CSS_Color.FirstLevelTitleColor, |
| | | TextSize = CSS_FontSize.TextFontSize, |
| | | Tag = m, |
| | | Text = trait.GetValueText() |
| | | Text = trait.GetValueText(m) |
| | | }; |
| | | row.AddChidren(btnPropertyTitle); |
| | | |
| | |
| | | bool isFrist = true; |
| | | foreach (var device in deviceList) |
| | | { |
| | | //if (!FunctionList.List.DeviceSpk.Contains(device.spk)) |
| | | //{ |
| | | // continue; |
| | | //} |
| | | FrameLayout row = new FrameLayout() |
| | | { |
| | | Height = Application.GetRealHeight(50), |
| | |
| | | switch (device.spk) |
| | | { |
| | | case SPK.IrModule: |
| | | new UI2.PersonalCenter.PirDevice.PirMethod().MainView(this, device,()=> {}); |
| | | new UI2.PersonalCenter.PirDevice.PirMethod().MainView(this, device, () => |
| | | { |
| | | contentView.BeginHeaderRefreshing(); |
| | | }); |
| | | break; |
| | | case SPK.SenesorMegahealth: |
| | | var smPage = new SenesorMegahealthManagerPage(); |
| | |
| | | FrameLayout frameLayout = new FrameLayout |
| | | { |
| | | Y = Application.GetRealHeight(64 + 84), |
| | | Height = Application.GetRealHeight(667 - 64 - 84), |
| | | Height = Application.GetRealHeight(667 - 64 - 84-104), |
| | | Width = Application.GetRealWidth(TextSize.view375), |
| | | }; |
| | | this.AddChidren(frameLayout); |
| | |
| | | { |
| | | public class PirMethod |
| | | { |
| | | |
| | | /// <summary> |
| | | /// 红外宝程序主入口 |
| | | /// </summary> |
| | |
| | | { |
| | | try |
| | | { |
| | | var oldName = floor.roomName; |
| | | floor.roomName = newName; |
| | | var editResult = SpatialInfo.CurrentSpatial.UpdateFloor(floor); |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | if (editResult == DAL.Server.StateCode.SUCCESS) |
| | | { |
| | | floor.roomName = newName; |
| | | btn.Text = newName; |
| | | }else |
| | | { |
| | | floor.roomName = oldName; |
| | | } |
| | | }); |
| | | } |