| | |
| | | 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") { |
| | | btn.Text = ((double)(Convert.ToDouble (energy) / 10)).ToString () + " kw.h"; |
| | | } |
| | | } |
| | | ////2020-07-01 客户提出隐藏kwh |
| | | //else if (updataType == 11) { |
| | | // if (btn.Tag.ToString () == DeviceType.LightEnergySwitch.ToString () + "_Electric") { |
| | | // btn.Text = ((double)(Convert.ToDouble (energy) / 10)).ToString () + " kw.h"; |
| | | // } |
| | | //} |
| | | } |
| | | } |
| | | } |
| | |
| | | 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) |
| | |
| | | } |
| | | } |
| | | //if (!update) { |
| | | // Console.WriteLine ("退出更新灯光"); |
| | | // Utlis.WriteLine ("退出更新灯光"); |
| | | // return; |
| | | //} |
| | | Application.RunOnMainThread (() => { |
| | |
| | | } |
| | | }); |
| | | }); |
| | | Console.WriteLine ("U1"); |
| | | //Utlis.WriteLine ("U1"); |
| | | } |
| | | |
| | | private readonly object SendLocker = new object (); |
| | | bool showTip = true; |
| | | /// <summary> |
| | | /// 控制所有的灯 |
| | |
| | | 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) { |
| | | |
| | | new System.Threading.Thread (() => { |
| | | mSendCount++; |
| | | new System.Threading.Thread (() => { |
| | | try { |
| | | lock (SendLocker) { |
| | | mSendCount++; |
| | | } |
| | | //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 [] { |
| | | 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 { |
| | | returnBytes = new byte [] { 0x00 }; |
| | | } |
| | | 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(); |
| | | //mSendCount--; |
| | | } catch { } finally { |
| | | lock (SendLocker) { |
| | | mSendCount--; |
| | | } |
| | | } |
| | | }) { IsBackground = true }.Start (); |
| | | |
| | | //等待100ms再发送第二个设备数据 |
| | | 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"); |
| | | } |
| | | }); |
| | | } |
| | |
| | | roomView.AddChidren (btnNumber); |
| | | |
| | | Button btnLightIcon = new Button () { |
| | | Width = Application.GetRealWidth (100), |
| | | Height = Application.GetRealHeight (80), |
| | | Width = Application.GetMinRealAverage (100), |
| | | Height = Application.GetMinRealAverage (80), |
| | | Gravity = Gravity.CenterVertical, |
| | | UnSelectedImagePath = "Item/RH_Lights.png", |
| | | SelectedImagePath = "Item/RH_LightsSelected.png", |
| | |
| | | |
| | | Button downSelectedButton = new Button () { |
| | | X = Application.GetRealWidth (550), |
| | | Height = Application.GetRealHeight (50), |
| | | Width = Application.GetRealWidth (55), |
| | | Height = Application.GetMinRealAverage (50), |
| | | Width = Application.GetMinRealAverage (55), |
| | | UnSelectedImagePath = "Item/Down.png", |
| | | SelectedImagePath = "Item/DownSelected.png", |
| | | Gravity = Gravity.CenterVertical, |
| | |
| | | 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) { |
| | |
| | | } 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); |
| | | } |
| | |
| | | }; |
| | | 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), |
| | |
| | | }; |
| | | lightView.AddChidren (btnEnergy); |
| | | EnergtLightList.Add (common); |
| | | |
| | | if (common.Type == DeviceType.LightEnergySwitch) { |
| | | Button btnElectric = new Button () { |
| | | Width = Application.GetRealWidth (200), |
| | | Height = Application.GetRealHeight (35), |
| | | X = Application.GetRealWidth (320), |
| | | Y = tempSwitch.Bottom, |
| | | TextAlignment = TextAlignment.CenterRight, |
| | | TextColor = SkinStyle.Current.TextColor1, |
| | | SelectedTextColor = SkinStyle.Current.TextColor1, |
| | | Tag = common.Type.ToString () + "_Electric", |
| | | Text = "0 kw.h" |
| | | }; |
| | | lightView.AddChidren (btnElectric); |
| | | } |
| | | //2020-07-01 客户提出隐藏kwh |
| | | //if (common.Type == DeviceType.LightEnergySwitch) { |
| | | // Button btnElectric = new Button () { |
| | | // Width = Application.GetRealWidth (200), |
| | | // Height = Application.GetRealHeight (35), |
| | | // X = Application.GetRealWidth (320), |
| | | // Y = tempSwitch.Bottom, |
| | | // TextAlignment = TextAlignment.CenterRight, |
| | | // TextColor = SkinStyle.Current.TextColor1, |
| | | // SelectedTextColor = SkinStyle.Current.TextColor1, |
| | | // Tag = common.Type.ToString () + "_Electric", |
| | | // Text = "0 kw.h" |
| | | // }; |
| | | // lightView.AddChidren (btnElectric); |
| | | //} |
| | | } |
| | | |
| | | tempSwitch.MouseUpEventHandler += (sender3, e3) => { |
| | |
| | | //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); |
| | | //2020-07-01 客户提出隐藏kwh |
| | | //Control.ControlBytesSend (Command.ReadAnalogValue, light.SubnetID, light.DeviceID, new byte [] { 11, light.LoopID }, SendCount.Zero); |
| | | }) { IsBackground = true }.Start (); |
| | | } |
| | | }; |
| | | |
| | | if (light.CurrentBrightness == 100) { |
| | |
| | | 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) { |
| | | Control.ControlBytesSend (Command.ReadAnalogValue, c.SubnetID, c.DeviceID, new byte [] { 11, c.LoopID }, SendCount.Zero); |
| | | } |
| | | System.Threading.Thread.Sleep (500); |
| | | ////if (c.Type == DeviceType.LightEnergySwitch) { |
| | | ////2020-07-01 客户提出隐藏kwh |
| | | //Control.ControlBytesSend (Command.ReadAnalogValue, c.SubnetID, c.DeviceID, new byte [] { 11, c.LoopID }, SendCount.Zero); |
| | | ////} |
| | | System.Threading.Thread.Sleep (200); |
| | | } |
| | | System.Threading.Thread.Sleep (10000); |
| | | } catch { |
| | |
| | | } |
| | | #endregion |
| | | |
| | | Console.WriteLine ("L6"); |
| | | Utlis.WriteLine ("L6"); |
| | | } |
| | | |
| | | |
| | |
| | | { |
| | | 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) { |
| | |
| | | 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) { |
| | |
| | | //} |
| | | 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; |
| | |
| | | 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); |
| | |
| | | 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 }); |
| | | } |
| | | } |
| | | |