From 9137222ece9b978eb97b5598f2eee6e070bcf9d6 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期五, 28 二月 2020 15:22:16 +0800 Subject: [PATCH] 2020-02-28 更新 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Light/UserDeviceToSocket.cs | 81 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 80 insertions(+), 1 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Light/UserDeviceToSocket.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Light/UserDeviceToSocket.cs index 789239d..dda83b0 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Light/UserDeviceToSocket.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Light/UserDeviceToSocket.cs @@ -185,7 +185,7 @@ /// 鎺у埗鎵�鏈夌殑鐏� /// </summary> /// <param name="b">The blue component.</param> - void controlAllLight (byte b) + void controlAllLightOld (byte b) { if (CommonPage.IsRemote) { if (!SmartHome.MqttCommon.IsGatewayOnline) { @@ -245,6 +245,85 @@ } }); } + + /// <summary> + /// 鎺у埗鎵�鏈夌殑鐏� + /// </summary> + /// <param name="b">The blue component.</param> + void controlAllLight (byte b) + { + if (CommonPage.IsRemote) { + if (!SmartHome.MqttCommon.IsGatewayOnline) { + new Alert ("", "Gateway offline" + ErrorCode.ControlFailure, "Close").Show (); + return; + } + } + showTip = true; + + System.Threading.Tasks.Task.Run (() => { + try { + int mSendCount = 0; + Application.RunOnMainThread (() => { + MainPage.Loading.Start ("Sending..."); + }); + foreach (var room in Room.Lists) { + if (string.IsNullOrEmpty (room.Name)) { + continue; + } + foreach (var common in room.DeviceList) { + //controlDeviceIndex++; + byte [] returnBytes = null; + if (common.Type == DeviceType.LightSwitchSocket || common.Type == DeviceType.LightEnergySocket) { + new System.Threading.Thread (() => { + mSendCount++; + returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { common.LoopID, b, 0, 0 }); + if (showTip) { + if (returnBytes == null) { + Application.RunOnMainThread (() => { + + var btnTip = new Button () { + Height = Application.GetRealHeight (140), + Text = common.Name + ErrorCode.ControlFailure, + BackgroundColor = 0xFFD7D7D7, + }; + MainPage.MainFrameLayout.AddChidren (btnTip); + btnTip.MouseUpEventHandler += (sender, e) => { + btnTip.RemoveFromParent (); + }; + + System.Threading.Tasks.Task.Run (() => { + System.Threading.Thread.Sleep (3000); + Application.RunOnMainThread (() => { + btnTip.RemoveFromParent (); + }); + }); + + }); + } + } + mSendCount--; + }) { IsBackground = true}.Start(); + + //绛夊緟100ms鍐嶅彂閫佺浜屼釜璁惧鏁版嵁 + System.Threading.Thread.Sleep (100); + + } + } + } + + + while (mSendCount > 0) { + System.Threading.Thread.Sleep (100); + } + } catch (Exception ex) { + Console.WriteLine (ex.Message); + } finally { + Application.RunOnMainThread (() => { + MainPage.Loading.Hide (); + }); + } + }); + } /// <summary> /// 閫氳繃璁惧绫诲瀷鏂瑰紡閫夋嫨璁惧 /// </summary> -- Gitblit v1.8.0