From 07466c19110693e3e439a7d7c8ad0bc21d9b3287 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 29 四月 2020 09:14:01 +0800
Subject: [PATCH] 优化代码,更改门锁需求接口

---
 ZigbeeApp/Shared/Common/Device.cs |   97 +++++++++++++++++++++++++++++++-----------------
 1 files changed, 63 insertions(+), 34 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
old mode 100644
new mode 100755
index 197639c..d9cddaa
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -115,7 +115,7 @@
             {
                 CommonDevice device = null;
                 //鍙嶅簭鍒楀寲涓烘寚瀹氱殑绫伙紝涓嶇劧鏁版嵁浼氫涪澶辫�屽鑷存棤娉曞己杞�
-                try
+                try 
                 {
                     device = CommonDevice.CommonDeviceByFilePath(file);
                 }
@@ -400,6 +400,27 @@
             }
         }
 
+        /// <summary>
+        /// 娣诲姞铏氭嫙璁惧鍒扮紦瀛�
+        /// </summary>
+        /// <param name="device">璁惧瀵硅薄</param>
+        public void AddVirtualDeviceToMemory(CommonDevice device)
+        {
+            string mainKeys = this.GetDeviceMainKeys(device);
+            this.dicAllDevice[mainKeys] = device;
+
+            //璁惧鍥炶矾鏀堕泦
+            if (this.dicDeviceEpoint.ContainsKey(device.DeviceAddr) == false)
+            {
+                this.dicDeviceEpoint[device.DeviceAddr] = new HashSet<int>();
+            }
+            if (this.dicDeviceEpoint[device.DeviceAddr].Contains(device.DeviceEpoint) == false)
+            {
+                this.dicDeviceEpoint[device.DeviceAddr].Add(device.DeviceEpoint);
+            }
+            device.ReSave();
+        }
+
         #endregion
 
         #region 鈻� 淇敼璁惧___________________________
@@ -416,6 +437,12 @@
             this.SetEpointName(device, newName);
 
             this.BackupDeviceAfterReName(device);
+
+            //濡傛灉浣忓畢涓鸿櫄鎷熶綇瀹�
+            if (Common.Config.Instance.Home.IsVirtually == true)
+            {
+                return true;
+            }
 
             //涓嶅啀妫�娴嬪悕瀛楁槸鍚︿竴鏍�
             //鎴愬憳鍙兘淇敼鑷繁鏈湴鐨勫悕瀛�
@@ -462,6 +489,11 @@
 
                 //鏇存敼鍚嶅瓧鍚庯紝鍒锋柊璁惧缂撳瓨
                 this.BackupDeviceAfterReName(device2);
+            }
+            //濡傛灉浣忓畢涓鸿櫄鎷熶綇瀹�
+            if (Common.Config.Instance.Home.IsVirtually == true)
+            {
+                return true;
             }
 
             CommonDevice device = listDevice[0];
@@ -679,7 +711,11 @@
         /// <param name="device"></param>
         public void SetFixedPositionCommand(CommonDevice device)
         {
-            device.IdentifyControl(device.DeviceAddr, device.DeviceEpoint, 5);
+            //濡傛灉褰撳墠浣忓畢涓嶆槸铏氭嫙浣忓畢
+            if (Common.Config.Instance.Home.IsVirtually == false)
+            {
+                device.IdentifyControl(device.DeviceAddr, device.DeviceEpoint, 5);
+            }
         }
 
         /// <summary>
@@ -1766,8 +1802,8 @@
                     info.ConcreteType = DeviceConcreteType.Sensor_Humidity;
                 }
                 info.ObjectTypeNameId = 60000;//浼犳劅鍣�
-            }
-            //14鏂伴璁惧
+            }
+            //14鏂伴璁惧
             else if (dicType.ContainsKey(DeviceType.FreshAir) == true)
             {
                 info.ConcreteTextId = R.MyInternationalizationString.uDeviceModelId2310;
@@ -2024,16 +2060,16 @@
             list.Add(DeviceBeloneType.A鎻掑骇);
             list.Add(DeviceBeloneType.A璋冨厜鍣�);
             list.Add(DeviceBeloneType.A绐楀笜);
-            list.Add(DeviceBeloneType.A鏂伴);
             list.Add(DeviceBeloneType.A绌鸿皟);
             list.Add(DeviceBeloneType.A缁х數鍣�);
             list.Add(DeviceBeloneType.A骞叉帴鐐�);
             list.Add(DeviceBeloneType.A鏅鸿兘闂ㄩ攣);
             list.Add(DeviceBeloneType.A鏅鸿兘绌哄紑);
-            list.Add(DeviceBeloneType.A浼犳劅鍣�);
-            //鍏朵粬鐨勭湅鐫�鍔炲憲,閮芥槸鎺掑湪鍚庨潰鐨�,閮藉綊涓鸿繖涓睘鎬�
-            list.Add(DeviceBeloneType.A鏈煡璁惧);
-
+            list.Add(DeviceBeloneType.A浼犳劅鍣�);
+
+            //鍏朵粬鐨勭湅鐫�鍔炲憲,閮芥槸鎺掑湪鍚庨潰鐨�,閮藉綊涓鸿繖涓睘鎬�
+            list.Add(DeviceBeloneType.A鏈煡璁惧);
+            
             return list;
         }
 
@@ -2509,10 +2545,7 @@
             else if (deviceType == DeviceType.FreshAir) { device = new FreshAir(); }
             else if (deviceType == DeviceType.DoorLock) { device = new DoorLock(); }
             else if (deviceType == DeviceType.TemperatureSensor) { device = new TemperatureSensor(); }
-            else if (deviceType == DeviceType.FreshAirHumiditySensor)
-            {
-                device = new HumiditySensor();
-            }
+            else if (deviceType == DeviceType.FreshAirHumiditySensor) { device = new HumiditySensor(); }
             else if (deviceType == DeviceType.OtaDevice || deviceType == DeviceType.OtaPanelDevice) { device = new OTADevice(); }
             else { return null; }
 
@@ -2651,12 +2684,13 @@
             this.dicDeviceModelIdChanged["MULTI-FIRE--EA05"] = "MSS01/M-ZB.10";//鐑熼浘浼犳劅鍣�
             this.dicDeviceModelIdChanged["MULTI-MOTI--EA04"] = "MSPIR01/M-ZB.10";//绾㈠浼犳劅鍣�
             this.dicDeviceModelIdChanged["MULTI-WATE--EA02"] = "MSW01/M-ZB.10";//姘存蹈浼犳劅鍣�
-            this.dicDeviceModelIdChanged["MULTI-BURO--EA06"] = "MBU01/M-ZB.10";//绱ф�ユ寜閿�
-
-
-            //鉁┾湬鉁┾湬鉁╅渶瑕佸叡鏈夌殑鍥剧墖瀵硅薄鉁┾湬鉁┾湬鉁�
-            //涓よ�呴兘鏄疍eviceConcreteType
-            //Keys:鎸囧畾鐨勮澶�    value:娌跨敤鐨勫浘鐗囨槸鍝璁惧鐨�
+            this.dicDeviceModelIdChanged["MULTI-BURO--EA06"] = "MBU01/M-ZB.10";//绱ф�ユ寜閿�
+
+
+
+            //鉁┾湬鉁┾湬鉁╅渶瑕佸叡鏈夌殑鍥剧墖瀵硅薄鉁┾湬鉁┾湬鉁�
+            //涓よ�呴兘鏄疍eviceConcreteType
+            //Keys:鎸囧畾鐨勮澶�    value:娌跨敤鐨勫浘鐗囨槸鍝璁惧鐨�
             this.dicPictrueShard = new Dictionary<string, string>();
             this.dicPictrueShard["ButtonPanel_SimpleFour"] = "ButtonPanel_Four";//绠�绾�4鎸夐敭闈㈡澘 娌跨敤 4鎸夐敭鐨勫浘鏍�
             this.dicPictrueShard["ButtonPanel_SimpleThree"] = "ButtonPanel_Three";//绠�绾�3鎸夐敭闈㈡澘 娌跨敤 3鎸夐敭鐨勫浘鏍�
@@ -2824,11 +2858,6 @@
         /// </summary>
         Sensor_Humidity = -1310,
 
-        /// <summary>
-        /// PM2.5浼犳劅鍣�
-        /// </summary>
-        Sensor_PM = -1311,
-
         //=========鈽呪槄缁х數鍣ㄧ被(2300-2499)鈽呪槄=========
         /// <summary>
         /// 缁х數鍣�
@@ -2841,9 +2870,9 @@
         /// <summary>
         /// 鏂规偊鏂伴灏忔ā鍧� 闀滃儚id锛�2310
         /// </summary>
-        Relay_FangyueFreshAirModul = 2310,
-
-        //=========鈽呪槄璋冨厜鍣ㄧ被(2500-2799)鈽呪槄=========
+        Relay_FangyueFreshAirModul = 2310,
+		
+        //=========鈽呪槄璋冨厜鍣ㄧ被(2500-2799)鈽呪槄=========
         /// <summary>
         /// 璋冨厜鍣�
         /// </summary>
@@ -2953,7 +2982,7 @@
         /// <summary>
         /// 鎸夐敭闈㈡澘(200-1199)
         /// </summary>
-        A鎸夐敭闈㈡澘 = 200,
+        A鎸夐敭闈㈡澘 = 200,
         /// <summary>
         /// 浼犳劅鍣�(1200-2299)
         /// </summary>
@@ -2961,11 +2990,7 @@
         /// <summary>
         /// 缁х數鍣�(2300-2499)
         /// </summary>
-        A缁х數鍣� = 2300,
-        /// <summary>
-        /// 鏂伴
-        /// </summary>
-        A鏂伴 = 2310,
+        A缁х數鍣� = 2300,
         /// <summary>
         /// 璋冨厜鍣�(2500-2799)
         /// </summary>
@@ -3021,7 +3046,11 @@
         /// <summary>
         /// 骞叉帴鐐�
         /// </summary>
-        A骞叉帴鐐� = 16,
+        A骞叉帴鐐� = 16,
+        /// <summary>
+        /// 鏂伴
+        /// </summary>
+        A鏂伴 = 17
     }
 
     #endregion

--
Gitblit v1.8.0