From 30ebeb780347d7cfd076edac9a0ccf90c7edc7b9 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期一, 30 八月 2021 10:39:23 +0800
Subject: [PATCH] 新风单控
---
HDL_ON/DAL/DriverLayer/Control.cs | 121 +++++++++++++++++++++++++++++++++++++++-
1 files changed, 117 insertions(+), 4 deletions(-)
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index 0152ec7..214efec 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -26,7 +26,6 @@
public class Control
{
-
static Control _control;
public static Control Ins
{
@@ -323,6 +322,15 @@
}
}
}
+ /// <summary>
+ /// 瀹夐槻鎺у埗
+ /// </summary>
+ public void ControlArm()
+ {
+ DAL.Server.HttpServerRequest httpServer = new DAL.Server.HttpServerRequest();
+ //var pack = httpServer.GetSecurityAlarmLogList
+ }
+
/// <summary>
/// 鍙戦�佸懡浠�
@@ -434,12 +442,32 @@
//杩滅▼閫氳
else
{
+ //Bug淇锛氫竴绔彛杩滅▼鎺у埗璋冨厜璁惧鐨勮皟鍏夊睘鎬ф椂锛屾棤娉曟帶鍒跺埌0锛屽弽澶嶆í璺炽��
+ //鍥犱负On + 杩滅▼鎺у埗鍙戦�佺粰浜戠浣跨敤鐨勬槸link鍗忚鏁版嵁锛屾潹娑涗腑杞粰楂樿儨澶勭悊鏃跺�欓�昏緫涓婃湁鍐茬獊锛屽鑷存棤娉曞崟鐙帶鍒朵寒搴﹀�硷紝闇�瑕佸悓鏃跺彂閫佸紑鍏冲�间笌浜害鍊笺��
+ if (DB_ResidenceData.Instance.GatewayType == 0)
+ {
+ if (commandDictionary.Count == 1)
+ {
+ if (commandDictionary.ContainsKey(FunctionAttributeKey.Brightness))
+ {
+ commandDictionary.Add(FunctionAttributeKey.OnOff, commandDictionary[FunctionAttributeKey.Brightness] == "0" ? "off" : "on");
+ }
+ }
+ if(function.spk == SPK.LightCCT)
+ {
+ if (!commandDictionary.ContainsKey(FunctionAttributeKey.CCT))
+ {
+ commandDictionary.Add(FunctionAttributeKey.CCT, function.GetAttrState(FunctionAttributeKey.CCT));
+ }
+ }
+ }
DAL.Server.HttpServerRequest httpServer = new DAL.Server.HttpServerRequest();
//ALink鎺у埗銆丅us鎺у埗浣跨敤鍚屼竴涓帴鍙f帶鍒讹紝鐢变簯绔礋璐hВ鏋�
var apiControlData = function.GetApiControlData(commandDictionary);
var actionObjs = new List<ApiAlinkControlActionObj>();
actionObjs.Add(apiControlData);
var pack = httpServer.ControlDevice(actionObjs);
+ MainPage.Log($"杩滅▼鎺у埗鍙嶉:{pack.message}");
}
}
@@ -595,6 +623,41 @@
}
/// <summary>
+ /// 瀹夐槻鎺у埗
+ /// </summary>
+ public void ControlSecurity(SecurityAlarm securityAlarm,string state)
+ {
+ if (!Ins.GatewayOnline_Local)//缃戝叧鏈湴涓嶅湪绾�
+ {
+ var pm = new DAL.Server.HttpServerRequest();
+ var result = pm.SetSecurityStatus(new List<SecurityState>() { new SecurityState() {
+ gatewayId = DB_ResidenceData.Instance.HomeGateway.gatewayId,
+ sid = securityAlarm.sid, status = state, userSecurityId = securityAlarm.userSecurityId
+ } });
+ MainPage.Log($"瀹夐槻鎺у埗缁撴灉:{result.Code}");
+ }
+ else
+ {
+ Dictionary<string, string> keys = new Dictionary<string, string>();
+ keys.Add("sid", securityAlarm.sid);
+ keys.Add("status", state);
+ keys.Add("alarm", securityAlarm.alarm.ToString());
+ 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.ControlSeurity, aLinkJson);
+ new Control_Udp().SendLocalHdlLinkData(sendBytes, aLinkData.id);
+ }
+ }
+
+ /// <summary>
/// a鍗忚鎺у埗鍦烘櫙
/// </summary>
/// <param name="scene"></param>
@@ -686,8 +749,9 @@
//}
receiveObj.BodyDataString = res[1];
- if (receiveObj.Topic == CommunicationTopic.SearchLoaclGatewayReply)
+ if (receiveObj.Topic == CommunicationTopic.SearchLoaclGatewayReply || receiveObj.Topic == CommunicationTopic.GatewayBroadcast)
{
+
var bodyJObj = Newtonsoft.Json.JsonConvert.DeserializeObject<ResponsePack>(res[1]);
if (bodyJObj == null)
{
@@ -708,7 +772,7 @@
{
Ins.GatewayId = device.device_mac;
}
- reportIp = "239.0.168.188";// device.ip_address;//涓绘挱鍦板潃涔熻兘鎺у埗璁惧
+ reportIp = device.ip_address;//涓绘挱鍦板潃涔熻兘鎺у埗璁惧//"239.0.168.188";//
}
}
else if (receiveObj.Topic == CommunicationTopic.ct.ReadStatus + "_reply" ||
@@ -717,6 +781,37 @@
{
//TODO 鏆傛椂涓嶄紶姝g‘鐨勬暟鎹笂鍘伙紝濡傛灉鍚庨潰瑕佷紭鍖栧墠闈㈣繖浜涗唬鐮�
UpdataFunctionStatus(receiveObj.BodyDataString, null);
+ }
+ else if (receiveObj.Topic == CommunicationTopic.ct.ControlSeurity +"_reply"
+ || receiveObj.Topic == CommunicationTopic.ct.ReadSecurityStatus + "_reply"
+ || receiveObj.Topic == CommunicationTopic.ct.SecurityStatusUp)
+ {
+ try
+ {
+ MainPage.Log($"灞�鍩熺綉瀹夐槻淇℃伅: {receiveObj.Topic} : 鍐呭: {res[1]}");
+ var tt = "";
+ lock (tt) {
+ var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityStatusObj>(receiveObj.BodyDataString);
+ if (temp != null)
+ {
+ Control_Udp.ReceiveRepeatManager(temp.id, null);
+ foreach (var updataSecurity in temp.objects)
+ {
+ var updataLocalSecurity = FunctionList.List.securities.Find((obj) => obj.sid == updataSecurity.sid);
+ if (updataLocalSecurity != null)
+ {
+ updataLocalSecurity.status = updataSecurity.status;
+ updataLocalSecurity.alarm = updataSecurity.alarm;
+ ArmCenterPage.LoadEvent_RefreshSecurityStatus(updataLocalSecurity);
+ }
+ }
+ HomePage.LoadEvent_RefreshSecurityStatus();
+ }
+ }
+ }
+ catch (Exception ex){
+ MainPage.Log($"瀹夐槻灞�鍩熺綉寮傚父锛歿ex.Message}");
+ }
}
else
{
@@ -772,7 +867,7 @@
return;
}
}
- MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}");
+ //MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}");
foreach (var attr in updateTemp.status)
{
localFunction.time_stamp = temp.time_stamp;
@@ -783,6 +878,9 @@
Function localObj = null;
switch (localFunction.spk)
{
+ case SPK.AirSwitch:
+ AirSwitchPage.UpdataState(localFunction);
+ break;
case SPK.ElectricEnergy:
EnergyMainPage.UpdataStatus(localFunction);
break;
@@ -866,6 +964,7 @@
}
break;
case SPK.FloorHeatStandard:
+ localFunction.lastState = "";
switch (localFunction.GetAttrState(FunctionAttributeKey.Mode))
{
case "normal":
@@ -902,6 +1001,19 @@
}
EnvironmentalPage.LoadEvent_UpdataStatus(localFunction);
break;
+ case SPK.SensorEnvironment:
+ case SPK.SensorEnvironment2:
+ case SPK.SensorEnvironment3:
+ if (localFunction.GetAttributes().Contains(FunctionAttributeKey.Temperature))
+ {
+ HomePage.LoadEvent_RefreshEnvirIndoorTemp();
+ }
+ if (localFunction.GetAttributes().Contains(FunctionAttributeKey.Humidity))
+ {
+ HomePage.LoadEvent_RefreshEnvirIndoorHumi();
+ }
+ EnvironmentalPage.LoadEvent_UpdataStatus(localFunction);
+ break;
case SPK.ElectricSocket:
SocketPage.UpdataState(localFunction);
break;
@@ -918,6 +1030,7 @@
case SPK.ClothesHanger:
case SPK.AcIr:
case SPK.SenesorMegahealth:
+ case SPK.AirFreshStandard:
//璁惧鐘舵�佹帹閫�
//鐘舵�佹洿鏂�
Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status);
--
Gitblit v1.8.0