From 5851291c78b2cb5532e6938c77b5f51eb06a6ad2 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期一, 21 十二月 2020 19:41:07 +0800
Subject: [PATCH] Merge branch 'NewFilePath' of http://172.16.1.23:6688/r/~wxr/HDL_APP_Project into NewFilePath
---
HDL_ON/DAL/DriverLayer/Control.cs | 114 +++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 86 insertions(+), 28 deletions(-)
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
old mode 100755
new mode 100644
index 1149ee5..1883b20
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -25,6 +25,8 @@
public class Control
{
+
+
static Control _control;
public static Control Ins
{
@@ -58,6 +60,14 @@
return t.ToString();
}
+ /// <summary>
+ /// 鏄惁鎼滅储鏈湴缃戝叧鎴愬姛
+ /// </summary>
+ public bool IsSearchLocalGatewaySuccessful = false;
+
+ /// <summary>
+ ///
+ /// </summary>
bool _gatewayOnline = false;
/// <summary>
/// 缃戝叧鏄惁鍦ㄧ嚎
@@ -168,42 +178,59 @@
}
}
- ///// <summary>
- ///// 鏀瑰彉閫氳鏂瑰紡
- ///// </summary>
- //public void ChangeCommunicationMode(CommunicationMode communicationMode)
- //{
- // this.communicationMode = communicationMode;
- //}
-
/// <summary>
/// 鎼滅储鏈湴缃戝叧鍒楄〃
/// </summary>
public void SearchLoaclGateway()
{
- OpenUdp(DB_ResidenceData.Instance.GatewayType == 0 ? 6000 : 8585);
- new System.Threading.Thread(() =>
+ MainPage.Log($"鎼滅储鏈湴缃戝叧鍒楄〃锛岀綉鍏崇被鍨�:{DB_ResidenceData.Instance.GatewayType}");
+ if (MainPage.InternetStatus == 0)
{
- for (int i = 0; i < 5; i++)
+ Ins.GatewayOnline = false;
+ return;
+ }
+ else if (MainPage.InternetStatus == 1)
+ {
+ if (!Ins.IsRemote)
{
- if (GatewayOnline)
- break;
- if (DB_ResidenceData.Instance.GatewayType == 0)
- {
- new Control_Udp().ControlBytesSend(Command.ReadGateway, 255, 255, new byte[] { (byte)new Random().Next(255), (byte)new Random().Next(255) });
- }
- else if (DB_ResidenceData.Instance.GatewayType == 1)
- {
- new Control_Udp().SearchLocalGateway();
- }
- System.Threading.Thread.Sleep(500);
+ Ins.IsRemote = true;
+ DAL.Mqtt.MqttClient.InitState();
}
- })
- { IsBackground = true }.Start();
- if (!GatewayOnline)//缃戝叧涓嶅湪绾跨殑鏃跺�欐墠鍙皾璇曡繙绋嬭繛鎺�
+ }
+ else if (MainPage.InternetStatus == 2)
{
- Ins.IsRemote = true;
- DAL.Mqtt.MqttClient.InitState();
+ OpenUdp(DB_ResidenceData.Instance.GatewayType == 0 ? 6000 : 8585);
+ //閲嶇疆鎼滅储缃戝叧鏍囧織
+ IsSearchLocalGatewaySuccessful = false;
+
+ new System.Threading.Thread(() =>
+ {
+ for (int i = 0; i < 5; i++)
+ {
+ if (IsSearchLocalGatewaySuccessful)
+ break;
+ if (DB_ResidenceData.Instance.GatewayType == 0)
+ {
+ new Control_Udp().ControlBytesSend(Command.ReadGateway, 255, 255, new byte[] { (byte)new Random().Next(255), (byte)new Random().Next(255) });
+ }
+ else if (DB_ResidenceData.Instance.GatewayType == 1)
+ {
+ new Control_Udp().SearchLocalGateway();
+ }
+ System.Threading.Thread.Sleep(500);
+ }
+
+ if (!IsSearchLocalGatewaySuccessful)
+ {
+ //鏈湴鎼滅储涓嶅埌缃戝叧
+ if (!Ins.IsRemote)
+ {
+ Ins.IsRemote = true;
+ DAL.Mqtt.MqttClient.InitState();
+ }
+ }
+ })
+ { IsBackground = true }.Start();
}
}
@@ -238,6 +265,28 @@
function.usageCount++;
function.refreshTime = DateTime.Now;
+ //濡傛灉鏄帶鍒惰皟鍏夌殑寮�鏃讹紝浜害鍊间笉鑳戒负0
+ if (commandDictionary.Count > 2)
+ {
+ if (commandDictionary.ContainsKey(FunctionAttributeKey.OnOff) && commandDictionary.ContainsKey(FunctionAttributeKey.Brightness))
+ {
+ if (commandDictionary[FunctionAttributeKey.OnOff] == "on")
+ {
+ if (commandDictionary[FunctionAttributeKey.Brightness] == "0")
+ {
+ commandDictionary[FunctionAttributeKey.Brightness] = "100";
+ }
+ }
+ if (commandDictionary[FunctionAttributeKey.OnOff] == "off")
+ {
+ if (commandDictionary[FunctionAttributeKey.Brightness] != "0")
+ {
+ commandDictionary[FunctionAttributeKey.Brightness] = "0";
+ }
+ }
+ }
+ }
+
//杩滅▼閫氳
if (Ins.IsRemote)
{
@@ -271,6 +320,7 @@
var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(functionControlDataObj);
var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlFunctionTopic, functionControlDataJson);
new Control_Udp().SendLocalHdlLinkData(sendBytes, functionControlDataObj.id);
+ MainPage.Log($"鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}");
}
}
}
@@ -322,6 +372,7 @@
};
var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(readDataObj);
var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ReadStatus, functionControlDataJson);
+ MainPage.Log($"鍙戦�丠DL-Link鏁版嵁:{functionControlDataJson}");
new Control_Udp().SendLocalHdlLinkData(sendBytes, readDataObj.id);
}
}
@@ -382,7 +433,7 @@
string sendDataString = topicString + lengthString + bodyDataString;
byte[] sendDataBytes = Encoding.ASCII.GetBytes(sendDataString);
- MainPage.Log($"杞崲HDL-Link鏁版嵁\r\n{sendDataString}\r\n");
+ //MainPage.Log($"杞崲HDL-Link鏁版嵁\r\n{sendDataString}\r\n");
return sendDataBytes;
}
@@ -422,6 +473,10 @@
break;
}
}
+
+ MainPage.Log($"time 1 :{receiveObj.Topic}");
+
+
//楠岃瘉鏈夋晥鏁版嵁闀垮害
//if (res[1].Length != receiveObj.Length)
//{
@@ -440,6 +495,8 @@
var device = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceModule>(bodyJObj.objects.ToString());
if (device.device_mac == DB_ResidenceData.Instance.residenceGatewayMAC)
{
+ //鏈湴鎼滅储缃戝叧鎴愬姛
+ Control.Ins.IsSearchLocalGatewaySuccessful = true;
Ins.GatewayOnline = true;
if (!string.IsNullOrEmpty(device.gatewayId))
{
@@ -454,6 +511,7 @@
}
}
else if (receiveObj.Topic == CommunicationTopic.ct.ReadStatus + "_reply" ||
+ receiveObj.Topic == CommunicationTopic.ct.ControlFunctionTopic + "_reply" ||
receiveObj.Topic == CommunicationTopic.ct.GatewayUpStatus)
{
//TODO 鏆傛椂涓嶄紶姝g‘鐨勬暟鎹笂鍘伙紝濡傛灉鍚庨潰瑕佷紭鍖栧墠闈㈣繖浜涗唬鐮�
--
Gitblit v1.8.0