From d6fb0646531172f23648441c224cdcccd721b894 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期一, 14 十二月 2020 09:59:01 +0800
Subject: [PATCH] 请合并代码,完成晾衣架最终功能。
---
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs | 1288 ++++++++++++++++++++++++++++++++-------------------------
1 files changed, 720 insertions(+), 568 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
old mode 100755
new mode 100644
index 52b60db..2208ea6
--- a/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceFunctionSettionForm.cs
@@ -1,577 +1,729 @@
锘縰sing System;
using System.Collections.Generic;
using System.Text;
+using Java.Util;
using ZigBee.Device;
namespace Shared.Phone.UserCenter.Device
-{
+{
+ /// <summary>
+ /// 璁惧鐨勫姛鑳借缃晫闈�
+ /// </summary>
+ public class DeviceFunctionSettionForm : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
/// <summary>
- /// 璁惧鐨勫姛鑳借缃晫闈�
+ /// 鍒楄〃鎺т欢
/// </summary>
- public class DeviceFunctionSettionForm : EditorCommonForm
- {
- #region 鈻� 鍙橀噺澹版槑___________________________
-
- /// <summary>
- /// 鍒楄〃鎺т欢
- /// </summary>
- private VerticalListControl listview = null;
- /// <summary>
- /// 褰撳墠閫夋嫨鐨勮澶�
- /// </summary>
- private CommonDevice nowSelectDevice = null;
- /// <summary>
- /// 褰撳墠閫夋嫨鐨勫洖璺帶浠�
- /// </summary>
- private NormalViewControl nowSelectControl = null;
- /// <summary>
- /// 璁惧澶囨敞鐨勬帶浠�
- /// </summary>
- private FrameCaptionInputControl btnDeviceName = null;
- /// <summary>
- /// 璁惧鐨勬煇涓�鍥炶矾
- /// </summary>
- private CommonDevice deviceObj = null;
- /// <summary>
- /// 鍙樉绀哄悓涓�绉嶇被鍨嬬殑鍥炶矾
- /// </summary>
- private bool onlyType = false;
- /// <summary>
- /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍚嶅瓧
- /// </summary>
- private Dictionary<int, string> dicDeviceSaveName = new Dictionary<int, string>();
- /// <summary>
- /// 璁惧闇�瑕佷繚瀛樼殑璁惧鍔熻兘
- /// </summary>
- private Dictionary<int, DeviceFunctionType> dicDeviceFuncType = new Dictionary<int, DeviceFunctionType>();
-
- #endregion
-
- #region 鈻� 鍒濆鍖朹____________________________
-
- /// <summary>
- /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
- /// </summary>
- /// <param name="i_device">璁惧鐨勬煇涓�鍥炶矾</param>
- /// <param name="i_onlyType">鍙樉绀哄悓涓�绉嶇被鍨嬬殑鍥炶矾</param>
- public void ShowForm(CommonDevice i_device, bool i_onlyType)
- {
- this.deviceObj = i_device;
- this.onlyType = i_onlyType;
-
- //璁剧疆澶撮儴淇℃伅
- base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp));
-
- //鍒濆鍖栦腑閮ㄤ俊鎭�
- this.InitMiddleFrame();
-
- //鍒濆鍖栧彸涓婅鑿滃崟
- this.InitTopRightMenu();
- }
-
- /// <summary>
- /// 鍒濆鍖栦腑閮ㄤ俊鎭�
- /// </summary>
- private void InitMiddleFrame()
- {
- //娓呯┖bodyFrame
- this.ClearBodyFrame();
-
- //鍒濆鍖栨甯�
- var tableContr = new InformationEditorControl();
- this.listview = tableContr.InitControl(bodyFrameLayout, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 708, 1128);
-
- //鍒濆鍖栬澶囧洖璺浘鏍�
- this.InitDeviceEpointIcon();
-
- //鍒濆鍖栨甯冨畬鎴�
- tableContr.FinishInitControl(bodyFrameLayout, this.listview);
- tableContr = null;
-
- //淇濆瓨
- var btnFinish = new BottomClickButton();
- btnFinish.TextID = R.MyInternationalizationString.uSave;
- bodyFrameLayout.AddChidren(btnFinish);
- btnFinish.ButtonClickEvent += async (sender, e) =>
- {
- //璁板綍璧峰綋鍓嶆鍦ㄦ搷浣滅殑鍥炶矾鍚嶅瓧
- dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
- //寮�鍚繘搴︽潯
- this.ShowProgressBar();
- foreach (var epoint in dicDeviceSaveName.Keys)
- {
- var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
- if (device == null || dicDeviceSaveName[epoint] == string.Empty)
- {
- //涓嶈兘鍏佽绌虹櫧鍚嶅瓧
- continue;
- }
- string newName = dicDeviceSaveName[epoint];
- string oldName = Common.LocalDevice.Current.GetDeviceEpointName(device);
- if (oldName != newName)
- {
- //璁惧鍚嶇О淇敼
- var result = await Common.LocalDevice.Current.ReName(device, newName);
- if (result == false)
- {
- //鍏抽棴
- this.CloseProgressBar();
- return;
- }
- }
- }
- foreach (var epoint in dicDeviceFuncType.Keys)
- {
- var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
- if (device == null)
- {
- continue;
- }
- //璁剧疆鍔熻兘绫诲瀷
- device.DfunctionType = dicDeviceFuncType[epoint];
- if (device.IsCustomizeImage == true)
- {
- continue;
- }
- //閲嶆柊璁剧疆鍥剧墖
- if (device.DfunctionType == DeviceFunctionType.A寮�鍏�)
- {
- device.IconPath = "Device/Switch.png";
- }
- else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇)
- {
- device.IconPath = "Device/Socket1.png";
- }
- else if (device.DfunctionType == DeviceFunctionType.A鐏厜)
- {
- device.IconPath = "Device/Light.png";
- }
- device.ReSave();
- }
- this.CloseProgressBar();
- //鍏抽棴鑷韩
- this.CloseForm();
- };
- }
-
- /// <summary>
- /// 鍒濆鍖栬彍鍗曡
- /// </summary>
- private void InitMenuRow()
- {
- this.listview.RemoveAll();
-
- //鍥炶矾澶囨敞
- 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 () =>
- {
- string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
- if (btnDeviceName.Text.Trim() == string.Empty)
- {
- //灏嗗悕瀛楄繕鍘�
- btnDeviceName.Text = oldName;
- }
- if (oldName != btnDeviceName.Text.Trim())
- {
- //璁惧鍚嶇О淇敼
- var result = await Common.LocalDevice.Current.ReName(nowSelectDevice, btnDeviceName.Text.Trim());
- if (result == false)
- {
- return;
- }
- //鍥炶矾澶囨敞淇敼鎴愬姛!
- string msg = Language.StringByID(R.MyInternationalizationString.uDeviceEpointReNoteSuccess);
- this.ShowMassage(ShowMsgType.Tip, msg);
- }
- };
-
- //鎵�灞炲尯鍩�
- var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
- listview.AddChidren(rowBeloneArea);
- rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), nowSelectDevice);
- //搴曠嚎
- rowBeloneArea.AddBottomLine();
- rowBeloneArea.SelectRoomEvent += (roomKeys) =>
- {
- //鍙樻洿鎴块棿
- Common.Room.CurrentRoom.ChangedRoom(nowSelectDevice, roomKeys);
- };
-
- //娣诲姞鍔熻兘绫诲瀷琛�
- this.AddFunctionTypeRow();
- }
-
- #endregion
-
- #region 鈻� 鍙充笂瑙掕彍鍗昣________________________
-
- /// <summary>
- /// 鍒濆鍖栧彸涓婅鑿滃崟
- /// </summary>
- private void InitTopRightMenu()
- {
- //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
- if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice) == false)
- {
- return;
- }
- var btnIcon = new MostRightIconControl(69, 69);
- btnIcon.UnSelectedImagePath = "Item/More.png";
- topFrameLayout.AddChidren(btnIcon);
- btnIcon.InitControl();
- btnIcon.ButtonClickEvent += ((sender, e) =>
- {
- //鏄剧ず鍙充笂瑙掕彍鍗曠晫闈�
- this.ShowTopRightMenu();
- });
- }
-
- /// <summary>
- /// 鏄剧ず鍙充笂瑙掕彍鍗曠晫闈�
- /// </summary>
- private void ShowTopRightMenu()
- {
- int menuCount = 1;
- string deviceMenu = string.Empty;
- //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
- bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
- //if (canTest == true)
- //{
- // menuCount = 2;
- //}
- var frame = new TopRightMenuControl(menuCount);
- if (canTest == true)
- {
- //瀹氫綅
- deviceMenu = Language.StringByID(R.MyInternationalizationString.uFixedPosition);
- frame.AddRowMenu(deviceMenu, "Item/FixedPosition.png", "Item/FixedPositionSelected.png", () =>
- {
- //鍙戦�佸畾浣嶅姛鑳�
- Common.LocalDevice.Current.SetFixedPositionCommand(nowSelectDevice);
- });
- }
-
- //鍒犻櫎
- //deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
- //frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
- //{
- //});
- }
-
- #endregion
-
- #region 鈻� 鍔熻兘绫诲瀷___________________________
-
- /// <summary>
- /// 娣诲姞鍔熻兘绫诲瀷琛�
- /// </summary>
- private void AddFunctionTypeRow()
- {
- //濡傛灉鏄户鐢靛櫒鍜岃皟鍏夊櫒鐨勮瘽
- if (nowSelectDevice.Type == DeviceType.OnOffOutput || nowSelectDevice.Type == DeviceType.DimmableLight
- || nowSelectDevice.Type == DeviceType.ColorDimmableLight)
- {
- //鍔熻兘绫诲瀷
- string caption = Language.StringByID(R.MyInternationalizationString.uFunctionType);
- var DfunctionType = nowSelectDevice.DfunctionType;
- if (this.dicDeviceFuncType.ContainsKey(nowSelectDevice.DeviceEpoint) == true)
- {
- DfunctionType = this.dicDeviceFuncType[nowSelectDevice.DeviceEpoint];
- }
-
- //鍔熻兘绫诲瀷鐨勭炕璇戝悕瀛�
- int nowSelectNo = 1;
- string strType = string.Empty;
- if (DfunctionType == DeviceFunctionType.A鐏厜)
- {
- strType = Language.StringByID(R.MyInternationalizationString.uLight);
- nowSelectNo = 1;
- }
- else if (DfunctionType == DeviceFunctionType.A寮�鍏�)
- {
- strType = Language.StringByID(R.MyInternationalizationString.uSwitch);
- nowSelectNo = 0;
- }
- else if (DfunctionType == DeviceFunctionType.A鎻掑骇)
- {
- strType = Language.StringByID(R.MyInternationalizationString.uSocket1);
- nowSelectNo = 2;
- }
-
- 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 BottomItemSelectForm();
- form.AddForm(title, listText, nowSelectNo);
- form.FinishSelectEvent += (selectNo) =>
- {
- btnFunction.Text = listText[selectNo];
- nowSelectNo = selectNo;
- //璁板綍璧峰綋鍓嶉�夋嫨鐨勫姛鑳界被鍨�
- if (selectNo == 0)
- {
- dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A寮�鍏�;
- }
- else if (selectNo == 1)
- {
- dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鐏厜;
- }
- else
- {
- dicDeviceFuncType[nowSelectDevice.DeviceEpoint] = DeviceFunctionType.A鎻掑骇;
- }
- };
- };
- }
- }
- }
-
- #endregion
-
- #region 鈻� 鍒濆鍖栬澶囧洖璺浘鏍嘷________________
-
- /// <summary>
- /// 鍒濆鍖栬澶囧洖璺浘鏍�
- /// </summary>
- private void InitDeviceEpointIcon()
- {
- //鑾峰彇鎸夌粍鍒嗛厤鐨勮澶�
- var listIcon = this.GetAllDeviceGroup();
-
- var frameBorder = new FrameLayout();
- frameBorder.Y = Application.GetRealHeight(147);
- frameBorder.Gravity = Gravity.CenterHorizontal;
- frameBorder.Width = Application.GetRealWidth(887);
- frameBorder.Height = Application.GetRealHeight(423);
- frameBorder.Radius = (uint)Application.GetRealHeight(6);
- frameBorder.BorderWidth = 1;
- frameBorder.BorderColor = 0xffd0d0d0;
- bodyFrameLayout.AddChidren(frameBorder);
-
- var frameBack = new FrameLayout();
- frameBack.Height = frameBorder.Height;
-
- if (listIcon.Count > 2)
- {
- //闇�瑕佹粦鍔ㄦ帶浠�
- var listControl = new VerticalScrolViewLayout();
- listControl.Height = frameBorder.Height;
- frameBorder.AddChidren(listControl);
-
- listControl.AddChidren(frameBack);
- }
- else
- {
- //涓嶉渶瑕佹粦鍔ㄦ帶浠�
- frameBorder.AddChidren(frameBack);
- }
-
- int index = 0;
- for (int i = 0; i < listIcon.Count; i++)
- {
- var frame = new FrameLayout();
- frame.Width = frameBorder.Width;
- frame.Height = Application.GetMinRealAverage(124);
- frameBack.AddChidren(frame);
- //鍒濆鍖栦竴琛岃澶囧浘鏍�
- this.InitDeviceIconFrame(frame, listIcon[i], ref index);
-
- if (listIcon.Count == 1)
- {
- frame.Gravity = Gravity.CenterVertical;
- }
- else
- {
- frame.Y = Application.GetMinRealAverage(58) + (frameBack.ChildrenCount - 1) * (frame.Height + Application.GetMinRealAverage(60));
- }
- }
-
- if (listIcon.Count > 2)
- {
- //璁$畻鐪熷疄楂樺害
- int realHeight = Application.GetMinRealAverage(58 + 58);//涓婁笅闂磋窛
- realHeight += frameBack.ChildrenCount * Application.GetMinRealAverage(124);//鍦嗗湀楂樺害
- realHeight += (frameBack.ChildrenCount-1) * Application.GetMinRealAverage(60);//鍦嗗湀闂磋窛
- if (realHeight > frameBack.Height)
- {
- //鍙樻洿楂樺害
- frameBack.Height = realHeight;
- }
- }
- }
-
- /// <summary>
- /// 鍒濆鍖栦竴琛岃澶囧浘鏍�
- /// </summary>
- /// <param name="frame"></param>
- /// <param name="listDevice"></param>
- /// <param name="index"></param>
- /// <returns></returns>
- private void InitDeviceIconFrame(FrameLayout frame, List<CommonDevice> listDevice, ref int index)
- {
- NormalViewControl btnTemp = null;
- //闂磋窛
- int space = Application.GetMinRealAverage(84);
- int defultXX = (frame.Width - frame.Height * listDevice.Count - (listDevice.Count - 1) * space) / 2;
- for (int i = 0; i < listDevice.Count; i++)
- {
- index++;
- var btnIcon = new NormalViewControl(frame.Height, frame.Height, false);
- btnIcon.Name = "btn" + listDevice[i].DeviceEpoint;
- btnIcon.X = defultXX + i * (frame.Height + space);
- btnIcon.Radius = (uint)frame.Height / 2;
- btnIcon.BorderWidth = 2;
- btnIcon.BorderColor = 0xff979797;
- btnIcon.TextAlignment = TextAlignment.Center;
- btnIcon.TextColor = UserCenterColor.Current.TextGrayColor3;
- btnIcon.TextSize = 13;
- btnIcon.Text = "CH" + index;
- frame.AddChidren(btnIcon);
- //鐐瑰嚮浜嬩欢
- btnIcon.ButtonClickEvent += this.DeviceEpointSelectEvent;
-
- if (listDevice[i].DeviceEpoint == deviceObj.DeviceEpoint)
- {
- btnTemp = btnIcon;
- }
- }
- if (btnTemp != null)
- {
- //鍒濆鍖栬彍鍗曡
- this.DeviceEpointSelectEvent(btnTemp, null);
- }
- }
-
- /// <summary>
- /// 鑾峰彇鎸夌粍鍒嗛厤鐨勮澶�
- /// </summary>
- /// <returns></returns>
- private List<List<CommonDevice>> GetAllDeviceGroup()
- {
- bool hadDevice = false;
- var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr);
- var listRelay = new List<CommonDevice>();
- foreach (var device in listDevice)
- {
- if (device.Type == DeviceType.OnOffSwitch)
- {
- //杩欎釜鐣岄潰涓嶅鐞嗗共鎺ョ偣
- continue;
- }
- if (this.onlyType == true && device.Type != deviceObj.Type)
- {
- //鍙鍚屼竴绉嶇被鍨嬬殑
- continue;
- }
- listRelay.Add(device);
- if (device.DeviceEpoint == deviceObj.DeviceEpoint)
- {
- //鑳藉鍖归厤寰楀埌杩欎釜鍥炶矾
- hadDevice = true;
- }
- }
- //鎺掑簭
- listRelay.Sort((obj1, obj2) =>
- {
- if (obj1.DeviceEpoint > obj2.DeviceEpoint)
- {
- return 1;
- }
- return -1;
- });
- if (hadDevice == false)
- {
- //濡傛灉鍖归厤涓嶅埌杩欎釜鍥炶矾,鍒欓粯璁ょ涓�涓�
- this.deviceObj = listRelay[0];
- }
-
- //浠庝笅寰�涓�4涓负涓�缁�
- var listIcon = new List<List<CommonDevice>>();
- var listTemp = new List<CommonDevice>();
- for (int i = listRelay.Count - 1; i >= 0; i--)
- {
- listTemp.Insert(0, listRelay[i]);
- if (listTemp.Count == 4)
- {
- listIcon.Insert(0, listTemp);
- listTemp = new List<CommonDevice>();
- }
- }
- if (listTemp.Count > 0)
- {
- listIcon.Insert(0, listTemp);
- }
- return listIcon;
- }
-
- #endregion
-
- #region 鈻� 鍥炶矾閫夋嫨___________________________
-
- /// <summary>
- /// 鍥炶矾閫夋嫨浜嬩欢
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void DeviceEpointSelectEvent(object sender, MouseEventArgs e)
- {
- var nowContr = (NormalViewControl)sender;
- if (nowSelectControl != null)
- {
- //鍚屼竴涓笢瑗�,涓嶉笩浠�
- if (nowSelectControl.Name == nowContr.Name)
- {
- return;
- }
- //涓嶉�夋嫨鐘舵��
- nowSelectControl.BorderColor = 0xff979797;
- nowSelectControl.TextSize = 13;
- nowSelectControl.TextColor = UserCenterColor.Current.TextGrayColor3;
- //璁板綍瀹冪殑鍚嶅瓧
- dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = btnDeviceName.Text.Trim();
- }
- //閫夋嫨鐘舵��
- nowContr.BorderColor = 0xfffb744a;
- nowContr.TextSize = 14;
- nowContr.TextColor = UserCenterColor.Current.TextColor1;
-
- nowSelectControl = nowContr;
- nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty)));
-
- //閲嶆柊鍒濆鍖栬彍鍗曡
- this.InitMenuRow();
- }
-
- #endregion
- }
+ private FrameListControl listview = null;
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勮澶�
+ /// </summary>
+ private CommonDevice nowSelectDevice = null;
+ /// <summary>
+ /// 褰撳墠閫夋嫨鐨勫洖璺帶浠�
+ /// </summary>
+ private NormalViewControl nowSelectControl = null;
+ /// <summary>
+ /// 璁惧澶囨敞鐨勬帶浠�
+ /// </summary>
+ private FrameCaptionInputControl frameDeviceName = null;
+ /// <summary>
+ /// 璁惧鐨勬煇涓�鍥炶矾
+ /// </summary>
+ 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
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ /// <param name="i_device">璁惧鐨勬煇涓�鍥炶矾</param>
+ /// <param name="i_onlyType">鍙樉绀哄悓涓�绉嶇被鍨嬬殑鍥炶矾</param>
+ public void ShowForm(CommonDevice i_device, bool i_onlyType)
+ {
+ this.deviceObj = i_device;
+ this.onlyType = i_onlyType;
+
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uFunctionSettingUp));
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+
+ //鍒濆鍖栧彸涓婅鑿滃崟
+ this.InitTopRightMenu();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame()
+ {
+ //娓呯┖bodyFrame
+ this.ClearBodyFrame();
+
+ var listBackControl = new VerticalFrameControl();
+ listBackControl.Height = bodyFrameLayout.Height;
+ bodyFrameLayout.AddChidren(listBackControl);
+
+ //鍒濆鍖栨甯�
+ 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
+ {
+ this.listview = tableContr.InitControl(listBackControl.frameTable, Language.StringByID(R.MyInternationalizationString.uDeviceEditor), 1128);
+ }
+
+ //鍒濆鍖栬澶囧洖璺浘鏍�
+ this.InitDeviceEpointIcon(listBackControl);
+
+ //淇濆瓨
+ var btnFinish = new BottomClickButton();
+ btnFinish.TextID = R.MyInternationalizationString.uSave;
+ bodyFrameLayout.AddChidren(btnFinish);
+ btnFinish.ButtonClickEvent += (sender, e) =>
+ {
+ //璁板綍璧峰綋鍓嶆鍦ㄦ搷浣滅殑鍥炶矾鍚嶅瓧
+ dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim();
+ foreach (var epoint in dicDeviceSaveName.Keys)
+ {
+ var device = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, epoint);
+ if (device == null || dicDeviceSaveName[epoint] == string.Empty)
+ {
+ //涓嶈兘鍏佽绌虹櫧鍚嶅瓧
+ continue;
+ }
+ string newName = dicDeviceSaveName[epoint];
+ string oldName = Common.LocalDevice.Current.GetDeviceEpointName(device);
+ if (oldName != newName)
+ {
+ //璁惧鍚嶇О淇敼
+ var result = Common.LocalDevice.Current.ReName(device, newName);
+ if (result == false)
+ {
+ return;
+ }
+ }
+ }
+
+ //濡傛灉鏄櫨琛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>
+ /// 鍒濆鍖栬彍鍗曡
+ /// </summary>
+ private void InitMenuRow()
+ {
+ this.listview.RemoveAll();
+
+ //鍥炶矾澶囨敞
+ 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.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)
+ {
+ frameDeviceName.txtInput.FinishInputEvent += () =>
+ {
+ string oldName = Common.LocalDevice.Current.GetDeviceEpointName(nowSelectDevice);
+ if (frameDeviceName.Text.Trim() == string.Empty)
+ {
+ //灏嗗悕瀛楄繕鍘�
+ frameDeviceName.Text = oldName;
+ }
+ 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);
+ }
+ };
+ }
+
+ //鎵�灞炲尯鍩�
+ var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
+ listview.AddChidren(rowBeloneArea);
+ rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), nowSelectDevice);
+ //搴曠嚎
+ rowBeloneArea.AddBottomLine();
+ rowBeloneArea.SelectRoomEvent += (roomKeys) =>
+ {
+ //鍙樻洿鎴块棿
+ HdlRoomLogic.Current.ChangedRoom(nowSelectDevice, roomKeys);
+ };
+ //娣诲姞鍔熻兘绫诲瀷琛�
+ this.AddFunctionTypeRow();
+
+ if (this.deviceObj.Type == DeviceType.Airer)
+ {
+ var airer = this.deviceObj as Airer;
+ //娣诲姞鐑樺共鏃堕棿琛�
+ this.AddAirerDryTimeRow(airer);
+ //娣诲姞椋庡共鏃堕棿琛�
+ this.AddAirerWindTimeRow(airer);
+ //娣诲姞娑堟瘨鏃堕棿琛�
+ this.AddAirerDisinfectTimeRow(airer);
+ }
+
+ //鍒濆鍖栨甯冨畬鎴�
+ tableContr.FinishInitControl();
+ }
+
+ #endregion
+
+ #region 鈻� 鍙充笂瑙掕彍鍗昣________________________
+
+ /// <summary>
+ /// 鍒濆鍖栧彸涓婅鑿滃崟
+ /// </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);
+ btnIcon.InitControl();
+ btnIcon.ButtonClickEvent += ((sender, e) =>
+ {
+ //鏄剧ず鍙充笂瑙掕彍鍗曠晫闈�
+ this.ShowTopRightMenu();
+ });
+ }
+
+ /// <summary>
+ /// 鏄剧ず鍙充笂瑙掕彍鍗曠晫闈�
+ /// </summary>
+ private void ShowTopRightMenu()
+ {
+ int menuCount = 1;
+ string deviceMenu = string.Empty;
+ //妫�娴嬫鍥炶矾鏄惁鎷ユ湁瀹氫綅鍔熻兘
+ bool canTest = Common.LocalDevice.Current.DeviceIsCanFixedPosition(nowSelectDevice);
+ //if (canTest == true)
+ //{
+ // menuCount = 2;
+ //}
+ var frame = new TopRightMenuControl(menuCount, 1);
+ if (canTest == true)
+ {
+ //瀹氫綅
+ deviceMenu = Language.StringByID(R.MyInternationalizationString.uFixedPosition);
+ frame.AddRowMenu(deviceMenu, "Item/FixedPosition.png", "Item/FixedPositionSelected.png", () =>
+ {
+ //鍙戦�佸畾浣嶅姛鑳�
+ Common.LocalDevice.Current.SetFixedPositionCommand(nowSelectDevice);
+ });
+ }
+
+ //鍒犻櫎
+ //deviceMenu = Language.StringByID(R.MyInternationalizationString.uDelete);
+ //frame.AddRowMenu(deviceMenu, "Item/DeleteIcon2.png", "Item/DeleteIcon2Selected.png", () =>
+ //{
+ //});
+ }
+
+ #endregion
+
+ #region 鈻� 鍔熻兘绫诲瀷___________________________
+
+ /// <summary>
+ /// 娣诲姞鍔熻兘绫诲瀷琛�
+ /// </summary>
+ private void AddFunctionTypeRow()
+ {
+ //鑷畾涔夊姛鑳界被鍨嬫帶浠�
+ var rowFunction = new DeviceFunctionTypeRowControl(nowSelectDevice, listview.rowSpace / 2);
+ if (rowFunction.CanShowRow == false)
+ {
+ return;
+ }
+ listview.AddChidren(rowFunction);
+ rowFunction.InitControl();
+ //搴曠嚎
+ rowFunction.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 鈻� 鍒濆鍖栬澶囧洖璺浘鏍嘷________________
+
+ /// <summary>
+ /// 鍒濆鍖栬澶囧洖璺浘鏍�
+ /// </summary>
+ private void InitDeviceEpointIcon(VerticalFrameControl listBackControl)
+ {
+ //鑾峰彇鎸夌粍鍒嗛厤鐨勮澶�
+ var listIcon = this.GetAllDeviceGroup();
+
+ var frameBorder = new FrameLayout();
+ frameBorder.Y = Application.GetRealHeight(147);
+ frameBorder.Gravity = Gravity.CenterHorizontal;
+ frameBorder.Width = this.GetPictrueRealSize(887);
+ frameBorder.Height = Application.GetRealHeight(423);
+ frameBorder.Radius = (uint)Application.GetRealHeight(6);
+ listBackControl.frameTable.AddChidren(frameBorder);
+
+ var frameBack = new FrameLayout();
+ frameBack.Height = frameBorder.Height;
+
+ if (listIcon.Count > 2)
+ {
+ //闇�瑕佹粦鍔ㄦ帶浠�
+ var listControl = new VerticalScrolViewLayout();
+ listControl.Height = frameBorder.Height;
+ frameBorder.AddChidren(listControl);
+
+ listControl.AddChidren(frameBack);
+ }
+ else
+ {
+ //涓嶉渶瑕佹粦鍔ㄦ帶浠�
+ frameBorder.AddChidren(frameBack);
+ }
+
+ int index = 0;
+ for (int i = 0; i < listIcon.Count; i++)
+ {
+ var frame = new FrameLayout();
+ frame.Width = frameBorder.Width;
+ frame.Height = this.GetPictrueRealSize(124);
+ frameBack.AddChidren(frame);
+ //鍒濆鍖栦竴琛岃澶囧浘鏍�
+ 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(709);
+ frameBack.BackgroundImagePath = "Airer/Airer216.png";
+ frameBack.Width = this.GetPictrueRealSize(207);
+ frameBack.Height = this.GetPictrueRealSize(207);
+ frameBack.Y = Application.GetRealHeight(92);
+ frameBack.Gravity = Gravity.CenterHorizontal;
+ }
+ }
+ else
+ {
+ frame.Y = this.GetPictrueRealSize(58) + (frameBack.ChildrenCount - 1) * (frame.Height + this.GetPictrueRealSize(60));
+ }
+ }
+
+ //濡傛灉鏄櫨琛f灦,鏈�5涓洖璺紝浣嗘槸5涓洖璺彧鏄唬琛ㄤ笉鍚屽姛鑳戒娇鐢紝涓嶆槸鐪熷疄鐨勫搴旇澶囷紝鎵�浠ラ粯璁ゅ彧鏄剧ず绗竴鍥炶矾
+ if (deviceObj.Type != DeviceType.Airer)
+ {
+ if (listIcon.Count > 2)
+ {
+ //璁$畻鐪熷疄楂樺害
+ 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;
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦竴琛岃澶囧浘鏍�
+ /// </summary>
+ /// <param name="frame"></param>
+ /// <param name="listDevice"></param>
+ /// <param name="index"></param>
+ /// <returns></returns>
+ private void InitDeviceIconFrame(FrameLayout frame, List<CommonDevice> listDevice, ref int index)
+ {
+ NormalViewControl btnTemp = null;
+ //闂磋窛
+ 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++)
+ {
+ index++;
+ var btnIcon = new NormalViewControl(frame.Height, frame.Height, false);
+ btnIcon.Name = "btn" + listDevice[i].DeviceEpoint;
+ btnIcon.X = defultXX + i * (frame.Height + space);
+ btnIcon.Radius = (uint)frame.Height / 2;
+ btnIcon.BorderWidth = 2;
+ btnIcon.BorderColor = 0xff979797;
+ btnIcon.TextAlignment = TextAlignment.Center;
+ btnIcon.TextColor = UserCenterColor.Current.TextGrayColor3;
+ btnIcon.TextSize = 13;
+ btnIcon.Text = "CH" + index;
+ frame.AddChidren(btnIcon);
+ //鐐瑰嚮浜嬩欢
+ btnIcon.ButtonClickEvent += this.DeviceEpointSelectEvent;
+
+ if (listDevice[i].DeviceEpoint == deviceObj.DeviceEpoint)
+ {
+ btnTemp = btnIcon;
+ }
+ }
+ if (btnTemp != null)
+ {
+ //鍒濆鍖栬彍鍗曡
+ this.DeviceEpointSelectEvent(btnTemp, null);
+ }
+ }
+
+ /// <summary>
+ /// 鑾峰彇鎸夌粍鍒嗛厤鐨勮澶�
+ /// </summary>
+ /// <returns></returns>
+ private List<List<CommonDevice>> GetAllDeviceGroup()
+ {
+ bool hadDevice = false;
+ var listDevice = Common.LocalDevice.Current.GetDevicesByMac(deviceObj.DeviceAddr);
+ var listRelay = new List<CommonDevice>();
+ foreach (var device in listDevice)
+ {
+ if (device.Type == DeviceType.OnOffSwitch)
+ {
+ //杩欎釜鐣岄潰涓嶅鐞嗗共鎺ョ偣
+ 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) =>
+ {
+ if (obj1.DeviceEpoint > obj2.DeviceEpoint)
+ {
+ return 1;
+ }
+ return -1;
+ });
+ if (hadDevice == false)
+ {
+ //濡傛灉鍖归厤涓嶅埌杩欎釜鍥炶矾,鍒欓粯璁ょ涓�涓�
+ this.deviceObj = listRelay[0];
+ }
+
+ //浠庝笅寰�涓�4涓负涓�缁�
+ var listIcon = new List<List<CommonDevice>>();
+ var listTemp = new List<CommonDevice>();
+ for (int i = listRelay.Count - 1; i >= 0; i--)
+ {
+ listTemp.Insert(0, listRelay[i]);
+ if (listTemp.Count == 4)
+ {
+ listIcon.Insert(0, listTemp);
+ listTemp = new List<CommonDevice>();
+ }
+ }
+ if (listTemp.Count > 0)
+ {
+ listIcon.Insert(0, listTemp);
+ }
+ return listIcon;
+ }
+ #endregion
+
+ #region 鈻� 鍥炶矾閫夋嫨___________________________
+
+ /// <summary>
+ /// 鍥炶矾閫夋嫨浜嬩欢
+ /// </summary>
+ /// <param name="sender"></param>
+ /// <param name="e"></param>
+ private void DeviceEpointSelectEvent(object sender, MouseEventArgs e)
+ {
+ var nowContr = (NormalViewControl)sender;
+ if (nowSelectControl != null)
+ {
+ //鍚屼竴涓笢瑗�,涓嶉笩浠�
+ if (this.deviceObj.Type != DeviceType.Airer)
+ {
+ if (nowSelectControl.Name == nowContr.Name)
+ {
+ return;
+ }
+ }
+
+ //涓嶉�夋嫨鐘舵��
+ nowSelectControl.BorderColor = 0xff979797;
+ nowSelectControl.TextSize = 13;
+ nowSelectControl.TextColor = UserCenterColor.Current.TextGrayColor3;
+ //璁板綍瀹冪殑鍚嶅瓧
+ dicDeviceSaveName[nowSelectDevice.DeviceEpoint] = frameDeviceName.Text.Trim();
+ }
+ //閫夋嫨鐘舵��
+ nowContr.BorderColor = 0xfffb744a;
+ nowContr.TextSize = 14;
+ nowContr.TextColor = UserCenterColor.Current.TextColor1;
+
+ nowSelectControl = nowContr;
+ nowSelectDevice = Common.LocalDevice.Current.GetDevice(deviceObj.DeviceAddr, Convert.ToInt32(nowContr.Name.Replace("btn", string.Empty)));
+
+ //閲嶆柊鍒濆鍖栬彍鍗曡
+ this.InitMenuRow();
+ }
+
+ #endregion
+ }
}
--
Gitblit v1.8.0