From a170a2ecef6d5c87883ed552dbbc81cfb0358d13 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期五, 19 十一月 2021 16:43:53 +0800
Subject: [PATCH] Merge branch 'WJC' into newBranch1
---
HDL_ON/DAL/DriverLayer/Control_Udp.cs | 67 +++++++++++++++++++++++----------
1 files changed, 47 insertions(+), 20 deletions(-)
diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index 2179b3d..6991ad8 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -198,6 +198,7 @@
}
break;
case SPK.AcStandard:
+ case SPK.HvacAC:
AC acTemp = new AC();
byte onoff = 0;
byte mode = 0;
@@ -552,6 +553,7 @@
}
break;
case SPK.AcStandard:
+ case SPK.HvacAC:
var ac = new AC();
foreach (var dic in commandDictionary)
{
@@ -742,6 +744,11 @@
}
}
//7 婀垮害璁惧畾 %
+ byte hum = 0;
+ if (commandDictionary.ContainsKey(FunctionAttributeKey.Humidity) == true)
+ {
+ hum = Convert.ToByte(commandDictionary[FunctionAttributeKey.Humidity]);
+ }
//8 瀹ゅ唴娓╁害鍊� 鈩�
byte indoorTemp_airFrsh = 0;
if (commandDictionary.ContainsKey(FunctionAttributeKey.IndoorTemp) == true)
@@ -760,7 +767,7 @@
function.bus.LoopId,0, switchValue ,
airFreshMode,airFreshEnergy,
airFreshFan,
- Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Humidity)),
+ hum,
indoorTemp_airFrsh,
indoorHumidity_airFrsh,
//Convert.ToByte( function.GetAttrState(FunctionAttributeKey.FilterRemain)),
@@ -812,6 +819,7 @@
ControlBytesSend(Command.ReadCurtainStatus, subnetId, deviceId, new byte[] { function.bus.LoopId });
break;
case SPK.AcStandard:
+ case SPK.HvacAC:
ControlBytesSend(Command.ReadACMode, subnetId, deviceId, new byte[] { function.bus.LoopId });
break;
case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:
@@ -970,7 +978,7 @@
UdpSocket._BusSocket.AsyncBeginSend(packet);
controlLostCount++;
}
- System.Threading.Thread.Sleep(300);
+ System.Threading.Thread.Sleep(1000);
}
}
catch (Exception ex)
@@ -1070,7 +1078,7 @@
/// <summary>
/// 璇诲彇缃戝叧IP
/// </summary>
- public void SearchLocalGateway()
+ public void SearchLocalGateway(bool broadcast = false)
{
try
{
@@ -1078,23 +1086,21 @@
var bodyString = JsonConvert.SerializeObject(sendJob);
var sendBytes = Control.Ins.ConvertSendBodyData(CommunicationTopic.SearchLoaclGateway, bodyString, false);
- //缁勬挱鍙戦��
- packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("239.0.168.188"), 8585));
+ if (broadcast)
+ {
+ //骞挎挱
+ packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("255.255.255.255"), 8585));
+ }
+ else
+ {
+ //缁勬挱鍙戦��
+ packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("239.0.168.188"), 8585));
+ }
packet.HaveSendCount = 4;
System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount));
thread.IsBackground = true;
thread.Start(packet);
//wait();涓嶉渶瑕佺瓑寰�
-
-
-
-
- //hjSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
- //hjSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true);
- //EndPoint ipep = new IPEndPoint(IPAddress.Parse(CsConst.myLocalIP), HDLUDP.UDPPort);
- //hjSocket.Bind(ipep);
-
-
}
catch (Exception ex)
@@ -1103,21 +1109,42 @@
}
}
+ /// <summary>
+ /// 璇诲彇缃戝叧IP
+ /// </summary>
+ public void SendLinkCommand(string topic,string bodyString)
+ {
+ try
+ {
+ var sendBytes = Control.Ins.ConvertSendBodyData(topic, bodyString, false);
+ //缁勬挱鍙戦��
+ packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse("239.0.168.188"), 8585));
+ packet.HaveSendCount = 4;
+ System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount));
+ thread.IsBackground = true;
+ thread.Start(packet);
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"Send bus data error {ex.Message}");
+ }
+ }
/// <summary>
/// 鍙戦�乽dp A鍗忚鏁版嵁
/// </summary>
- public void SendLocalHdlLinkData(byte[] sendBytes,string id, bool isWait=false)
+ public void SendLocalHdlLinkData(byte[] sendBytes,string id, int resend = 3)
{
packet = new Packet(sendBytes, new System.Net.IPEndPoint(System.Net.IPAddress.Parse(Control.Ins.reportIp), 8585));
+ packet.HaveSendCount = 3 - resend;//閲嶅彂娆℃暟
sendFlag = id;
System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ParameterizedThreadStart(managerSendCount));
thread.IsBackground = true;
thread.Start(packet);
- if (isWait)
- {
- wait();
- }
+ //if (isWait)
+ //{
+ // wait();
+ //}
MainPage.Log($"鍙戦�丠dl-Link鏁版嵁锛孖P:{Control.Ins.reportIp}:8585");
}
}
--
Gitblit v1.8.0