水浸传感器,红外传感器,面板空调
增加电池状态显示;增加面板空调支持,新增SPK
| | |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\Acst\Inverter\BatteryIconShutdown100.png" /> |
| | | <AndroidAsset Include="Assets\Phone\Collection\TokenInvalidTipIcon.png" /> |
| | | <AndroidAsset Include="Assets\Phone\Public\RightIcon2.png" /> |
| | | <AndroidAsset Include="Assets\Phone\FunctionIcon\ArmSensor\Power80pIcon.png" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <AndroidResource Include="Resources\values\colors.xml" /> |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="2.7.0" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202409201"> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="2.7.0" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202409231"> |
| | | <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="29" /> |
| | | <uses-permission android:name="android.permission.RECEIVE_SMS" /> |
| | | <!--程序可以读取设备外部存储空间(内置SDcard和外置SDCard)的文件,我的文件等--> |
| | |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\Acst\Inverter\BatteryIconShutdown100.png" /> |
| | | <BundleResource Include="Resources\Phone\Collection\TokenInvalidTipIcon.png" /> |
| | | <BundleResource Include="Resources\Phone\Public\RightIcon2.png" /> |
| | | <BundleResource Include="Resources\Phone\FunctionIcon\ArmSensor\Power80pIcon.png" /> |
| | | </ItemGroup> |
| | | <ItemGroup> |
| | | <ITunesArtwork Include="iTunesArtwork" /> |
| | |
| | | { |
| | | FunctionList.List.ClearDatas(); |
| | | MainPage.Log($"读取设备信息成功"); |
| | | MainPage.Log($"sid列表获取====\r\n", deviceResult.Data.ToString()); |
| | | //MainPage.Log($"sid列表获取====\r\n", deviceResult.Data.ToString()); |
| | | var deviceList = JsonConvert.DeserializeObject<DevcieApiPack>(deviceResult.Data.ToString()); |
| | | if (deviceList == null) |
| | | { |
| | |
| | | //Application.Activity.StartActivity() |
| | | #endif |
| | | |
| | | //测试账号,不挤下线 |
| | | switch (UserInfo.Current.AccountString) |
| | | { |
| | | case "464027401@qq.com": |
| | | case "15626203746": |
| | | |
| | | return; |
| | | } |
| | | |
| | | |
| | | //未登录不用处理 |
| | | //if (!UserInfo.Current.IsLogin) return; |
| | |
| | | VenetianBlindsPage.UpdataState(localFunction); |
| | | break; |
| | | case SPK.AcStandard: |
| | | case SPK.HvacAC: |
| | | case SPK.HvacAC:case SPK.HvacAcPanel: |
| | | case SPK.AcIr: |
| | | Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status); |
| | | if (localFunction != null) |
| | |
| | | } |
| | | break; |
| | | case SPK.AcStandard: |
| | | case SPK.HvacAC: |
| | | case SPK.HvacAC:case SPK.HvacAcPanel: |
| | | AC acTemp = new AC(); |
| | | byte onoff = 0; |
| | | byte mode = 0; |
| | |
| | | } |
| | | break; |
| | | case SPK.AcStandard: |
| | | case SPK.HvacAC: |
| | | case SPK.HvacAC:case SPK.HvacAcPanel: |
| | | var ac = new AC(); |
| | | |
| | | byte onoff = 0; |
| | |
| | | ControlBytesSend(Command.ReadCurtainStatus, subnetId, deviceId, new byte[] { function.bus.LoopId }); |
| | | break; |
| | | case SPK.AcStandard: |
| | | case SPK.HvacAC: |
| | | case SPK.HvacAC:case SPK.HvacAcPanel: |
| | | ControlBytesSend(Command.ReadACMode, subnetId, deviceId, new byte[] { function.bus.LoopId }); |
| | | break; |
| | | case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:case SPK.HvacFloorHeatPanel: |
| | |
| | | //{ |
| | | // return; |
| | | //} |
| | | if (DB_ResidenceData.Instance.CurrentRegion == null || DB_ResidenceData.Instance.CurrentRegion.id == null) |
| | | if (OnAppConfig.Instance.LastLoginUserId == ""|| DB_ResidenceData.Instance.CurrentRegion == null || DB_ResidenceData.Instance.CurrentRegion.id == null) |
| | | { |
| | | return; |
| | | } |
| | |
| | | /// </summary> |
| | | static void ReceiveNotifySqueezeAsync(string mMes) |
| | | { |
| | | MainPage.Log($"推送标识:{mMes};本地标识:{PushSignStr}"); |
| | | if (mMes == PushSignStr) return;//是自己的登录推送不处理//或者当前不是远程链接状态 |
| | | //测试账号,不挤下线 |
| | | switch (UserInfo.Current.userMobileInfo) |
| | | { |
| | | case "15626203746": |
| | | return; |
| | | } |
| | | |
| | | //if (!UserInfo.Current.IsLogin) |
| | | //{ |
| | | // return; |
| | | //} |
| | | |
| | | DisConnectRemoteMqttClient("挤下线"); |
| | | |
| | |
| | | //弹窗提示被挤下线 |
| | | HDLCommon.Current.CheckLogout(); |
| | | }); |
| | | |
| | | |
| | | //UserInfo.Current.LastTime = DateTime.MinValue; |
| | | //UserInfo.Current.SaveUserInfo(); |
| | | |
| | | //Application.RunOnMainThread(() => { |
| | | // MainPage.GoLoginPage(UserInfo.Current); |
| | | // //弹窗提示被挤下线 |
| | | //}); |
| | | |
| | | //2020-08-11 删除推送数据 |
| | | //HDLRequest.Current.PushserivceSignOut (); |
| | | } |
| | | |
| | | ///// <summary> |
| | |
| | | /// </summary> |
| | | static void SendPushSignOut() |
| | | { |
| | | #if DEBUG |
| | | MainPage.Log("调试模式,不发布挤下线主题。"); |
| | | return; |
| | | #endif |
| | | //测试账号,不挤下线 |
| | | switch (UserInfo.Current.AccountString) |
| | | { |
| | | case "15626203746": |
| | | case "13580507523": |
| | | return; |
| | | } |
| | | |
| | | byte[] message = Encoding.UTF8.GetBytes(PushSignStr); |
| | | MqttRemoteSend(message, 4); |
| | | } |
| | |
| | | break; |
| | | case 4://发布新方案的挤下线主题 |
| | | topicName = $"/BusGateWayToClient/{UserInfo.Current.ID}" + PushNotifySqueeze; |
| | | //message = Encoding.UTF8.GetBytes (PushSignStr); |
| | | await RemoteMqttClient.PublishAsync(new MqttApplicationMessage { Topic = topicName, Payload = message, Retain = false, QualityOfServiceLevel = MQTTnet.Protocol.MqttQualityOfServiceLevel.AtMostOnce }); |
| | | break; |
| | | } |
| | |
| | | case SPK.HvacAirFreshJinmao: |
| | | iconPath = "airFreshjinmao"; |
| | | break; |
| | | case SPK.HvacAC: |
| | | case SPK.HvacAC:case SPK.HvacAcPanel: |
| | | iconPath = "acstandard"; |
| | | break; |
| | | case SPK.HvacFan: |
| | |
| | | collect = !collect; |
| | | IMessageCommon.Current.ShowErrorInfoAlter(result); |
| | | }); |
| | | } else |
| | | } |
| | | else |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | this.SaveFunctionFile(); |
| | | UI.HomePage.RefreshFunctionView(); |
| | | }); |
| | | } |
| | |
| | | /// </summary> |
| | | public const string HvacAC = "hvac.ac"; |
| | | /// <summary> |
| | | /// 面板空调 |
| | | /// </summary> |
| | | public const string HvacAcPanel = "hvac.ac_panel"; |
| | | /// <summary> |
| | | /// 毛细管空调 |
| | | /// </summaryc |
| | | public const string HvacCac = "hvac.cac"; |
| | |
| | | var spkList = new List<string>(); |
| | | spkList.Add(AcStandard); |
| | | spkList.Add(HvacAC); |
| | | spkList.Add(HvacAcPanel); |
| | | spkList.Add(AcIr); |
| | | spkList.Add(HvacCac); |
| | | return spkList; |
| | |
| | | IMessageCommon.Current.ShowErrorInfoAlter(result); |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | this.SaveSceneFile(); |
| | | } |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | |
| | | public static List<string> SceneSupportFunctionList = new List<string> { |
| | | SPK.LightCCT,SPK.LightDimming,SPK.LightSwitch,SPK.LightRGB, |
| | | SPK.CurtainRoller,SPK.CurtainSwitch,SPK.CurtainTrietex,SPK.CurtainDream, |
| | | SPK.AcIr,SPK.AcStandard,SPK.HvacAC, |
| | | SPK.AcIr,SPK.AcStandard,SPK.HvacAC,SPK.HvacAcPanel, |
| | | SPK.FloorHeatStandard,SPK.HvacFloorHeat,SPK.HvacFloorHeatPanel, |
| | | SPK.AirFreshStandard,SPK.HvacAirFresh, |
| | | SPK.AirSwitch, |
| | |
| | | break; |
| | | case SPK.AcIr: |
| | | case SPK.AcStandard: |
| | | case SPK.HvacAC: |
| | | case SPK.HvacAC:case SPK.HvacAcPanel: |
| | | var acPage = new AcControlPage(); |
| | | acPage.AddForm(function, btnCollectionIcon, btnName, btnFromFloor); |
| | | break; |
| | |
| | | /// <summary>
|
| | | /// 进度条
|
| | | /// </summary>
|
| | | private NormalViewControl btnProgress = null;
|
| | | public NormalViewControl btnProgress = null;
|
| | | /// <summary>
|
| | | /// 图标控件
|
| | | /// </summary>
|
| | | private IconViewControl btnIcon = null;
|
| | | public IconViewControl btnIcon = null;
|
| | |
|
| | | #endregion
|
| | |
|
| | |
| | | //变红色
|
| | | this.btnProgress.BackgroundColor = 0xfff62f48;
|
| | | this.btnIcon.UnSelectedImagePath = "Public/BatteryNot.png";
|
| | | this.btnIcon.SelectedImagePath = "Public/BatteryNot.png";
|
| | | }
|
| | | else
|
| | | {
|
| | | //变灰色
|
| | | this.btnProgress.BackgroundColor = CSS_Color.PromptingColor1;
|
| | | this.btnIcon.UnSelectedImagePath = "Public/BatteryEnough.png";
|
| | | this.btnIcon.SelectedImagePath = "Public/BatteryEnough.png";
|
| | | }
|
| | | }
|
| | |
|
| | |
| | | { |
| | | Application.HideSoftInput(); |
| | | }; |
| | | //btnIcon.MouseUpEventHandler = (sender, e) => |
| | | //{ |
| | | // etAccount.Text = "13580507523"; |
| | | // etPassword.Text = "a123456"; |
| | | //}; |
| | | |
| | | #if DEBUG |
| | | btnIcon_bg.MouseUpEventHandler += (sender, e) => |
| | |
| | | }; |
| | | |
| | | bool b = false; |
| | | btnIcon.MouseUpEventHandler += (sender, e) => |
| | | btnIcon.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | |
| | | |
| | | //ESOnVideo.Current.Test(false); |
| | | |
| | | //return; |
| | | if (b) |
| | | { |
| | | //etAccount.Text = "18022428438";//wjc |
| | |
| | | }; |
| | | passwordView.AddChidren(etPassword); |
| | | |
| | | |
| | | etAccount.Text = "13580507523"; |
| | | etPassword.Text = "a123456"; |
| | | |
| | | #region 密码登录-控件加载 |
| | | btnVisiblePassword = new Button() |
| | | { |
| | |
| | | // continue; |
| | | //} |
| | | //else |
| | | { |
| | | if (!function.collect&& function.spk != SPK.InverterJinmao) |
| | | continue; |
| | | } |
| | | //{ |
| | | if (!function.collect&& function.spk != SPK.InverterJinmao) |
| | | continue; |
| | | //} |
| | | if (index % 2 == 0) |
| | | { |
| | | rowView = new FrameLayout() |
| | |
| | | } |
| | | } |
| | | #endregion |
| | | bodyView.linkStateMsgView.Y = ApiUtlis.Ins.IsValidToken ? Application.GetRealHeight(113) : Application.GetRealHeight(113) - Application.GetRealWidth(24); |
| | | if (bodyView.linkStateMsgView != null){ |
| | | bodyView.linkStateMsgView.Y = ApiUtlis.Ins.IsValidToken ? Application.GetRealHeight(113) : Application.GetRealHeight(113) - Application.GetRealWidth(24); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | case ShowFunction.VideoIntercom: |
| | | if (FunctionList.List.videoIntercom != null && FunctionList.List.videoIntercom.Count > 0) |
| | | { |
| | | functionCount = 1; |
| | | if (Common.ApiUtlis.Ins.hadInternet) |
| | | { |
| | | functionCount = 1; |
| | | } |
| | | } |
| | | break; |
| | | case ShowFunction.SecurityCenter: |
| | |
| | | using System; |
| | | using HDL_ON.Entity; |
| | | using HDL_ON.Stan; |
| | | using HDL_ON.UI.CSS; |
| | | using Shared; |
| | | |
| | |
| | | } |
| | | else if (SPK.EvironmentSensorList().Contains(function.spk) || SPK.ArmSensorSpkList().Contains(function.spk)) //传感器没有开关按钮) |
| | | { |
| | | //if(function.spk == SPK.SensorPir || function.spk == SPK.SensorWater) { } |
| | | var powerLowTipAttr = function.attributes.Find((obj) => obj.key == FunctionAttributeKey.BatteryState); |
| | | if (powerLowTipAttr != null) |
| | | if (powerLowTipAttr != null && !string.IsNullOrEmpty( powerLowTipAttr.state.ToString())) |
| | | { |
| | | if (powerLowTipAttr.state.ToLower() == "low") |
| | | //电池控件、 |
| | | Button btnTipPowerLow = new Button() |
| | | { |
| | | Button btnTipPowerLow = new Button() |
| | | { |
| | | X = Application.GetRealWidth(307), |
| | | Y = Application.GetRealHeight(45), |
| | | Width = Application.GetRealWidth(24), |
| | | Height = Application.GetRealWidth(24), |
| | | UnSelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png", |
| | | SelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png", |
| | | }; |
| | | this.AddChidren(btnTipPowerLow); |
| | | } |
| | | X = Application.GetRealWidth(307), |
| | | Y = Application.GetRealHeight(45), |
| | | Width = Application.GetRealWidth(24), |
| | | Height = Application.GetRealWidth(24), |
| | | UnSelectedImagePath = "FunctionIcon/ArmSensor/Power80pIcon.png", |
| | | SelectedImagePath = "FunctionIcon/ArmSensor/PowerLowIcon.png", |
| | | IsSelected = powerLowTipAttr.state.ToLower() == "low" |
| | | }; |
| | | this.AddChidren(btnTipPowerLow); |
| | | |
| | | //var batteryControl = new BatteryPersentControl(); |
| | | //batteryControl.X = Application.GetRealWidth(107); |
| | | //batteryControl.Y = Application.GetRealHeight(45); |
| | | //batteryControl.InitControl(); |
| | | //this.AddChidren(batteryControl); |
| | | //batteryControl.SetValue(80); |
| | | //if (powerLowTipAttr.state.ToLower() == "low") |
| | | //{ |
| | | // batteryControl.SetValue(20); |
| | | //} |
| | | //batteryControl.btnIcon.Visible = true; |
| | | //batteryControl.btnIcon.BackgroundColor = 0x88008800; |
| | | } |
| | | |
| | | |
| | | |
| | | else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose ) |
| | | else if (function.spk == SPK.SenesorMegahealth || function.spk == SPK.SensorMmvPose) |
| | | { |
| | | var btnStatus = new Button() |
| | | { |
| | |
| | | Tag = function.sid + "_SenesorMegahealth_Status" |
| | | }; |
| | | bodyDiv.AddChidren(btnStatus); |
| | | |
| | | |
| | | |
| | | var tempStatus = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.TargetStatus); |
| | | if (tempStatus != null) |
| | |
| | | bodyDiv.AddChidren(btnStatus); |
| | | |
| | | var alarm_status = function.attributes.Find((sta) => sta.key == FunctionAttributeKey.AlarmStatus); |
| | | if(alarm_status!= null) |
| | | if (alarm_status != null) |
| | | { |
| | | if (alarm_status.curValue.ToString() == "normal") |
| | | { |
| | |
| | | case SPK.CurtainTrietex: |
| | | //空调 |
| | | case SPK.AcStandard: |
| | | case SPK.HvacAC: |
| | | case SPK.HvacAC:case SPK.HvacAcPanel: |
| | | case SPK.AcIr: |
| | | //地热 |
| | | case SPK.FloorHeatStandard: |
| | |
| | | case SPK.CurtainTrietex: |
| | | //空调 |
| | | case SPK.AcStandard: |
| | | case SPK.HvacAC: |
| | | case SPK.HvacAC:case SPK.HvacAcPanel: |
| | | case SPK.AcIr: |
| | | //地热 |
| | | case SPK.HvacFloorHeat:case SPK.HvacFloorHeatPanel: |
| | |
| | | } |
| | | break; |
| | | case SPK.AcStandard: |
| | | case SPK.HvacAC: |
| | | case SPK.HvacAC:case SPK.HvacAcPanel: |
| | | case SPK.AcIr: |
| | | { |
| | | string on_off = GetKeyValue("on_off", dicList); |
| | |
| | | |
| | | } |
| | | break; |
| | | case SPK.AcStandard: |
| | | case SPK.AcStandard:case SPK.HvacAcPanel: |
| | | case SPK.HvacAC: |
| | | case SPK.AcIr: |
| | | { |
| | |
| | | } |
| | | } |
| | | break; |
| | | case SPK.AcStandard: |
| | | case SPK.AcStandard:case SPK.HvacAcPanel: |
| | | case SPK.HvacAC: |
| | | case SPK.AcIr: |
| | | case SPK.FloorHeatStandard:case SPK.HvacFloorHeatPanel: |
| | |
| | | deviceStrTypeList.Add(Language.StringByID(StringId.Curtain)); |
| | | } |
| | | ///空调类 |
| | | var ac = deviceList.Find((device) => device.spk == SPK.AcStandard || device.spk == SPK.HvacAC|| device.spk == SPK.AcIr); |
| | | var ac = deviceList.Find((device) => device.spk == SPK.AcStandard || device.spk == SPK.HvacAC|| device.spk == SPK.AcIr || device.spk == SPK.HvacAcPanel); |
| | | if (ac != null) |
| | | { |
| | | deviceStrTypeList.Add(Language.StringByID(StringId.AC)); |
| | |
| | | else if (deviceType == Language.StringByID(StringId.AC)) |
| | | { |
| | | functionTypeList.Add(SPK.AcStandard); |
| | | functionTypeList.Add(SPK.HvacAC); |
| | | functionTypeList.Add(SPK.HvacAC); functionTypeList.Add(SPK.HvacAcPanel); |
| | | functionTypeList.Add(SPK.HvacCac); |
| | | functionTypeList.Add(SPK.AcIr); |
| | | } |
| | |
| | | functionTypeList.Add(SPK.CurtainRoller); |
| | | functionTypeList.Add(SPK.CurtainTrietex); |
| | | functionTypeList.Add(SPK.AcStandard); |
| | | functionTypeList.Add(SPK.HvacAC); |
| | | functionTypeList.Add(SPK.HvacAC); functionTypeList.Add(SPK.HvacAcPanel); |
| | | functionTypeList.Add(SPK.AcIr); |
| | | functionTypeList.Add(SPK.FloorHeatStandard); |
| | | functionTypeList.Add(SPK.HvacFloorHeat); functionTypeList.Add(SPK.HvacFloorHeatPanel); |
| | |
| | | deviceTypeList.Add(SPK.CurtainSwitch); |
| | | deviceTypeList.Add(SPK.CurtainRoller); |
| | | deviceTypeList.Add(SPK.CurtainTrietex); |
| | | deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC);deviceTypeList.Add(SPK.AcIr); |
| | | deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC);deviceTypeList.Add(SPK.AcIr); deviceTypeList.Add(SPK.HvacAcPanel); |
| | | deviceTypeList.Add(SPK.AirFreshStandard); deviceTypeList.Add(SPK.HvacAirFresh); |
| | | deviceTypeList.Add(SPK.FloorHeatStandard); deviceTypeList.Add(SPK.HvacFloorHeat); deviceTypeList.Add(SPK.HvacFloorHeatPanel); |
| | | deviceTypeList.Add(SPK.SensorSmoke); |
| | |
| | | deviceTypeList.Add(SPK.CurtainSwitch); |
| | | deviceTypeList.Add(SPK.CurtainRoller); |
| | | deviceTypeList.Add(SPK.CurtainTrietex); |
| | | deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC); deviceTypeList.Add(SPK.AcIr); |
| | | deviceTypeList.Add(SPK.AcStandard); deviceTypeList.Add(SPK.HvacAC); deviceTypeList.Add(SPK.AcIr); deviceTypeList.Add(SPK.HvacAcPanel); |
| | | deviceTypeList.Add(SPK.FloorHeatStandard); deviceTypeList.Add(SPK.HvacFloorHeat); deviceTypeList.Add(SPK.HvacFloorHeatPanel); |
| | | deviceTypeList.Add(SPK.AirFreshStandard); deviceTypeList.Add(SPK.HvacAirFresh); |
| | | deviceTypeList.Add(SPK.AirSwitch); |
| | |
| | | break; |
| | | case SPK.AcStandard: |
| | | case SPK.HvacAC: |
| | | case SPK.HvacAcPanel: |
| | | case SPK.AcIr: |
| | | { |
| | | #region 界面 |
| | |
| | | } |
| | | case SPK.HvacAC: |
| | | case SPK.AcIr: |
| | | case SPK.HvacAcPanel: |
| | | case SPK.AcStandard: |
| | | case SPK.FloorHeatStandard: |
| | | case SPK.HvacFloorHeat:case SPK.HvacFloorHeatPanel: |
| | |
| | | }; |
| | | row.AddChidren(btnName); |
| | | |
| | | |
| | | |
| | | btnName.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | switch (device.spk) |
| | |
| | | bool isFrist = true; |
| | | foreach (var brand in brandList) |
| | | { |
| | | if(brand.productPlatform == "HaiLin")//子晴需要隐藏这个入口,由调试软件上传数据 2023-03-09 17:20:33 |
| | | if (brand.productPlatform == "HaiLin")//子晴需要隐藏这个入口,由调试软件上传数据 2023-03-09 17:20:33 |
| | | { |
| | | continue; |
| | | }else if(brand.productPlatform == "TUYA") { |
| | | if(DB_ResidenceData.Instance.CurrentRegion.regionUrl != "https://test-gz.hdlcontrol.com" && |
| | | } |
| | | else if (brand.productPlatform == "TUYA") |
| | | { |
| | | if (DB_ResidenceData.Instance.CurrentRegion.regionUrl != "https://test-gz.hdlcontrol.com" && |
| | | DB_ResidenceData.Instance.CurrentRegion.regionUrl != "https://china-gateway.hdlcontrol.com") |
| | | { |
| | | continue; |
| | |
| | | }; |
| | | contentView.AddChidren(row); |
| | | |
| | | //if (isFrist) |
| | | //{ |
| | | // isFrist = false; |
| | | //} |
| | | //else |
| | | |
| | | Button btnLine = new Button() |
| | | { |
| | | Button btnLine = new Button() |
| | | { |
| | | Y = Application.GetRealHeight(86), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Width = Application.GetRealWidth(343), |
| | | Height = 1, |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | }; |
| | | row.AddChidren(btnLine); |
| | | } |
| | | Y = Application.GetRealHeight(86), |
| | | Gravity = Gravity.CenterHorizontal, |
| | | Width = Application.GetRealWidth(343), |
| | | Height = 1, |
| | | BackgroundColor = CSS_Color.DividingLineColor, |
| | | }; |
| | | row.AddChidren(btnLine); |
| | | |
| | | ImageView btnIcon = new ImageView() |
| | | { |
| | |
| | | //下载第三方品牌icon |
| | | ImageUtlis.Current.Load3tyBrandIconImages(brand.brandName, brand.brandIcon, btnIcon); |
| | | |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => { |
| | | |
| | | EventHandler<MouseEventArgs> eventHandler = (sender, e) => |
| | | { |
| | | var page = new DeviceListPage(brand); |
| | | MainPage.BasePageView.AddChidren(page); |
| | | page.LoadPage(); |
| | |
| | | brand = integratedBrand; |
| | | } |
| | | |
| | | |
| | | public void LoadPage() |
| | | { |
| | | Action<string, string> action = (s, a) => |
| | |
| | | { |
| | | var pm = new HttpServerRequest(); |
| | | var pack = pm.Get3TyBrandBindDeviceList(brand.productPlatform, brand.productBrand); |
| | | if (pack.Code == DAL.Server.StateCode.SUCCESS) |
| | | if (pack.Code == StateCode.SUCCESS) |
| | | { |
| | | var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<Function3tyBrandObj>(pack.Data.ToString()); |
| | | |
| | |
| | | bool isFrist = true; |
| | | foreach (var device in deviceList) |
| | | { |
| | | //if (!this.CheckSupportDevice(device)) |
| | | //{ |
| | | // continue; |
| | | //} |
| | | var row = new RowLayout() |
| | | { |
| | | Height = Application.GetRealHeight(50), |
| | |
| | | |
| | | public void LoadPage() |
| | | { |
| | | |
| | | |
| | | var topView = new TopViewDiv(bodyView, Language.StringByID(StringId.Bind3thIotAccount)); |
| | | topView.maginY = 10; |
| | | topView.LoadTopView(CSS_Color.MainBackgroundColor); |
| | |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | BatteryPersentControl batteryControl; |
| | | /// <summary> |
| | | /// 初始化第一个索引页的内容 |
| | | /// </summary> |
| | | private void InitFrameWhiteContent1() |
| | | { |
| | | //电池控件 |
| | | this.batteryControl = new BatteryPersentControl(); |
| | | //它有个最小的X轴 |
| | | batteryControl.X = Application.GetRealWidth(104) > base.btnRoomName.Right ? Application.GetRealWidth(104) : base.btnRoomName.Right + Application.GetRealWidth(4); |
| | | if (batteryControl.Height > base.btnRoomName.Height) |
| | | { |
| | | //一个是25,一个是21,弄不准到底谁更高,因为计算方法不一样 |
| | | batteryControl.Y = base.btnRoomName.Y - (batteryControl.Height - base.btnRoomName.Height) / 2; |
| | | } |
| | | else |
| | | { |
| | | batteryControl.Y = base.btnRoomName.Y + (batteryControl.Height - base.btnRoomName.Height) / 2; |
| | | } |
| | | batteryControl.InitControl(false); |
| | | batteryControl.SetValue(80); |
| | | var powerLowTipAttr = device.attributes.Find((obj) => obj.key == FunctionAttributeKey.BatteryState); |
| | | if (powerLowTipAttr != null) |
| | | { |
| | | if (powerLowTipAttr.state.ToLower() == "low") |
| | | { |
| | | batteryControl.SetValue(20); |
| | | } |
| | | } |
| | | FrameWhiteCentet1.AddChidren(batteryControl); |
| | | |
| | | |
| | | btnIcon = new IconViewControl(198) |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | |
| | | btnSuctionView.IsSelected = false; |
| | | } |
| | | } |
| | | |
| | | |
| | | else |
| | | { |
| | | temp = device.attributes.Find((sta) => sta.key == FunctionAttributeKey.AlarmStatus); |
| | |
| | | btnSuctionView.IsSelected = false; |
| | | } |
| | | } |
| | | |
| | | var powerLowTipAttr = device.attributes.Find((obj) => obj.key == FunctionAttributeKey.BatteryState); |
| | | if (powerLowTipAttr != null) |
| | | { |
| | | if (powerLowTipAttr.state.ToLower() == "low") |
| | | { |
| | | batteryControl.SetValue(20); |
| | | } |
| | | else |
| | | { |
| | | batteryControl.SetValue(80); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | BatteryPersentControl batteryControl; |
| | | /// <summary> |
| | | /// 初始化第一个索引页的内容 |
| | | /// </summary> |
| | | private void InitFrameWhiteContent1() |
| | | { |
| | | //电池控件 |
| | | this.batteryControl = new BatteryPersentControl(); |
| | | //它有个最小的X轴 |
| | | batteryControl.X = Application.GetRealWidth(104) > base.btnRoomName.Right ? Application.GetRealWidth(104) : base.btnRoomName.Right + Application.GetRealWidth(4); |
| | | if (batteryControl.Height > base.btnRoomName.Height) |
| | | { |
| | | //一个是25,一个是21,弄不准到底谁更高,因为计算方法不一样 |
| | | batteryControl.Y = base.btnRoomName.Y - (batteryControl.Height - base.btnRoomName.Height) / 2; |
| | | } |
| | | else |
| | | { |
| | | batteryControl.Y = base.btnRoomName.Y + (batteryControl.Height - base.btnRoomName.Height) / 2; |
| | | } |
| | | batteryControl.InitControl(false); |
| | | batteryControl.SetValue(80); |
| | | var powerLowTipAttr = device.attributes.Find((obj) => obj.key == FunctionAttributeKey.BatteryState); |
| | | if (powerLowTipAttr != null) |
| | | { |
| | | if(powerLowTipAttr.state.ToLower() == "low") |
| | | { |
| | | batteryControl.SetValue(20); |
| | | } |
| | | } |
| | | FrameWhiteCentet1.AddChidren(batteryControl); |
| | | |
| | | |
| | | btnIcon = new IconViewControl(198) |
| | | { |
| | | Gravity = Gravity.CenterHorizontal, |
| | |
| | | btnSuctionView.IsSelected = false; |
| | | } |
| | | } |
| | | |
| | | var powerLowTipAttr = device.attributes.Find((obj) => obj.key == FunctionAttributeKey.BatteryState); |
| | | if (powerLowTipAttr != null) |
| | | { |
| | | if (powerLowTipAttr.state.ToLower() == "low") |
| | | { |
| | | batteryControl.SetValue(20); |
| | | } |
| | | else |
| | | { |
| | | batteryControl.SetValue(80); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |