From 270b3d8539f6b4a991a9ebf3b3a9eceb436d61d5 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期四, 28 十月 2021 17:08:02 +0800
Subject: [PATCH] 自动化地址问题修复
---
HDL_ON/DAL/DriverLayer/Control.cs | 67 ++++++++++++++++++++++++++-------
1 files changed, 53 insertions(+), 14 deletions(-)
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index 09db486..686064e 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -279,6 +279,7 @@
else if (DB_ResidenceData.Instance.GatewayType == 1)
{
new Control_Udp().SearchLocalGateway();
+ new Control_Udp().SearchLocalGateway(true);
}
System.Threading.Thread.Sleep(500);
}
@@ -407,9 +408,12 @@
switch (function.spk)
{
case SPK.ElectricTuyaAirCleaner:
+ case SPK.ElectricTuyaAirCleaner2:
case SPK.ElectricTuyaFan:
+ case SPK.ElectricTuyaFan2:
case SPK.ElectricTuyaWaterValve:
case SPK.ElectricTuyaWeepRobot:
+ case SPK.ElectricTuyaWeepRobot2:
useRemote = true;
break;
}
@@ -615,9 +619,9 @@
{
id = Ins.msg_id.ToString(),
objects = new List<Dictionary<string, string>>()
- {
- readKey
- },
+ {
+ readKey
+ },
time_stamp = Utlis.GetTimestamp()
};
var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(readDataObj);
@@ -699,6 +703,21 @@
}
}
/// <summary>
+ /// 缃戝叧杩涘叆閰嶇綉妯″紡
+ /// </summary>
+ public void AuthGateway()
+ {
+ var objects1 = new { spk = "", time = "180" };
+ //{"objects":[{"spk":"","time":"180"}],"id":"8","time_stamp":"1635241216669"}
+ var sendId = Ins.msg_id.ToString();
+ var sendObj = new { objects = objects1, id = sendId, time_stamp = Utlis.GetTimestamp() };
+
+ var aLinkJson = Newtonsoft.Json.JsonConvert.SerializeObject(sendObj);
+ var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.AuthGateway, aLinkJson);
+ new Control_Udp().SendLocalHdlLinkData(sendBytes, Ins.msg_id.ToString());
+ }
+
+ /// <summary>
/// 杞崲鍙戦�佹暟鎹�
/// </summary>
/// <param name="topic">涓婚</param>
@@ -720,7 +739,7 @@
//1.鎷兼帴澶�
string topicString = "Topic:" + topic + "\r\n";
//2.Body瀛楃涓茶浆涓篵yte鏁扮粍
- byte[] bodyBytes = Encoding.ASCII.GetBytes(bodyDataString);
+ byte[] bodyBytes = Encoding.UTF8.GetBytes(bodyDataString);
//鍒ゆ柇鏄惁闇�鍔犲瘑Body鏁版嵁
if (isEncryption && IsLocalEncryptAndGetAesKey)
{
@@ -731,7 +750,7 @@
//3.鎷兼帴body鐨凩ength闀垮害鏁版嵁
string lengthString = "Length:" + bodyBytes.Length.ToString() + "\r\n" + "\r\n";
string topicAndLengthString = topicString + lengthString;
- byte[] topicAndLengthBytes = Encoding.ASCII.GetBytes(topicAndLengthString);
+ byte[] topicAndLengthBytes = Encoding.UTF8.GetBytes(topicAndLengthString);
//4.鎷兼帴鍚堝苟 Topic 鍜� body鐨刡yte鏁扮粍鏁版嵁
byte[] sendDataBytes = new byte[topicAndLengthBytes.Length + bodyBytes.Length];
topicAndLengthBytes.CopyTo(sendDataBytes, 0);
@@ -747,10 +766,10 @@
/// 杞崲鎺ユ敹鍒扮殑鏁版嵁
/// </summary>
/// <returns></returns>
- public void ConvertReceiveData(byte[] receiveBytes)
+ public void ConvertReceiveData(byte[] receiveBytes,string ip)
{
var reString = Encoding.UTF8.GetString(receiveBytes);
- AnalysisReceiveData(reString, receiveBytes);
+ AnalysisReceiveData(reString, receiveBytes,ip);
}
/// <summary>
/// 杞崲鎺ユ敹鍒扮殑鏁版嵁
@@ -758,7 +777,7 @@
/// <param name="receiveString">杞琒tring鍚庣殑鏁版嵁</param>
/// <param name="originalReceiveBytes"鍘熷Bytes鏁版嵁</param>
/// <returns></returns>
- public LocalCommunicationData AnalysisReceiveData(string receiveString, byte[] originalReceiveBytes)
+ public LocalCommunicationData AnalysisReceiveData(string receiveString, byte[] originalReceiveBytes , string sIp = null)
{
LocalCommunicationData receiveObj = new LocalCommunicationData();
@@ -851,6 +870,10 @@
{
Ins.GatewayId = device.device_mac;
}
+ if (!string.IsNullOrEmpty(sIp))
+ {
+ device.ip_address = sIp;
+ }
reportIp = device.ip_address;//涓绘挱鍦板潃涔熻兘鎺у埗璁惧//"239.0.168.188";//
//2021-09-23 鏂板鑾峰彇褰撳墠缃戝叧鏄惁鏈湴鍔犲瘑
Ins.IsLocalEncrypt = device.isLocalEncrypt;
@@ -859,7 +882,8 @@
}
else if (receiveObj.Topic == CommunicationTopic.ct.ReadStatus + "_reply" ||
receiveObj.Topic == CommunicationTopic.ct.ControlFunctionTopic + "_reply" ||
- receiveObj.Topic == CommunicationTopic.ct.GatewayUpStatus)
+ receiveObj.Topic == CommunicationTopic.ct.GatewayUpStatus ||
+ receiveObj.Topic.Contains( CommunicationTopic.ct.GatewayUpSortTopic))
{
//TODO 鏆傛椂涓嶄紶姝g‘鐨勬暟鎹笂鍘伙紝濡傛灉鍚庨潰瑕佷紭鍖栧墠闈㈣繖浜涗唬鐮�
UpdataFunctionStatus(receiveObj.BodyDataString, null);
@@ -957,11 +981,14 @@
}
//鏇存柊鐣岄潰鐘舵��
- Function localObj = null;
switch (localFunction.spk)
{
case SPK.AirSwitch:
AirSwitchPage.UpdataState(localFunction);
+ if(localFunction.GetAttribute(FunctionAttributeKey.Power)!=null)//濡傛灉鏄甫鐢甸噺鐨勭┖寮�涔熻鏇存柊鑳芥簮鐣岄潰
+ {
+ EnergyMainPage.UpdataStatus(localFunction);
+ }
break;
case SPK.ElectricEnergy:
EnergyMainPage.UpdataStatus(localFunction);
@@ -975,6 +1002,7 @@
DimmerPage.UpdataStates(localFunction);
break;
case SPK.ElectricFan:
+ case SPK.HvacFan:
localFunction.lastState = Language.StringByID(StringId.Level) + " : " +
localFunction.GetAttrState(FunctionAttributeKey.OpenLevel);
FanPage.UpdataState(localFunction);
@@ -1004,6 +1032,8 @@
case SPK.CurtainShades:
break;
case SPK.AcStandard:
+ case SPK.HvacAC:
+ case SPK.AcIr:
Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status);
if (localFunction != null)
{
@@ -1042,9 +1072,10 @@
break;
}
localFunction.lastState += " " + localFunction.GetAttrState(FunctionAttributeKey.SetTemp) + new AC().GetTempUnitString(localFunction);
- ACPage.UpdataStates(localFunction);
+
}
break;
+ case SPK.HvacFloorHeat:
case SPK.FloorHeatStandard:
localFunction.lastState = "";
switch (localFunction.GetAttrState(FunctionAttributeKey.Mode))
@@ -1073,6 +1104,7 @@
case SPK.SensorTVOC:
case SPK.SensorTemperature:
case SPK.SensorHumidity:
+ case SPK.SensorHcho:
if(localFunction.spk == SPK.SensorTemperature)
{
HomePage.LoadEvent_RefreshEnvirIndoorTemp();
@@ -1082,7 +1114,7 @@
HomePage.LoadEvent_RefreshEnvirIndoorHumi();
}
EnvironmentalPage.LoadEvent_UpdataStatus(localFunction);
- A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(localFunction);
+ //A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(localFunction);
break;
case SPK.SensorEnvironment:
case SPK.SensorEnvironment2:
@@ -1096,25 +1128,32 @@
HomePage.LoadEvent_RefreshEnvirIndoorHumi();
}
EnvironmentalPage.LoadEvent_UpdataStatus(localFunction);
- A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(localFunction);
+ //A_EnvironmentalDataCenter.LoadEvent_UpdataStatus(localFunction);
break;
case SPK.ElectricSocket:
+ case SPK.PanelSocket:
SocketPage.UpdataState(localFunction);
break;
case SPK.ElectricTV:
break;
case SPK.ElectricTuyaAirCleaner:
+ case SPK.ElectricTuyaAirCleaner2:
case SPK.ElectricTuyaFan:
+ case SPK.ElectricTuyaFan2:
case SPK.ElectricTuyaWeepRobot:
+ case SPK.ElectricTuyaWeepRobot2:
case SPK.ElectricTuyaWaterValve:
+ case SPK.ElectricTuyaWaterValve2:
case SPK.SensorPir:
case SPK.SensorDoorWindow:
case SPK.SensorSmoke:
case SPK.SensorWater:
case SPK.ClothesHanger:
- case SPK.AcIr:
case SPK.SenesorMegahealth:
+ case SPK.SenesorMegahealth2:
case SPK.AirFreshStandard:
+ case SPK.HvacAirFresh:
+ case SPK.SensorGas:
//璁惧鐘舵�佹帹閫�
//鐘舵�佹洿鏂�
Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status);
--
Gitblit v1.8.0