From 75c1e0d9f4e00edc2c1b915237b8bcee944b1652 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 04 六月 2020 15:17:28 +0800
Subject: [PATCH] 2020-06-04 1.更新
---
Crabtree/SmartHome/UI/SimpleControl/Phone/Light/UserDeviceToLight.cs | 203 ++++++++++++++++++++++++++++----------------------
1 files changed, 114 insertions(+), 89 deletions(-)
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Light/UserDeviceToLight.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Light/UserDeviceToLight.cs
index 5944f0a..c17cf22 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Light/UserDeviceToLight.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Light/UserDeviceToLight.cs
@@ -62,11 +62,11 @@
var btn = (Button)lightRow.GetChildren (j);
if (btn.Tag != null) {
if (updataType == 10) {
- if (btn.Tag.ToString () == DeviceType.LightEnergySocket.ToString () + "_Voltage" || btn.Tag.ToString () == DeviceType.LightEnergySwitch.ToString () + "_Voltage") {
+ if (btn.Tag.ToString () == DeviceType.LightEnergySwitch.ToString () + "_Voltage") {
btn.Text = energy.ToString () + " W";
}
} else if (updataType == 11) {
- if (btn.Tag.ToString () == DeviceType.LightEnergySocket.ToString () + "_Electric" || btn.Tag.ToString () == DeviceType.LightEnergySwitch.ToString () + "_Electric") {
+ if (btn.Tag.ToString () == DeviceType.LightEnergySwitch.ToString () + "_Electric") {
btn.Text = ((double)(Convert.ToDouble (energy) / 10)).ToString () + " kw.h";
}
}
@@ -92,7 +92,7 @@
if (light.Type == DeviceType.LightDimming || light.Type == DeviceType.LightMixDimming || light.Type == DeviceType.LightDALI) {
if ((light as LightDimming).CurrentBrightness > 0)
brighingCount++;
- } else if (light.Type == DeviceType.LightSwitch || light.Type == DeviceType.LightMixSwitch)
+ } else if (light.Type == DeviceType.LightSwitch || light.Type == DeviceType.LightMixSwitch || light.Type == DeviceType.LightEnergySwitch)
if ((light as LightSwitch).CurrentBrightness == 100)
brighingCount++;
if (light.Type == DeviceType.LightRGB)
@@ -180,7 +180,7 @@
}
}
//if (!update) {
- // Console.WriteLine ("閫�鍑烘洿鏂扮伅鍏�");
+ // Utlis.WriteLine ("閫�鍑烘洿鏂扮伅鍏�");
// return;
//}
Application.RunOnMainThread (() => {
@@ -228,7 +228,7 @@
}
});
});
- Console.WriteLine ("U1");
+ //Utlis.WriteLine ("U1");
}
bool showTip = true;
/// <summary>
@@ -249,6 +249,7 @@
System.Threading.Tasks.Task.Run (() => {
try {
+ int mSendCount = 0;
foreach (var room in Room.Lists) {
if (room == null)
continue;
@@ -256,88 +257,111 @@
continue;
}
foreach (var common in room.DeviceList) {
+
byte [] returnBytes = null;
if (common.Type == DeviceType.LightDimming || common.Type == DeviceType.LightSwitch || common.Type == DeviceType.LightRGB || common.Type == DeviceType.LightEnergySwitch
|| common.Type == DeviceType.LightMixDimming || common.Type == DeviceType.LightMixSwitch || common.Type == DeviceType.LightDALI) {
- if (common.Type == DeviceType.LightDimming || common.Type == DeviceType.LightDALI) {
- var light = (LightDimming)common;
- if (b == 100) {
- if (light.LastOpenBrightness == 0) {
- returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.LoopID, b, light.DelayTimeHeight, light.DelayTimeLow });
- } else
- returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.LoopID, light.LastOpenBrightness, light.DelayTimeHeight, light.DelayTimeLow });
- } else
- returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.LoopID, b, light.DelayTimeHeight, light.DelayTimeLow });
- } else if (common.Type == DeviceType.LightSwitch || common.Type == DeviceType.LightEnergySwitch) {
- returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { common.LoopID, b, ((LightSwitch)common).DelayTimeHeight, ((LightSwitch)common).DelayTimeLow });
- } else if (common.Type == DeviceType.LightRGB) {
- var light = (LightLogic)common;
- byte b2 = b;
- if (b2 == 100) {
- if (light.LastOpenBrightness != 0) {
- b2 = light.LastOpenBrightness;
- }
- }
- returnBytes = Control.ControlBytesSendHasReturn (Command.SetLogicLoopColor, common.SubnetID, common.DeviceID, new byte [] {
+
+ new System.Threading.Thread (() => {
+ mSendCount++;
+
+ if (common.Type == DeviceType.LightDimming || common.Type == DeviceType.LightDALI) {
+ var light = (LightDimming)common;
+ if (b == 100) {
+ if (light.LastOpenBrightness == 0) {
+ returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.LoopID, b, light.DelayTimeHeight, light.DelayTimeLow });
+ } else
+ returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.LoopID, light.LastOpenBrightness, light.DelayTimeHeight, light.DelayTimeLow });
+ } else
+ returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.LoopID, b, light.DelayTimeHeight, light.DelayTimeLow });
+ } else if (common.Type == DeviceType.LightSwitch || common.Type == DeviceType.LightEnergySwitch) {
+ returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { common.LoopID, b, ((LightSwitch)common).DelayTimeHeight, ((LightSwitch)common).DelayTimeLow });
+ } else if (common.Type == DeviceType.LightRGB) {
+ var light = (LightLogic)common;
+ byte b2 = b;
+ if (b2 == 100) {
+ if (light.LastOpenBrightness != 0) {
+ b2 = light.LastOpenBrightness;
+ }
+ }
+ returnBytes = Control.ControlBytesSendHasReturn (Command.SetLogicLoopColor, common.SubnetID, common.DeviceID, new byte [] {
common.LoopID, b2, 254, light.CustomDelayTimeOpen,light.CustomDelayTimeClose,
3,light.RStatus,light.GStatus,light.BStatus,0,0});
- } else if (common.Type == DeviceType.LightMixDimming) {
- var light = (LightMixDimming)common;
- if (b == 100) {
- if (light.LastOpenBrightness == 0) {
- returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.PhysicsLoopID, b, light.DelayTimeHeight, light.DelayTimeLow });
- } else
- returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.PhysicsLoopID, light.LastOpenBrightness, light.DelayTimeHeight, light.DelayTimeLow });
- } else
- returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.PhysicsLoopID, b, light.DelayTimeHeight, light.DelayTimeLow });
- } else if (common.Type == DeviceType.LightMixSwitch) {
- var light = (LightMixSwitch)common;
- returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.PhysicsLoopID, b, light.DelayTimeHeight, light.DelayTimeLow });
- } else {
- continue;
- }
- if (showTip) {
- if (returnBytes == null) {
- Application.RunOnMainThread (() => {
+ } else if (common.Type == DeviceType.LightMixDimming) {
+ var light = (LightMixDimming)common;
+ if (b == 100) {
+ if (light.LastOpenBrightness == 0) {
+ returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.PhysicsLoopID, b, light.DelayTimeHeight, light.DelayTimeLow });
+ } else
+ returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.PhysicsLoopID, light.LastOpenBrightness, light.DelayTimeHeight, light.DelayTimeLow });
+ } else
+ returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.PhysicsLoopID, b, light.DelayTimeHeight, light.DelayTimeLow });
+ } else if (common.Type == DeviceType.LightMixSwitch) {
+ var light = (LightMixSwitch)common;
+ returnBytes = Control.ControlBytesSendHasReturn (Command.SetSingleLight, common.SubnetID, common.DeviceID, new byte [] { light.PhysicsLoopID, b, light.DelayTimeHeight, light.DelayTimeLow });
+ } else {
+ returnBytes = new byte [] { 0x00 };
+ }
+ 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 ();
- //MainPage.MainFrameLayout.Remove (btnTip);
- //showTip = false;
- };
+ 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 ();
+ //MainPage.MainFrameLayout.Remove (btnTip);
+ //showTip = false;
+ };
- System.Threading.Tasks.Task.Run (() => {
- System.Threading.Thread.Sleep (3000);
- Application.RunOnMainThread (() => {
- btnTip.RemoveFromParent ();
- //MainPage.MainFrameLayout.Remove (btnTip);
- });
- });
+ System.Threading.Tasks.Task.Run (() => {
+ System.Threading.Thread.Sleep (3000);
+ Application.RunOnMainThread (() => {
+ btnTip.RemoveFromParent ();
+ //MainPage.MainFrameLayout.Remove (btnTip);
+ });
+ });
- });
- }
- }
+ });
+ }
+ }
+
+ mSendCount--;
+ }) { IsBackground = true }.Start();
+
+ //绛夊緟100ms鍐嶅彂閫佺浜屼釜璁惧鏁版嵁
+ System.Threading.Thread.Sleep (100);
}
+
+
+
+
}
}
+
+
+ while (mSendCount > 0) {
+ System.Threading.Thread.Sleep (100);
+ }
+
+
} catch {
- Console.WriteLine ("controlAllLight catch");
+ Utlis.WriteLine ("controlAllLight catch");
} finally {
Application.RunOnMainThread (() => {
MainPage.Loading.Hide ();
});
- //Console.WriteLine ("controlAllLight Loading.Hide");
+ //Utlis.WriteLine ("controlAllLight Loading.Hide");
}
});
}
+
/// <summary>
/// 閫氳繃璁惧绫诲瀷鏂瑰紡閫夋嫨璁惧
/// </summary>
@@ -559,14 +583,14 @@
var lightList = new List<Common> ();
foreach (var room in Room.Lists) {
if (room == null) {
- Console.WriteLine ("Null is Room");
+ Utlis.WriteLine ("Null is Room");
continue;
}
- Console.WriteLine ("RoomCount" + Room.Lists.Count);
+ Utlis.WriteLine ("RoomCount" + Room.Lists.Count);
- Console.WriteLine (room.Name);
+ Utlis.WriteLine (room.Name);
if (string.IsNullOrEmpty (room.Name)) {
- Console.WriteLine ("Null is Room Name");
+ Utlis.WriteLine ("Null is Room Name");
continue;
}
foreach (var common in room.DeviceList) {
@@ -576,7 +600,7 @@
} else if (common.Type == DeviceType.LightDimming || common.Type == DeviceType.LightDALI || common.Type == DeviceType.LightMixDimming) {
LightCount++;
lightList.Add (common);
- } else if (common.Type == DeviceType.LightRGB || common.Type == DeviceType.LightEnergySwitch || common.Type == DeviceType.LightEnergySocket) {//2020-01-17
+ } else if (common.Type == DeviceType.LightRGB || common.Type == DeviceType.LightEnergySwitch) {//2020-01-17
LightCount++;
lightList.Add (common);
}
@@ -648,7 +672,7 @@
};
lightView.AddChidren (tempSwitch);
- if (common.Type == DeviceType.LightEnergySwitch || common.Type == DeviceType.LightEnergySocket) {
+ if (common.Type == DeviceType.LightEnergySwitch) {
Button btnEnergy = new Button () {
Width = Application.GetRealWidth (90),
Height = Application.GetRealHeight (30),
@@ -689,11 +713,12 @@
//Control.ControlBytesSend (Command.SetSingleLight, light.SubnetID, light.DeviceID, new byte [] { sendLoopID, (byte)light.CurrentBrightness, light.DelayTimeHeight, light.DelayTimeLow });
SendControl.SendControlSetSingleLight (light, new byte [] { sendLoopID, (byte)mSetBrightness, light.DelayTimeHeight, light.DelayTimeLow });
- new System.Threading.Thread (() => {
- Control.ControlBytesSend (Command.ReadAnalogValue, light.SubnetID, light.DeviceID, new byte [] { 10, light.LoopID }, SendCount.Zero);
- Control.ControlBytesSend (Command.ReadAnalogValue, light.SubnetID, light.DeviceID, new byte [] { 11, light.LoopID }, SendCount.Zero);
- }) { IsBackground = true }.Start ();
-
+ if (common.Type == DeviceType.LightEnergySwitch) {
+ new System.Threading.Thread (() => {
+ Control.ControlBytesSend (Command.ReadAnalogValue, light.SubnetID, light.DeviceID, new byte [] { 10, light.LoopID }, SendCount.Zero);
+ Control.ControlBytesSend (Command.ReadAnalogValue, light.SubnetID, light.DeviceID, new byte [] { 11, light.LoopID }, SendCount.Zero);
+ }) { IsBackground = true }.Start ();
+ }
};
if (light.CurrentBrightness == 100) {
@@ -962,10 +987,10 @@
for (int i = 0; i < EnergtLightList.Count; i++) {
var c = EnergtLightList [i];
Control.ControlBytesSend (Command.ReadAnalogValue, c.SubnetID, c.DeviceID, new byte [] { 10, c.LoopID }, SendCount.Zero);
- if (c.Type == DeviceType.LightEnergySwitch) {
+ //if (c.Type == DeviceType.LightEnergySwitch) {
Control.ControlBytesSend (Command.ReadAnalogValue, c.SubnetID, c.DeviceID, new byte [] { 11, c.LoopID }, SendCount.Zero);
- }
- System.Threading.Thread.Sleep (500);
+ //}
+ System.Threading.Thread.Sleep (200);
}
System.Threading.Thread.Sleep (10000);
} catch {
@@ -1025,7 +1050,7 @@
}
#endregion
- Console.WriteLine ("L6");
+ Utlis.WriteLine ("L6");
}
@@ -1040,12 +1065,12 @@
{
if (isCheckIsReadingAll) {
if (IsReadingAll && !isRead) {
- Console.WriteLine ("============>IsReadingAll Light璇诲彇涓�");
+ Utlis.WriteLine ("============>IsReadingAll Light璇诲彇涓�");
return;
}
}
#if DEBUG
- Console.WriteLine ("============>readAllStatus Light 寮�濮嬭鍙�");
+ Utlis.WriteLine ("============>readAllStatus Light 寮�濮嬭鍙�");
#endif
if (isRead) {
foreach (Room room in Room.Lists) {
@@ -1053,7 +1078,7 @@
continue;
}
var list = room.DeviceList.FindAll ((obj) => {
- return (obj.Type == DeviceType.LightDimming || obj.Type == DeviceType.LightSwitch || obj.Type == DeviceType.LightLogic || obj.Type == DeviceType.LightEnergySocket || obj.Type == DeviceType.LightEnergySwitch
+ return (obj.Type == DeviceType.LightDimming || obj.Type == DeviceType.LightSwitch || obj.Type == DeviceType.LightLogic || obj.Type == DeviceType.LightEnergySwitch
|| obj.Type == DeviceType.LightMixDimming || obj.Type == DeviceType.LightMixSwitch || obj.Type == DeviceType.FanModule);
});
foreach (Common common in list) {
@@ -1080,7 +1105,7 @@
//}
var list = room.DeviceList.FindAll ((obj) => {
return obj.LastUpdateTime.AddMinutes (Common.Time) <= DateTime.Now && (obj.Type == DeviceType.LightDimming || obj.Type == DeviceType.LightSwitch || obj.Type == DeviceType.LightLogic
- || obj.Type == DeviceType.LightEnergySwitch || obj.Type == DeviceType.LightEnergySocket || obj.Type == DeviceType.LightMixDimming || obj.Type == DeviceType.LightMixSwitch || obj.Type == DeviceType.FanModule);
+ || obj.Type == DeviceType.LightEnergySwitch || obj.Type == DeviceType.LightMixDimming || obj.Type == DeviceType.LightMixSwitch || obj.Type == DeviceType.FanModule);
});
foreach (Common common in list) {
var s = common.Type + "_" + common.SubnetID + "_" + common.DeviceID;
@@ -1089,8 +1114,8 @@
continue;
}
readList.Add (s);
- Thread.Sleep (500);
- Control.ControlBytesSendHasReturn (Command.ReadLightEquipmentAllLoopBrightness, common.SubnetID, common.DeviceID, new byte [] { });
+ Thread.Sleep (200);
+ Control.ControlBytesSend (Command.ReadLightEquipmentAllLoopBrightness, common.SubnetID, common.DeviceID, new byte [] { });
}
var listGRB = room.DeviceList.FindAll ((obj) => {
return obj.LastUpdateTime.AddMinutes (Common.Time) <= DateTime.Now && (obj.Type == DeviceType.LightRGB);
@@ -1102,8 +1127,8 @@
continue;
}
readList.Add (s);
- Thread.Sleep (500);
- Control.ControlBytesSendHasReturn (Command.ReadLogicLoopColor, common.SubnetID, common.DeviceID, new byte [] { common.LoopID });
+ Thread.Sleep (200);
+ Control.ControlBytesSend (Command.ReadLogicLoopColor, common.SubnetID, common.DeviceID, new byte [] { common.LoopID });
}
}
--
Gitblit v1.8.0