From 5428935270159bfc42c2934ed7fb1091554fc9a4 Mon Sep 17 00:00:00 2001 From: 黄学彪 <hxb@hdlchina.com.cn> Date: 星期四, 09 七月 2020 17:12:42 +0800 Subject: [PATCH] 修改了 sokect --- ZigbeeApp/Shared/Common/Device.cs | 136 +++++++++++++++++++++++++++------------------ 1 files changed, 82 insertions(+), 54 deletions(-) diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs index cd8dc6a..9ba510c 100755 --- a/ZigbeeApp/Shared/Common/Device.cs +++ b/ZigbeeApp/Shared/Common/Device.cs @@ -551,7 +551,7 @@ //鑾峰彇缂栬緫璁惧Mac鍚嶅瓧鐨勫懡浠ゅ瓧绗� var sendData = this.GetReDeviceMacNameCommandText(device.DeviceAddr, device.DeviceEpoint, macName); - var result = HdlDeviceCommonLogic.Current.SendJobjectDataToGateway(device, "MacRename", sendData, "MacRename_Respon"); + var result = HdlDeviceCommonLogic.Current.SendJobjectDataToGateway(device, "MacRename", sendData, "MacRename_Respon", 8); if (result.ErrorMsg != null || result.ErrorMsgDiv == 0) { return null; @@ -578,7 +578,7 @@ } //鑾峰彇缂栬緫璁惧绔偣鍚嶅瓧鐨勫懡浠ゅ瓧绗� var sendData = this.GetReDeviceEpointNameCommandText(device.DeviceAddr, device.DeviceEpoint, deviceName); - var result = HdlDeviceCommonLogic.Current.SendJobjectDataToGateway(device, "DeviceRename", sendData, "DeviceRenameRespon"); + var result = HdlDeviceCommonLogic.Current.SendJobjectDataToGateway(device, "DeviceRename", sendData, "DeviceRenameRespon", 8); if (result.ErrorMsg != null || result.ErrorMsgDiv == 0) { return null; @@ -2161,6 +2161,12 @@ info.ConcreteType = DeviceConcreteType.Sensor_DoorWindow; info.ConcreteTextId = R.MyInternationalizationString.uDeviceModelId1301; } + else if (iasZone.IasDeviceType == 541) + { + //鐞冨瀷绉诲姩浼犳劅鍣� + info.ConcreteType = DeviceConcreteType.Sensor_SphericalMotion; + info.ConcreteTextId = R.MyInternationalizationString.uDeviceModelId1205; + } } #endregion @@ -2173,12 +2179,21 @@ private void InitRealDeviceRoomId() { this.dicDeviceRoomId = new Dictionary<string, string>(); - string fullName = UserCenterLogic.CombinePath(DirNameResourse.DeviceRoomIdFile); - var strData = UserCenterLogic.LoadFileContent(fullName); + string fullName = DirNameResourse.DeviceRoomIdFile; + var strData = HdlFileLogic.Current.ReadFileTextContent(fullName); if (strData != null) { this.dicDeviceRoomId = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, string>>(strData); } + } + + /// <summary> + /// 鑾峰彇鍏ㄩ儴鐗╃悊璁惧鎵�灞炴埧闂寸殑璁板綍 + /// </summary> + /// <returns></returns> + public Dictionary<string, string> GetAllRealDeviceRoomData() + { + return this.dicDeviceRoomId; } /// <summary> @@ -2232,8 +2247,7 @@ if (save == true) { //淇濆瓨璁板綍 - string fullName = UserCenterLogic.CombinePath(DirNameResourse.DeviceRoomIdFile); - UserCenterLogic.SaveFileContent(fullName, this.dicDeviceRoomId); + HdlFileLogic.Current.SaveFileContent(DirNameResourse.DeviceRoomIdFile, this.dicDeviceRoomId); //娣诲姞鑷姩澶囦唤 HdlAutoBackupLogic.AddOrEditorFile(DirNameResourse.DeviceRoomIdFile); @@ -2253,7 +2267,7 @@ return Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom); } var room = HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]); - return HdlRoomLogic.Current.GetFloorRoomName(room); + return HdlRoomLogic.Current.GetRoomName(room); } /// <summary> @@ -2301,8 +2315,7 @@ return; } //淇濆瓨璁板綍 - string fullName = UserCenterLogic.CombinePath(DirNameResourse.DeviceRoomIdFile); - UserCenterLogic.SaveFileContent(fullName, this.dicDeviceRoomId); + HdlFileLogic.Current.SaveFileContent(DirNameResourse.DeviceRoomIdFile, this.dicDeviceRoomId); //娣诲姞鑷姩澶囦唤 HdlAutoBackupLogic.AddOrEditorFile(DirNameResourse.DeviceRoomIdFile); @@ -2400,39 +2413,6 @@ list.Add(DeviceBeloneType.A鏈煡璁惧); return list; - } - - #endregion - - #region 鈻� 鑾峰彇璁惧鍦ㄧ嚎鐘舵�佸垪琛╛______________ - - /// <summary> - /// 鑾峰彇璁惧鍦ㄧ嚎鐘舵�佸垪琛�(娉ㄦ剰,涓�涓澶囧彧杩斿洖涓�涓洖璺�) - /// </summary> - /// <param name="gwId">缃戝叧id</param> - /// <returns></returns> - public List<CommonDevice> GetDeviceOnlineList(string gwId) - { - var zbway = HdlGatewayLogic.Current.GetLocalGateway(gwId); - int statu = 0; - var listDevice = this.GetDeviceListFromGateway(zbway, ref statu, false, ShowErrorMode.NO); - if (statu == -1) - { - //褰撳嚭鐜板紓甯告椂,浣跨敤鍚庡鎿嶄綔,鐩存帴鑾峰彇鏈湴鐨勮澶囧垪琛� - listDevice = this.GetDeviceByGatewayID(gwId); - } - - var listCheck = new HashSet<string>(); - var listReturn = new List<CommonDevice>(); - foreach (var device in listDevice) - { - if (listCheck.Contains(device.DeviceAddr) == false) - { - listCheck.Add(device.DeviceAddr); - listReturn.Add(device); - } - } - return listReturn; } #endregion @@ -2862,6 +2842,8 @@ mainDevice.ModelIdentifier = device.DeviceInfo.ModelIdentifier; //搴忓垪鍙� mainDevice.SerialNumber = device.DeviceInfo.ProductCode; + //璁惧鍔熻兘绫诲瀷 + mainDevice.DfunctionType = (DeviceFunctionType)device.DeviceInfo.FunctionType; mainDevice.InClusterList.Clear(); mainDevice.InClusterList.AddRange(device.DeviceInfo.InClusterList); @@ -2888,6 +2870,11 @@ else if (mainDevice.Type == DeviceType.DimmableLight) { mainDevice.DfunctionType = DeviceFunctionType.A鐏厜; + if (device.DeviceInfo.FunctionType != (int)DeviceFunctionType.A鐏厜) + { + //璋冨厜鍣ㄥ浐瀹氱伅鍏� + this.SendDeviceFunctionTypeToGateway(mainDevice, DeviceFunctionType.A鐏厜); + } if (mainDevice.IsCustomizeImage == false) { mainDevice.IconPath = "Device/Light.png"; @@ -2897,6 +2884,11 @@ else if (mainDevice.Type == DeviceType.ColorTemperatureLight) { mainDevice.DfunctionType = DeviceFunctionType.A鐏厜; + if (device.DeviceInfo.FunctionType != (int)DeviceFunctionType.A鐏厜) + { + //鑹叉俯鐏浐瀹氱伅鍏� + this.SendDeviceFunctionTypeToGateway(mainDevice, DeviceFunctionType.A鐏厜); + } if (mainDevice.IsCustomizeImage == false) { mainDevice.IconPath = "Device/ColorLightTemperature.png"; @@ -2906,18 +2898,17 @@ else if (mainDevice.Type == DeviceType.OnOffOutput) { //2020.05.13鍙樻洿:缁х數鍣ㄩ兘榛樿涓虹伅鍏� - //var myType = this.GetHdlMyDeviceEnumInfo(mainDevice); - //if (myType != null && myType.ConcreteType == DeviceConcreteType.Relay_ThreeLoad) + if (mainDevice.DfunctionType == DeviceFunctionType.A鏈畾涔�) { - if (mainDevice.DfunctionType == DeviceFunctionType.A鏈畾涔�) + mainDevice.DfunctionType = DeviceFunctionType.A鐏厜; + if (device.DeviceInfo.FunctionType != (int)DeviceFunctionType.A鐏厜) { - mainDevice.DfunctionType = DeviceFunctionType.A鐏厜; - } - if (mainDevice.IsCustomizeImage == false) - { - mainDevice.IconPath = "Device/Light.png"; + //缁х數鍣ㄩ粯璁や负鐏厜 + this.SendDeviceFunctionTypeToGateway(mainDevice, DeviceFunctionType.A鐏厜); } } + //鏍规嵁鍔熻兘绫诲瀷,閲嶆柊璁剧疆璁惧鍥炶矾鍥炬爣 + this.ResetIconPathByDeviceFunctionType(mainDevice); } //濡傛灉鏄┖姘斿紑鍏崇殑璇� else if (mainDevice.Type == DeviceType.AirSwitch) @@ -2926,20 +2917,52 @@ if (mainDevice.DfunctionType == DeviceFunctionType.A鏈畾涔�) { mainDevice.DfunctionType = DeviceFunctionType.A寮�鍏�; + if (device.DeviceInfo.FunctionType != (int)DeviceFunctionType.A寮�鍏�) + { + //绌烘皵寮�鍏抽粯璁や负寮�鍏� + this.SendDeviceFunctionTypeToGateway(mainDevice, DeviceFunctionType.A寮�鍏�); + } } - if (mainDevice.IsCustomizeImage == false) - { - mainDevice.IconPath = "Device/Switch.png"; - } + //鏍规嵁鍔熻兘绫诲瀷,閲嶆柊璁剧疆璁惧鍥炶矾鍥炬爣 + this.ResetIconPathByDeviceFunctionType(mainDevice); } //濡傛灉鏄僵鐏殑璇� else if (mainDevice.Type == DeviceType.ColorDimmableLight) { mainDevice.DfunctionType = DeviceFunctionType.A鐏厜; + if (device.DeviceInfo.FunctionType != (int)DeviceFunctionType.A鐏厜) + { + //褰╃伅榛樿涓哄紑鍏� + this.SendDeviceFunctionTypeToGateway(mainDevice, DeviceFunctionType.A鐏厜); + } if (mainDevice.IsCustomizeImage == false) { mainDevice.IconPath = "Device/ColorLight.png"; } + } + } + + /// <summary> + /// 鏍规嵁鍔熻兘绫诲瀷,閲嶆柊璁剧疆璁惧鍥炶矾鍥炬爣 + /// </summary> + /// <param name="device"></param> + private void ResetIconPathByDeviceFunctionType(CommonDevice device) + { + if (device.IsCustomizeImage == true) + { + return; + } + if (device.DfunctionType == DeviceFunctionType.A寮�鍏�) + { + device.IconPath = "Device/Switch.png"; + } + else if (device.DfunctionType == DeviceFunctionType.A鎻掑骇) + { + device.IconPath = "Device/Socket1.png"; + } + else + { + device.IconPath = "Device/Light.png"; } } @@ -3060,6 +3083,7 @@ //=========鈽呪槄PIR浼犳劅鍣ㄧ被(1200-1299)鈽呪槄========= this.dicDeviceModelIdEnum["MSPIR01-ZB.10"] = "1200-1200-60000";//pir浼犳劅鍣�220 + this.dicDeviceModelIdEnum["MSPIRB-ZB.10"] = "1205-1200-60000";//鐞冨瀷绉诲姩浼犳劅鍣� //=========鈽呪槄瀹夐槻绫讳紶鎰熷櫒绫�(1300-2299)鈽呪槄========= //杩欓噷鏄害涔愬厠鐨� @@ -3249,6 +3273,10 @@ /// pir浼犳劅鍣�220 闀滃儚id锛�1200 /// </summary> Sensor_Pir = 1200, + /// <summary> + /// 鐞冨舰绉诲姩浼犳劅鍣� 闀滃儚id锛�1205 + /// </summary> + Sensor_SphericalMotion = 1205, //=========鈽呪槄瀹夐槻绫讳紶鎰熷櫒绫�(1300-2299)鈽呪槄========= /// <summary> -- Gitblit v1.8.0