From 8677d9602ffa36554b2f0923f978bd3c054a905d Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 21 十二月 2020 16:15:34 +0800
Subject: [PATCH] 2020-12-21 1.功能介绍接口对接
---
HDL_ON/DAL/DriverLayer/Control.cs | 97 +++++++++++++++++++++++++++++++++++-------------
1 files changed, 70 insertions(+), 27 deletions(-)
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index d1164c5..3ef6d42 100644
--- 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,43 +178,59 @@
}
}
- ///// <summary>
- ///// 鏀瑰彉閫氳鏂瑰紡
- ///// </summary>
- //public void ChangeCommunicationMode(CommunicationMode communicationMode)
- //{
- // this.communicationMode = communicationMode;
- //}
-
/// <summary>
/// 鎼滅储鏈湴缃戝叧鍒楄〃
/// </summary>
public void SearchLoaclGateway()
{
MainPage.Log($"鎼滅储鏈湴缃戝叧鍒楄〃锛岀綉鍏崇被鍨�:{DB_ResidenceData.Instance.GatewayType}");
- OpenUdp(DB_ResidenceData.Instance.GatewayType == 0 ? 6000 : 8585);
- new System.Threading.Thread(() =>
+ 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 +264,21 @@
{
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 (Ins.IsRemote)
@@ -441,6 +482,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))
{
--
Gitblit v1.8.0