From eb3799496f3419e347849073e23e5105b74000e5 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期五, 26 三月 2021 17:41:18 +0800
Subject: [PATCH] 2021-3-26-4
---
Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs | 1189 ++++++++++++++++++++++++++++++++--------------------------
1 files changed, 657 insertions(+), 532 deletions(-)
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs
index a411967..fd52b68 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs
@@ -1,32 +1,69 @@
锘縰sing System;
using System.Collections.Generic;
+using Newtonsoft.Json.Linq;
using Shared.SimpleControl.Phone.Music;
namespace Shared.SimpleControl.Phone
{
public class AddSchedule : FrameLayout
{
+ /// <summary>
+ /// 涓婁笅婊戝姩VerticalScrolViewLayout
+ /// </summary>
VerticalScrolViewLayout bodyView;
+ /// <summary>
+ /// 璁惧瀵硅薄鐖舵帶浠�
+ /// </summary>
FrameLayout devicesListView;
+ /// <summary>
+ /// 瀹氫箟涓�涓洖璋冨嚱鏁�
+ /// </summary>
Action<Timer> action;
- List<Common> roomDeviceList = new List<Common>();
- List<string> roomNameList = new List<string> ();
- List<DeviceInfo> timerControlDeviceList = new List<DeviceInfo> ();
-
+ /// <summary>
+ /// 閫変腑璁惧鍒楄〃
+ /// </summary>
+ List<Fun> selectedDeviceList = new List<Fun> ();
+ /// <summary>
+ /// 鏄惁缂栬緫锛坱rue=缂栬緫锛�
+ /// </summary>
+ bool IsEdit = false;
+ /// <summary>
+ /// 瀵硅薄鏋勯�犲嚱鏁�
+ /// </summary>
+ /// <param name="act">杩斿洖鍑芥暟</param>
public AddSchedule (Action<Timer> act)
{
action = act;
}
+ /// <summary>
+ /// 閲嶅啓鏂规硶
+ /// </summary>
public override void RemoveFromParent ()
{
UserMiddle.SettingPageView.ScrollEnabled = true;
base.RemoveFromParent ();
}
-
+ /// <summary>
+ /// 瀵硅薄涓诲叆鍙�
+ /// </summary>
+ /// <param name="timerTemp">褰撳墠瀵硅薄</param>
+ /// <param name="listTimer">璁℃椂鍣ㄥ垪琛�</param>
+ /// <param name="isEdit">缂栬緫鐘舵��</param>
public void ShowPage (Timer timerTemp, List<Timer> listTimer, bool isEdit = false)
{
+ IsEdit = isEdit;
+ selectedDeviceList.Clear ();
+ if (isEdit) {
+ for (int j = 0; j < timerTemp.controlData.actions.Count; j++) {
+ var fun = timerTemp.controlData.actions [j];
+ var dev = selectedDeviceList.Find ((c) => c.deviceId == fun.deviceId);
+ if (dev == null) {
+ selectedDeviceList.Add (fun);
+ }
+ }
+
+ }
UserMiddle.SettingPageView.ScrollEnabled = false;
- timerTemp.RegionID = UserConfig.Instance.CurrentRegion.Id;
#region topview
var topView = new RowLayout () {
Y = Application.GetRealHeight (36),
@@ -98,7 +135,7 @@
BorderWidth = 1,
TextAlignment = TextAlignment.Center,
TextColor = SkinStyle.Current.TextColor1,
- Text = timerTemp.TimerName
+ Text = timerTemp.timerName
};
nameView.AddChidren (etName);
etName.EditorEnterAction += (obj) => {
@@ -133,72 +170,76 @@
var btnTimelbl = new Button () {
X = btnTimeIcon.Right,
Width = Application.GetRealWidth (110),
- Text = timerTemp.ExecutionTime,
+ Text = timerTemp.executeUtcTime,
TextAlignment = TextAlignment.Center,
TextColor = SkinStyle.Current.TextColor1,
};
timeView.AddChidren (btnTimelbl);
btnTimelbl.MouseUpEventHandler += (timeSender, eee) => {
- var dialog = new Dialog ();
- var chooseTimeBodyView = new FrameLayout () {
- };
- dialog.AddChidren (chooseTimeBodyView);
- var chooseTime = new TimeView () {
- Y = Application.GetRealHeight (1136 - 420 - 90),
- Height = Application.GetRealHeight (420),
- BackgroundColor = 0xFFD7D7D7,
- //BackgroundColor = SkinStyle.Current.ViewColor,
- };
- chooseTimeBodyView.AddChidren (chooseTime);
+ ShowTimePickerView (btnTimelbl);
+ return;
- var bottomView = new FrameLayout () {
- Y = chooseTime.Bottom,
- Height = Application.GetRealHeight (90) + 1,
- BackgroundColor = 0xFFD7D7D7,
- };
- chooseTimeBodyView.AddChidren (bottomView);
+ //var dialog = new Dialog ();
+ //var chooseTimeBodyView = new FrameLayout () {
+ //};
+ //dialog.AddChidren (chooseTimeBodyView);
- var btnCloseTime = new Button () {
- Y = 1,
- Width = Application.GetRealWidth (320),
- BackgroundColor = SkinStyle.Current.ViewColor,
- TextID = R.MyInternationalizationString.Close,
- TextAlignment = TextAlignment.Center,
- TextColor = SkinStyle.Current.TextColor1,
- };
- bottomView.AddChidren (btnCloseTime);
- btnCloseTime.MouseUpEventHandler += (ddf, dddf) => {
- chooseTimeBodyView.RemoveAll ();
- chooseTimeBodyView.RemoveFromParent ();
- dialog.Close ();
- };
+ //var chooseTime = new TimeView () {
+ // Y = Application.GetRealHeight (1136 - 420 - 90),
+ // Height = Application.GetRealHeight (420),
+ // BackgroundColor = 0xFFD7D7D7,
+ // //BackgroundColor = SkinStyle.Current.ViewColor,
+ //};
+ //chooseTimeBodyView.AddChidren (chooseTime);
- var btnSaveTime = new Button () {
- X = btnCloseTime.Right + 1,
- Y = 1,
- Width = Application.GetRealWidth (320),
- TextID = R.MyInternationalizationString.SAVE,
- BackgroundColor = SkinStyle.Current.ViewColor,
- TextAlignment = TextAlignment.Center,
- TextColor = SkinStyle.Current.TextColor1,
- };
- bottomView.AddChidren (btnSaveTime);
- btnSaveTime.MouseUpEventHandler += (sender3, e3) => {
- var chooseHour = chooseTime.Hour - timerTemp.TimeZone;
- var chooseTimeString = chooseTime.Hour.ToString ().PadLeft (2, '0') + ":" + chooseTime.Minute.ToString ().PadLeft (2, '0');
- //if (chooseTime.Hour > 12) {
- // chooseTimeString = (chooseTime.Hour -12) + ":" + chooseTime.Minute + " PM";
- //} else {
- // chooseTimeString = chooseTime.Hour + ":" + chooseTime.Minute + " AM";
- //}
- btnTimelbl.Text = chooseTimeString;
- dialog.Close ();
- };
+ //var bottomView = new FrameLayout () {
+ // Y = chooseTime.Bottom,
+ // Height = Application.GetRealHeight (90) + 1,
+ // BackgroundColor = 0xFFD7D7D7,
+ //};
+ //chooseTimeBodyView.AddChidren (bottomView);
+
+ //var btnCloseTime = new Button () {
+ // Y = 1,
+ // Width = Application.GetRealWidth (320),
+ // BackgroundColor = SkinStyle.Current.ViewColor,
+ // TextID = R.MyInternationalizationString.Close,
+ // TextAlignment = TextAlignment.Center,
+ // TextColor = SkinStyle.Current.TextColor1,
+ //};
+ //bottomView.AddChidren (btnCloseTime);
+ //btnCloseTime.MouseUpEventHandler += (ddf, dddf) => {
+ // chooseTimeBodyView.RemoveAll ();
+ // chooseTimeBodyView.RemoveFromParent ();
+ // dialog.Close ();
+ //};
+
+ //var btnSaveTime = new Button () {
+ // X = btnCloseTime.Right + 1,
+ // Y = 1,
+ // Width = Application.GetRealWidth (320),
+ // TextID = R.MyInternationalizationString.SAVE,
+ // BackgroundColor = SkinStyle.Current.ViewColor,
+ // TextAlignment = TextAlignment.Center,
+ // TextColor = SkinStyle.Current.TextColor1,
+ //};
+ //bottomView.AddChidren (btnSaveTime);
+ //btnSaveTime.MouseUpEventHandler += (sender3, e3) => {
+ // // var chooseHour = chooseTime.Hour - timerTemp.TimeZone;
+ // var chooseTimeString = chooseTime.Hour.ToString ().PadLeft (2, '0') + ":" + chooseTime.Minute.ToString ().PadLeft (2, '0');
+ // //if (chooseTime.Hour > 12) {
+ // // chooseTimeString = (chooseTime.Hour -12) + ":" + chooseTime.Minute + " PM";
+ // //} else {
+ // // chooseTimeString = chooseTime.Hour + ":" + chooseTime.Minute + " AM";
+ // //}
+ // btnTimelbl.Text = chooseTimeString;
+ // dialog.Close ();
+ //};
- dialog.Show ();
+ //dialog.Show ();
};
#endregion
@@ -230,7 +271,7 @@
Radius = (uint)Application.GetMinRealAverage (22),
BorderWidth = 1,
BorderColor = SkinStyle.Current.Transparent,
- IsSelected = timerTemp.Periodicity.Contains ("0"),
+ IsSelected = timerTemp.whichDay.Contains (0),
Tag = 0,
};
repeatView.AddChidren (btnSunday);
@@ -249,7 +290,7 @@
Radius = (uint)Application.GetMinRealAverage (22),
BorderWidth = 1,
BorderColor = SkinStyle.Current.Transparent,
- IsSelected = timerTemp.Periodicity.Contains ("1"),
+ IsSelected = timerTemp.whichDay.Contains (1),
Tag = 1,
};
repeatView.AddChidren (btnMonday);
@@ -268,7 +309,7 @@
Radius = (uint)Application.GetMinRealAverage (22),
BorderWidth = 1,
BorderColor = SkinStyle.Current.Transparent,
- IsSelected = timerTemp.Periodicity.Contains ("2"),
+ IsSelected = timerTemp.whichDay.Contains (2),
Tag = 2,
};
repeatView.AddChidren (btnTuesday);
@@ -286,7 +327,7 @@
Radius = (uint)Application.GetMinRealAverage (22),
BorderWidth = 1,
BorderColor = SkinStyle.Current.Transparent,
- IsSelected = timerTemp.Periodicity.Contains ("3"),
+ IsSelected = timerTemp.whichDay.Contains (3),
Tag = 3,
};
repeatView.AddChidren (btnWednesday);
@@ -304,7 +345,7 @@
Radius = (uint)Application.GetMinRealAverage (22),
BorderWidth = 1,
BorderColor = SkinStyle.Current.Transparent,
- IsSelected = timerTemp.Periodicity.Contains ("4"),
+ IsSelected = timerTemp.whichDay.Contains (4),
Tag = 4,
};
repeatView.AddChidren (btnThursday);
@@ -323,7 +364,7 @@
Radius = (uint)Application.GetMinRealAverage (22),
BorderWidth = 1,
BorderColor = SkinStyle.Current.Transparent,
- IsSelected = timerTemp.Periodicity.Contains ("5"),
+ IsSelected = timerTemp.whichDay.Contains (5),
Tag = 5,
};
repeatView.AddChidren (btnFriday);
@@ -342,7 +383,7 @@
Radius = (uint)Application.GetMinRealAverage (22),
BorderWidth = 1,
BorderColor = SkinStyle.Current.Transparent,
- IsSelected = timerTemp.Periodicity.Contains ("6"),
+ IsSelected = timerTemp.whichDay.Contains (6),
Tag = 6,
};
repeatView.AddChidren (btnSaturday);
@@ -395,7 +436,7 @@
var downSelectedButton = new Button () {
X = Application.GetRealWidth (310),
- Height = Application.GetRealHeight (50),
+ Height = Application.GetRealWidth (50),
Width = Application.GetRealWidth (55),
UnSelectedImagePath = "Item/Down.png",
SelectedImagePath = "Item/DownSelected.png",
@@ -410,40 +451,15 @@
Height = Application.GetRealHeight (60),
TextAlignment = TextAlignment.CenterLeft,
TextColor = SkinStyle.Current.TextColor1,
+ Text = timerTemp.RoomName,
};
roomContenView.AddChidren (btnRoomChoose);
- roomNameList.Add ("ALL");
- foreach (var room in Room.Lists) {
- if (string.IsNullOrEmpty (room.Name)) {
- continue;
- }
- roomNameList.Add (room.Name);
- if (timerTemp.RoomName == "ALL") {
- roomDeviceList.AddRange (room.DeviceList);
- } else {
- if(timerTemp.RoomName == room.Name) {
- roomDeviceList.Clear ();
- roomDeviceList.AddRange (room.DeviceList);
- }
- }
- }
- if (roomNameList.Count > 0 && !isEdit) {
- timerTemp.RoomName = roomNameList [0];
- }
- btnRoomChoose.Text = timerTemp.RoomName;
+
#endregion
#region Devices
- try {
- timerControlDeviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<DeviceInfo>> (timerTemp.ControlDeviceData);//devicesControlDataList
- } catch {
- timerControlDeviceList = null;
- }
-
- if (timerControlDeviceList == null)
- timerControlDeviceList = new List<DeviceInfo> ();
var devicesView = new RowLayout () {
Height = Application.GetRealHeight (110),
@@ -460,17 +476,18 @@
};
devicesView.AddChidren (btnDeviceTitle);
- devicesListView = new FrameLayout () {
- Height = Application.GetRealHeight (130 * roomDeviceList.Count),
+ devicesListView = new FrameLayout () {
+ Height = Application.GetRealHeight (130),
};
bodyView.AddChidren (devicesListView);
- MainPage.Loading.Start ("Please wait...");
- InitDeviceListView (roomDeviceList, timerControlDeviceList, devicesListView);
#endregion
-
- #region -----Room
+ MainPage.Loading.Start ("Please wait...");
+ SmartHome.Method mMthod = new SmartHome.Method ();
+ var devList = mMthod.GetRoomDeviceList (timerTemp.RoomName);
+ InitDeviceListView (devList);
+ #region -----Room 鐐瑰嚮浜嬩欢
btnRoomChoose.MouseUpEventHandler += (sender, e) => {
Application.HideSoftInput ();
var roomDialog = new Dialog ();
@@ -504,11 +521,13 @@
BackgroundColor = SkinStyle.Current.ViewColor,
};
chooseRoomView.AddChidren (roomListView);
-
- foreach (var roomName in roomNameList) {
+ //鑾峰彇鎴块棿鍒楄〃
+ var roomList = mMthod.GetRoomList ();
+ for (int i = 0; i < roomList.Count; i++) {
+ var room = roomList [i];
var btnRoomNameChoose = new Button () {
Height = Application.GetRealHeight (90),
- Text = roomName,
+ Text = room.Name,
TextColor = SkinStyle.Current.TextColor1,
TextAlignment = TextAlignment.Center,
};
@@ -521,22 +540,12 @@
roomListView.AddChidren (btnLine);
btnRoomNameChoose.MouseUpEventHandler += (sd, ds) => {
+ //鍒囨崲鎴块棿娓呯┖涔嬪墠閫夋嫨鏁版嵁;
+ selectedDeviceList.Clear ();
btnRoomChoose.Text = (sd as Button).Text;
- foreach (var room in Room.Lists) {
- if (string.IsNullOrEmpty (room.Name)) {
- continue;
- }
- if (btnRoomChoose.Text == "ALL") {
- roomDeviceList.AddRange (room.DeviceList);
- } else {
- if (btnRoomChoose.Text == room.Name) {
- roomDeviceList.Clear ();
- roomDeviceList.AddRange (room.DeviceList);
- }
- }
- }
- timerControlDeviceList = new List<DeviceInfo> ();
- InitDeviceListView (roomDeviceList, timerControlDeviceList, devicesListView);
+ //鑾峰彇璁惧鍒楄〃
+ var deviceList = mMthod.GetRoomDeviceList (btnRoomChoose.Text);
+ InitDeviceListView (deviceList);
roomDialog.Close ();
};
}
@@ -562,11 +571,7 @@
saveTimeBottomView.AddChidren (btnSaveTimerBottom);
btnSaveTimerBottom.MouseUpEventHandler += (ll, kk) => {
- //WorkingDay, //宸ヤ綔鏃�
- //Weekend, //鍛ㄦ湯
- //Week, //鎸囧畾鏄熸湡鍑�
- //Period, //鎸囧畾鏃堕棿娈�
- //AppointDay, //鎸囧畾鏃� Periodicity
+
if (btnMonday.IsSelected == false && btnFriday.IsSelected == false && btnThursday.IsSelected == false && btnSunday.IsSelected == false && btnTuesday.IsSelected == false && btnSaturday.IsSelected == false && btnWednesday.IsSelected == false) {
//new Alert ("", "璇烽�夋嫨鏃ユ湡!", "Close").Show ();
@@ -588,15 +593,15 @@
// return;
//}
- if (timerControlDeviceList.Count == 0) {
+ if (selectedDeviceList.Count == 0) {
new Alert ("", "Please choose at least one device!", "Close").Show ();
return;
}
//鍚嶅瓧閲嶅鍒ゆ柇闄愬埗
- var mTimer = listTimer.Find ((obj) => obj.TimerName == mTimerName);
+ var mTimer = listTimer.Find ((obj) => obj.timerName == mTimerName);
if (isEdit) {
- if (mTimer != null && mTimer.Id != timerTemp.Id) {
+ if (mTimer != null && mTimer.id != timerTemp.id) {
new Alert ("", "The timer name already exists. Please change it before saving it.", "Close").Show ();
return;
}
@@ -610,9 +615,9 @@
//2020-02-10 鏃堕棿閲嶅鍒ゆ柇闄愬埗
string mExecutionTime = btnTimelbl.Text;
//timerTemp.ExecutionTime = btnTimelbl.Text;
- var mTimerExecutionTime = listTimer.Find ((obj) => (obj.ExecutionTime == mExecutionTime));
+ var mTimerExecutionTime = listTimer.Find ((obj) => (obj.executeUtcTime == mExecutionTime));
if (isEdit) {
- if (mTimerExecutionTime != null && mTimerExecutionTime.Id != timerTemp.Id) {
+ if (mTimerExecutionTime != null && mTimerExecutionTime.id != timerTemp.id) {
new Alert ("", "The timer time already exists. Please change it before saving it.", "Close").Show ();
return;
}
@@ -623,72 +628,100 @@
}
}
- timerTemp.Periodicity = "";
if (btnMonday.IsSelected == true && btnFriday.IsSelected == true && btnThursday.IsSelected == true && btnSunday.IsSelected == true && btnTuesday.IsSelected == true && btnSaturday.IsSelected == true && btnWednesday.IsSelected == true) {
- timerTemp.TimerType = TimerType.EveryDay;
+ timerTemp.timerType = TimerType.EveryDay;
} else if (btnSunday.IsSelected == true && btnSaturday.IsSelected == true && btnMonday.IsSelected == false && btnFriday.IsSelected == false && btnThursday.IsSelected == false && btnTuesday.IsSelected == false && btnWednesday.IsSelected == false) {
- timerTemp.TimerType = TimerType.Weekend;
+ timerTemp.timerType = TimerType.Weekend;
} else if (btnSunday.IsSelected == false && btnSaturday.IsSelected == false && btnMonday.IsSelected == true && btnFriday.IsSelected == true && btnThursday.IsSelected == true && btnTuesday.IsSelected == true && btnWednesday.IsSelected) {
- timerTemp.TimerType = TimerType.WorkingDay;
+ timerTemp.timerType = TimerType.WorkingDay;
} else {
- timerTemp.TimerType = TimerType.Week;
- timerTemp.Periodicity = "";
+ timerTemp.timerType = TimerType.Week;
}
if (btnSunday.IsSelected) {
- timerTemp.Periodicity += "0,";
+ if (!timerTemp.whichDay.Contains (0)) {
+ timerTemp.whichDay.Add (0);
+ }
}
if (btnSaturday.IsSelected) {
- timerTemp.Periodicity += "6,";
+ if (!timerTemp.whichDay.Contains (6)) {
+ timerTemp.whichDay.Add (6);
+ }
}
if (btnMonday.IsSelected) {
- timerTemp.Periodicity += "1,";
- }
- if (btnFriday.IsSelected) {
- timerTemp.Periodicity += "5,";
- }
- if (btnThursday.IsSelected) {
- timerTemp.Periodicity += "4,";
+ if (!timerTemp.whichDay.Contains (1)) {
+ timerTemp.whichDay.Add (1);
+ }
}
if (btnTuesday.IsSelected) {
- timerTemp.Periodicity += "2,";
+ if (!timerTemp.whichDay.Contains (2)) {
+ timerTemp.whichDay.Add (2);
+ }
+
}
if (btnWednesday.IsSelected) {
- timerTemp.Periodicity += "3,";
+ if (!timerTemp.whichDay.Contains (3)) {
+ timerTemp.whichDay.Add (3);
+ }
}
-
- if (timerTemp.Periodicity [timerTemp.Periodicity.Length - 1] == ',') {
- timerTemp.Periodicity = timerTemp.Periodicity.Remove (timerTemp.Periodicity.Length - 1, 1);
+ if (btnThursday.IsSelected) {
+ if (!timerTemp.whichDay.Contains (4)) {
+ timerTemp.whichDay.Add (4);
+ }
}
-
-
-
- timerTemp.IsStart = true;
- if (string.IsNullOrEmpty (timerTemp.Id)) {
- timerTemp.Id = Guid.NewGuid ().ToString ();
+ if (btnFriday.IsSelected) {
+ if (!timerTemp.whichDay.Contains (5)) {
+ timerTemp.whichDay.Add (5);
+ }
}
- timerTemp.ControlDeviceData = Newtonsoft.Json.JsonConvert.SerializeObject (timerControlDeviceList);
+ //if (string.IsNullOrEmpty (timerTemp.id)) {
+ // timerTemp.id = Guid.NewGuid ().ToString ();
+ //}
+
+ DeviceDate deviceDate = new DeviceDate ();
+ deviceDate.gatewayId = SmartHome.Send.GatewayId;
+ deviceDate.homeId = SmartHome.Send.HomeId;
+
+
+ deviceDate.actions.AddRange (selectedDeviceList);
+ timerTemp.controlData = deviceDate;
+
MainPage.Loading.Start ("Saving...");
timerTemp.RoomName = btnRoomChoose.Text;
- timerTemp.ExecutionTime = btnTimelbl.Text;
- timerTemp.TimerName = etName.Text.Trim ();
+ timerTemp.executeUtcTime = btnTimelbl.Text;
+ timerTemp.timerName = etName.Text.Trim ();
System.Threading.Tasks.Task.Run (() => {
try {
- var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (timerTemp);
- ResponsePack revertObj = null;
+ ResponsePackNew revertObj = null;
if (isEdit) {
- revertObj = MainPage.RequestHttps (API.EditTimer, requestJson);
- } else {
- revertObj = MainPage.RequestHttps (API.AddTimer, requestJson);
+ revertObj = SmartHome.Send.UpdateTimer (timerTemp);
+
+ } else {
+
+
+ revertObj = SmartHome.Send.AddTimer (timerTemp);
}
Application.RunOnMainThread (() => {
if (revertObj == null) {
new Alert ("", "Unable to save data, please check the network.", "Close").Show ();
- } else if (revertObj.StateCode.ToUpper() == StateCode.SUCCESS) {
+ } else if (revertObj.Code == StateCode.SUCCESS) {
+ string id = "";
+ if (!isEdit) {
+ var jObject = JObject.Parse (revertObj.Data.ToString ());
+ id = jObject ["id"].ToString ();
+ timerTemp.id = id;
+ }
this.RemoveFromParent ();
action (timerTemp);
+
+
+
} else {
- ShowErrorInfo (revertObj.StateCode);
+ //鎻愮ず閿欒
+ SmartHome.Method method = new SmartHome.Method ();
+ if (revertObj.Data != null) {
+ method.ShowGetTimerListErrorInfo (revertObj.Data.ToString ());
+ }
}
});
} catch (Exception ex) {
@@ -703,250 +736,187 @@
}
-
-
/// <summary>
- //(1)Success 鍒欒皟鐢ㄦ鎺ュ彛鎴愬姛
- //(2)NoRecord 浣忓畢鏈粦瀹氱綉鍏筹紒
- //(3)NoExist 浣忓畢涓嶅瓨鍦紒
- //(4)Exist 鐢熸垚鐨凣uid宸插瓨鍦紒
+ /// 鑷畾涔塗imePickerView
+ /// 2021-03-24
/// </summary>
- void ShowErrorInfo (string stateCodeStr)
+ void ShowTimePickerView (Button btnTimelbl)
{
- string mes = "";
- if (stateCodeStr == "NoRecord") {
- // 浣忓畢鏈粦瀹氱綉鍏筹紒
- mes = ErrorCode.HomeNoRecord;
- } else if (stateCodeStr == "NoExist") {
- //浣忓畢涓嶅瓨鍦紒
- mes = ErrorCode.HomeNoExist;
- } else if (stateCodeStr == "Exist") {
- //鐢熸垚鐨凣uid宸插瓨鍦紒
- mes = ErrorCode.GuidExist;
- } else if (stateCodeStr == ErrorCode.NetworkError) {
- mes = ErrorCode.NetworkError;
- } else {
- mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
+ var chooseTimeString = "00:00";
+ var dialog = new Dialog ();
+ var chooseTimeBodyView = new FrameLayout () {
+ };
+ dialog.AddChidren (chooseTimeBodyView);
+
+ var timeView = new FrameLayout () {
+ Y = Application.GetRealHeight (1136 - 420 - 90),
+ Height = Application.GetRealHeight (420),
+ BackgroundColor = SkinStyle.Current.ViewColor,
+ };
+ chooseTimeBodyView.AddChidren (timeView);
+
+ var chooseTime = new UIPickerView () {
+ Height = Application.GetRealHeight (400),
+ BackgroundColor = SkinStyle.Current.Transparent,
+ Gravity = Gravity.CenterVertical
+ };
+ timeView.AddChidren (chooseTime);
+
+ var bottomView = new FrameLayout () {
+ Y = timeView.Bottom,
+ Height = Application.GetRealHeight (90) + 1,
+ BackgroundColor = 0xFFD7D7D7,
+ };
+ chooseTimeBodyView.AddChidren (bottomView);
+
+ var btnCloseTime = new Button () {
+ Y = 1,
+ Width = Application.GetRealWidth (320),
+ BackgroundColor = SkinStyle.Current.ViewColor,
+ TextID = R.MyInternationalizationString.Close,
+ TextAlignment = TextAlignment.Center,
+ TextColor = SkinStyle.Current.TextColor1,
+ };
+ bottomView.AddChidren (btnCloseTime);
+ btnCloseTime.MouseUpEventHandler += (ddf, dddf) => {
+ chooseTimeBodyView.RemoveAll ();
+ chooseTimeBodyView.RemoveFromParent ();
+ dialog.Close ();
+ };
+
+ var btnSaveTime = new Button () {
+ X = btnCloseTime.Right + 1,
+ Y = 1,
+ Width = Application.GetRealWidth (320),
+ TextID = R.MyInternationalizationString.SAVE,
+ BackgroundColor = SkinStyle.Current.ViewColor,
+ TextAlignment = TextAlignment.Center,
+ TextColor = SkinStyle.Current.TextColor1,
+ };
+ bottomView.AddChidren (btnSaveTime);
+ btnSaveTime.MouseUpEventHandler += (sender3, e3) => {
+ btnTimelbl.Text = chooseTimeString;
+ dialog.Close ();
+ };
+
+ var nowDateTime = DateTime.Now;
+ var hour = nowDateTime.Hour;
+ //hourStr
+ var hourStr = hour.ToString();
+ if (hour < 10) {
+ hourStr = "0" + hour;
+ }
+
+ var minute = nowDateTime.Minute;
+ //minuteStr
+ var minuteStr = minute.ToString ();
+ if (minute < 10) {
+ minuteStr = "0" + minute;
+ }
+ var hourList = new List<string> ();
+ for (int i = 0; i < 24; i++) {
+ if (i < 10) {
+ var a = "0" + i.ToString ();
+ hourList.Add (a);
+ } else {
+ hourList.Add (i.ToString ());
+ }
}
- if (!string.IsNullOrEmpty (mes)) {
- //Application.RunOnMainThread (() => {
- new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
- //});
+
+ var minuteList = new List<string> ();
+ for (int i = 0; i < 60; i++) {
+ if (i < 10) {
+ var a = "0" + i.ToString ();
+ minuteList.Add (a);
+ } else {
+ minuteList.Add (i.ToString ());
+ }
+
}
+
+ chooseTime.setNPicker (hourList, minuteList, null);
+ chooseTime.setCurrentItems (hour, minute, 0);
+ chooseTimeString = hourStr + ":" + minuteStr;
+
+ //string selectde = "";
+ chooseTime.OnSelectChangeEvent += (s1, s2, s3) => {
+ var hourV = hourList [s1];
+ var minuteV = minuteList [s2];
+ chooseTimeString = hourV + ":" + minuteV;
+
+ };
+
+ dialog.Show ();
}
- private static void InitDeviceListView (List<Common> roomDeviceList, List<DeviceInfo> timerControlDeviceList, FrameLayout devicesListView)
+ /// <summary>
+ /// 鍔犺浇鎴块棿璁惧鍒楄〃鐣岄潰
+ /// </summary>
+ /// <param name="deviceList">鎴块棿璁惧鍒楄〃</param>
+ private void InitDeviceListView (List<Function> deviceList)
{
devicesListView.RemoveAll ();
-
+ //鎴块棿璁惧鍒楄〃
+ devicesListView.Height = Application.GetRealHeight (130 * deviceList.Count);
System.Threading.Tasks.Task.Run (() => {
try {
- int iniIndex = 0;
- for (int i = 0; i < timerControlDeviceList.Count;) {
- if (timerControlDeviceList [i] == null) {
- timerControlDeviceList.RemoveAt (i);
- } else {
- i++;
- }
- }
+ Application.RunOnMainThread (() => {
+ try {
+ string value = "";
+ for (int i = 0; i < deviceList.Count; i++) {
+ var device = deviceList [i];
+ var deviceRowView = new RowLayout () {
+ Y = Application.GetRealHeight (130 * i),
+ Radius = 1,
+ BorderColor = SkinStyle.Current.Transparent,
+ BorderWidth = (uint)Application.GetMinRealAverage (5),
+ Height = Application.GetRealHeight (110),
+ Tag = device,
+ };
+ devicesListView.AddChidren (deviceRowView);
-#if __IOS__
+ var btnChoose = new Button () {
+ Width = Application.GetRealWidth (60),
+ Height = Application.GetRealWidth (60),
+ X = Application.GetRealWidth (40),
+ Gravity = Gravity.CenterVertical,
+ UnSelectedImagePath = "CrabtreeAdd/Choose.png",
+ SelectedImagePath = "CrabtreeAdd/ChooseOn.png",
+ Tag = device,
+ };
+ deviceRowView.AddChidren (btnChoose);
+ Button btnDeviceName = new Button () {
+ Width = Application.GetRealWidth (342),
+ Height = Application.GetRealHeight (70),
+ Text = device.name,
+ TextAlignment = TextAlignment.CenterLeft,
+ X = btnChoose.Right + Application.GetRealWidth (10),
+ Y = Application.GetRealHeight (20),
+ SelectedTextColor = SkinStyle.Current.TextColor1,
+ TextColor = SkinStyle.Current.TextColor1,
+ };
+ deviceRowView.AddChidren (btnDeviceName);
+ Button tempSwitch = new Button {
+ Width = Application.GetRealWidth (90),
+ Height = Application.GetRealWidth (53),
+ X = Application.GetRealWidth (640 - 90 - 20),
+ Gravity = Gravity.CenterVertical,
+ UnSelectedImagePath = "Item/SwitchClose.png",
+ SelectedImagePath = "Item/SwitchOpen.png",
+ Tag = device,
+ };
+ deviceRowView.AddChidren (tempSwitch);
-#else
- //鍒锋柊devicesListView 楂樺害
- devicesListView.Height = Application.GetRealHeight (130 * roomDeviceList.Count);
-#endif
-
- foreach (var deviceCommon2 in roomDeviceList) {
- if (deviceCommon2 == null)
- continue;
- var deviceCommon = new DeviceInfo () {
- DevicePath = deviceCommon2.SavePath, DeviceType = (int)deviceCommon2.Type, SubnetID = deviceCommon2.SubnetID,
- DeviceID = deviceCommon2.DeviceID, LoopID = deviceCommon2.LoopID, Command = (int)Command.SetSingleLight,
- Type = deviceCommon2.Type,Name = deviceCommon2.Name,SavePath = deviceCommon2.SavePath,
- };
- if (deviceCommon.Type == DeviceType.LightDimming || deviceCommon.Type == DeviceType.FanModule ||
- deviceCommon.Type == DeviceType.LightSwitch || deviceCommon.Type == DeviceType.LightEnergySwitch || deviceCommon.Type == DeviceType.LightEnergySocket || deviceCommon.Type == DeviceType.LightSwitchSocket ||
- deviceCommon.Type == DeviceType.CurtainModel || deviceCommon.Type == DeviceType.CurtainRoller || deviceCommon.Type == DeviceType.CurtainTrietex) {
- Application.RunOnMainThread (() => {
- try {
- DeviceInfo timerControlDevice = null;
- try {
- timerControlDevice = timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath);
- } catch { }
- if (timerControlDevice != null)
- deviceCommon.SendBytes = timerControlDevice.SendBytes;
- var DeviceRowView = new RowLayout () {
- Y = Application.GetRealHeight (130 * iniIndex),
- Radius = 1,
- BorderColor = SkinStyle.Current.Transparent,
- BorderWidth = (uint)Application.GetMinRealAverage (5),
- Height = Application.GetRealHeight (110),
- Tag = deviceCommon.Type + "_" + deviceCommon.CommonLoopID
- };
- devicesListView.AddChidren (DeviceRowView);
- iniIndex++;
-
- var btnChoose = new Button () {
- Width = Application.GetRealHeight (60),
- Height = Application.GetRealHeight (60),
- X = Application.GetRealWidth (40),
- Gravity = Gravity.CenterVertical,
- UnSelectedImagePath = "CrabtreeAdd/Choose.png",
- SelectedImagePath = "CrabtreeAdd/ChooseOn.png",
- IsSelected = timerControlDevice != null,
- //Tag = deviceFilePath
- };
- DeviceRowView.AddChidren (btnChoose);
-
- Button btnDeviceName = new Button () {
- Width = Application.GetRealWidth (342),
- Height = Application.GetRealHeight (70),
- Text = deviceCommon.Name,
- TextAlignment = TextAlignment.CenterLeft,
- X = btnChoose.Right + Application.GetRealWidth (10),
- Y = Application.GetRealHeight (20),
- SelectedTextColor = SkinStyle.Current.TextColor1,
- TextColor = SkinStyle.Current.TextColor1,
- };
- DeviceRowView.AddChidren (btnDeviceName);
- Button tempSwitch = new Button () {
- Width = Application.GetMinRealAverage (90),
- Height = Application.GetMinRealAverage (53),
- X = Application.GetRealWidth (640 - 90 - 20),
- Gravity = Gravity.CenterVertical,
- UnSelectedImagePath = "Item/SwitchClose.png",
- SelectedImagePath = "Item/SwitchOpen.png",
- Tag = deviceCommon.CommonLoopID,
- };
- DeviceRowView.AddChidren (tempSwitch);
-
-
- if (deviceCommon.Type == DeviceType.FanModule) {
- #region 椋庢墖
- tempSwitch.RemoveFromParent ();
- //FanModule fanModule = deviceCommon as FanModule;
-
- DeviceRowView.Height = Application.GetRealHeight (130);
- btnChoose.Y = Application.GetRealHeight (5);
- btnDeviceName.Y = Application.GetRealHeight (0);
-
- var btnFanLevel = new Button () {
- X = btnChoose.X + Application.GetRealWidth (10),
- Y = btnChoose.Bottom,
- Width = Application.GetRealWidth (75),
- Height = Application.GetRealHeight (45),
- TextColor = SkinStyle.Current.TextColor1,
- SelectedTextColor = SkinStyle.Current.TextColor1,
- Text = "OFF",
- TextAlignment = TextAlignment.CenterLeft,
- };
- DeviceRowView.AddChidren (btnFanLevel);
-
- var wi = Application.GetRealWidth (480 / 8);
- for (int i = 0; i < 9; i++) {
- var btnFanLevelTip = new Button () {
- X = btnFanLevel.Right + wi * i - Application.GetRealWidth (0),
- Y = btnFanLevel.Y - Application.GetRealHeight (5),
- Width = wi,
- Height = Application.GetRealHeight (27),
- TextAlignment = TextAlignment.TopLeft,
- Text = i.ToString (),
- TextColor = SkinStyle.Current.TextColor1,
- TextSize = 12,
- };
- DeviceRowView.AddChidren (btnFanLevelTip);
- if (i == 0) {
- btnFanLevelTip.Text = "OFF";
- btnFanLevelTip.TextSize = 11;
- }
- }
-
- var fanLevel = new HorizontalSeekBar () {
- X = btnFanLevel.Right,
- Y = btnFanLevel.Y + Application.GetRealHeight (10),
- Width = Application.GetRealWidth (492),
- Height = Application.GetRealHeight (45),
- ThumbColor = SkinStyle.Current.ThumbColor,
- ProgressColor = SkinStyle.Current.SelectedColor,
- ThumbRadius = Application.GetRealWidth (3),
- Max = 8,
- Progress = 2,// (int)(deviceCommon.SendBytes[1]),
-
- };
- DeviceRowView.AddChidren (fanLevel);
- fanLevel.ProgressChanged += (sender, e) => {
- try {
- if (!btnChoose.IsSelected) {
- btnChoose.IsSelected = true;
- }
- deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)(fanLevel.Progress) };
- if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) {
- timerControlDeviceList.Add (deviceCommon);
- } else {
- timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)fanLevel.Progress };
- }
- if (e == 0) {
- btnFanLevel.Text = "OFF";
- } else {
- btnFanLevel.Text = "S" + e.ToString ();
- }
- } catch (Exception ex) {
- Utlis.WriteLine ("ss1: " + ex.Message);
- }
- };
-
- if (timerControlDevice != null) {
- if (timerControlDevice.SendBytes [1] == 0) {
- btnFanLevel.Text = "OFF";
- } else {
- btnFanLevel.Text = "S" + timerControlDevice.SendBytes [1].ToString ();
- }
- fanLevel.Progress = timerControlDevice.SendBytes [1];
- }
-
- fanLevel.MouseDownEventHandler += (sss, ff) => {
- try {
- timerControlDevice = timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath);
- if (!btnChoose.IsSelected) {
- btnChoose.IsSelected = true;
- }
- if (timerControlDevice == null) {
- deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)(fanLevel.Progress) };
- if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) {
- timerControlDeviceList.Add (deviceCommon);
- } else {
- timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)fanLevel.Progress };
- }
- }
- timerControlDevice.SendBytes [1] = (byte)fanLevel.Progress;
- } catch { }
- };
-
- btnChoose.MouseUpEventHandler += (dds, ddss) => {
- btnChoose.IsSelected = !btnChoose.IsSelected;
- if (btnChoose.IsSelected) {
- deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)(fanLevel.Progress) };
- if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) {
- timerControlDeviceList.Add (deviceCommon);
- } else {
- timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)fanLevel.Progress };
- }
- } else {
- timerControlDeviceList.Remove (timerControlDeviceList.Find ((obj) => obj.DeviceType == (int)deviceCommon.Type &&
- obj.SubnetID == deviceCommon.SubnetID && obj.DeviceID == deviceCommon.DeviceID && obj.LoopID == deviceCommon.LoopID));
- }
- };
-
- #endregion
- } else if (deviceCommon.Type == DeviceType.LightDimming || deviceCommon.Type == DeviceType.LightDALI) {
+ switch (device.spk) {
+ //DeviceType.LightDALI
+ case SPK.LightDimming: {
#region 璋冨厜鍣ˋ
tempSwitch.RemoveFromParent ();
- DeviceRowView.Height = Application.GetRealHeight (130);
+ deviceRowView.Height = Application.GetRealHeight (130);
btnChoose.Y = Application.GetRealHeight (20);
btnDeviceName.Y = Application.GetRealHeight (15);
@@ -960,7 +930,7 @@
Text = "OFF",
TextAlignment = TextAlignment.CenterLeft,
};
- DeviceRowView.AddChidren (btnLevel);
+ deviceRowView.AddChidren (btnLevel);
var levelBar = new HorizontalSeekBar () {
X = btnLevel.Right,
@@ -972,123 +942,111 @@
ThumbRadius = 6,
Max = 100,
};
- DeviceRowView.AddChidren (levelBar);
+ deviceRowView.AddChidren (levelBar);
+
levelBar.ProgressChanged += (sender, e) => {
if (!btnChoose.IsSelected) {
btnChoose.IsSelected = true;
- }
- deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)levelBar.Progress };
- //timerControlDevice = deviceCommon;
- if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) {
- timerControlDeviceList.Add (deviceCommon);
- } else {
- timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)levelBar.Progress };
}
if (e == 0) {
btnLevel.Text = "OFF";
} else {
btnLevel.Text = e.ToString () + "%";
}
+ value = e.ToString ();
+ DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
};
+ btnChoose.MouseUpEventHandler += (dds, ddss) => {
+ btnChoose.IsSelected = !btnChoose.IsSelected;
+ DeviceDateFun (btnChoose.Tag as Function, "0", btnChoose.IsSelected);
+ };
- if (timerControlDevice != null) {
- if (timerControlDevice.SendBytes [1] == 0) {
- btnLevel.Text = "OFF";
- } else {
- btnLevel.Text = timerControlDevice.SendBytes [1].ToString () + "%";
- }
- levelBar.Progress = timerControlDevice.SendBytes [1];
- }
-
- levelBar.MouseDownEventHandler += (sss, ff) => {
+ if (IsEdit) {
try {
- timerControlDevice = timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath);
- if (!btnChoose.IsSelected) {
- btnChoose.IsSelected = true;
- }
- if (timerControlDevice == null) {
- deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)(levelBar.Progress) };
- if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) {
- timerControlDeviceList.Add (deviceCommon);
- } else {
- timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)levelBar.Progress };
+ var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId));
+ if (dev != null) {
+ if (!btnChoose.IsSelected) {
+ btnChoose.IsSelected = true;
+ }
+ for (int a = 0; a < dev.attributes.Count; a++) {
+ var fundev = dev.attributes [a];
+ if (fundev.key == "brightness") {
+ if (fundev.value == "0") {
+ btnLevel.Text = "OFF";
+ } else {
+ btnLevel.Text = fundev.value + "%";
+ }
+ levelBar.Progress = int.Parse (fundev.value);
+ }
}
}
} catch { }
- };
- btnChoose.MouseUpEventHandler += (dds, ddss) => {
- btnChoose.IsSelected = !btnChoose.IsSelected;
- if (btnChoose.IsSelected) {
- deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)(levelBar.Progress) };
- if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) {
- timerControlDeviceList.Add (deviceCommon);
- } else {
- timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)levelBar.Progress };
- }
- } else {
- timerControlDeviceList.Remove (timerControlDeviceList.Find ((obj) => obj.DeviceType == (int)deviceCommon.Type &&
- obj.SubnetID == deviceCommon.SubnetID && obj.DeviceID == deviceCommon.DeviceID && obj.LoopID == deviceCommon.LoopID));
- }
- };
+ }
#endregion
- } else if (deviceCommon.Type == DeviceType.LightSwitch || deviceCommon.Type == DeviceType.LightEnergySwitch || deviceCommon.Type == DeviceType.LightEnergySocket || deviceCommon.Type == DeviceType.LightSwitchSocket) {
+ }
+ break;
+ //DeviceType.LightEnergySwitch
+ //DeviceType.LightEnergySocket
+ //DeviceType.LightSwitchSocket
+ case SPK.ElectricSocket:
+ case SPK.LightSwitch: {
#region 缁х數鍣�
- //LightSwitch switchLight = deviceCommon as LightSwitch;
- //tempSwitch.IsSelected = switchLight.CurrentBrightness == 100 ? true : false;
-
tempSwitch.MouseUpEventHandler += (sender3, e3) => {
tempSwitch.IsSelected = !tempSwitch.IsSelected;
- var CurrentBrightness = 0;
+
if (tempSwitch.IsSelected) {
- CurrentBrightness = 100;
+ value = "on";
} else {
- CurrentBrightness = 0;
+ value = "off";
}
if (!btnChoose.IsSelected) {
btnChoose.IsSelected = true;
}
- deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness };
- if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) {
- timerControlDeviceList.Add (deviceCommon);
- } else {
- timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness };
- }
+ DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
+
};
- if (timerControlDevice != null) {
- try {
- tempSwitch.IsSelected = timerControlDevice.SendBytes [1] == 100;
- } catch { }
- }
+
btnChoose.MouseUpEventHandler += (dds, ddss) => {
btnChoose.IsSelected = !btnChoose.IsSelected;
- if (btnChoose.IsSelected) {
- var CurrentBrightness = 0;
- if (tempSwitch.IsSelected) {
- CurrentBrightness = 100;
- } else {
- CurrentBrightness = 0;
- }
- deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness };
- if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null)
- timerControlDeviceList.Add (deviceCommon);
- else {
- timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness };
- }
+ if (tempSwitch.IsSelected) {
+ value = "on";
} else {
- timerControlDeviceList.Remove (timerControlDeviceList.Find ((obj) => obj.DeviceType == (int)deviceCommon.Type &&
- obj.SubnetID == deviceCommon.SubnetID && obj.DeviceID == deviceCommon.DeviceID && obj.LoopID == deviceCommon.LoopID));
+ value = "off";
}
+ DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
+
};
+
+ if (IsEdit) {
+ try {
+ var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId));
+ if (dev != null) {
+ if (!btnChoose.IsSelected) {
+ btnChoose.IsSelected = true;
+ }
+ for (int a = 0; a < dev.attributes.Count; a++) {
+ var fundev = dev.attributes [a];
+ if (fundev.value == "on") {
+ tempSwitch.IsSelected = true;
+ } else {
+ tempSwitch.IsSelected = false;
+ }
+ }
+ }
+ } catch { }
+ }
#endregion
- } else if (deviceCommon.Type == DeviceType.CurtainModel || deviceCommon.Type == DeviceType.CurtainTrietex || deviceCommon.Type == DeviceType.CurtainRoller) {
+ }
+ break;
+ case SPK.CurtainRoller:
+ case SPK.CurtainTrietex:
+ case SPK.CurtainSwitch: {
#region 绐楀笜
- //2020-07-09 鍒锋柊鎺у埗鎿嶄綔鐮�
- deviceCommon.Command = (int)Command.UpdataCurtainModelStutas;
tempSwitch.RemoveFromParent ();
var tempSwitch1 = new Button () {
- Width = Application.GetMinRealAverage (90),
- Height = Application.GetMinRealAverage (53),
+ Width = Application.GetRealWidth (90),
+ Height = Application.GetRealWidth (53),
X = Application.GetRealWidth (640 - 90 - 20),
Radius = 5,
BorderColor = SkinStyle.Current.Transparent,
@@ -1098,90 +1056,167 @@
BackgroundColor = SkinStyle.Current.ButtonColor,
SelectedBackgroundColor = SkinStyle.Current.SelectedColor,
Text = "CLOSE",
- Tag = deviceCommon.CommonLoopID,
+ Tag = device,
};
- DeviceRowView.AddChidren (tempSwitch1);
-
+ deviceRowView.AddChidren (tempSwitch1);
tempSwitch1.MouseUpEventHandler += (sender3, e3) => {
tempSwitch1.IsSelected = !tempSwitch1.IsSelected;
-
- var CurrentBrightness = 0;
if (tempSwitch1.IsSelected) {
- CurrentBrightness = 1;
+ value = "on";
tempSwitch1.Text = "OPEN";
tempSwitch1.BackgroundColor = SkinStyle.Current.SelectedColor;
} else {
- CurrentBrightness = 2;
+ value = "off";
tempSwitch1.Text = "CLOSE";
tempSwitch1.BackgroundColor = SkinStyle.Current.ButtonColor;
}
if (!btnChoose.IsSelected) {
btnChoose.IsSelected = true;
}
- deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness };
- //2020-07-09
- DeviceInfo mDeviceInfo = timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath);
- if (mDeviceInfo == null) {
- timerControlDeviceList.Add (deviceCommon);
- } else {
- mDeviceInfo.Command = (int)Command.UpdataCurtainModelStutas;
- mDeviceInfo.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness };
- }
- };
+ DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
- if (timerControlDevice != null) {
- try {
- if (timerControlDevice.SendBytes [1] == 1) {
- tempSwitch1.Text = "OPEN";
- tempSwitch1.IsSelected = true;
- tempSwitch1.BackgroundColor = SkinStyle.Current.SelectedColor;
- } else {
- tempSwitch1.Text = "CLOSE";
- tempSwitch1.IsSelected = false;
- tempSwitch1.BackgroundColor = SkinStyle.Current.ButtonColor;
- }
- } catch { }
- }
+
+ };
btnChoose.MouseUpEventHandler += (dds, ddss) => {
btnChoose.IsSelected = !btnChoose.IsSelected;
- if (btnChoose.IsSelected) {
- var CurrentBrightness = 0;
- if (tempSwitch.IsSelected) {
- CurrentBrightness = 1;
- } else {
- CurrentBrightness = 2;
- }
- deviceCommon.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness };
-
- //if (timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath) == null) {
- // timerControlDeviceList.Add (deviceCommon);
- //} else {
- // timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath).SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness };
- //}
-
- //2020-07-09
- DeviceInfo mDeviceInfo = timerControlDeviceList.Find ((obj) => obj.DevicePath == deviceCommon.SavePath);
- if (mDeviceInfo == null) {
- timerControlDeviceList.Add (deviceCommon);
- } else {
- mDeviceInfo.Command = (int)Command.UpdataCurtainModelStutas;
- mDeviceInfo.SendBytes = new byte [] { deviceCommon.LoopID, (byte)CurrentBrightness };
- }
+ if (tempSwitch1.IsSelected) {
+ value = "on";
} else {
- timerControlDeviceList.Remove (timerControlDeviceList.Find ((obj) => obj.DeviceType == (int)deviceCommon.Type &&
- obj.SubnetID == deviceCommon.SubnetID && obj.DeviceID == deviceCommon.DeviceID && obj.LoopID == deviceCommon.LoopID));
+ value = "off";
}
+ DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
};
+
+ if (IsEdit) {
+ try {
+ var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId));
+ if (dev != null) {
+ if (!btnChoose.IsSelected) {
+ btnChoose.IsSelected = true;
+ }
+ for (int a = 0; a < dev.attributes.Count; a++) {
+ var fundev = dev.attributes [a];
+ if (fundev.value == "on") {
+ tempSwitch1.IsSelected = true;
+ tempSwitch1.Text = "OPEN";
+ } else {
+ tempSwitch1.IsSelected = false;
+ tempSwitch1.Text = "CLOSE";
+ }
+ }
+ }
+ } catch { }
+ }
#endregion
}
- }catch(Exception ex) {
- Utlis.WriteLine ("AddSchedule error : "+ ex.Message);
+ break;
+ case SPK.ElectricFan: {
+ #region 椋庢墖
+ tempSwitch.RemoveFromParent ();
+ deviceRowView.Height = Application.GetRealHeight (130);
+ btnChoose.Y = Application.GetRealHeight (5);
+ btnDeviceName.Y = Application.GetRealHeight (0);
+
+ var btnFanLevel = new Button () {
+ X = btnChoose.X + Application.GetRealWidth (10),
+ Y = btnChoose.Bottom,
+ Width = Application.GetRealWidth (75),
+ Height = Application.GetRealHeight (45),
+ TextColor = SkinStyle.Current.TextColor1,
+ SelectedTextColor = SkinStyle.Current.TextColor1,
+ Text = "OFF",
+ //Text = "",
+ TextAlignment = TextAlignment.CenterLeft,
+ };
+ deviceRowView.AddChidren (btnFanLevel);
+
+ var wi = Application.GetRealWidth (480 / 8);
+ for (int a = 0; a < 9; a++) {
+ var btnFanLevelTip = new Button () {
+ X = btnFanLevel.Right + wi * a - Application.GetRealWidth (0),
+ Y = btnFanLevel.Y - Application.GetRealHeight (5),
+ Width = wi,
+ Height = Application.GetRealHeight (27),
+ TextAlignment = TextAlignment.TopLeft,
+ Text = a.ToString (),
+ TextColor = SkinStyle.Current.TextColor1,
+ TextSize = 12,
+ };
+ deviceRowView.AddChidren (btnFanLevelTip);
+ if (a == 0) {
+ btnFanLevelTip.Text = "OFF";
+ btnFanLevelTip.TextSize = 11;
+ }
+ }
+ var fanLevel = new HorizontalSeekBar () {
+ X = btnFanLevel.Right,
+ Y = btnFanLevel.Y + Application.GetRealHeight (10),
+ Width = Application.GetRealWidth (492),
+ Height = Application.GetRealHeight (45),
+ ThumbColor = SkinStyle.Current.ThumbColor,
+ ProgressColor = SkinStyle.Current.SelectedColor,
+ ThumbRadius = Application.GetRealWidth (3),
+ Max = 8,
+ Progress = 2,
+
+ };
+ deviceRowView.AddChidren (fanLevel);
+ value = "2";
+ fanLevel.ProgressChanged += (sender, e) => {
+ if (!btnChoose.IsSelected) {
+ btnChoose.IsSelected = true;
+ }
+ value = e.ToString ();
+ if (value == "0") {
+ btnFanLevel.Text = "OFF";
+ } else {
+ btnFanLevel.Text = value;
+ }
+ DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
+ };
+
+ btnChoose.MouseUpEventHandler += (dds, ddss) => {
+ btnChoose.IsSelected = !btnChoose.IsSelected;
+ DeviceDateFun (btnChoose.Tag as Function, value, btnChoose.IsSelected);
+ };
+ if (IsEdit) {
+ try {
+ var dev = selectedDeviceList.Find ((c) => c.deviceId == Int64.Parse (device.deviceId));
+ if (dev != null) {
+ if (!btnChoose.IsSelected) {
+ btnChoose.IsSelected = true;
+ }
+ for (int a = 0; a < dev.attributes.Count; a++) {
+ var fundev = dev.attributes [a];
+ if (fundev.key == "fan_speed_percent") {
+ fanLevel.Progress = int.Parse (fundev.value);
+ if (fundev.value == "0") {
+ btnFanLevel.Text = "OFF";
+ } else {
+ btnFanLevel.Text = fundev.value;
+ }
+ }
+ }
+ }
+ } catch { }
+ }
+ #endregion
+ }
+ break;
}
- });
+
+
+
+
+ }
+ } catch (Exception ex) {
+ Utlis.WriteLine ("AddSchedule error : " + ex.Message);
}
- }
+ });
+
+
} catch (Exception ex) {
Utlis.WriteLine (ex.Message);
} finally {
@@ -1191,5 +1226,95 @@
}
});
}
+ /// <summary>
+ /// 璁惧鏁版嵁杞崲
+ /// </summary>
+ /// <param name="function"></param>
+ /// <param name="value">寮�鍏崇姸鎬佸��</param>
+ /// <param name="isSelected">鍒ゆ柇鎺т欢鐐瑰嚮鐘舵��</param>
+ public void DeviceDateFun (Function function, string value, bool isSelected)
+ {
+ string keyValue = "";
+ switch (function.spk) {
+ case SPK.CurtainTrietex:
+ case SPK.CurtainRoller:
+ case SPK.LightSwitch:
+ case SPK.CurtainSwitch:
+ case SPK.ElectricSocket: {
+ keyValue = "on_off";
+ }
+ break;
+ case SPK.LightDimming: {
+ keyValue = "brightness";
+ }
+ break;
+ case SPK.ElectricFan: {
+ keyValue = "fan_speed_percent";
+ }
+ break;
+
+ }
+ Fun fun = new Fun ();
+ fun.deviceId = Int64.Parse (function.deviceId);
+ fun.spk = function.spk;
+ fun.attributes.Add (new Attributes { key = keyValue, value = value });
+ fun.bus.addresses = function.bus.addresses;
+ fun.bus.loopId = function.bus.loopId;
+ AddDeviceList (fun, isSelected);
+ }
+ /// <summary>
+ /// 娣诲姞璁惧鏁版嵁鍒板垪琛ㄩ噷
+ /// </summary>
+ /// <param name="fun"></param>
+ /// <param name="isSelected">鍒ゆ柇鎺т欢鐐瑰嚮鐘舵��</param>
+ public void AddDeviceList (Fun fun, bool isSelected)
+ {
+
+ switch (fun.spk) {
+ case SPK.LightDimming: {
+ //璋冨厜鍋氫簡涓�涓壒娈婂鐞嗭紱
+ if (fun.attributes.Count == 1) {
+ var dic = fun.attributes [0];
+ if (dic.key == "brightness") {
+ Attributes attributes = new Attributes ();
+ attributes.key = "on_off";
+ if (dic.value == "0") {
+ attributes.value = "off";
+ } else {
+ attributes.value = "on";
+ }
+ fun.attributes.Add (attributes);
+ }
+
+ }
+ break;
+ }
+ case SPK.ElectricFan: {
+ if (fun.attributes.Count == 1) {
+ var dic = fun.attributes [0];
+ if (dic.key == "fan_speed_percent") {
+ Attributes attributes = new Attributes ();
+ attributes.key = "on_off";
+ if (dic.value == "0") {
+ attributes.value = "off";
+ } else {
+ attributes.value = "on";
+ }
+ fun.attributes.Add (attributes);
+ }
+ }
+ }
+ break;
+ }
+ var device = selectedDeviceList.Find ((dev) => dev.deviceId == fun.deviceId);
+ if (device != null) {
+ selectedDeviceList.Remove (device);
+ }
+ if (isSelected) {
+ selectedDeviceList.Add (fun);
+ }
+ }
+
+
}
}
--
Gitblit v1.8.0