| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="2.4.5" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202405201"> |
| | | <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="2.4.5" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202405211"> |
| | | <uses-sdk android:minSdkVersion="26" android:targetSdkVersion="29" /> |
| | | <uses-permission android:name="android.permission.RECEIVE_SMS" /> |
| | | <!--友盟--> |
| | |
| | | /// 下载数据完成标记 |
| | | /// </summary> |
| | | public bool DownloadDataComplete = false; |
| | | |
| | | public bool hadInternet = true; |
| | | /// <summary> |
| | | /// 下载数据 |
| | | /// </summary> |
| | |
| | | string code = StateCode.SUCCESS; |
| | | |
| | | Inverter.Ins.H5Page = null;//重置光伏页面 |
| | | bool hadInternet = true; |
| | | var downloadDataThread = new System.Threading.Thread(() => |
| | | { |
| | | try |
| | | { |
| | | //增加3秒云服务器连接检测,连不上服务器的时候不刷新数据 |
| | | hadInternet = true; |
| | | var dataList = new List<GlobalRegionListRes>(); |
| | | var requestJson = HttpUtil.GetSignRequestJson(new GetRegionListObj() { regionMark = HttpUtil.RegionMark }); |
| | | Console.WriteLine(DateTime.Now); |
| | | var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_GlobalRegionList, requestJson, HttpUtil.GlobalRequestHttpsHost, "", 3); |
| | | Console.WriteLine(DateTime.Now); |
| | | if (revertObj == null || revertObj.Code != StateCode.SUCCESS) |
| | | { |
| | | DownloadDataComplete = true; |
| | |
| | | } |
| | | else |
| | | { |
| | | IMessageCommon.Current.ShowErrorInfoAlter(result.Code); |
| | | if (result.Code != "-1") |
| | | IMessageCommon.Current.ShowErrorInfoAlter(result.Code); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | |
| | | using HDL_ON.UI; |
| | | using HDL_ON.DAL.Server; |
| | | using HDL_ON; |
| | | using Newtonsoft.Json; |
| | | using System.Collections.Generic; |
| | | |
| | | namespace HDL_ON.DAL.Mqtt |
| | | { |
| | |
| | | public static void InitState() |
| | | { |
| | | IfNeedReadAllDeviceStatus = true; |
| | | Common.ApiUtlis.Ins.hadInternet = true; |
| | | StartCloudMqtt(); |
| | | } |
| | | |
| | |
| | | public static async Task StartCloudMqtt() |
| | | { |
| | | //没有网络的状态下尝试一下连接mqtt ,安卓的网络状态变化监听有异常,修改底层麻烦 |
| | | if (MainPage.InternetStatus == 0 && MainPage.LinkHdlMqttCount > 1) |
| | | if (MainPage.InternetStatus == 0 && MainPage.LinkHdlMqttCount > 1 ) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | |
| | | if (!Common.ApiUtlis.Ins.hadInternet) |
| | | { |
| | | return; |
| | | } |
| | |
| | | await Task.Factory.StartNew((Func<Task>)(async () => { |
| | | try |
| | | { |
| | | try |
| | | { |
| | | //增加3秒云服务器连接检测,连不上服务器的时候不刷新数据 |
| | | var dataList = new List<GlobalRegionListRes>(); |
| | | var requestJson = HttpUtil.GetSignRequestJson(new GetRegionListObj() { regionMark = HttpUtil.RegionMark }); |
| | | var revertObj = HttpUtil.RequestHttpsPost(NewAPI.API_POST_GlobalRegionList, requestJson, HttpUtil.GlobalRequestHttpsHost, "", 3); |
| | | if (revertObj == null || revertObj.Code != StateCode.SUCCESS) |
| | | { |
| | | Common.ApiUtlis.Ins.hadInternet = false; |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | Common.ApiUtlis.Ins.hadInternet = true; |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | } |
| | | |
| | | #region 初始化远程Mqtt |
| | | RemoteMqttIsConnecting = true; |
| | | RemoteMqttClient = new MqttFactory().CreateMqttClient(); |
| | |
| | | /// <summary> |
| | | /// 请求超时时间 |
| | | /// </summary> |
| | | public const int TIME_OUT = 15; |
| | | public const int TIME_OUT = 10; |
| | | /// <summary> |
| | | /// 特殊接口请求超时时间 |
| | | /// </summary> |
| | |
| | | { |
| | | return new ResponsePackNew() { Code = "0" ,Data = "" }; |
| | | } |
| | | if (!Common.ApiUtlis.Ins.hadInternet) |
| | | { |
| | | MainPage.Log("没有外网,直接退出请求"); |
| | | return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR, message = Language.StringByID(StringId.FailedRequestServer) }; |
| | | } |
| | | #region HttpWebRequest |
| | | try |
| | | { |
| | |
| | | } |
| | | } |
| | | IRestResponse response = client.Execute(request); |
| | | HDL_ON.Utlis.WriteLine("发送", requestFullUrl, response.Request.Body?.Value.ToString()); |
| | | MainPage.Log("发送:"+ requestFullUrl, response.Request.Body?.Value.ToString()); |
| | | if(apiPath == NewAPI.API_POST_Login) |
| | | { |
| | | var ddd = Newtonsoft.Json.JsonConvert.SerializeObject(response); |
| | |
| | | } |
| | | catch { } |
| | | } |
| | | return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR }; |
| | | return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR, message = Language.StringByID(StringId.FailedRequestServer) }; |
| | | } |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | HDL_ON.Utlis.WriteLine(ex.Message); |
| | | return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR }; |
| | | return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR ,message = Language.StringByID(StringId.FailedRequestServer) }; |
| | | } |
| | | |
| | | #endregion |
| | |
| | | else |
| | | { |
| | | HDL_ON.Utlis.WriteLine(response.Content); |
| | | return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR }; |
| | | return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR, message = Language.StringByID(StringId.FailedRequestServer) }; |
| | | } |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | HDL_ON.Utlis.WriteLine(ex.Message); |
| | | return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR }; |
| | | return new ResponsePackNew() { Code = StateCode.NETWORK_ERROR, message = Language.StringByID(StringId.FailedRequestServer) }; |
| | | } |
| | | |
| | | #endregion |
| | |
| | | SelectedImagePath = "Collection/DefenseStatusIcon.png", |
| | | UnSelectedImagePath = "Collection/DisarmStatusIcon.png" |
| | | }; |
| | | if (DB_ResidenceData.Instance.GatewayType == 1) |
| | | if (DB_ResidenceData.Instance.GatewayType == 1 && !DB_ResidenceData.Instance.CurrentRegion.isOtherShare) |
| | | { |
| | | |
| | | topView.AddChidren(btnSecurityStatus); |
| | |
| | | UnSelectedImagePath = "Collection/MsgIcon.png", |
| | | SelectedImagePath = "Collection/MsgIconTip.png", |
| | | }; |
| | | if(btnSecurityStatus.Parent == null) |
| | | { |
| | | btnMsgIcon.X = Application.GetRealWidth(329); |
| | | } |
| | | topView.AddChidren(btnMsgIcon); |
| | | |
| | | |
| | |
| | | case ShowFunction.SecurityMonitoring: |
| | | if (!MainPage.NoLoginMode) |
| | | { |
| | | if (OnAppConfig.Instance.RequestHttpsHost.Contains("bahrain")) |
| | | if (OnAppConfig.Instance.RequestHttpsHost.Contains("bahrain") || !Common.ApiUtlis.Ins.hadInternet) |
| | | { |
| | | functionCount = 0; |
| | | } |
| | |
| | | functionOnCount = FunctionList.List.GetAcstParentList().FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count; |
| | | break; |
| | | case ShowFunction.VideoDoorLock: |
| | | functionCount = FunctionList.List.GetVideoDoorLockList().Count; |
| | | functionOnCount = FunctionList.List.GetAcstParentList().FindAll((obj) => obj.GetAttrState("status").ToString() == "open" |
| | | || obj.GetAttrState("status").ToString() == "normal_open").Count; |
| | | |
| | | if (Common.ApiUtlis.Ins.hadInternet) |
| | | { |
| | | functionCount = FunctionList.List.GetVideoDoorLockList().Count; |
| | | functionOnCount = FunctionList.List.GetAcstParentList().FindAll((obj) => obj.GetAttrState("status").ToString() == "open" |
| | | || obj.GetAttrState("status").ToString() == "normal_open").Count; |
| | | } |
| | | else |
| | | { |
| | | functionCount = 0; |
| | | } |
| | | break; |
| | | case ShowFunction.Aks: |
| | | functionCount = FunctionList.List.GetVideoControlsList().Count; |
| | |
| | | System.Threading.Thread.Sleep(sleepTime); |
| | | } |
| | | break; |
| | | case ShowFunction.MechanicalArm: |
| | | foreach (var f in FunctionList.List.GetMechanicalArmList()) |
| | | { |
| | | f.trait_on_off.curValue = onoff; |
| | | Dictionary<string, string> d = new Dictionary<string, string>(); |
| | | d.Add(FunctionAttributeKey.OnOff, f.trait_on_off.curValue.ToString()); |
| | | Control.Ins.SendWriteCommand(f, d); |
| | | System.Threading.Thread.Sleep(sleepTime); |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | else |
| | |
| | | } |
| | | Control.Ins.SwtichFunctions(onoff == "on", eleList); |
| | | break; |
| | | case ShowFunction.MechanicalArm: |
| | | List<Function> meArmList = new List<Function>(); |
| | | foreach (var f in FunctionList.List.GetMechanicalArmList()) |
| | | { |
| | | meArmList.Add(f); |
| | | } |
| | | Control.Ins.SwtichFunctions(onoff == "on", meArmList); |
| | | break; |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | btnSwitch.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | if (!function.isOnline())//离线不允许操作 |
| | | { |
| | | new Tip() |
| | | { |
| | | CloseTime = 1, |
| | | Text = Language.StringByID(StringId.DeviceOfflineCannotOption), |
| | | Direction = AMPopTipDirection.None, |
| | | }.Show(MainPage.BaseView); |
| | | return; |
| | | } |
| | | //DriverLayer.Control.Ins.GatewayOnline_Cloud = false; |
| | | //DriverLayer.Control.Ins.GatewayOnline_Local = true; |
| | | //if (!function.isOnline())//离线不允许操作 |
| | | //{ |
| | | // new Tip() |
| | | // { |
| | | // CloseTime = 1, |
| | | // Text = Language.StringByID(StringId.DeviceOfflineCannotOption), |
| | | // Direction = AMPopTipDirection.None, |
| | | // }.Show(MainPage.BaseView); |
| | | // return; |
| | | //} |
| | | btnSwitch.IsSelected = !btnSwitch.IsSelected; |
| | | |
| | | if(SPK.NotStatusSpkList.Contains( function.spk )) |
| | |
| | | /// <param name="api_Url">请求地址(不是绝对地址)</param> |
| | | /// <param name="tag">标记->描述接口(自定义)</param> |
| | | /// <returns></returns> |
| | | public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag,int mTimeout = 3) |
| | | public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag,int mTimeout = 8) |
| | | { |
| | | Log($"{DateTime.Now}->发送->{tag}", api_Url,o.ToString()); |
| | | var requestJson = HttpUtil.GetSignRequestJson(o); |
| | |
| | | { |
| | | btnAddIcon.MouseUpEventHandler = (sender, e) => |
| | | { |
| | | if (btnSecurityTitle.IsSelected) |
| | | { |
| | | return; |
| | | } |
| | | if (!btnAutomationTitle.IsSelected) |
| | | { |
| | | //如果是成员 |
| | |
| | | { |
| | | var dic = new Dictionary<string, string>(); |
| | | dic.Add(FunctionAttributeKey.OnOff, statu); |
| | | Control.Ins.SendWriteCommand(this.device, dic, true); |
| | | Control.Ins.SendWriteCommand(this.device, dic); |
| | | HdlThreadLogic.Current.RunMain(() => |
| | | { |
| | | this.btnPictrue.CanClick = true; |
| | |
| | | { |
| | | if (TipType.flicker == tipType) |
| | | { |
| | | if (responsePackNew == null) |
| | | if (responsePackNew == null || responsePackNew.Code == "-1") |
| | | { |
| | | responsePackNew = new ResponsePackNew { message = "没回复,请确认网络是否正常.", Code = "-1", }; |
| | | } |
| | |
| | | /// <param name="api_Url">请求地址(不是绝对地址)</param> |
| | | /// <param name="tag">标记->描述接口(自定义)</param> |
| | | /// <returns></returns> |
| | | public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag, int mTimeout = 15) |
| | | public ResponsePackNew RequestServerhomeId(object o, string api_Url, string tag, int mTimeout = 10) |
| | | { |
| | | JObject jobject = JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeObject(o)); |
| | | return UI2.Intelligence.Automation.Send.Current.RequestServerhomeId(jobject, api_Url, tag, mTimeout); |