From d8545fbd1b36a6766c57c987e5d89862b470fed9 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 03 九月 2020 09:46:29 +0800
Subject: [PATCH] 2020-09-03 1.修改风扇默认为关状态。2.Alexa添加设备时,去掉空调和通用开关选择添加支持。 3.场景增加通用开关添加和发送控制支持,Alexa 的场景同样增加通用开关的支持。
---
Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs | 173 ++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 109 insertions(+), 64 deletions(-)
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs
index 4e53bb6..c725d7f 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs
@@ -1038,8 +1038,8 @@
}
title.Text = curtainmodel.Name;
Button btnOpenCurtain = new Button () {
- Width = Application.GetRealWidth (124),
- Height = Application.GetRealHeight (125),
+ Width = Application.GetMinRealAverage (124),
+ Height = Application.GetMinRealAverage (124),
UnSelectedImagePath = "Curtain/CurtainOpen.png",
SelectedImagePath = "Curtain/CurtainOpenSelected.png",
X = Application.GetRealWidth (20),
@@ -1057,8 +1057,8 @@
};
dialogBodyLayout.AddChidren (btnOpenLbl);
Button btnStopCurtain = new Button () {
- Width = Application.GetRealWidth (124),
- Height = Application.GetRealHeight (125),
+ Width = Application.GetMinRealAverage (124),
+ Height = Application.GetMinRealAverage (124),
X = Application.GetRealWidth ((480 - 124) / 2),
Y = btnOpenCurtain.Y,
UnSelectedImagePath = "Curtain/CurtainTimeOut.png",
@@ -1076,8 +1076,8 @@
};
dialogBodyLayout.AddChidren (btnStopLbl);
Button btnCloseCurtain = new Button () {
- Width = Application.GetRealWidth (124),
- Height = Application.GetRealHeight (125),
+ Width = Application.GetMinRealAverage (124),
+ Height = Application.GetMinRealAverage (124),
X = Application.GetRealWidth (480 - 124 - 35),
Y = btnOpenCurtain.Y,
UnSelectedImagePath = "Curtain/CurtainClose.png",
@@ -1178,8 +1178,8 @@
};
Button btnOpenCurtain = new Button () {
- Width = Application.GetRealWidth (124),
- Height = Application.GetRealHeight (125),
+ Width = Application.GetMinRealAverage (124),
+ Height = Application.GetMinRealAverage (124),
UnSelectedImagePath = "Curtain/CurtainOpen.png",
SelectedImagePath = "Curtain/CurtainOpenSelected.png",
X = Application.GetRealWidth (20),
@@ -1198,8 +1198,8 @@
};
dialogBodyLayout.AddChidren (btnOpenLbl);
Button btnStopCurtain = new Button () {
- Width = Application.GetRealWidth (124),
- Height = Application.GetRealHeight (125),
+ Width = Application.GetMinRealAverage (124),
+ Height = Application.GetMinRealAverage (124),
X = Application.GetRealWidth ((480 - 124) / 2),
Y = btnOpenCurtain.Y,
UnSelectedImagePath = "Curtain/CurtainTimeOut.png",
@@ -1217,8 +1217,8 @@
};
//dialogBodyLayout.AddChidren (btnStopLbl);
Button btnCloseCurtain = new Button () {
- Width = Application.GetRealWidth (124),
- Height = Application.GetRealHeight (125),
+ Width = Application.GetMinRealAverage (124),
+ Height = Application.GetMinRealAverage (124),
X = Application.GetRealWidth (480 - 124 - 35),
Y = btnOpenCurtain.Y,
UnSelectedImagePath = "Curtain/CurtainClose.png",
@@ -1325,8 +1325,8 @@
Button btnOpenCurtain = new Button () {
- Width = Application.GetRealWidth (124),
- Height = Application.GetRealHeight (125),
+ Width = Application.GetMinRealAverage (124),
+ Height = Application.GetMinRealAverage (124),
UnSelectedImagePath = "Curtain/CurtainRollerUp.png",
SelectedImagePath = "Curtain/CurtainRollerUpOn.png",
X = Application.GetRealWidth (20),
@@ -1349,8 +1349,8 @@
};
dialogBodyLayout.AddChidren (btnOpenLbl);
Button btnStopCurtain = new Button () {
- Width = Application.GetRealWidth (124),
- Height = Application.GetRealHeight (125),
+ Width = Application.GetMinRealAverage (124),
+ Height = Application.GetMinRealAverage (124),
X = Application.GetRealWidth ((480 - 124) / 2),
Y = btnOpenCurtain.Y,
UnSelectedImagePath = "Curtain/CurtainTimeOut.png",
@@ -1368,8 +1368,8 @@
};
//dialogBodyLayout.AddChidren (btnStopLbl);
Button btnCloseCurtain = new Button () {
- Width = Application.GetRealWidth (124),
- Height = Application.GetRealHeight (125),
+ Width = Application.GetMinRealAverage (124),
+ Height = Application.GetMinRealAverage (124),
X = Application.GetRealWidth (480 - 124 - 35),
Y = btnOpenCurtain.Y,
UnSelectedImagePath = "Curtain/CurtainRollerDown.png",
@@ -1456,8 +1456,8 @@
dialogBodyLayout.AddChidren (btnSetTemperature);
Button btnReduceTemperature = new Button () {
- Width = Application.GetRealWidth (94),
- Height = Application.GetRealHeight (94),
+ Width = Application.GetMinRealAverage (94),
+ Height = Application.GetMinRealAverage (94),
X = Application.GetRealWidth (20),
Y = btnSetTemperature.Bottom + Application.GetRealHeight (20),
UnSelectedImagePath = "AC/AC-.png",
@@ -1466,8 +1466,8 @@
dialogBodyLayout.AddChidren (btnReduceTemperature);
Button btnSwitchAC = new Button () {
- Width = Application.GetRealWidth (94),
- Height = Application.GetRealHeight (94),
+ Width = Application.GetMinRealAverage (94),
+ Height = Application.GetMinRealAverage (94),
X = Application.GetRealWidth ((480 - 94) / 2),
Y = btnReduceTemperature.Y,
UnSelectedImagePath = "AC/ACClose.png",
@@ -1492,8 +1492,8 @@
}
Button btnAddTemperature = new Button () {
- Width = Application.GetRealWidth (94),
- Height = Application.GetRealHeight (94),
+ Width = Application.GetMinRealAverage (94),
+ Height = Application.GetMinRealAverage (94),
X = Application.GetRealWidth (480 - 20 - 94),
Y = btnReduceTemperature.Y,
UnSelectedImagePath = "AC/AC+.png",
@@ -1533,8 +1533,8 @@
dialogBodyLayout.AddChidren (acModeView);
Button btnACModeLeft = new Button () {
- Width = Application.GetRealWidth (129),
- Height = Application.GetRealHeight (129),
+ Width = Application.GetMinRealAverage (129),
+ Height = Application.GetMinRealAverage (129),
X = btnReduceTemperature.X - Application.GetRealWidth (17),
Gravity = Gravity.CenterVertical,
UnSelectedImagePath = "AC/ACLeft.png",
@@ -1551,8 +1551,8 @@
};
acModeView.AddChidren (btnModeIcon);
Button btnACModeRight = new Button () {
- Width = Application.GetRealWidth (129),
- Height = Application.GetRealHeight (129),
+ Width = Application.GetMinRealAverage (129),
+ Height = Application.GetMinRealAverage (129),
X = btnAddTemperature.X - Application.GetRealWidth (17),
Gravity = Gravity.CenterVertical,
UnSelectedImagePath = "AC/ACRight.png",
@@ -1594,8 +1594,8 @@
dialogBodyLayout.AddChidren (acWindView);
Button btnACWindLeft = new Button () {
- Width = Application.GetRealWidth (129),
- Height = Application.GetRealHeight (129),
+ Width = Application.GetMinRealAverage (129),
+ Height = Application.GetMinRealAverage (129),
X = btnReduceTemperature.X - Application.GetRealWidth (17),
Gravity = Gravity.CenterVertical,
UnSelectedImagePath = "AC/ACLeft.png",
@@ -1613,8 +1613,8 @@
acWindView.AddChidren (btnWindIcon);
Button btnACWindRight = new Button () {
- Width = Application.GetRealWidth (129),
- Height = Application.GetRealHeight (129),
+ Width = Application.GetMinRealAverage (129),
+ Height = Application.GetMinRealAverage (129),
X = btnAddTemperature.X - Application.GetRealWidth (17),
Gravity = Gravity.CenterVertical,
UnSelectedImagePath = "AC/ACRight.png",
@@ -1710,8 +1710,8 @@
title.Text = fh.Name;
Button FH_Heat = new Button () {
- Width = Application.GetRealWidth (120),
- Height = Application.GetRealHeight (120),
+ Width = Application.GetMinRealAverage (120),
+ Height = Application.GetMinRealAverage (120),
X = Application.GetRealWidth (20),
Y = Application.GetRealHeight (120),
UnSelectedImagePath = "FH/FH_Heat_on.png",
@@ -1736,8 +1736,8 @@
};
Button btnFHSwitch = new Button () {
- Width = Application.GetRealWidth (80),
- Height = Application.GetRealHeight (80),
+ Width = Application.GetMinRealAverage (80),
+ Height = Application.GetMinRealAverage (80),
X = Application.GetRealWidth (480 - 40 - 80),
Y = Application.GetRealHeight (140),
UnSelectedImagePath = "AC/ACClose.png",
@@ -1772,8 +1772,8 @@
dialogBodyLayout.AddChidren (fhTemperatureView);
Button btnReduceTemperature = new Button () {
- Width = Application.GetRealWidth (90),
- Height = Application.GetRealHeight (90),
+ Width = Application.GetMinRealAverage (90),
+ Height = Application.GetMinRealAverage (90),
X = Application.GetRealWidth (40),
Gravity = Gravity.CenterVertical,
UnSelectedImagePath = "AC/AC-.png",
@@ -1792,8 +1792,8 @@
};
fhTemperatureView.AddChidren (btnSetTemperature);
Button BtnAddTemperature = new Button () {
- Width = Application.GetRealWidth (90),
- Height = Application.GetRealHeight (90),
+ Width = Application.GetMinRealAverage (90),
+ Height = Application.GetMinRealAverage (90),
X = Application.GetRealWidth (480 - 90 - 40),
Gravity = Gravity.CenterVertical,
UnSelectedImagePath = "AC/AC+.png",
@@ -1863,8 +1863,8 @@
Button btnWindSpeedReduce = new Button () {
X = Application.GetRealWidth (100),
Y = btnWindSpeedTitle.Bottom,
- Width = Application.GetRealWidth (64),
- Height = Application.GetRealHeight (62),
+ Width = Application.GetMinRealAverage (64),
+ Height = Application.GetMinRealAverage (62),
UnSelectedImagePath = "Light/Light-.png",
SelectedImagePath = "Light/Light-On.png",
};
@@ -1883,8 +1883,8 @@
windBodyView.AddChidren (btnWindSpeedText);
Button btnWindSpeedAdd = new Button () {
- Width = Application.GetRealWidth (64),
- Height = Application.GetRealHeight (62),
+ Width = Application.GetMinRealAverage (64),
+ Height = Application.GetMinRealAverage (62),
UnSelectedImagePath = "Light/Light+.png",
SelectedImagePath = "Light/Light+On.png",
X = btnWindSpeedText.Right,
@@ -1944,43 +1944,46 @@
Width = Application.GetRealWidth (110),
Height = Application.GetRealHeight (70),
Radius = 2,
- BorderColor = SkinStyle.Current.White20Transparent,
+ //BorderColor = SkinStyle.Current.White20Transparent,
BorderWidth = 2,
- Text = udDevice.ON_Text
+ Text = udDevice.ON_Text,
+ BorderColor = SkinStyle.Current.BorderColor,
+ TextColor = SkinStyle.Current.TextColor1,
+ //SelectedTextColor = SkinStyle.Current.TextColor1,
};
windBodyView.AddChidren (tempSiwtch);
if (udDevice.ActionType == 0) {
+ SetUDSendBytes (udDevice, 255);
tempSiwtch.Text = udDevice.ON_Text;
tempSiwtch.MouseUpEventHandler += (sender3, e3) => {
if (udDevice.UniversalType == 0xE01C) {
if (udDevice.ActionType == 0) {
- if (udDevice.SendBytes.Count == 0) {
- udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 255 };
- } else
- udDevice.SendBytes [1] = 255;
+ SetUDSendBytes (udDevice, 255);
Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 255 }, SendCount.Zero);
}
tempSiwtch.BorderColor = SkinStyle.Current.SelectedColor;
}
};
} else if (udDevice.ActionType == 1) {
+ SetUDSendBytes (udDevice, 0);
tempSiwtch.TextID = R.MyInternationalizationString.OFF;
tempSiwtch.MouseUpEventHandler += (sender3, e3) => {
if (udDevice.UniversalType == 0xE01C) {
if (udDevice.ActionType == 1) {
-
- if (udDevice.SendBytes.Count == 0) {
- udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 0 };
- } else
- udDevice.SendBytes [1] = 0;
+ SetUDSendBytes (udDevice, 0);
Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 0 }, SendCount.Zero);
}
tempSiwtch.BorderColor = SkinStyle.Current.SelectedColor;
}
};
} else if (udDevice.ActionType == 2) {
+ if (udDevice.SendBytes.Count == 0) {
+ //璧嬮粯璁ゅ��
+ udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 255 };
+ }
+
tempSiwtch.TextID = R.MyInternationalizationString.OFF;
tempSiwtch.X = Application.GetRealWidth (100);
tempSiwtch.Y = Application.GetRealHeight (100);
@@ -1993,15 +1996,13 @@
Radius = 2,
BorderColor = SkinStyle.Current.White20Transparent,
BorderWidth = 2,
- TextID = R.MyInternationalizationString.ON
+ TextID = R.MyInternationalizationString.ON,
+ TextColor = SkinStyle.Current.TextColor1,
};
windBodyView.AddChidren (tempON);
tempON.MouseUpEventHandler += (sender3, e3) => {
if (udDevice.UniversalType == 0xE01C) {
- if (udDevice.SendBytes.Count == 0) {
- udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 255 };
- } else
- udDevice.SendBytes [1] = 255;
+ SetUDSendBytes (udDevice, 255);
Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 255 }, SendCount.Zero);
}
tempON.BorderColor = SkinStyle.Current.SelectedColor;
@@ -2009,15 +2010,21 @@
};
tempSiwtch.MouseUpEventHandler += (sender3, e3) => {
if (udDevice.UniversalType == 0xE01C) {
- if (udDevice.SendBytes.Count == 0) {
- udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 0 };
- } else
- udDevice.SendBytes [1] = 0;
+ SetUDSendBytes (udDevice, 0);
Control.ControlBytesSend (Command.SetCommonSwitch, udDevice.SubnetID, udDevice.DeviceID, new byte [] { udDevice.SendBytes [0], 0 }, SendCount.Zero);
}
tempSiwtch.BorderColor = SkinStyle.Current.SelectedColor;
tempON.BorderColor = SkinStyle.Current.Transparent;
};
+
+
+ if (udDevice.SendBytes [1] > 0) {
+ tempON.BorderColor = SkinStyle.Current.SelectedColor;
+ tempSiwtch.BorderColor = SkinStyle.Current.Transparent;
+ } else {
+ tempSiwtch.BorderColor = SkinStyle.Current.SelectedColor;
+ tempON.BorderColor = SkinStyle.Current.Transparent;
+ }
}
btnSave.MouseUpEventHandler += (sender2, e2) => {
@@ -2028,6 +2035,43 @@
}
dialog.Show ();
}
+
+ /// <summary>
+ /// UniversalDevice
+ /// </summary>
+ /// <param name="udDevice"></param>
+ /// <param name="mStatus"> 255/0</param>
+ public void SetUDSendBytes (UniversalDevice udDevice, byte mStatus) {
+
+ if (udDevice.SendBytes.Count == 0) {
+ udDevice.SendBytes = new List<byte> () { udDevice.LoopID, mStatus };
+ } else {
+ udDevice.SendBytes [1] = mStatus;
+ }
+ }
+
+ /// <summary>
+ /// 鏍规嵁ActionType鐘舵�侊紝璧嬮粯璁ゅ��
+ /// </summary>
+ /// <param name="udDevice"></param>
+ /// <param name="mStatus"></param>
+ public void SetUDDefaultsSendBytes (UniversalDevice udDevice)
+ {
+ if (udDevice == null) return;
+
+ //鍙紑銆佸紑鍏� 閮介粯璁や负255
+ if (udDevice.SendBytes.Count == 0) {
+ udDevice.SendBytes = new List<byte> () { udDevice.LoopID, 255 };
+ } else {
+ udDevice.SendBytes [1] = 255;
+ }
+
+ //鍙叧銆侀噸缃负0
+ if (udDevice.ActionType == 1) {
+ udDevice.SendBytes [1] = 0;
+ }
+ }
+
/// <summary>
/// 鎴块棿鍜屽満鏅坊鍔犺澶囩殑鏂规硶
@@ -2436,6 +2480,7 @@
break;
case DeviceType.UniversalDevice:
var sssd = Newtonsoft.Json.JsonConvert.DeserializeObject<UniversalDevice> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+ SetUDDefaultsSendBytes (sssd);
IO.FileUtils.WriteFileByBytes (filePath, System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (sssd)));
break;
default:
--
Gitblit v1.8.0