From 23ee4f8c373f9abecf079ef9d4297d8b6cd8d5e6 Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期三, 16 十二月 2020 15:16:00 +0800
Subject: [PATCH] Merge branch 'NewFilePath'
---
HDL_ON/DAL/DriverLayer/Control.cs | 83 +++++++++++++++++++++++++++--------------
1 files changed, 55 insertions(+), 28 deletions(-)
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index 45e6b5d..4c86695 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -77,7 +77,12 @@
if (value)
{
MainPage.Log($"缃戝叧鍦ㄧ嚎锛屽埛鏂拌澶囩姸鎬�");
- FunctionList.List.ReadAllFunctionStatus();
+ new System.Threading.Thread(() =>
+ {
+ System.Threading.Thread.Sleep(1000);
+ FunctionList.List.ReadAllFunctionStatus();
+ })
+ { IsBackground = true, Priority = System.Threading.ThreadPriority.AboveNormal }.Start();
}
}
}
@@ -85,7 +90,7 @@
/// <summary>
/// 缃戝叧閫氳ID
/// </summary>
- public string GatewayId;
+ public string GatewayId ="";
bool _isRemote = false;
/// <summary>
@@ -183,18 +188,18 @@
/// </summary>
public void SearchLoaclGateway()
{
- OpenUdp(DB_ResidenceData.residenceData.GatewayType == 0 ? 6000 : 8585);
+ OpenUdp(DB_ResidenceData.Instance.GatewayType == 0 ? 6000 : 8585);
new System.Threading.Thread(() =>
{
for (int i = 0; i < 5; i++)
{
if (GatewayOnline)
break;
- if (DB_ResidenceData.residenceData.GatewayType == 0)
+ if (DB_ResidenceData.Instance.GatewayType == 0)
{
myUdp.ControlBytesSend(Command.ReadGateway, 255, 255, new byte[] { (byte)new Random().Next(255), (byte)new Random().Next(255) });
}
- else if (DB_ResidenceData.residenceData.GatewayType == 1)
+ else if (DB_ResidenceData.Instance.GatewayType == 1)
{
myUdp.SearchLocalGateway();
}
@@ -214,13 +219,16 @@
/// </summary>
public void ControlScene(Scene scene)
{
- if(myUdp!=null)
- {
- myUdp.ControlBusScenes(scene);
- }
- if(myTcpClient!= null)
+ if (Ins.IsRemote || DB_ResidenceData.Instance.GatewayType == 1)
{
ControlAProtocolScene(scene);
+ }
+ else
+ {
+ if (DB_ResidenceData.Instance.GatewayType == 0)
+ {
+ myUdp.ControlBusScenes(scene);
+ }
}
}
@@ -245,13 +253,13 @@
var actionObjs = new List<ApiAlinkControlActionObj>();
actionObjs.Add(apiControlData);
var pack = httpServer.ControlDevice(actionObjs);
- MainPage.Log($"{pack.Code}:{pack.Data}");
+ //MainPage.Log($"{pack.Code}:{pack.Data}");
}
//鏈湴閫氳
else
{
//Bus鎺у埗
- if (DB_ResidenceData.residenceData.GatewayType == 0)
+ if (DB_ResidenceData.Instance.GatewayType == 0)
{
try
{
@@ -273,7 +281,7 @@
var functionControlDataObj = function.GetGatewayAlinkControlData(commandDictionary);
var functionControlDataJson = Newtonsoft.Json.JsonConvert.SerializeObject(functionControlDataObj);
var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlFunctionTopic, functionControlDataJson);
- myUdp.SendLocalHdlLinkData(sendBytes);
+ Ins.myUdp.SendLocalHdlLinkData(sendBytes);
}
}
}
@@ -299,7 +307,7 @@
}
else
{
- if (DB_ResidenceData.residenceData.GatewayType == 0)
+ if (DB_ResidenceData.Instance.GatewayType == 0)
{
try
{
@@ -347,15 +355,33 @@
//}
/// <summary>
- /// 鎺у埗a鍗忚鍦烘櫙
+ /// a鍗忚鎺у埗鍦烘櫙
/// </summary>
/// <param name="scene"></param>
static void ControlAProtocolScene(Scene scene)
{
- var sendSidObj = new AProtocolSendingObject();
- sendSidObj.time_stamp = "";
- sendSidObj.type = "device_sid";
- sendSidObj.command = "get_list_response";
+ if (Ins.IsRemote)
+ {
+ var pm = new HDL_ON.DAL.Server.HttpServerRequest();
+ pm.ExecuteScene(scene.userSceneId);
+ }
+ else
+ {
+ Dictionary<string, string> keys = new Dictionary<string, string>();
+ keys.Add("sid", scene.sid);
+ var aLinkData = new AlinkReadFunctionStatusObj()
+ {
+ id = Ins.msg_id.ToString(),
+ objects = new List<Dictionary<string, string>>()
+ {
+ keys
+ },
+ time_stamp = Utlis.GetTimestamp()
+ };
+ var aLinkJson = Newtonsoft.Json.JsonConvert.SerializeObject(aLinkData);
+ var sendBytes = Ins.ConvertSendBodyData(CommunicationTopic.ct.ControlScene, aLinkJson);
+ Ins.myUdp.SendLocalHdlLinkData(sendBytes);
+ }
}
/// <summary>
/// 杞崲閫氳鏁版嵁
@@ -394,7 +420,7 @@
if (res.Length == 2)
{
var topics = res[0].Split("\r\n");
- MainPage.Log(res[1]);
+ //MainPage.Log(res[1]);
foreach (var ts in topics)
{
var key = ts.Split(":");
@@ -424,7 +450,7 @@
if (receiveObj.Topic == CommunicationTopic.SearchLoaclGatewayReply)
{
var device = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceModule>(bodyJObj.objects.ToString());
- if (device.device_mac == DB_ResidenceData.residenceData.residenceGatewayMAC)
+ if (device.device_mac == DB_ResidenceData.Instance.residenceGatewayMAC)
{
Ins.GatewayOnline = true;
if(!string.IsNullOrEmpty( device.gatewayId))
@@ -459,12 +485,12 @@
var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<AlinkFunctionStatusObj>(revString);
if (temp != null)
{
- var allLocalFuntion = FunctionList.List.GetAllDeviceFunctionList();
+ var allLocalFuntion = FunctionList.List.GetDeviceFunctionList();
foreach (var updateTemp in temp.objects)
{
try
{
- bool hadChange = false;//鐘舵�佹湁鍙樺寲鍐嶆洿鏂扮晫闈�
+ //bool hadChange = false;//鐘舵�佹湁鍙樺寲鍐嶆洿鏂扮晫闈�
var updataObj = allLocalFuntion.Find((obj) => obj.sid == updateTemp.sid);
if (updataObj != null)
{
@@ -479,14 +505,15 @@
continue;
}
locatAttr.curValue = attr.value;
- hadChange = true;
+ //hadChange = true;
}
}
}
- if (!hadChange)//鐘舵�佹湁鍙樺寲鍐嶆洿鏂扮晫闈�
- {
- continue;
- }
+ //2020-12-13 濡傛灉鎺у埗鏃讹紝绔嬪嵆鏇存柊鐣岄潰鍗崇姸鎬侊紝鏀跺埌鏁版嵁涓嶇敤鍦ㄥ鐞嗭紝鐩墠鍙慨鏀硅澶囩姸鎬侊紝鐣岄潰娌℃湁鏇存柊锛岃繕鏄渶瑕佹帴鏀舵暟鎹洿鏂�
+ //if (!hadChange)//鐘舵�佹湁鍙樺寲鍐嶆洿鏂扮晫闈�
+ //{
+ // continue;
+ //}
//鏇存柊鐣岄潰鐘舵��
switch (updataObj.spk)
{
--
Gitblit v1.8.0