From 351bdda734832d821a9764b0cde8be5d83c4ec50 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期四, 01 十二月 2022 09:56:25 +0800
Subject: [PATCH] 2022年12月01日09:56:23
---
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs | 665 ++++++++++++++++++++++++++++++++++++------------------
1 files changed, 438 insertions(+), 227 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
index 5769297..891aeeb 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
@@ -3,7 +3,7 @@
using System.Text;
using ZigBee.Device;
-namespace Shared.Phone.UserCenter.DeviceRelay
+namespace Shared.Phone.UserCenter.Device
{
/// <summary>
/// 璁惧鐨勫姛鑳借缃晫闈�
@@ -15,7 +15,7 @@
/// <summary>
/// 鍒楄〃鎺т欢
/// </summary>
- private VerticalListControl listview = null;
+ private FrameListControl listview = null;
/// <summary>
/// 褰撳墠閫夋嫨鐨勮澶�
/// </summary>
@@ -27,15 +27,23 @@
/// <summary>
/// 璁惧澶囨敞鐨勬帶浠�
/// </summary>
- private FrameCaptionInputControl btnDeviceName = null;
+ private FrameCaptionInputControl frameDeviceName = null;
/// <summary>
- /// 璁惧Mac鍦板潃
+ /// 璁惧鐨勬煇涓�鍥炶矾
/// </summary>
- private string deviceMac = string.Empty;
+ private CommonDevice deviceObj = null;
+ /// <summary>
+ /// 鍙樉绀哄悓涓�绉嶇被鍨嬬殑鍥炶矾
+ /// </summary>
+ private bool onlyType = false;
/// <summary>
/// 璁惧闇�瑕佷繚瀛樼殑璁惧鍚嶅瓧
/// </summary>
private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>();
+ /// <summary>
+ /// 淇℃伅缂栬緫鎺т欢
+ /// </summary>
+ private InformationEditorControl tableContr = null;
#endregion
@@ -44,10 +52,12 @@
/// <summary>
/// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
/// </summary>
- /// <param name="i_deviceMac">璁惧Mac鍦板潃</param>
- public void ShowForm(string i_deviceMac)
+ /// <param name="i_device">璁惧鐨勬煇涓�鍥炶矾</param>
+ /// <param name="i_onlyType">鍙樉绀哄悓涓�绉嶇被鍨嬬殑鍥炶矾</param>
+ public void ShowForm(CommonDevice i_device, bool i_onlyType)
{
- this.deviceMac = i_deviceMac;
+ this.deviceObj = i_device;
+ this.onlyType = i_onlyType;
//璁剧疆澶撮儴淇℃伅
base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp));
@@ -67,30 +77,53 @@
//娓呯┖bodyFrame
this.ClearBodyFrame();
+ var listBackControl = new VerticalFrameControl();
+ listBackControl.Height = bodyFrameLayout.Height;
+ bodyFrameLayout.AddChidren(listBackControl);
+
//鍒濆鍖栨甯�
- this.InitFrameTable();
+ this.tableContr = new InformationEditorControl();
+
+ if (this.deviceObj.Type == DeviceType.FreshAir || this.deviceObj.Type == DeviceType.PMSensor)
+ {
+ this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1028);
+ }
+ else if (this.deviceObj.Type == DeviceType.Airer)
+ {
+ //鏅捐。鏋惰澶囧彧瀛樺彇鍥炶矾1锛屽鏋滄槸鏅捐。鏋讹紝榛樿绔偣閮芥槸1锛�
+ this.deviceObj.DeviceEpoint = 1;
+ this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1342);
+ }
+ else if (this.deviceObj.Type == DeviceType.TemperatureSensor)
+ {
+ //绌烘皵璐ㄩ噺浼犳劅鍣�
+ //鑾峰彇璁惧绫诲瀷
+ var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj });
+ //绌烘皵璐ㄩ噺浼犳劅鍣�
+ if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
+ {
+ this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1368);
+ }
+ }
+ if (this.listview == null)
+ {
+ this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1128);
+ }
+
//鍒濆鍖栬澶囧洖璺浘鏍�
- this.InitDeviceEpointIcon();
+ this.InitDeviceEpointIcon(listBackControl);
//淇濆瓨
var btnFinish = new BottomClickButton();
- //鍊熺敤Y杞村潗鏍�(璁╄繖涓尯鍩熶笉鑳界偣鍑昏彍鍗�)
- var frameBack = new FrameLayout();
- frameBack.Y = btnFinish.Yaxis;
- frameBack.Height = bodyFrameLayout.Height - btnFinish.Yaxis;
- bodyFrameLayout.AddChidren(frameBack);
-
btnFinish.TextID = R.MyInternationalizationString.uSave;
bodyFrameLayout.AddChidren(btnFinish);
- btnFinish.ButtonClickEvent += async (sender, e) =>
+ btnFinish.ButtonClickEvent += (sender, e) =>
{
//璁板綍璧峰綋鍓嶆鍦ㄦ搷浣滅殑鍥炶矾鍚嶅瓧
- dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
- //寮�鍚繘搴︽潯
- this.ShowProgressBar();
+ dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim();
foreach (var epoint in dicDeviceSaveName.Keys)
{
- var device = Common.LocalDevice.Current.GetDevice(deviceMac, epoint);
+ var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
if (device == null || dicDeviceSaveName[epoint] == string.Empty)
{
//涓嶈兘鍏佽绌虹櫧鍚嶅瓧
@@ -101,19 +134,32 @@
if (oldName != newName)
{
//璁惧鍚嶇О淇敼
- var result = await Common.LocalDevice.Current.ReName(device, newName);
+ var result = Common.LocalDevice.Current.ReName(device, newName);
if (result == false)
{
- //鍏抽棴
- this.CloseProgressBar();
return;
}
}
}
- this.CloseProgressBar();
+
+ //濡傛灉鏄櫨琛f灦銆屾椂闂村厛涓嶅鐞嗐��
+ //if (deviceObj.Type == DeviceType.Airer)
+ //{
+ // var airer = deviceObj as Airer;
+ // SetAirerFunTimeDevice(airer);
+ //}
+ //else
+ //{
//鍏抽棴鑷韩
this.CloseForm();
+ //}
+
};
+ //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欎笉鑳界紪杈�
+ if (Common.Config.Instance.Home.IsShowTemplate == true)
+ {
+ btnFinish.CanClick = false;
+ }
}
/// <summary>
@@ -126,77 +172,83 @@
//鍥炶矾澶囨敞
string caption = Language.StringByID(R.MyInternationalizationString.uDeviceEpointNote);
string nameValue = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
+
if (dicDeviceSaveName.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
{
nameValue = dicDeviceSaveName[nowSelectDevice.DeviceEpoint];
}
- this.btnDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2);
- listview.AddChidren(btnDeviceName);
- btnDeviceName.InitControl();
- btnDeviceName.AddBottomLine();
- btnDeviceName.txtInput.FinishInputEvent += async () =>
+ this.frameDeviceName = new FrameCaptionInputControl(caption, nameValue, listview.rowSpace / 2);
+ this.frameDeviceName.txtInput.MaxByte = 48;//闄愬埗鍙兘杈撳叆48涓瓧鑺�
+ listview.AddChidren(frameDeviceName);
+ frameDeviceName.InitControl();
+ frameDeviceName.AddBottomLine();
+ //濡傛灉褰撳墠鏄睍绀烘ā鏉�,鍒欓渶瑕佸鐞�
+ if (Common.Config.Instance.Home.IsShowTemplate == false)
{
- string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
- if (btnDeviceName.Text.Trim() == string.Empty)
+ frameDeviceName.txtInput.FinishInputEvent += () =>
{
- //灏嗗悕瀛楄繕鍘�
- btnDeviceName.Text = oldName;
- }
- if (oldName != btnDeviceName.Text.Trim())
- {
- //璁惧鍚嶇О淇敼
- var result = await Common.LocalDevice.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim());
- if (result == false)
+ string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
+ if (frameDeviceName.Text.Trim() == string.Empty)
{
- return;
+ //灏嗗悕瀛楄繕鍘�
+ frameDeviceName.Text = oldName;
}
- //鍥炶矾澶囨敞淇敼鎴愬姛!
- string msg = Language.StringByID(R.MyInternationalizationString.uDeviceEpointReNoteSuccess);
- this.ShowMassage(ShowMsgType.Tip, msg);
- }
- };
+ if (oldName != frameDeviceName.Text.Trim())
+ {
+ //璁惧鍚嶇О淇敼
+ var result = Common.LocalDevice.Current.ReName(nowSelectDevice, frameDeviceName.Text.Trim());
+ if (result == false)
+ {
+ return;
+ }
+ //鍥炶矾澶囨敞淇敼鎴愬姛!
+ string msg = Language.StringByID(R.MyInternationalizationString.uDeviceEpointReNoteSuccess);
+ this.ShowMassage(ShowMsgType.Tip, msg);
+ }
+ };
+ }
//鎵�灞炲尯鍩�
- List<string> listRoomName = Common.Room.CurrentRoom.GetRoomListNameByDevice(nowSelectDevice);
- caption = Language.StringByID(R.MyInternationalizationString.uBelongArea);
- nameValue = Common.Room.CurrentRoom.GetRoomName(listRoomName);
- var btnBeloneArea = new FrameCaptionViewControl(caption, nameValue, listview.rowSpace / 2);
- listview.AddChidren(btnBeloneArea);
- btnBeloneArea.InitControl();
+ var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
+ listview.AddChidren(rowBeloneArea);
+ rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), nowSelectDevice);
//搴曠嚎
- btnBeloneArea.AddBottomLine();
- //鍙崇澶�
- btnBeloneArea.AddRightArrow();
- btnBeloneArea.ButtonClickEvent += (sender, e) =>
+ rowBeloneArea.AddBottomLine();
+ rowBeloneArea.SelectRoomEvent += (roomKeys) =>
{
- var form = new SelectRoomForm();
- form.AddForm(listRoomName);
- form.ActionSelectRoom = (list) =>
- {
- //鍙樻洿鎴块棿
- Common.Room.CurrentRoom.ChangedRoom(nowSelectDevice, list);
-
- btnBeloneArea.Text = Common.Room.CurrentRoom.GetRoomName(list);
- listRoomName.Clear();
- listRoomName.AddRange(list);
- };
+ //鍙樻洿鎴块棿
+ HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys);
};
+
+ if (this.deviceObj.Type == DeviceType.TemperatureSensor)
+ {
+ //鑾峰彇璁惧绫诲瀷
+ var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj });
+ //绌烘皵璐ㄩ噺浼犳劅鍣�
+ if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
+ {
+ //璁惧绫诲瀷
+ this.AddDeviceTypeRow();
+ }
+ }
//娣诲姞鍔熻兘绫诲瀷琛�
this.AddFunctionTypeRow();
- //鍊熺敤Y杞村潗鏍�
- var btnTemp = new BottomClickButton();
- var realHeight = listview.GetChildren(0).Height * listview.ChildrenCount;
- if (bodyFrameLayout.Height - btnTemp.Yaxis + realHeight > listview.Height)
+ if (this.deviceObj.Type == DeviceType.Airer)
{
- //淇冧娇琚尅浣忕殑鑿滃崟鑳藉鍚戜笂婊戝姩
- var frameTemp = new FrameLayout();
- frameTemp.Height = bodyFrameLayout.Height - btnTemp.Yaxis + Application.GetRealHeight(115);
- listview.AddChidren(frameTemp);
+ var airer = this.deviceObj as Airer;
+ //娣诲姞鐑樺共鏃堕棿琛�
+ this.AddAirerDryTimeRow(airer);
+ //娣诲姞椋庡共鏃堕棿琛�
+ this.AddAirerWindTimeRow(airer);
+ //娣诲姞娑堟瘨鏃堕棿琛�
+ this.AddAirerDisinfectTimeRow(airer);
}
- btnTemp = null;
+
+ //鍒濆鍖栨甯冨畬鎴�
+ tableContr.FinishInitControl();
}
#endregion
@@ -208,6 +260,12 @@
/// </summary>
private void InitTopRightMenu()
{
+ //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
+ if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false
+ || Common.Config.Instance.Home.IsShowTemplate == true)
+ {
+ return;
+ }
var btnIcon = new MostRightIconControl(69, 69);
btnIcon.UnSelectedImagePath = "Item/More.png";
topFrameLayout.AddChidren(btnIcon);
@@ -228,11 +286,11 @@
string deviceMenu = string.Empty;
//妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
- if (canTest == true)
- {
- menuCount = 2;
- }
- var frame = new TopRightMenuControl(this, menuCount);
+ //if (canTest == true)
+ //{
+ // menuCount = 2;
+ //}
+ var frame = new TopRightMenuControl(menuCount, 1);
if (canTest == true)
{
//瀹氫綅
@@ -245,10 +303,10 @@
}
//鍒犻櫎
- deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
- frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
- {
- });
+ //deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
+ //frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
+ //{
+ //});
}
#endregion
@@ -260,86 +318,182 @@
/// </summary>
private void AddFunctionTypeRow()
{
- //濡傛灉鏄户鐢靛櫒鍜岃皟鍏夊櫒鐨勮瘽
- if (nowSelectDevice.Type == DeviceType.OnOffOutput || nowSelectDevice.Type == DeviceType.DimmableLight
- || nowSelectDevice.Type == DeviceType.ColorDimmableLight)
+ //鑷畾涔夊姛鑳界被鍨嬫帶浠�
+ var rowFunction = new DeviceFunctionTypeRowControl(nowSelectDevice, listview.rowSpace / 2);
+ if (rowFunction.CanShowRow == false)
{
- //鍔熻兘绫诲瀷
- string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
-
- //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛�
- int nowSelectNo = 1;
- string strType = string.Empty;
- if (nowSelectDevice.DfunctionType == DeviceFunctionType.A鐏厜)
- {
- strType = Language.StringByID(R.MyInternationalizationString.uLight);
- nowSelectNo = 1;
- }
- else if (nowSelectDevice.DfunctionType == DeviceFunctionType.A寮�鍏�)
- {
- strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
- nowSelectNo = 0;
- }
- else if (nowSelectDevice.DfunctionType == DeviceFunctionType.A鎻掑骇)
- {
- strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
- nowSelectNo = 2;
- }
- else
- {
- //榛樿鐏厜
- strType = Language.StringByID(R.MyInternationalizationString.uLight);
- nowSelectDevice.DfunctionType = DeviceFunctionType.A鐏厜;
- nowSelectDevice.ReSave();
- }
- var btnFunction = new FrameCaptionViewControl(caption, strType, listview.rowSpace / 2);
- btnFunction.UseClickStatu = false;
- listview.AddChidren(btnFunction);
- btnFunction.InitControl();
- //搴曠嚎
- btnFunction.AddBottomLine();
-
- //濡傛灉鏄户鐢靛櫒鎵嶈兘澶熸洿鏀硅繖涓姛鑳界被鍨�
- if (nowSelectDevice.Type == DeviceType.OnOffOutput)
- {
- btnFunction.UseClickStatu = true;
- //鍙崇澶�
- btnFunction.AddRightArrow();
- btnFunction.ButtonClickEvent += (sender, e) =>
- {
- //鏄剧ず鍒楄〃
- var listText = new List<string>();
- listText.Add(Language.StringByID(R.MyInternationalizationString.uSwitch));//寮�鍏�
- listText.Add(Language.StringByID(R.MyInternationalizationString.uLight));//鐏厜
- listText.Add(Language.StringByID(R.MyInternationalizationString.uSocket1));//鎻掑骇
- //鏍囬:閫夋嫨鍔熻兘绫诲瀷
- var title = Language.StringByID(R.MyInternationalizationString.uSelectFunctionType);
-
- var form = new BottomDialogSelectForm();
- form.AddForm(title, listText, nowSelectNo);
- form.FinishSelectEvent += (selectNo) =>
- {
- btnFunction.Text = listText[selectNo];
- nowSelectNo = selectNo;
- if (selectNo == 0)
- {
- nowSelectDevice.DfunctionType = DeviceFunctionType.A寮�鍏�;
- }
- else if (selectNo == 1)
- {
- nowSelectDevice.DfunctionType = DeviceFunctionType.A鐏厜;
- }
- else
- {
- nowSelectDevice.DfunctionType = DeviceFunctionType.A鎻掑骇;
- }
- nowSelectDevice.ReSave();
- };
- };
- }
+ return;
}
+ listview.AddChidren(rowFunction);
+ rowFunction.InitControl();
+ //搴曠嚎
+ rowFunction.AddBottomLine();
+ }
+ #endregion
+
+ #region 鈻� 璁惧绫诲瀷___________________________
+
+ /// <summary>
+ /// 娣诲姞鍔熻兘绫诲瀷琛�
+ /// </summary>
+ private void AddDeviceTypeRow()
+ {
+ var caption = Language.StringByID(R.MyInternationalizationString.uDeviceType);
+ var listNewDevice = new List<CommonDevice>();
+ listNewDevice.Add(deviceObj);
+ var deviceName = Common.LocalDevice.Current.GetDeviceObjectText(listNewDevice);
+ var btnType = new FrameCaptionViewControl(caption, deviceName, listview.rowSpace / 2);
+ btnType.UseClickStatu = false;
+ listview.AddChidren(btnType);
+ btnType.InitControl();
+ //鍒掔嚎
+ btnType.AddBottomLine();
+ }
+ #endregion
+
+ #region 鈻� 鏅捐。鏋朵笓鐢╛________________________
+ #region 鈻� 鐑樺共鏃堕棿_________________________
+ /// <summary>
+ /// 鐑樺共鏃堕棿琛�
+ /// </summary>
+ private void AddAirerDryTimeRow(Airer airer)
+ {
+ var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
+ listview.AddChidren(rowAirer);
+ var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 3 + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ if (airer.DryTime != 0)
+ {
+ double result = airer.DryTime / 60.0;
+ var hour = Math.Round(result, 2);
+ text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ }
+ rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
+ //搴曠嚎
+ rowAirer.AddBottomLine();
+ rowAirer.SelectTimeEvent += (v1, v2) =>
+ {
+ //double result = second / 3600.0;
+ //var hour = Math.Round(result, 1);
+ //text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ //rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
+ };
+
+ }
+ #endregion
+
+ #region 鈻� 椋庡共鏃堕棿_________________________
+ /// <summary>
+ /// 椋庡共鏃堕棿琛�
+ /// </summary>
+ private void AddAirerWindTimeRow(Airer airer)
+ {
+ var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
+ listview.AddChidren(rowAirer);
+ var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 3 + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ if (airer.WindTime != 0)
+ {
+ double result = airer.WindTime / 60.0;
+ var hour = Math.Round(result, 1);
+ text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ }
+ rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerWindTime), text, 2);
+ //搴曠嚎
+ rowAirer.AddBottomLine();
+ rowAirer.SelectTimeEvent += (v1, v2) =>
+ {
+ //double result = second / 3600.0;
+ //var hour = Math.Round(result, 1);
+ //text = hour + Language.StringByID(R.MyInternationalizationString.AirerHour);
+ //rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDryTime), text, 1);
+ };
+ }
+ #endregion
+
+ #region 鈻� 娑堟瘨鏃堕棿_________________________
+ /// <summary>
+ /// 娑堟瘨鏃堕棿琛�
+ /// </summary>
+ private void AddAirerDisinfectTimeRow(Airer airer)
+ {
+ var rowAirer = new AiererTimeControl(listview.rowSpace / 2);
+ listview.AddChidren(rowAirer);
+ var text = Language.StringByID(R.MyInternationalizationString.AirerDefault) + 30 + Language.StringByID(R.MyInternationalizationString.AirerMin);
+ if (airer.DisinfectTime != 0)
+ {
+ text = airer.DisinfectTime + Language.StringByID(R.MyInternationalizationString.AirerMin);
+ }
+ rowAirer.InitControl(airer, bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.AirerDisinfectTime), text, 3);
+ //搴曠嚎
+ rowAirer.AddBottomLine();
+ rowAirer.SelectTimeEvent += (v1, v2) =>
+ {
+
+ };
+ }
+ #endregion
+
+ #region 鈻� 璇诲彇鏃堕棿鍛戒护___________________
+
+ /// <summary>
+ /// 璇诲彇鏃堕棿鍛戒护
+ /// </summary>
+ public void ReadAirerFunTimeDevice()
+ {
+
}
+ #endregion
+
+ /// <summary>
+ /// 璁惧鏃堕棿璁剧疆
+ /// </summary>
+ private void SetAirerFunTimeDevice(Airer airer)
+ {
+ HdlThreadLogic.Current.RunThread(async () =>
+ {
+ //鎵撳紑杩涘害鏉�
+ this.ShowProgressBar();
+
+ //鍒欒璁剧疆瀵瑰簲鐨勫姛鑳芥椂闂�
+ List<CommonDevice> listdevice = new List<CommonDevice>();
+
+ for (int i = 3; i < 6; i++)
+ {
+ int time = 0;
+ listdevice.Add(deviceObj);
+ switch (i)
+ {
+ case 3:
+ time = airer.WindTime;
+ break;
+ case 4:
+ time = airer.DryTime;
+ break;
+ case 5:
+ time = airer.DisinfectTime;
+ break;
+ }
+ bool result = await Common.LocalDevice.Current.SetAirerTimeDevice(listdevice, airer, time, i);
+ if (result == false)
+ {
+ airer.WindTime = airer.WindRemainTime = 0;
+ airer.DryTime = airer.DryRemainTime = 0;
+ airer.DisinfectTime = airer.DisinfectTime = 0;
+ HdlThreadLogic.Current.RunMainInThread(() =>
+ {
+ this.InitMiddleFrame();
+ });
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar();
+ return;
+ }
+ }
+ //鍏抽棴杩涘害鏉�
+ this.CloseProgressBar();
+ //鍏抽棴鑷韩
+ this.CloseForm();
+ });
+ }
#endregion
#region 鈻� 鍒濆鍖栬澶囧洖璺浘鏍嘷________________
@@ -347,7 +501,7 @@
/// <summary>
/// 鍒濆鍖栬澶囧洖璺浘鏍�
/// </summary>
- private void InitDeviceEpointIcon()
+ private void InitDeviceEpointIcon(VerticalFrameControl listBackControl)
{
//鑾峰彇鎸夌粍鍒嗛厤鐨勮澶�
var listIcon = this.GetAllDeviceGroup();
@@ -355,11 +509,10 @@
var frameBorder = new FrameLayout();
frameBorder.Y = Application.GetRealHeight(147);
frameBorder.Gravity = Gravity.CenterHorizontal;
- frameBorder.Width = Application.GetRealWidth(887);
+ frameBorder.Width = this.GetPictrueRealSize(887);
frameBorder.Height = Application.GetRealHeight(423);
- frameBorder.BorderWidth = (uint)Application.GetMinRealAverage(3);
- frameBorder.BorderColor = 0xffd0d0d0;
- bodyFrameLayout.AddChidren(frameBorder);
+ frameBorder.Radius = (uint)Application.GetRealHeight(6);
+ listBackControl.frameTable.AddChidren(frameBorder);
var frameBack = new FrameLayout();
frameBack.Height = frameBorder.Height;
@@ -369,7 +522,7 @@
//闇�瑕佹粦鍔ㄦ帶浠�
var listControl = new VerticalScrolViewLayout();
listControl.Height = frameBorder.Height;
- bodyFrameLayout.AddChidren(listControl);
+ frameBorder.AddChidren(listControl);
listControl.AddChidren(frameBack);
}
@@ -383,30 +536,95 @@
for (int i = 0; i < listIcon.Count; i++)
{
var frame = new FrameLayout();
- frame.Width = Application.GetMinRealAverage(887);
- frame.Height = Application.GetMinRealAverage(124);
+ frame.Width = frameBorder.Width;
+ frame.Height = this.GetPictrueRealSize(124);
frameBack.AddChidren(frame);
//鍒濆鍖栦竴琛岃澶囧浘鏍�
- this.InitDeviceIconFrame(frame, listIcon[i], i == 0, ref index);
+ this.InitDeviceIconFrame(frame, listIcon[i], ref index);
if (listIcon.Count == 1)
{
frame.Gravity = Gravity.CenterVertical;
+
+ //濡傛灉鏄柊椋�
+ if (deviceObj.Type == DeviceType.FreshAir)
+ {
+ frame.RemoveFromParent();
+ frameBorder.Y = Application.GetRealHeight(0);
+ frameBorder.Height = Application.GetRealHeight(709);
+ frameBack.BackgroundImagePath = "FreshAir/FreshAirRealDevicePic.png";
+ frameBack.Width = this.GetPictrueRealSize(878);
+ frameBack.Height = this.GetPictrueRealSize(354);
+ frameBack.Y = Application.GetRealHeight(153);
+ frameBack.Gravity = Gravity.Center;
+ }
+
+ //濡傛灉鏄疨M2.5
+ if (deviceObj.Type == DeviceType.PMSensor)
+ {
+ frame.RemoveFromParent();
+ frameBorder.Y = Application.GetRealHeight(0);
+ frameBorder.Height = Application.GetRealHeight(708);
+ frameBack.BackgroundImagePath = "RealDevice/SensorPMTwoPointFive.png";
+ frameBack.Width = this.GetPictrueRealSize(418);
+ frameBack.Height = this.GetPictrueRealSize(403);
+ frameBack.Y = Application.GetRealHeight(153);
+ frameBack.Gravity = Gravity.Center;
+ }
+
+ //濡傛灉鏄櫨琛f灦
+ if (deviceObj.Type == DeviceType.Airer)
+ {
+ frame.RemoveFromParent();
+ frameBorder.Y = Application.GetRealHeight(0);
+ frameBorder.Height = Application.GetRealHeight(299);
+ frameBack.BackgroundImagePath = "Airer/Airer216.png";
+ frameBack.Width = this.GetPictrueRealSize(207);
+ frameBack.Height = this.GetPictrueRealSize(207);
+ frameBack.Y = Application.GetRealHeight(92);
+ frameBack.Gravity = Gravity.CenterHorizontal;
+ }
+
+ //濡傛灉鏄┖姘旇川閲忎紶鎰熷櫒
+ if (this.deviceObj.Type == DeviceType.TemperatureSensor)
+ {//绌烘皵璐ㄩ噺浼犳劅鍣�
+ //鑾峰彇璁惧绫诲瀷
+ var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { this.deviceObj });
+ //绌烘皵璐ㄩ噺浼犳劅鍣�
+ if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.AirQualitySensor)
+ {
+ frame.RemoveFromParent();
+ frameBorder.Y = Application.GetRealHeight(0);
+ frameBorder.Height = Application.GetRealHeight(299);
+ //鍔犺浇鍥炬爣鎺т欢
+ var btnPic = new DeviceInfoIconControl();
+ btnPic.Y = Application.GetRealHeight(104);
+ btnPic.Gravity = Gravity.CenterHorizontal;
+ listBackControl.frameTable.AddChidren(btnPic);
+ btnPic.InitControl(deviceObj);
+ }
+ }
}
else
{
- frame.Y = Application.GetMinRealAverage(58) + (frameBack.ChildrenCount - 1) * (frame.Height + Application.GetMinRealAverage(60));
+ frame.Y = this.GetPictrueRealSize(58) + (frameBack.ChildrenCount - 1) * (frame.Height + this.GetPictrueRealSize(60));
}
}
- if (listIcon.Count > 2)
+ //濡傛灉鏄櫨琛f灦,鏈�5涓洖璺紝浣嗘槸5涓洖璺彧鏄唬琛ㄤ笉鍚屽姛鑳戒娇鐢紝涓嶆槸鐪熷疄鐨勫搴旇澶囷紝鎵�浠ラ粯璁ゅ彧鏄剧ず绗竴鍥炶矾
+ if (deviceObj.Type != DeviceType.Airer)
{
- //璁$畻鐪熷疄楂樺害
- int realHeight = Application.GetMinRealAverage(58 + 58) + (frameBack.ChildrenCount - 1) * Application.GetMinRealAverage(124 + 60);
- if (realHeight > frameBack.Height)
+ if (listIcon.Count > 2)
{
- //鍙樻洿楂樺害
- frameBack.Height = realHeight;
+ //璁$畻鐪熷疄楂樺害
+ int realHeight = this.GetPictrueRealSize(58 + 58);//涓婁笅闂磋窛
+ realHeight += frameBack.ChildrenCount * this.GetPictrueRealSize(124);//鍦嗗湀楂樺害
+ realHeight += (frameBack.ChildrenCount - 1) * this.GetPictrueRealSize(60);//鍦嗗湀闂磋窛
+ if (realHeight > frameBack.Height)
+ {
+ //鍙樻洿楂樺害
+ frameBack.Height = realHeight;
+ }
}
}
}
@@ -416,14 +634,13 @@
/// </summary>
/// <param name="frame"></param>
/// <param name="listDevice"></param>
- /// <param name="isFirstRow"></param>
/// <param name="index"></param>
/// <returns></returns>
- private void InitDeviceIconFrame(FrameLayout frame, List<CommonDevice> listDevice, bool isFirstRow, ref int index)
+ private void InitDeviceIconFrame(FrameLayout frame, List<CommonDevice> listDevice, ref int index)
{
NormalViewControl btnTemp = null;
//闂磋窛
- int space = Application.GetMinRealAverage(84);
+ int space = this.GetPictrueRealSize(84);
int defultXX = (frame.Width - frame.Height * listDevice.Count - (listDevice.Count - 1) * space) / 2;
for (int i = 0; i < listDevice.Count; i++)
{
@@ -432,7 +649,7 @@
btnIcon.Name = "btn" + listDevice[i].DeviceEpoint;
btnIcon.X = defultXX + i * (frame.Height + space);
btnIcon.Radius = (uint)frame.Height / 2;
- btnIcon.BorderWidth = (uint)Application.GetMinRealAverage(6);
+ btnIcon.BorderWidth = 2;
btnIcon.BorderColor = 0xff979797;
btnIcon.TextAlignment = TextAlignment.Center;
btnIcon.TextColor = UserCenterColor.Current.TextGrayColor3;
@@ -442,12 +659,12 @@
//鐐瑰嚮浜嬩欢
btnIcon.ButtonClickEvent += this.DeviceEpointSelectEvent;
- if (i == 0 && isFirstRow == true)
+ if (listDevice[i].DeviceEpoint == deviceObj.DeviceEpoint)
{
btnTemp = btnIcon;
}
}
- if (isFirstRow == true)
+ if (btnTemp != null)
{
//鍒濆鍖栬彍鍗曡
this.DeviceEpointSelectEvent(btnTemp, null);
@@ -460,7 +677,8 @@
/// <returns></returns>
private List<List<CommonDevice>> GetAllDeviceGroup()
{
- var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceMac);
+ bool hadDevice = false;
+ var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr);
var listRelay = new List<CommonDevice>();
foreach (var device in listDevice)
{
@@ -469,7 +687,29 @@
//杩欎釜鐣岄潰涓嶅鐞嗗共鎺ョ偣
continue;
}
+ if (this.onlyType == true && device.Type != deviceObj.Type)
+ {
+ //鍙鍚屼竴绉嶇被鍨嬬殑
+ continue;
+ }
+
+ //鑾峰彇璁惧灞炰簬銆愮畝绾﹀鍔熻兘闈㈡澘銆�
+ var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(listDevice);
+ if (deviceEnumInfo.ConcreteType == Common.DeviceConcreteType.ButtonPanel_SimpleMultifunction)
+ {
+ if (device.Type == DeviceType.TemperatureSensor && device.DeviceEpoint == 1)
+ {
+ //绠�绾﹀鍔熻兘闈㈡澘绗�1鍥炶矾鏄竴涓粦瀹氭俯婀垮害浼犳劅鍣ㄧ绫诲瀷锛屼笉鏄湡鐨勬俯婀垮害鐨勪紶鎰熷櫒锛岄渶瑕佸睆钄芥帀
+ continue;
+ }
+ }
+
listRelay.Add(device);
+ if (device.DeviceEpoint == deviceObj.DeviceEpoint)
+ {
+ //鑳藉鍖归厤寰楀埌杩欎釜鍥炶矾
+ hadDevice = true;
+ }
}
//鎺掑簭
listRelay.Sort((obj1, obj2) =>
@@ -480,6 +720,12 @@
}
return -1;
});
+ if (hadDevice == false)
+ {
+ //濡傛灉鍖归厤涓嶅埌杩欎釜鍥炶矾,鍒欓粯璁ょ涓�涓�
+ this.deviceObj = listRelay[0];
+ }
+
//浠庝笅寰�涓�4涓负涓�缁�
var listIcon = new List<List<CommonDevice>>();
var listTemp = new List<CommonDevice>();
@@ -498,45 +744,6 @@
}
return listIcon;
}
-
- #endregion
-
- #region 鈻� 鍒濆鍖栨甯僟________________________
-
- /// <summary>
- /// 鍒濆鍖栨甯�
- /// </summary>
- private void InitFrameTable()
- {
- //寮у害鐨勫渾鐨勪竴鍗婄殑楂樺害(鍥哄畾)
- int halfRoundHeigth = Application.GetRealHeight(116) / 2;
- //寮у害鐨勫渾
- var btnRound = new NormalViewControl(bodyFrameLayout.Width, halfRoundHeigth * 2, false);
- btnRound.Y = Application.GetRealHeight(708);
- btnRound.BackgroundColor = UserCenterColor.Current.White;
- btnRound.Radius = (uint)halfRoundHeigth;
- bodyFrameLayout.AddChidren(btnRound);
- //鏄庣粏鍒楄〃鐨勬甯冿紝鐧借壊鑳屾櫙(瑕嗙洊寮у害鐨勫渾鐨勫崐杈�)
- var detailBackFrame = new FrameLayout();
- detailBackFrame.Y = btnRound.Bottom - btnRound.Height / 2;
- detailBackFrame.Height = Application.GetRealHeight(1128);//楂樺害灏辨槸瑕佸畠瓒呰繃
- detailBackFrame.BackgroundColor = UserCenterColor.Current.White;
- bodyFrameLayout.AddChidren(detailBackFrame);
-
- //璁惧缂栬緫
- var btnTile = new NormalViewControl(800, 60, true);
- btnTile.X = ControlCommonResourse.XXLeft;
- btnTile.TextSize = 15;
- btnTile.TextColor = UserCenterColor.Current.TextColor2;
- btnTile.TextID = R.MyInternationalizationString.uDeviceEditor;
- detailBackFrame.AddChidren(btnTile);
-
- this.listview = new VerticalListControl(12);
- listview.Y = btnTile.Bottom + Application.GetRealHeight(17);
- listview.Height = Application.GetRealHeight(1028) - halfRoundHeigth - btnTile.Bottom - Application.GetRealHeight(17);
- detailBackFrame.AddChidren(listview);
- }
-
#endregion
#region 鈻� 鍥炶矾閫夋嫨___________________________
@@ -552,16 +759,20 @@
if (nowSelectControl != null)
{
//鍚屼竴涓笢瑗�,涓嶉笩浠�
- if (nowSelectControl.Name == nowContr.Name)
+ if (this.deviceObj.Type != DeviceType.Airer)
{
- return;
+ if (nowSelectControl.Name == nowContr.Name)
+ {
+ return;
+ }
}
+
//涓嶉�夋嫨鐘舵��
nowSelectControl.BorderColor = 0xff979797;
nowSelectControl.TextSize = 13;
nowSelectControl.TextColor = UserCenterColor.Current.TextGrayColor3;
//璁板綍瀹冪殑鍚嶅瓧
- dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
+ dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim();
}
//閫夋嫨鐘舵��
nowContr.BorderColor = 0xfffb744a;
@@ -569,7 +780,7 @@
nowContr.TextColor = UserCenterColor.Current.TextColor1;
nowSelectControl = nowContr;
- nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceMac, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty)));
+ nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty)));
//閲嶆柊鍒濆鍖栬彍鍗曡
this.InitMenuRow();
--
Gitblit v1.8.0