From b68cdc7e103a00d5df73e4b75603be8da1815b4a Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期三, 29 四月 2020 13:59:52 +0800 Subject: [PATCH] 上传版本 --- ZigbeeApp/Shared/Common/Device.cs | 89 +++++++++++++++++++++++++++++++++++++++----- 1 files changed, 78 insertions(+), 11 deletions(-) diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs index 13acb40..b8126c8 100755 --- a/ZigbeeApp/Shared/Common/Device.cs +++ b/ZigbeeApp/Shared/Common/Device.cs @@ -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> @@ -1003,15 +1039,8 @@ //缁х數鍣�,鎺夊厜鍣ㄩ兘鍙洖璺� return Language.StringByID(R.MyInternationalizationString.uDeviceCircuit) + epointNo; } - //鑾峰彇璁惧绫诲瀷 - var deviceInfoType = this.GetMyDeviceEnumInfo(new List<CommonDevice>() { device }); if (device.Type == DeviceType.Thermostat) { - //鏂伴闈㈡澘涓殑Thermostat鍙俯搴︿紶鎰熷櫒 - if (deviceInfoType.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir) - { - return Language.StringByID(R.MyInternationalizationString.TemperatureSensor); - } //绌鸿皟閮藉彨瀹ゅ唴鏈� return Language.StringByID(R.MyInternationalizationString.uIndoorUnit) + epointNo; } @@ -1025,7 +1054,10 @@ //鏂伴闈㈡澘婀垮害浼犳劅鍣� return Language.StringByID(R.MyInternationalizationString.HumiditySensor); } - else if (device.Type == DeviceType.OnOffSwitch) + + //鑾峰彇璁惧绫诲瀷 + var deviceInfoType = this.GetMyDeviceEnumInfo(new List<CommonDevice>() { device }); + if (device.Type == DeviceType.OnOffSwitch) { //闈㈡澘鐨勫共鎺ョ偣鍙寜閿� if (deviceInfoType.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘) @@ -1036,6 +1068,19 @@ else { return Language.StringByID(R.MyInternationalizationString.uDeviceBelongId16) + epointNo; + } + } + else if (device.Type == DeviceType.TemperatureSensor) + { + if (deviceInfoType.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir) + { + //鏂伴闈㈡澘涓殑Thermostat涓烘俯搴︿紶鎰熷櫒 + return Language.StringByID(R.MyInternationalizationString.TemperatureSensor); + } + else if (deviceInfoType.BeloneType == DeviceBeloneType.A鎸夐敭闈㈡澘) + { + //闈㈡澘鐨勬俯搴︽帰澶村彨 闈㈡澘鍚嶅瓧+娓╁害 + return Language.StringByID(deviceInfoType.DefultNameId) + Language.StringByID(R.MyInternationalizationString.uTemperature); } } //鍏朵粬鎯呭喌,浣跨敤瀹冪殑榛樿鍚嶇О @@ -1758,6 +1803,14 @@ } info.ObjectTypeNameId = 60000;//浼犳劅鍣� } + //14鏂伴璁惧 + else if (dicType.ContainsKey(DeviceType.FreshAir) == true) + { + info.ConcreteTextId = R.MyInternationalizationString.uDeviceModelId2310; + info.BeloneType = DeviceBeloneType.A鏂伴; + info.ConcreteType = DeviceConcreteType.Relay_FangyueFreshAirModul; + info.ObjectTypeNameId = 60011;//鏂伴 + } int value = (int)info.BeloneType; if (dicDeviceAllNameID.ContainsKey("uDeviceBelongId" + value) == true) @@ -2007,6 +2060,7 @@ 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骞叉帴鐐�); @@ -2040,6 +2094,15 @@ { //2020.03.23杩藉姞寮忔牱:鏈寚瀹氱被鍨嬬殑缁х數鍣�,涓嶆樉绀� if (i_device.DfunctionType == DeviceFunctionType.A鏈畾涔�) + { + return false; + } + } + //濡傛灉鏄柊椋庨潰鏉跨殑鏂伴璁惧,鍒欎笉鏄剧ず + else if (i_device.Type == DeviceType.FreshAir) + { + var myInfoType = LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { i_device }); + if (myInfoType.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir) { return false; } @@ -2590,7 +2653,7 @@ //=========鈽呪槄缁х數鍣ㄧ被(2300-2499)鈽呪槄========= this.dicDeviceModelIdEnum["MPR0310-ZB.10"] = "2300-2300-60001";//3璺户鐢靛櫒灏忔ā鍧� - this.dicDeviceModelIdEnum["MFA01-ZB1.0"] = "2310-2300-60001";//鏂规偊鏂伴灏忔ā鍧� + this.dicDeviceModelIdEnum["MFA01-ZB.10"] = "2310-2300-60011";//鏂规偊鏂伴灏忔ā鍧� //=========鈽呪槄璋冨厜鍣ㄧ被(2500-2799)鈽呪槄========= this.dicDeviceModelIdEnum["MPD0101-ZB.10"] = "2500-2500-60007";//1璺皟鍏夊櫒灏忔ā鍧� @@ -2930,6 +2993,10 @@ /// </summary> A缁х數鍣� = 2300, /// <summary> + /// 鏂伴 + /// </summary> + A鏂伴 = 2310, + /// <summary> /// 璋冨厜鍣�(2500-2799) /// </summary> A璋冨厜鍣� = 2500, @@ -2984,7 +3051,7 @@ /// <summary> /// 骞叉帴鐐� /// </summary> - A骞叉帴鐐� = 16 + A骞叉帴鐐� = 16, } #endregion -- Gitblit v1.8.0