From c3727a2872f7a396ea9ad847aefb4d0b29d745bf Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期五, 13 五月 2022 23:47:56 +0800 Subject: [PATCH] 自研西墨可视对讲 --- HDL-ON_Android/Properties/AndroidManifest.xml | 2 HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs | 350 +++++++++++++++++++++++++++- HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs | 38 ++ HDL-ON_Android/Assets/Language.ini | 10 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs | 4 HDL-ON_Android/Resources/values-zh/strings.xml | 2 HDL_ON/Common/ImageUtlis.cs | 41 +++ HDL_ON/DAL/Mqtt/MqttClient.cs | 2 HDL_ON/HDL_ON.projitems | 1 HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs | 5 HDL-ON_iOS/Resources/Language.ini | 4 HDL_ON/DAL/Server/NewAPI.cs | 15 + HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs | 4 HDL_ON/Common/R.cs | 5 HDL_ON/DAL/Server/HttpServerRequest.cs | 17 + HDL_ON/DAL/DriverLayer/Control.cs | 1 HDL_ON/UI/UI2/FuntionControlView/Video/WanderingAlarmPage.cs | 188 +++++++++++++++ HDL_ON/UI/UI1-Login/LoginPage.cs | 1 HDL-ON_Android/Other/JPush/JPushReceiver.cs | 2 19 files changed, 659 insertions(+), 33 deletions(-) diff --git a/HDL-ON_Android/Assets/Language.ini b/HDL-ON_Android/Assets/Language.ini index 996bad9..74688a6 100644 --- a/HDL-ON_Android/Assets/Language.ini +++ b/HDL-ON_Android/Assets/Language.ini @@ -527,6 +527,7 @@ 539=Smart panel 540=In Alarm 541=Monitoring +542=Wandering alarm 1000=Room Humidity @@ -1681,6 +1682,7 @@ 539=鏅鸿兘闈㈡澘 540=鎶ヨ涓� 541=鐩戞帶涓� +542=寰樺緤鎶ヨ 1000=瀹ゅ唴婀垮害 1001=绔ラ攣 @@ -2811,7 +2813,9 @@ 537=Humidity statistics 538=Uint 539=Smart panel -419=袧芯褉屑邪谢褜薪褘泄 +540=袧芯褉屑邪谢褜薪褘泄 +541=Monitoring +542=Wandering alarm @@ -3961,13 +3965,13 @@ 533=Statistical Chart 534=Data 535=Dew point temperature -536=Temperature statistics +536=Temperature statistics 537=Humidity statistics 538=Uint 539=Smart panel 540=En alarma 541=Monitoring - +542=Wandering alarm 1000=Humedad de ambiente diff --git a/HDL-ON_Android/Other/JPush/JPushReceiver.cs b/HDL-ON_Android/Other/JPush/JPushReceiver.cs index 4fdec05..3b0cf2b 100644 --- a/HDL-ON_Android/Other/JPush/JPushReceiver.cs +++ b/HDL-ON_Android/Other/JPush/JPushReceiver.cs @@ -257,7 +257,7 @@ { while (MainPage.BasePageView == null) { - System.Threading.Thread.Sleep(300); + System.Threading.Thread.Sleep(300); } Shared.Application.RunOnMainThread(() => { diff --git a/HDL-ON_Android/Properties/AndroidManifest.xml b/HDL-ON_Android/Properties/AndroidManifest.xml index 7331c9d..7df8787 100644 --- a/HDL-ON_Android/Properties/AndroidManifest.xml +++ b/HDL-ON_Android/Properties/AndroidManifest.xml @@ -1,6 +1,6 @@ 锘�<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.5.6" package="com.hdl.onpro" xmlns:tools="http://schemas.android.com/tools" android:versionCode="202205061"> - <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="30" /> + <uses-sdk android:minSdkVersion="28" android:targetSdkVersion="28" /> <!--鍙嬬洘--> <!--<uses-sdk android:minSdkVersion="8"></uses-sdk>--> <!--<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>--> diff --git a/HDL-ON_Android/Resources/values-zh/strings.xml b/HDL-ON_Android/Resources/values-zh/strings.xml index 8bba32d..52267b1 100644 --- a/HDL-ON_Android/Resources/values-zh/strings.xml +++ b/HDL-ON_Android/Resources/values-zh/strings.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <resources> - <string name="app_name">ON_Plus</string> + <string name="app_name">On_Pro</string> <string name="action_settings">璁剧疆</string> <string name="video_screenshot">鎴浘</string> <string name="video_unlock">寮�閿�</string> diff --git a/HDL-ON_iOS/Resources/Language.ini b/HDL-ON_iOS/Resources/Language.ini index 48147d4..74688a6 100644 --- a/HDL-ON_iOS/Resources/Language.ini +++ b/HDL-ON_iOS/Resources/Language.ini @@ -527,6 +527,7 @@ 539=Smart panel 540=In Alarm 541=Monitoring +542=Wandering alarm 1000=Room Humidity @@ -1681,6 +1682,7 @@ 539=鏅鸿兘闈㈡澘 540=鎶ヨ涓� 541=鐩戞帶涓� +542=寰樺緤鎶ヨ 1000=瀹ゅ唴婀垮害 1001=绔ラ攣 @@ -2813,6 +2815,7 @@ 539=Smart panel 540=袧芯褉屑邪谢褜薪褘泄 541=Monitoring +542=Wandering alarm @@ -3968,6 +3971,7 @@ 539=Smart panel 540=En alarma 541=Monitoring +542=Wandering alarm 1000=Humedad de ambiente diff --git a/HDL_ON/Common/ImageUtlis.cs b/HDL_ON/Common/ImageUtlis.cs index 918483d..fe739d5 100644 --- a/HDL_ON/Common/ImageUtlis.cs +++ b/HDL_ON/Common/ImageUtlis.cs @@ -466,6 +466,47 @@ } } + + + /// <summary> + /// 涓嬭浇鐢ㄦ埛澶村儚 + /// </summary> + /// <param name="imageUrl"></param> + /// <param name="ignoreCache">蹇界暐缂撳瓨</param> + /// <param name="regionUrl">鎸囧畾鏈嶅姟鍣ㄥ煙鍚�,浼犵┖涓轰娇鐢ㄥ綋鍓嶇敤鎴峰湴鍧�</param> + /// <returns></returns> + public byte[] DownImageByImageUrl(string imageUrl, bool ignoreCache = false) + { + try + { + if (string.IsNullOrEmpty(imageUrl)) return null; + + byte[] imageBytes; + if (!ignoreCache && Exists(imageUrl)) + { + //鏈湴鏈夌紦瀛� + imageBytes = ReadFile(imageUrl); + } + else + { + //涓嬭浇 + imageBytes = HttpUtil.HttpsDownload(imageUrl); + if (imageBytes != null) + { + //淇濆瓨鍒版湰鍦� + WriteFileByBytes(imageUrl, imageBytes); + } + + } + return imageBytes; + } + catch + { + return null; + } + } + + #endregion } } diff --git a/HDL_ON/Common/R.cs b/HDL_ON/Common/R.cs index 2fe7f18..afca8c7 100644 --- a/HDL_ON/Common/R.cs +++ b/HDL_ON/Common/R.cs @@ -4,6 +4,11 @@ { public static class StringId { + + /// <summary> + /// 寰樺緤鎶ヨ + /// </summary> + public const int WanderingAlarm = 542; /// <summary> /// 鐩戞帶涓� /// </summary> diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs index 5bd24e8..bd24f80 100644 --- a/HDL_ON/DAL/DriverLayer/Control.cs +++ b/HDL_ON/DAL/DriverLayer/Control.cs @@ -460,6 +460,7 @@ var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlFunctionTopic, functionControlDataJson); new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id,resend); MainPage.Log($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}"); + //Control.Ins.MsgInfoList.Add($"鏈湴閫氳 鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}"+"\r\n"); } } //杩滅▼閫氳 diff --git a/HDL_ON/DAL/Mqtt/MqttClient.cs b/HDL_ON/DAL/Mqtt/MqttClient.cs index 60f8d2a..1f26a36 100644 --- a/HDL_ON/DAL/Mqtt/MqttClient.cs +++ b/HDL_ON/DAL/Mqtt/MqttClient.cs @@ -518,6 +518,8 @@ var revString = Encoding.UTF8.GetString(bytes); MainPage.Log($"mqtt 鐘舵�佹洿鏂�:{revString}"); Control.Ins.UpdataFunctionStatus(revString, null, true); + //Control.Ins.MsgInfoList.Add($"mqtt 鐘舵�佹洿鏂�:{revString}"); + //Control.Ins.MsgInfoList.Add(revString + "\r\n"); } //涓�绔彛鏁版嵁瑙f瀽 diff --git a/HDL_ON/DAL/Server/HttpServerRequest.cs b/HDL_ON/DAL/Server/HttpServerRequest.cs index 0fdea4a..16750aa 100644 --- a/HDL_ON/DAL/Server/HttpServerRequest.cs +++ b/HDL_ON/DAL/Server/HttpServerRequest.cs @@ -2621,6 +2621,23 @@ var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_FL_Check, requestJson); return pack; } + /// <summary> + /// 鑾峰彇闂ㄥ彛鏈哄緲寰婃姤璀︽暟鎹� + /// </summary> + /// <param name="deviceId"></param> + /// <returns></returns> + public ResponsePackNew GetAlarmRecords(string deviceId,string alarmType = "PROWLER_ALARM") + { + Dictionary<string, object> d = new Dictionary<string, object>(); + d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id); + d.Add("deviceId", deviceId); + d.Add("alarmType", alarmType); + var requestJson = HttpUtil.GetSignRequestJson(d); + var pack = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_ALARM_RECORDS, requestJson); + return pack; + + } + #endregion #region 鈻� 闂ㄩ攣鐩稿叧____________________________ diff --git a/HDL_ON/DAL/Server/NewAPI.cs b/HDL_ON/DAL/Server/NewAPI.cs index d1d23bb..b569143 100644 --- a/HDL_ON/DAL/Server/NewAPI.cs +++ b/HDL_ON/DAL/Server/NewAPI.cs @@ -668,6 +668,21 @@ /// 鍔ㄦ�佸瘑鐮�/浜岀淮鐮佸紑閿� /// </summary> public const string API_POST_FL_QRcode = "http://112.74.164.111:180/api.php/Device/setdynamicpwd"; + /// <summary> + /// 涓存椂瀵嗙爜 + /// 浜岀淮鐮� + /// </summary> + public const string API_Post_Temporary_Password = "/home-wisdom/app/freeview/temppwd/add"; + /// <summary> + /// 鑾峰彇闂ㄧ浜岀淮鐮� + /// </summary> + public const string API_POST_OwnerQRCode = "/community-wisdom/doorDevice/getOwnerQRCode"; + /// <summary> + /// 寰樺緤鎶ヨ + /// </summary> + public const string API_POST_ALARM_RECORDS = "/home-wisdom/app/device/alarmRecords/listByPage"; + + #endregion diff --git a/HDL_ON/HDL_ON.projitems b/HDL_ON/HDL_ON.projitems index 747b9a5..948c13d 100644 --- a/HDL_ON/HDL_ON.projitems +++ b/HDL_ON/HDL_ON.projitems @@ -498,6 +498,7 @@ <Compile Include="$(MSBuildThisFileDirectory)UI\UI0-Stan\Form\DeviceFunction4CardCommonForm.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ContentView\FhContentView.cs" /> <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\ContentView\AcContentView.cs" /> + <Compile Include="$(MSBuildThisFileDirectory)UI\UI2\FuntionControlView\Video\WanderingAlarmPage.cs" /> </ItemGroup> <ItemGroup> <Folder Include="$(MSBuildThisFileDirectory)Entity\Device\" /> diff --git a/HDL_ON/UI/UI1-Login/LoginPage.cs b/HDL_ON/UI/UI1-Login/LoginPage.cs index 8c52aca..988eb0c 100644 --- a/HDL_ON/UI/UI1-Login/LoginPage.cs +++ b/HDL_ON/UI/UI1-Login/LoginPage.cs @@ -217,6 +217,7 @@ //etAccount.Text = "18316120654";//tujie //etAccount.Text = "13450425807";//榛勭婧� knx椤圭洰 etAccount.Text = "18244942707"; + etAccount.Text = "13826414433";//闄堜紵娼� 鑷爺鍙瀵硅 } else { diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs index ee6432c..6edd835 100644 --- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs +++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneAddPage.cs @@ -993,7 +993,9 @@ }) { IsBackground = true }.Start(); } - catch { } + catch (Exception ex) { + MainPage.Log("涓婁紶鍥剧墖寮傚父锛�" + ex.Message); + } } } } diff --git a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs index 703cb02..b4008c8 100644 --- a/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs +++ b/HDL_ON/UI/UI2/4-PersonalCenter/PersonalCenterPage.cs @@ -928,7 +928,7 @@ #endif #endregion - #region 鑾峰彇鏀寔 + //#region 鑾峰彇鏀寔 //FrameLayout supView = new FrameLayout() //{ // Height = Application.GetRealWidth(44), @@ -1022,7 +1022,7 @@ // BackgroundColor = CSS_Color.DividingLineColor //}; //supView.AddChidren(btnSupportViewLine); - #endregion + //#endregion #region 鍏充簬On Pro FrameLayout aboutView = new FrameLayout() diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs index fc82b32..36e51aa 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Video/ObjectClass.cs @@ -132,6 +132,11 @@ /// </summary> public string deviceName = string.Empty; /// <summary> + /// 鍖哄垎鏄媱鑰愬厠杩樻槸鑷爺 + /// 鐩墠鍙湁鑷爺鏈夊�硷細door.gate + /// </summary> + public string spk = string.Empty; + /// <summary> /// 璁惧id銆佸簭鍒楀彿銆乽uid /// </summary> public string deviceId = string.Empty; diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs index 6d0dd75..0f9942c 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoMainView.cs @@ -2,14 +2,16 @@ using HDL_ON.UI.Music; using System.Collections.Generic; using Shared; -using HDL_ON.Stan; -using ZXing.QrCode.Internal; -using static HDL_ON.UI.UI2.FuntionControlView.Video.VideoMethod; +using HDL_ON.UI.CSS; namespace HDL_ON.UI.UI2.FuntionControlView.Video { public class VideoMainView : FrameLayout { + + List<Video> ximoVideoList = new List<Video>(); + + /// <summary> /// 鍔犺浇鍙瀵硅UI /// </summary> @@ -17,6 +19,8 @@ /// <param name="videoList">鍙瀵硅鍒楄〃</param> public void Show(List<CallView> listCall, List<Video> videoList) { + ximoVideoList = videoList.FindAll((obj) => obj.spk == "door.gate"); + #region 甯冨眬鐣岄潰 this.BackgroundColor = MusicColor.ViewColor; var topView = new TopView(); @@ -191,11 +195,17 @@ }; bjFl.AddChidren(vv); - bool bol = haveFlVideo(videoList); + bool bol = haveQRCodeVideo(videoList); if (bol) { //闂ㄧ浜岀淮鐮佸浐瀹氭湁鐨�,铏氭嫙涓�涓嚭鏉� - videoList.Add(new Video { deviceName = Language.StringByID(StringId.menjinerweima), interphoneType = "100" }); + videoList.Add(new Video { deviceName = Language.StringByID(StringId.menjinerweima), interphoneType = "100",devType = "100" }); + } + if (ximoVideoList.Count > 0) + { + //寰樺緤鎶ヨ + videoList.Add(new Video { deviceName = Language.StringByID(StringId.WanderingAlarm), interphoneType = "222", devType = "222" }); + } //鏁扮粍涓暟 //int value = 15; @@ -217,10 +227,13 @@ }; vv.AddChidren(fL); int line = 0; + + #endregion for (int i = 1, j = 0; i <= videoList.Count; i++, j++) { var video = videoList[i - 1]; + #region var fLayout = new FrameLayout { @@ -239,6 +252,7 @@ UnSelectedImagePath = "VideoIcon/weiqiangji.png", }; fLayout.AddChidren(iconBtn); + var deviceNameBtn = new Button { @@ -267,19 +281,28 @@ //闂ㄥ彛鏈虹殑鐐瑰嚮浜嬩欢 clickBtn.MouseUpEventHandler += (sender, e) => { + if (video.devType == "VisitorQrCode") + { + + return; + } + else if (video.devType == "FaceManagement") + { + + return; + } + var video2 = clickBtn.Tag as Video; if (video2.devType == "100") { - //闂ㄧ浜岀淮鐮佸浐瀹氭湁鐨� - VideoSend.GetQRcode(this, video2, (tag, paw) => - { - if (tag) - { - //娉ㄦ剰锛氬瘑鐮佹湁鍙兘寤舵椂1鍒嗛挓鐢熸晥 - View.ShowDialog showDialog = new View.ShowDialog(); - showDialog.QRcode(paw); - } - }); + ChooseVideoShowQRCode(); + + } + else if(video2.devType == "222") + { + ChooseAlarmShow(); + + } else { @@ -544,20 +567,313 @@ //鍒ゆ柇鏄惁鏈� 涓版灄鍙瀵硅 - private bool haveFlVideo(List<Video> videoList) + private bool haveQRCodeVideo(List<Video> videoList) { bool bol = false; for (int i = 0; i < videoList.Count; i++) { var _video = videoList[i]; - if (_video.interphoneType == "FLVI") + if (_video.interphoneType == "FLVI"|| _video.spk == "door.gate") + { return true; + } } return bol; } + + /// <summary> + /// 鍔犺浇鎻愮ず寮圭獥 + /// </summary> + public void ChooseVideoShowQRCode() + { + Dialog dialog = new Dialog() + { + BackgroundColor = CSS_Color.DialogTransparentColor1, + }; + + FrameLayout dialogView = new FrameLayout(); + dialog.AddChidren(dialogView); + dialogView.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + }; + + var contentView = new FrameLayout() + { + Gravity = Gravity.Center, + Width = Application.GetRealWidth(270), + Height = Application.GetRealHeight(280), + BackgroundColor = CSS_Color.MainBackgroundColor, + BorderColor = 0x00000000, + BorderWidth = 0, + Radius = (uint)Application.GetMinRealAverage(10), + }; + dialogView.AddChidren(contentView); + + var btnTitle = new Button() + { + Height = Application.GetRealHeight(64), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.FirstLevelTitleColor, + TextID = StringId.menjinerweima, + TextSize = CSS_FontSize.SubheadingFontSize, + }; + contentView.AddChidren(btnTitle); + + var listView = new VerticalScrolViewLayout() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(70), + Width = Application.GetRealWidth(230), + Height = Application.GetRealHeight(200), + }; + contentView.AddChidren(listView); + + if (ximoVideoList.Count == 1) + { + Loading loading = new Loading(); + contentView.AddChidren(loading); + loading.Start(""); + new System.Threading.Thread(() => + { + try + { + var pack = VideoSend.GetQRcode(); + var pairs = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AccessControlQRode>>(pack.Data.ToString()); + if (pairs.Count > 0) + { + Application.RunOnMainThread(() => + { + ImageView codeImage = new ImageView() + { + Gravity = Gravity.Center, + Height = Application.GetRealWidth(200), + Width = Application.GetRealWidth(200), + ImageBytes = Scan.BytesFromText(pairs[0].qrcode, Application.GetRealWidth(200), Application.GetRealWidth(200)), + }; + contentView.AddChidren(codeImage); + }); + } + } + catch (Exception ex) + { + MainPage.Log($"鑾峰彇闂ㄧ浜岀淮鐮佸紓甯革細{ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => + { + if (loading != null) + { + loading.Hide(); + loading.RemoveFromParent(); + } + }); + } + }) + { IsBackground = true }.Start(); + } + else + { + + foreach (var v in ximoVideoList) + { + Button btnMsg = new Button() + { + Gravity = Gravity.CenterHorizontal, + Height = Application.GetRealHeight(50), + Width = Application.GetRealHeight(160), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.TextualColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = v.deviceName, + Radius = (uint)Application.GetRealWidth(5), + BackgroundColor = CSS_Color.DividingLineColor, + IsMoreLines = true, + }; + listView.AddChidren(btnMsg); + + listView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); + + btnMsg.MouseUpEventHandler = (sender, e) => + { + + + if (v.spk == "door.gate") + { + Loading loading = new Loading(); + contentView.AddChidren(loading); + loading.Start(""); + new System.Threading.Thread(() => + { + try + { + var pack = VideoSend.GetQRcode(); + var pairs = Newtonsoft.Json.JsonConvert.DeserializeObject<List<AccessControlQRode>>(pack.Data.ToString()); + if (pairs.Count > 0) + { + Application.RunOnMainThread(() => + { + ImageView codeImage = new ImageView() + { + Gravity = Gravity.Center, + Height = Application.GetRealWidth(200), + Width = Application.GetRealWidth(200), + ImageBytes = Scan.BytesFromText(pairs[0].qrcode, Application.GetRealWidth(200), Application.GetRealWidth(200)), + }; + contentView.AddChidren(codeImage); + }); + } + } + catch (Exception ex) + { + MainPage.Log($"鑾峰彇闂ㄧ浜岀淮鐮佸紓甯革細{ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => + { + if (loading != null) + { + loading.Hide(); + loading.RemoveFromParent(); + } + }); + } + }) + { IsBackground = true }.Start(); + return; + } + + //闂ㄧ浜岀淮鐮佸浐瀹氭湁鐨� + VideoSend.GetQRcode(this, v, (tag, paw) => + { + if (tag) + { + //娉ㄦ剰锛氬瘑鐮佹湁鍙兘寤舵椂1鍒嗛挓鐢熸晥 + View.ShowDialog showDialog = new View.ShowDialog(); + showDialog.QRcode(paw); + } + }); + dialog.Close(); + }; + } + } + dialog.Show(); + + } + + + /// <summary> + /// 閫夋嫨寰樺緤鎶ヨ鍒楄〃鏄剧ず + /// </summary> + public void ChooseAlarmShow() + { + Dialog dialog = new Dialog() + { + BackgroundColor = CSS_Color.DialogTransparentColor1, + }; + + FrameLayout dialogView = new FrameLayout(); + dialog.AddChidren(dialogView); + dialogView.MouseUpEventHandler = (sender, e) => { + dialog.Close(); + }; + + var contentView = new FrameLayout() + { + Gravity = Gravity.Center, + Width = Application.GetRealWidth(270), + Height = Application.GetRealHeight(280), + BackgroundColor = CSS_Color.MainBackgroundColor, + BorderColor = 0x00000000, + BorderWidth = 0, + Radius = (uint)Application.GetMinRealAverage(10), + }; + dialogView.AddChidren(contentView); + + var btnTitle = new Button() + { + Height = Application.GetRealHeight(64), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.FirstLevelTitleColor, + TextID = StringId.menjinerweima, + TextSize = CSS_FontSize.SubheadingFontSize, + }; + contentView.AddChidren(btnTitle); + + var listView = new VerticalScrolViewLayout() + { + Gravity = Gravity.CenterHorizontal, + Y = Application.GetRealHeight(70), + Width = Application.GetRealWidth(230), + Height = Application.GetRealHeight(200), + }; + contentView.AddChidren(listView); + + if (ximoVideoList.Count == 1) + { + var wanderingAlarmPage = new WanderingAlarmPage(); + MainPage.BasePageView.AddChidren(wanderingAlarmPage); + wanderingAlarmPage.LoadPage(ximoVideoList[0].deviceId); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + + } + else + { + + foreach (var v in ximoVideoList) + { + Button btnMsg = new Button() + { + Gravity = Gravity.CenterHorizontal, + Height = Application.GetRealHeight(50), + Width = Application.GetRealHeight(160), + TextAlignment = TextAlignment.Center, + TextColor = CSS_Color.TextualColor, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = v.deviceName, + Radius = (uint)Application.GetRealWidth(5), + BackgroundColor = CSS_Color.DividingLineColor, + IsMoreLines = true, + }; + listView.AddChidren(btnMsg); + + listView.AddChidren(new Button() { Height = Application.GetRealHeight(12) }); + + btnMsg.MouseUpEventHandler = (sender, e) => + { + + + var wanderingAlarmPage = new WanderingAlarmPage(); + MainPage.BasePageView.AddChidren(wanderingAlarmPage); + wanderingAlarmPage.LoadPage(v.deviceId); + MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; + + dialog.Close(); + }; + } + } + dialog.Show(); + + } + + } + public class AccessControlQRode + { + public string title = string.Empty; + public string codeType = string.Empty; + public string userName = string.Empty; + public string houseFullName = string.Empty; + public string communityName = string.Empty; + public string desc = string.Empty; + public string businessType = string.Empty; + public string qrcode = string.Empty; + } + + } diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs index ae759bb..9388f8b 100644 --- a/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs +++ b/HDL_ON/UI/UI2/FuntionControlView/Video/VideoSend.cs @@ -3,6 +3,7 @@ using System.IO; using System.Net; using HDL_ON.DAL.Server; +using HDL_ON.Entity; using HDL_ON.UI.UI2.PersonalCenter.PirDevice; using Newtonsoft.Json.Linq; using Shared; @@ -81,6 +82,18 @@ return revertObj; } + public static ResponsePackNew GetQRcode() + { + var jobject = new JObject(); + jobject.Add("userId", UserInfo.Current.ID); + jobject.Add("userType", "C"); + jobject.Add("houseId", DB_ResidenceData.Instance.CurrentRegion.id); + jobject.Add("codeSecond", "60"); + var requestJson = HttpUtil.GetSignRequestJson(jobject);//鏁版嵁绛惧悕 + var revertObj = HttpUtil.RequestHttpsPostFroHome(NewAPI.API_POST_OwnerQRCode, requestJson); + return revertObj; + } + /// <summary> /// 涓婃姤鍔ㄦ�佸紑閿佸瘑鐮�(娉ㄦ剰锛氬瘑鐮佹湁鍙兘寤舵椂1鍒嗛挓鐢熸晥) /// </summary> @@ -90,12 +103,21 @@ bool if_bool = false; //涓存椂瀵嗙爜 string pwd = VideoMethod.GetCode(); - var jobject = new JObject(); jobject.Add("communityID", video.flRoomBindVO.flCmtId);//绀惧尯ID - jobject.Add("fromTime", VideoMethod.GetCurrentTimeStamp());//寮�濮嬫椂闂� - jobject.Add("validTime", VideoMethod.GetTomorrowTimeStamp());//鏈夋晥鏃堕棿 - jobject.Add("unitno", video.flRoomBindVO.flBuildingId);//鍗曞厓鍙� - jobject.Add("roomno", video.flRoomBindVO.flRoomId);//鎴块棿鍙� - jobject.Add("code", pwd); jobject.Add("userKey", video.flRoomBindVO.id); jobject.Add("timestamp", VideoMethod.GetCurrentTimeStamp()); jobject.Add("secretKey", video.flRoomBindVO.flSecretKey); jobject.Add("method", "setdynamicpwd"); jobject.Add("numTimes", "5"); + var jobject = new JObject(); + + + jobject.Add("communityID", video.flRoomBindVO.flCmtId);//绀惧尯ID + jobject.Add("fromTime", VideoMethod.GetCurrentTimeStamp());//寮�濮嬫椂闂� + jobject.Add("validTime", VideoMethod.GetTomorrowTimeStamp());//鏈夋晥鏃堕棿 + jobject.Add("unitno", video.flRoomBindVO.flBuildingId);//鍗曞厓鍙� + jobject.Add("roomno", video.flRoomBindVO.flRoomId);//鎴块棿鍙� + jobject.Add("code", pwd); + jobject.Add("userKey", video.flRoomBindVO.id); + jobject.Add("timestamp", VideoMethod.GetCurrentTimeStamp()); + jobject.Add("secretKey", video.flRoomBindVO.flSecretKey); + jobject.Add("method", "setdynamicpwd"); + jobject.Add("numTimes", "5"); + //鍔犺浇log Loading loading = new Loading(); frame.AddChidren(loading); @@ -104,7 +126,9 @@ { try { - var str = HttpWebRequest(NewAPI.API_POST_FL_QRcode, jobject.ToString(), "POST"); + string str = ""; + + str = HttpWebRequest(NewAPI.API_POST_FL_QRcode, jobject.ToString(), "POST"); if (!string.IsNullOrEmpty(str)) { var json = JObject.Parse(str); diff --git a/HDL_ON/UI/UI2/FuntionControlView/Video/WanderingAlarmPage.cs b/HDL_ON/UI/UI2/FuntionControlView/Video/WanderingAlarmPage.cs new file mode 100644 index 0000000..b39c4ce --- /dev/null +++ b/HDL_ON/UI/UI2/FuntionControlView/Video/WanderingAlarmPage.cs @@ -0,0 +1,188 @@ +锘縰sing System; +using System.Collections.Generic; +using HDL_ON.DAL.Server; +using HDL_ON.UI.CSS; +using Shared; +namespace HDL_ON.UI.UI2.FuntionControlView.Video +{ + public class WanderingAlarmPage : FrameLayout + { + FrameLayout bodyView; + public WanderingAlarmPage() + { + bodyView = this; + } + + VerticalScrolViewLayout contentView; + + public void LoadPage(string deviceId) + { + bodyView.BackgroundColor = CSS_Color.MainBackgroundColor; + new TopViewDiv(bodyView, Language.StringByID(StringId.WanderingAlarm)).LoadTopView(); + + var btnTipMsg = new Button() + { + Y = Application.GetRealHeight(64), + X = Application.GetRealWidth(20), + Height = Application.GetRealHeight(58), + Width = Application.GetRealWidth(318), + TextAlignment = TextAlignment.CenterLeft, + TextColor = CSS_Color.PromptingColor1, + TextSize = CSS_FontSize.PromptFontSize_FirstLevel, + Text = "*鍙瀵硅鍙互鑷姩璇嗗埆闂ㄥ彛鍙枒浜哄憳锛屽苟鍙戣捣寰樺緤鎶ヨ璁板綍" + }; + if(Language.CurrentLanguage != "Chinese") + { + btnTipMsg.Text = "*Visual intercom can automatically identify suspicious persons at the door and initiate wandering alarm records"; + } + bodyView.AddChidren(btnTipMsg); + + contentView = new VerticalScrolViewLayout() + { + Y = Application.GetRealHeight(64 + 62), + Height = Application.GetRealHeight(550), + }; + bodyView.AddChidren(contentView); + + Loading loading = new Loading(); + bodyView.AddChidren(loading); + loading.Start(""); + new System.Threading.Thread(()=> { + try + { + HttpServerRequest http = new HttpServerRequest(); + var pack = http.GetAlarmRecords(deviceId); + if (pack.Code == StateCode.SUCCESS) + { + var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<AlarmRecordInfoPack>(pack.Data.ToString()); + LoadSceneGallery(obj); + } + } + catch (Exception ex) + { + MainPage.Log($"璇诲彇寰樺緤鎶ヨ鏁版嵁寮傚父锛歿ex.Message}"); + } + finally + { + Application.RunOnMainThread(() => + { + if (loading != null) + { + loading.Hide(); + loading.RemoveFromParent(); + } + }); + } + }) { IsBackground = true }.Start(); + } + /// <summary> + /// 鍔犺浇鍦烘櫙鍥惧簱 + /// </summary> + void LoadSceneGallery(AlarmRecordInfoPack pack) + { + FrameLayout sceneImageRow = new FrameLayout() + { + Height = Application.GetRealWidth(128), + }; + Application.RunOnMainThread(() => + { + for (int i = 0; i < pack.list.Count; i++) + { + var item = pack.list[i]; + var imageBytes = ImageUtlis.Current.DownImageByImageUrl(item.alarmImg); + var sceneImageView = new ImageView() + { + Width = Application.GetRealWidth(172), + Height = Application.GetRealHeight(90), + Radius = (uint)Application.GetRealWidth(12), + ImageBytes = imageBytes + }; + var btnTime = new Button() + { + Width = Application.GetRealHeight(160), + Height = Application.GetRealHeight(41), + Y = Application.GetRealHeight(90), + Text = Utlis.UnixToDateTimeMS(item.alarmTime).ToString(), + TextColor = CSS_Color.FirstLevelTitleColor, + TextAlignment = TextAlignment.Center + }; + if (i % 2 == 0) + { + sceneImageRow = new FrameLayout() + { + Height = Application.GetRealHeight(90 + 53), + }; + contentView.AddChidren(sceneImageRow); + sceneImageView.X = Application.GetRealWidth(10); + sceneImageRow.AddChidren(sceneImageView); + btnTime.X = Application.GetRealWidth(10); + sceneImageRow.AddChidren(btnTime); + + } + else + { + sceneImageView.X = Application.GetRealWidth(194); + sceneImageRow.AddChidren(sceneImageView); + + btnTime.X = Application.GetRealWidth(194); + sceneImageRow.AddChidren(btnTime); + } + + + sceneImageView.MouseUpEventHandler = (sender, e) => + { + Dialog dialog = new Dialog(); + + FrameLayout dialogContentView = new FrameLayout(); + dialog.AddChidren(dialogContentView); + dialogContentView.MouseUpEventHandler = (sender, e) => + { + dialog.Close(); + }; + ImageView btnImage = new ImageView() + { + Gravity = Gravity.Center, + Height = Application.GetRealHeight(211), + ImageBytes = sceneImageView.ImageBytes, + }; + dialogContentView.AddChidren(btnImage); + + + dialog.Show(); + }; + System.Threading.Thread.Sleep(200); + + } + }); + } + + + } + + public class AlarmRecordInfoPack + { + public int totalCount = 0; + + public int totalPage = 0; + + public int pageNo = 0; + + public int pageSize = 0; + + public List<AlarmRecordInfo> list = new List<AlarmRecordInfo>(); + } + + /// <summary> + /// 寰樺緤鎶ヨ淇℃伅 + /// </summary> + public class AlarmRecordInfo + { + public string alarmImg = string.Empty; + + public long alarmTime; + + public string alarmType = string.Empty; + + public string alarmTypeDesc = string.Empty; + } +} -- Gitblit v1.8.0