From 3f87bf0ae7394cdd7d52428f1f6b4361434c7cc4 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期五, 15 五月 2020 13:28:33 +0800
Subject: [PATCH] hhhhhhhhh
---
ZigbeeApp/Shared/Common/Device.cs | 145 ++++++++++++++++++++++++++++++++++--------------
1 files changed, 102 insertions(+), 43 deletions(-)
diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
index 7275b4d..75fe150 100755
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -1331,7 +1331,7 @@
}
/// <summary>
- /// 璁剧疆銆愯澶囩被鍨嬨�戠殑鍥炬爣鍒版寚瀹氱殑鎺т欢
+ /// 璁剧疆銆愯澶囩被鍨嬨�戠殑鍥炬爣鍒版寚瀹氱殑鎺т欢(姝ゆ柟娉曚笉鑳界敤鍦ㄨ澶囧姛鑳界被鍨嬭彍鍗曠殑鍥炬爣)
/// </summary>
/// <param name="btnIcon">鎺т欢瀵硅薄</param>
/// <param name="listdevice">璁惧瀵硅薄</param>
@@ -1353,7 +1353,7 @@
}
/// <summary>
- /// 鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣
+ /// 鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣(姝ゆ柟娉曚笉鑳界敤鍦ㄨ澶囧姛鑳界被鍨嬭彍鍗曠殑鍥炬爣)
/// </summary>
/// <param name="listdevice">璁惧瀵硅薄</param>
/// <param name="unSelectPath">鍥剧墖鍦板潃</param>
@@ -1369,13 +1369,42 @@
}
/// <summary>
- /// 鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣
+ /// 鑾峰彇銆愯澶囧姛鑳界被鍨嬨�戠殑鑿滃崟鍥炬爣
/// </summary>
/// <param name="specificType">鑷畾涔夎澶囩被鍨�</param>
/// <param name="unSelectPath">鍥剧墖鍦板潃</param>
/// <param name="selectPath">鍥剧墖鍦板潃</param>
/// <returns></returns>
- public void GetDeviceObjectIcon(DeviceConcreteType specificType, ref string unSelectPath, ref string selectPath)
+ public void GetDeviceFunctionTypeMenuIcon(DeviceConcreteType specificType, ref string unSelectPath, ref string selectPath)
+ {
+ //鏂伴灏忔ā鍧�
+ if (specificType == DeviceConcreteType.Relay_FangyueFreshAirModul)
+ {
+ unSelectPath = "Device/FreshAirEpoint.png";
+ selectPath = "Device/FreshAirEpointSelected.png";
+ return;
+ }
+ //PM2.5绌烘皵璐ㄩ噺浼犳劅鍣�
+ else if (specificType == DeviceConcreteType.Sensor_PMTwoPointFive)
+ {
+ unSelectPath = "Device/AirQualitySensorEpoint.png";
+ selectPath = "Device/AirQualitySensorEpointSelected.png";
+ return;
+ }
+ //涓婇潰闇�瑕佺壒娈婂鐞�
+
+ //鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣
+ this.GetDeviceObjectIcon(specificType, ref unSelectPath, ref selectPath);
+ }
+
+ /// <summary>
+ /// 鑾峰彇銆愯澶囩被鍨嬨�戠殑鍥炬爣 2020.05.13:娆″嚱鏁颁笉鍐嶅叕寮�
+ /// </summary>
+ /// <param name="specificType">鑷畾涔夎澶囩被鍨�</param>
+ /// <param name="unSelectPath">鍥剧墖鍦板潃</param>
+ /// <param name="selectPath">鍥剧墖鍦板潃</param>
+ /// <returns></returns>
+ private void GetDeviceObjectIcon(DeviceConcreteType specificType, ref string unSelectPath, ref string selectPath)
{
//灏嗗叿浣撶被鍨嬭浆瀛楃涓�
string strSpecific = Enum.GetName(typeof(DeviceConcreteType), specificType);
@@ -1412,6 +1441,7 @@
unSelectPath = imageFilePath;
selectPath = imageSelectFilePath;
}
+
#endregion
@@ -1818,6 +1848,14 @@
info.ConcreteType = DeviceConcreteType.Relay_FangyueFreshAirModul;
info.ObjectTypeNameId = 60011;//鏂伴
}
+ //15 PM2.5浼犳劅鍣ㄨ澶�
+ else if (dicType.ContainsKey(DeviceType.PMSensor) == true)
+ {
+ info.ConcreteTextId = R.MyInternationalizationString.uDeviceModelId1307;
+ info.BeloneType = DeviceBeloneType.APM2鐐�5绌烘皵璐ㄩ噺浼犳劅鍣�;
+ info.ConcreteType = DeviceConcreteType.Sensor_PMTwoPointFive;
+ info.ObjectTypeNameId = 60000;//浼犳劅鍣�
+ }
int value = (int)info.BeloneType;
if (dicDeviceAllNameID.ContainsKey("uDeviceBelongId" + value) == true)
@@ -1916,26 +1954,10 @@
/// <param name="saveRoadDevice">濡傛灉鍙湁涓�涓洖璺�,鏄惁鎶婂洖璺殑鎴块棿涓�璧蜂慨鏀�</param>
public void SaveRealDeviceRoomId(List<CommonDevice> listDevice, string roomId, bool saveRoadDevice = true)
{
- if (listDevice != null)
+ if (listDevice == null)
{
- if (roomId == string.Empty)
- {
- //閫夋嫨鐨勬槸鏈垎閰�
- this.dicDeviceRoomId.Remove(listDevice[0].DeviceAddr);
- }
- else
- {
- this.dicDeviceRoomId[listDevice[0].DeviceAddr] = roomId;
- }
+ return;
}
-
- //淇濆瓨璁板綍
- string fullName = UserCenterLogic.CombinePath(DirNameResourse.DeviceRoomIdFile);
- UserCenterLogic.SaveFileContent(fullName, this.dicDeviceRoomId);
-
- //娣诲姞鑷姩澶囦唤
- HdlAutoBackupLogic.AddOrEditorFile(DirNameResourse.DeviceRoomIdFile);
-
//濡傛灉璁惧鍙湁涓�涓洖璺紝濡傛灉鏀瑰彉浜嗙湡瀹炶澶囧尯鍩燂紝鍒欏畠鐨勫洖璺殑鍖哄煙涔熶竴璧锋敼浜�
if (saveRoadDevice == true && listDevice != null && listDevice.Count == 1)
{
@@ -1945,6 +1967,31 @@
return;
}
HdlRoomLogic.Current.ChangedRoom(listDevice[0], roomId, false);
+ }
+ bool save = false;
+ if (roomId == string.Empty)
+ {
+ //閫夋嫨鐨勬槸鏈垎閰�
+ this.dicDeviceRoomId.Remove(listDevice[0].DeviceAddr);
+ save = true;
+ }
+ else
+ {
+ if (this.dicDeviceRoomId.ContainsKey(listDevice[0].DeviceAddr) == false)
+ {
+ this.dicDeviceRoomId[listDevice[0].DeviceAddr] = roomId;
+ save = true;
+ }
+ }
+
+ if (save == true)
+ {
+ //淇濆瓨璁板綍
+ string fullName = UserCenterLogic.CombinePath(DirNameResourse.DeviceRoomIdFile);
+ UserCenterLogic.SaveFileContent(fullName, this.dicDeviceRoomId);
+
+ //娣诲姞鑷姩澶囦唤
+ HdlAutoBackupLogic.AddOrEditorFile(DirNameResourse.DeviceRoomIdFile);
}
}
@@ -2111,26 +2158,15 @@
listDevice = this.GetDeviceByGatewayID(gwId);
}
- var dicDevice = new Dictionary<string, CommonDevice>();
+ var listCheck = new HashSet<string>();
+ var listReturn = new List<CommonDevice>();
foreach (var device in listDevice)
{
- if (dicDevice.ContainsKey(device.DeviceAddr) == false)
+ if (listCheck.Contains(device.DeviceAddr) == false)
{
- dicDevice[device.DeviceAddr] = device;
- continue;
+ listCheck.Add(device.DeviceAddr);
+ listReturn.Add(device);
}
- //璁惧鏄惁澶勪簬鍦ㄧ嚎鐘舵��
- bool online = this.CheckDeviceIsOnline(device);
- if (online == true)
- {
- //濡傛灉璁惧鍥炶矾鍦ㄧ嚎,鍒欎紭鍏堜娇鐢ㄥ湪绾跨殑鍥炶矾,鍚庢潵鐨勭洿鎺ヨ鐩�
- dicDevice[device.DeviceAddr] = device;
- }
- }
- var listReturn = new List<CommonDevice>();
- foreach (var device in dicDevice.Values)
- {
- listReturn.Add(device);
}
return listReturn;
}
@@ -2146,8 +2182,18 @@
/// <returns></returns>
public bool CheckDeviceIsOnline(CommonDevice i_device)
{
- //0:绂荤嚎 1:鍦ㄧ嚎 2:姝e湪鍒锋柊鐘舵��
- return i_device.IsOnline == 1 || i_device.IsOnline == 2;
+ var listDevice = this.GetDevicesByMac(i_device.DeviceAddr, false);
+ foreach (var device in listDevice)
+ {
+ //0:绂荤嚎 1:鍦ㄧ嚎 2:姝e湪鍒锋柊鐘舵��
+ bool statu = i_device.IsOnline == 1 || i_device.IsOnline == 2;
+ if (statu == true)
+ {
+ //鏈変竴涓洖璺湪绾�,鍗冲湪绾�
+ return true;
+ }
+ }
+ return false;
}
/// <summary>
@@ -2377,8 +2423,14 @@
if (listCheck.Contains(mainkeys) == false)
{
listDevice.Add(device);
-
listCheck.Add(mainkeys);
+ //鍒锋柊涓�涓嬫湰鍦扮紦瀛�
+ var localDevice = this.GetDevice(mainkeys);
+ if (localDevice != null)
+ {
+ //鍒锋柊灞炴��
+ this.SetDeviceInfoToMain(localDevice, device);
+ }
}
}
}
@@ -2505,6 +2557,7 @@
mainDevice.DeviceEpointName = device.DeviceInfo.DeviceName;
}
mainDevice.CurrentGateWayId = device.CurrentGateWayId;
+ mainDevice.ZigbeeType = device.DeviceInfo.ZigbeeType;
mainDevice.IsOnline = device.DeviceInfo.IsOnline;
mainDevice.DriveCode = device.DeviceInfo.DriveCode;
mainDevice.IasDeviceType = device.DeviceInfo.DeviceType;
@@ -2557,8 +2610,9 @@
//濡傛灉鏄笁璺户鐢靛櫒鐨勫洖璺殑璇�,榛樿涓虹伅鍏�
else if (mainDevice.Type == DeviceType.OnOffOutput)
{
- var myType = this.GetHdlMyDeviceEnumInfo(mainDevice);
- if (myType != null && myType.ConcreteType == DeviceConcreteType.Relay_ThreeLoad)
+ //2020.05.13鍙樻洿:缁х數鍣ㄩ兘榛樿涓虹伅鍏�
+ //var myType = this.GetHdlMyDeviceEnumInfo(mainDevice);
+ //if (myType != null && myType.ConcreteType == DeviceConcreteType.Relay_ThreeLoad)
{
if (mainDevice.DfunctionType == DeviceFunctionType.A鏈畾涔�)
{
@@ -2616,6 +2670,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.PMSensor) { device = new PMSensor(); }
else if (deviceType == DeviceType.FreshAirHumiditySensor) { device = new HumiditySensor(); }
else if (deviceType == DeviceType.OtaDevice || deviceType == DeviceType.OtaPanelDevice) { device = new OTADevice(); }
else { return null; }
@@ -3069,6 +3124,10 @@
/// </summary>
A浼犳劅鍣� = 1200,
/// <summary>
+ /// PM2.5绌烘皵璐ㄩ噺浼犳劅鍣�
+ /// </summary>
+ APM2鐐�5绌烘皵璐ㄩ噺浼犳劅鍣� = 1307,
+ /// <summary>
/// 缁х數鍣�(2300-2499)
/// </summary>
A缁х數鍣� = 2300,
--
Gitblit v1.8.0