From ad94907bfe5389114dcb841b339886c6a8ef6851 Mon Sep 17 00:00:00 2001
From: WJC <wjc@hdlchina.com.cn>
Date: 星期四, 02 四月 2020 17:09:23 +0800
Subject: [PATCH] 2020-04-2-02-3
---
ZigbeeApp/Shared/Common/Device.cs | 320 +++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 239 insertions(+), 81 deletions(-)
diff --git a/ZigbeeApp/Shared/Common/Device.cs b/ZigbeeApp/Shared/Common/Device.cs
index 35989ca..c59d1e3 100755
--- a/ZigbeeApp/Shared/Common/Device.cs
+++ b/ZigbeeApp/Shared/Common/Device.cs
@@ -45,12 +45,14 @@
{
lock (dicAllDevice)
{
- var list = new List<CommonDevice>();
- foreach (var device in dicAllDevice.Values)
+ //鍏堣幏鍙栧叏閮ㄧ殑Mac
+ var listMac = new List<string>();
+ foreach (var strMac in this.dicDeviceEpoint.Keys)
{
- list.Add(device);
+ listMac.Add(strMac);
}
- return list;
+ //鏍规嵁MAC鍦板潃,鑾峰彇鍏ㄩ儴鍥炶矾鐨勮澶囧璞�(寮哄埗鎺掑簭)
+ return this.GetDevicesByMac(listMac);
}
}
}
@@ -241,7 +243,16 @@
//鑾峰彇杩欎釜缃戝叧鐨勬湰鍦版墍鏈夎澶�
string gwID = HdlGatewayLogic.Current.GetGatewayId(zbGateway);
- List<CommonDevice> listLocalDevices = this.GetDeviceByGatewayID(gwID, true);
+ List<CommonDevice> listLocalDevices = this.GetDeviceByGatewayID(gwID);
+ //鑾峰彇ota璁惧
+ foreach (var ota in this.dicOTADevice.Values)
+ {
+ if (ota.CurrentGateWayId == gwID)
+ {
+ listLocalDevices.Add(ota);
+ }
+ }
+
Dictionary<string, CommonDevice> dicExist = new Dictionary<string, CommonDevice>();
foreach (var device in listLocalDevices)
{
@@ -464,9 +475,28 @@
//澶囦唤鏁版嵁
await HdlGatewayLogic.Current.UpLoadDeviceBackupDataToGateway(device, GatewayBackupEnum.AMac鍚嶇О, newMacName);
//濡傛灉瀹冨彧鏈変竴涓洖璺�,鍒欐洿鏀圭鐐瑰悕瀛�
- if (this.dicDeviceEpoint.ContainsKey(device.DeviceAddr) == true && this.dicDeviceEpoint[device.DeviceAddr].Count == 1)
+ if (this.dicDeviceEpoint.ContainsKey(device.DeviceAddr) == true)
{
- return await this.ReName(device, newMacName);
+ //鍙湁涓�涓鐐�
+ if (this.dicDeviceEpoint[device.DeviceAddr].Count == 1)
+ {
+ return await this.ReName(device, newMacName);
+ }
+ //濡傛灉瀹冩湁涓や釜绔偣鏃�,pir浼犳劅鍣ㄧ壒娈婂鐞�
+ else if (this.dicDeviceEpoint[device.DeviceAddr].Count == 2)
+ {
+ var myType = this.GetMyDeviceEnumInfo(listDevice);
+ if (myType.ConcreteType == DeviceConcreteType.Sensor_Pir)
+ {
+ foreach (var myDevice in listDevice)
+ {
+ if (myDevice.Type == DeviceType.IASZone)
+ {
+ return await this.ReName(myDevice, newMacName);
+ }
+ }
+ }
+ }
}
}
return true;
@@ -555,12 +585,12 @@
/// <param name="deleteRoom">鏄惁浠庢埧闂村垹闄�</param>
public void DeleteMemmoryDevice(CommonDevice device, bool deleteRoom = true)
{
- if (deleteRoom == true && Room.CurrentRoom != null)
+ if (deleteRoom == true && HdlRoomLogic.Current.CurrentRoom != null)
{
//浠庢埧闂翠腑鍒犻櫎
- Room.CurrentRoom.DeleteDevice(device);
+ HdlRoomLogic.Current.DeleteDevice(device);
//鍒犻櫎鎴戠殑鍠滅埍鐨勮澶�
- Room.CurrentRoom.DeleteLoveDevice(device);
+ HdlRoomLogic.Current.DeleteLoveDevice(device);
}
//鍒犻櫎缂撳瓨
@@ -702,36 +732,23 @@
/// <summary>
/// 鏍规嵁缃戝叧ID鑾峰彇鎵�鏈夌殑璁惧
/// </summary>
- /// <param name="gwId">缃戝叧ID</param>
- /// <param name="getOtaDevice">鏄惁鑾峰彇ota璁惧</param>
+ /// <param name="gwId">缃戝叧ID</param>>
/// <returns></returns>
- public List<CommonDevice> GetDeviceByGatewayID(string gwId, bool getOtaDevice = false)
+ public List<CommonDevice> GetDeviceByGatewayID(string gwId)
{
- List<CommonDevice> list = new List<CommonDevice>();
lock (dicAllDevice)
{
- //鍚勭綉鍏崇殑鎵�鏈夎澶�
+ var listMac = new List<string>();
+ //鍚勭綉鍏崇殑鎵�鏈夎澶囩殑Mac
foreach (CommonDevice device in this.dicAllDevice.Values)
{
if (gwId == device.CurrentGateWayId)
{
- list.Add(device);
+ listMac.Add(device.DeviceAddr);
}
}
- if (getOtaDevice == true)
- {
- //鑾峰彇ota璁惧
- foreach (var ota in this.dicOTADevice.Values)
- {
- if (ota.CurrentGateWayId == gwId)
- {
- list.Add(ota);
- }
- }
- }
+ return this.GetDevicesByMac(listMac);
}
-
- return list;
}
/// <summary>
@@ -798,6 +815,39 @@
}
return -1;
});
+ return list;
+ }
+
+ /// <summary>
+ /// 鏍规嵁MAC鍦板潃,鑾峰彇鍏ㄩ儴鍥炶矾鐨勮澶囧璞�(寮哄埗鎺掑簭)
+ /// </summary>
+ /// <param name="DeviceAddr">Mac鍦板潃</param>
+ /// <returns></returns>
+ public List<CommonDevice> GetDevicesByMac(List<string> listMacAddr)
+ {
+ //鍏堟帓搴�
+ listMacAddr.Sort();
+
+ var list = new List<CommonDevice>();
+ foreach (string strMac in listMacAddr)
+ {
+ var listEpoint = new List<int>();
+ //鑾峰彇鍏ㄩ儴鐨勭鐐�
+ foreach (int epoint in this.dicDeviceEpoint[strMac])
+ {
+ listEpoint.Add(epoint);
+ }
+ //鐒跺悗鎺掑簭
+ listEpoint.Sort();
+ foreach (int epoint in listEpoint)
+ {
+ var device = this.GetDevice(strMac, epoint);
+ if (device != null)
+ {
+ list.Add(device);
+ }
+ }
+ }
return list;
}
@@ -1103,9 +1153,41 @@
//鑾峰彇璁惧銆愬浘鏍囥��
this.GetDeviceIcon(device, ref unSelectFilePath, ref selectFilePath);
+ if (btnIcon.UnSelectedImagePath != unSelectFilePath)
+ {
+ btnIcon.UnSelectedImagePath = unSelectFilePath;
+ }
+ if (btnIcon.SelectedImagePath != selectFilePath)
+ {
+ btnIcon.SelectedImagePath = selectFilePath;
+ }
+ }
- btnIcon.UnSelectedImagePath = unSelectFilePath;
- btnIcon.SelectedImagePath = selectFilePath;
+ /// <summary>
+ /// 璁剧疆璁惧銆愬浘鏍囥�戝埌鎸囧畾鐨勬帶浠�(娉ㄦ剰,姝ゅ嚱鏁拌缃殑閫夋嫨鐘舵�佺殑鍥剧墖鏄櫧鑹茬殑)
+ /// </summary>
+ /// <param name="btnIcon">鎺т欢瀵硅薄</param>
+ /// <param name="device">璁惧瀵硅薄</param>
+ /// <returns></returns>
+ public void SetDeviceIconToControl2(Button btnIcon, CommonDevice device)
+ {
+ if (device == null)
+ {
+ btnIcon.UnSelectedImagePath = "Device/ThirdPartyDevice.png";
+ return;
+ }
+ string unSelectFilePath = device.IconPath;
+ string selectFilePath = unSelectFilePath.Replace(".png", "Selected2.png");
+
+ //鑾峰彇璁惧銆愬浘鏍囥��
+ if (btnIcon.UnSelectedImagePath != unSelectFilePath)
+ {
+ btnIcon.UnSelectedImagePath = unSelectFilePath;
+ }
+ if (btnIcon.SelectedImagePath != selectFilePath)
+ {
+ btnIcon.SelectedImagePath = selectFilePath;
+ }
}
/// <summary>
@@ -1266,43 +1348,6 @@
#endregion
- #region 鈻� 璁惧UI鐩稿叧_________________________
-
- /// <summary>
- /// 鑾峰彇璁惧鎵�鍖归厤鐨勮澶嘦I瀵硅薄
- /// </summary>
- /// <param name="device"></param>
- /// <returns></returns>
- public DeviceUI GetDeviceUI(CommonDevice device)
- {
- //鍒涘缓涓�涓柊鐨勪笢瑗跨粰杩囧幓
- var deviceUi = new DeviceUI();
- deviceUi.DeviceAddr = device.DeviceAddr;
- deviceUi.DeviceEpoint = device.DeviceEpoint;
- return deviceUi;
- }
-
- /// <summary>
- /// 鑾峰彇璁惧鎵�鍖归厤鐨勮澶嘦I瀵硅薄
- /// </summary>
- /// <param name="filePath"></param>
- /// <returns></returns>
- public DeviceUI GetDeviceUI(string filePath)
- {
- string[] arry = filePath.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries);
- if (arry.Length != 4)
- {
- return null;
- }
- //鍒涘缓涓�涓柊鐨勪笢瑗跨粰杩囧幓
- var deviceUi = new DeviceUI();
- deviceUi.DeviceAddr = arry[2];
- deviceUi.DeviceEpoint = Convert.ToInt32(arry[3]);
- return deviceUi;
- }
-
- #endregion
-
#region 鈻� 鑾峰彇鑷畾涔夌殑璁惧绫诲瀷_______________
/// <summary>
@@ -1329,7 +1374,11 @@
return info;
}
//鑾峰彇绗笁鏂硅澶囩殑銆愯澶囩被鍨嬨��
- return this.GetNotHdlMyDeviceEnumInfo(listdevice);
+ info = this.GetNotHdlMyDeviceEnumInfo(listdevice);
+ //杩欓噷鍐嶆鍒ゆ柇鏄惁鏄渤涓滆澶�,鏈夊彲鑳藉畠鐨勬ā鍧桰D鍐欓敊浜�
+ info.IsHdlDevice = this.IsHdlDevice(checkDevice);
+
+ return info;
}
/// <summary>
@@ -1394,6 +1443,9 @@
return null;
}
string modelKeys = device.ModelIdentifier;
+ //浜ゆ崲涓�涓嬫ā鍧桰D(楹︿箰鍏嬮偅杈圭殑浼犳劅鍣�)
+ this.ChangedDeviceModeId(ref modelKeys);
+
if (this.dicDeviceModelIdEnum.ContainsKey(modelKeys) == false)
{
//娌℃湁鍖归厤鍒版ā鍧桰D锛屽垯鐩存帴璧扮涓夋柟璁惧鐨勫垽鏂�
@@ -1774,7 +1826,7 @@
//鍗曠函鍙槸Ota璁惧鍒欎笉澶勭悊
return;
}
- Common.Room.CurrentRoom.ChangedRoom(listDevice[0], roomId, false);
+ HdlRoomLogic.Current.ChangedRoom(listDevice[0], roomId, false);
}
}
@@ -1790,7 +1842,7 @@
//鏈垎閰嶅尯鍩�
return Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
}
- var room = Room.CurrentRoom.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
+ var room = HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
if (room != null)
{
return room.Name;
@@ -1810,7 +1862,81 @@
{
return null;
}
- return Room.CurrentRoom.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
+ return HdlRoomLogic.Current.GetRoomById(this.dicDeviceRoomId[device.DeviceAddr]);
+ }
+
+ #endregion
+
+ #region 鈻� 璁惧鎺掑簭___________________________
+
+ /// <summary>
+ /// 璁惧鎺掑簭
+ /// </summary>
+ /// <param name="i_listDevice">璇风‘淇濊繖涓笢瑗垮凡缁忔寜mac鍜岀鐐规帓搴忎簡</param>
+ /// <returns></returns>
+ public List<CommonDevice> SortDeviceByBelongType(List<CommonDevice> i_listDevice)
+ {
+ //鑾峰彇鎺掑簭瑙勫垯
+ var listRule = this.GetBelongTypeSortRule();
+ var dicDevice = new Dictionary<DeviceBeloneType, List<CommonDevice>>();
+ dicDevice[DeviceBeloneType.A鏈煡璁惧] = new List<CommonDevice>();
+
+ foreach (var device in i_listDevice)
+ {
+ //鑾峰彇鎵�灞炵被鍨�
+ var typeInfo = this.GetDeviceBelongEnumInfo(device);
+ if (listRule.Contains(typeInfo.BeloneType) == false)
+ {
+ //涓嶅湪鎺掑簭鑼冨洿鍐�,閮戒涪鍦ㄦ渶鍚庨潰
+ dicDevice[DeviceBeloneType.A鏈煡璁惧].Add(device);
+ continue;
+ }
+ if (dicDevice.ContainsKey(typeInfo.BeloneType) == false)
+ {
+ dicDevice[typeInfo.BeloneType] = new List<CommonDevice>();
+ }
+ dicDevice[typeInfo.BeloneType].Add(device);
+ }
+
+ var listSort = new List<CommonDevice>();
+ foreach (var myType in listRule)
+ {
+ //鏍规嵁瑙勫垯椤哄簭,娣诲姞璁惧
+ if (dicDevice.ContainsKey(myType) == false || dicDevice[myType].Count == 0)
+ {
+ continue;
+ }
+ listSort.AddRange(dicDevice[myType]);
+ }
+
+ return listSort;
+ }
+
+ /// <summary>
+ /// 鑾峰彇璁惧鎵�灞炵被鍨嬬殑鐨勬帓搴忚鍒�
+ /// </summary>
+ /// <returns></returns>
+ public HashSet<DeviceBeloneType> GetBelongTypeSortRule()
+ {
+ //璋佸湪鍓嶉潰,璋佸氨浼樺厛鏄剧ず
+ var list = new HashSet<DeviceBeloneType>();
+ 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;
}
#endregion
@@ -1834,7 +1960,7 @@
/// <returns></returns>
public string GetDeviceMainKeys(CommonDevice device)
{
- return device.DeviceAddr + device.DeviceEpoint;
+ return this.GetDeviceMainKeys(device.DeviceAddr, device.DeviceEpoint);
}
/// <summary>
@@ -1845,7 +1971,7 @@
/// <returns></returns>
public string GetDeviceMainKeys(string DeviceAddr, int DeviceEpoint)
{
- return DeviceAddr + DeviceEpoint;
+ return DeviceAddr + "_" + DeviceEpoint;
}
/// <summary>
@@ -2064,6 +2190,8 @@
statu = 2;
}
}
+
+ statu = 1;
return listDevice;
}
@@ -2254,9 +2382,10 @@
//*********************************************************************
//鏂拌澶囨坊鍔犳柟娉曪細
//1銆佸湪杩欓噷濉啓涓婃ā鍧桰D锛岀劧鍚庢槸 DeviceConcreteType 锛岀劧鍚庢槸 DeviceBeloneType
- //2銆佺劧鍚庡湪鏈�涓嬮潰娣诲姞銆愯澶囩殑鍏蜂綋绫诲瀷銆戯紝銆愯澶囩殑鎵�灞炵被鍨嬨��
+ //2銆佺劧鍚庡湪鏈�涓嬮潰鐨勩�愯嚜瀹氫箟璁惧绫诲瀷銆戞姌鍙犳爮閲屾坊鍔犮�愯澶囩殑鍏蜂綋绫诲瀷銆戯紝銆愯澶囩殑鎵�灞炵被鍨嬨��
//3銆佷互璁惧鐨勫叿浣撶被鍨嬩负鍚嶅瓧(鍘绘帀銆�-銆�)娣诲姞璁惧鐨勩�愭墍灞炲浘鐗囥�戯紝銆愮湡瀹炵墿鐞嗗浘鐗囥�戙�傚洖璺浘鐗囬渶瑕佺壒娈婂鐞�
- //4銆佹坊鍔燫鏂囦欢,娣诲姞Language鏂囦欢
+ //4銆佹坊鍔燫鏂囦欢(uDeviceModelId),娣诲姞Language鏂囦欢
+ //5銆佸鏋滈渶瑕佸叡鏈夊浘鐗�,鍒欏湪杩欎釜鍑芥暟鐨勬渶搴曚笅娣诲姞
//*********************************************************************
//=========鈽呪槄寮�鍚堝笜绫�(100-199)鈽呪槄=========
@@ -2272,11 +2401,14 @@
this.dicDeviceModelIdEnum["MPT4R4L/S-ZB.18"] = "220-200";//绠�绾�4鎸夐敭闈㈡澘
this.dicDeviceModelIdEnum["MPT3R3L/S-ZB.18"] = "221-200";//绠�绾�3鎸夐敭闈㈡澘
this.dicDeviceModelIdEnum["MPT2R2L/S-ZB.18"] = "222-200";//绠�绾�2鎸夐敭闈㈡澘
- this.dicDeviceModelIdEnum["MP2B/TILE-ZB.18"] = "240-200";//鏂规偊2鎸夐敭杞昏Е寮忛潰鏉�
- this.dicDeviceModelIdEnum["MP4B/TILE-ZB.18"] = "241-200";//鏂规偊4鎸夐敭杞昏Е寮忛潰鏉�
- this.dicDeviceModelIdEnum["MP8B/TILE-ZB.18"] = "242-200";//鏂规偊8鎸夐敭杞昏Е寮忛潰鏉�
+ this.dicDeviceModelIdEnum["MPT4SC/S-ZB.18"] = "224-200";//绠�绾�4鎸夐敭鍦烘櫙闈㈡澘
+ this.dicDeviceModelIdEnum["MPT2W/S-ZB.18"] = "226-200";//绠�绾�2璺獥甯橀潰鏉�
+ this.dicDeviceModelIdEnum["MP2B/TILE-ZB.18"] = "240-200";//鏂规偊鍗曞紑鍙屾帶闈㈡澘
+ this.dicDeviceModelIdEnum["MP4B/TILE-ZB.18"] = "241-200";//鏂规偊鍙屽紑鍥涙帶闈㈡澘
+ this.dicDeviceModelIdEnum["MP8B/TILE-ZB.18"] = "242-200";//鏂规偊鍥涘紑鍏帶闈㈡澘
this.dicDeviceModelIdEnum["MPFA/TILE-ZB.18"] = "250-200";//鏂规偊鏂伴闈㈡澘
this.dicDeviceModelIdEnum["MPTE3/TILE-ZB.18"] = "253-200";//鏂规偊鐜闈㈡澘
+ this.dicDeviceModelIdEnum["MP2W/TILE-ZB.18"] = "256-200";//绐楀笜闈㈡澘
//=========鈽呪槄PIR浼犳劅鍣ㄧ被(1200-1299)鈽呪槄=========
this.dicDeviceModelIdEnum["MSPIR01-ZB.10"] = "1200-1200";//pir浼犳劅鍣�220
@@ -2291,12 +2423,14 @@
//=========鈽呪槄缁х數鍣ㄧ被(2300-2499)鈽呪槄=========
this.dicDeviceModelIdEnum["MPR0310-ZB.10"] = "2300-2300";//3璺户鐢靛櫒灏忔ā鍧�
+ this.dicDeviceModelIdEnum["MFA01-ZB1.0"] = "2310-2300";//鏂规偊鏂伴灏忔ā鍧�
//=========鈽呪槄璋冨厜鍣ㄧ被(2500-2799)鈽呪槄=========
this.dicDeviceModelIdEnum["MPD0101-ZB.10"] = "2500-2500";//1璺皟鍏夊櫒灏忔ā鍧�
//=========鈽呪槄鏅鸿兘闂ㄩ攣绫�(2800-????)鈽呪槄=========
this.dicDeviceModelIdEnum["H06C"] = "2800-2800";//鏅鸿兘闂ㄩ攣(H06C)
+ this.dicDeviceModelIdEnum["S-one"] = "2802-2800";//鏅鸿兘闂ㄩ攣(S-one)
//=========鈽呪槄绌鸿皟绫�(3600-3899)鈽呪槄=========
this.dicDeviceModelIdEnum["MAC/GW-ZB.10"] = "3600-3600";//zigbee绌鸿皟缃戝叧妯″潡
@@ -2326,10 +2460,14 @@
//鉁┾湬鉁┾湬鉁╅渶瑕佸叡鏈夌殑鍥剧墖瀵硅薄鉁┾湬鉁┾湬鉁�
+ //涓よ�呴兘鏄疍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鎸夐敭鐨勫浘鏍�
this.dicPictrueShard["ButtonPanel_SimpleTwo"] = "ButtonPanel_Two";//绠�绾�2鎸夐敭闈㈡澘 娌跨敤 2鎸夐敭鐨勫浘鏍�
+ this.dicPictrueShard["IntelligentLocks_Sone"] = "IntelligentLocks_H06C";//S-one鐨勯棬閿佸浘鐗囨部鐢℉06C鐨勫浘鏍�
+
}
#endregion
@@ -2402,6 +2540,14 @@
/// </summary>
ButtonPanel_SimpleTwo = 222,
/// <summary>
+ /// 绠�绾�4鎸夐敭鍦烘櫙闈㈡澘 闀滃儚id锛�224
+ /// </summary>
+ ButtonPanel_FourButtonScene = 224,
+ /// <summary>
+ /// 绠�绾�2璺獥甯橀潰鏉� 闀滃儚id锛�226
+ /// </summary>
+ ButtonPanel_TwoButtonCurtain = 226,
+ /// <summary>
/// 鏂规偊2鎸夐敭杞昏Е寮忛潰鏉� 闀滃儚id锛�240
/// </summary>
ButtonPanel_FangyueTwo = 240,
@@ -2416,11 +2562,15 @@
/// <summary>
/// 鏂规偊鏂伴闈㈡澘 闀滃儚id锛�250
/// </summary>
- ButtonPanel_FangyueNewWind = 250,
+ ButtonPanel_FangyueFreshAir = 250,
/// <summary>
/// 鏂规偊鐜闈㈡澘 闀滃儚id锛�253
/// </summary>
ButtonPanel_FangyueEnvironment = 253,
+ /// <summary>
+ /// 绐楀笜闈㈡澘 闀滃儚id锛�256
+ /// </summary>
+ ButtonPanel_Curtain = 256,
//=========鈽呪槄PIR浼犳劅鍣ㄧ被(1200-1299)鈽呪槄=========
/// <summary>
@@ -2487,7 +2637,11 @@
/// 涓夎矾缁х數鍣� 闀滃儚id锛�2300
/// </summary>
Relay_ThreeLoad = 2300,
-
+ /// <summary>
+ /// 鏂规偊鏂伴灏忔ā鍧� 闀滃儚id锛�2310
+ /// </summary>
+ Relay_FangyueFreshAirModul = 2310,
+
//=========鈽呪槄璋冨厜鍣ㄧ被(2500-2799)鈽呪槄=========
/// <summary>
/// 璋冨厜鍣�
@@ -2507,6 +2661,10 @@
/// H06C
/// </summary>
IntelligentLocks_H06C = 2800,
+ /// <summary>
+ /// S-one
+ /// </summary>
+ IntelligentLocks_Sone = 2802,
//=========鈽呪槄褰╃伅绫�(????-????)鈽呪槄=========
/// <summary>
--
Gitblit v1.8.0