From d72ca686a3e262693f8a6e45e747e8e8da43335b Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 06 七月 2021 09:39:03 +0800
Subject: [PATCH] 2021-07-06 1.更新
---
HDL_ON/DAL/DriverLayer/Control.cs | 451 +++++++++++++++++++-------------------------------------
1 files changed, 152 insertions(+), 299 deletions(-)
diff --git a/HDL_ON/DAL/DriverLayer/Control.cs b/HDL_ON/DAL/DriverLayer/Control.cs
index 5b3309f..df2a183 100644
--- a/HDL_ON/DAL/DriverLayer/Control.cs
+++ b/HDL_ON/DAL/DriverLayer/Control.cs
@@ -50,15 +50,15 @@
return _msg_id++;
}
}
- /// <summary>
- /// 鑾峰彇13浣嶆椂闂存埑
- /// </summary>
- /// <returns></returns>
- public string Get_TimeStamp()
- {
- long t = DateTime.Now.Ticks / 10000;
- return t.ToString();
- }
+ ///// <summary>
+ ///// 鑾峰彇13浣嶆椂闂存埑
+ ///// </summary>
+ ///// <returns></returns>
+ //public string Get_TimeStamp()
+ //{
+ // long t = DateTime.Now.Ticks / 10000;
+ // return t.ToString();
+ //}
/// <summary>
/// 鏄惁鎼滅储鏈湴缃戝叧鎴愬姛
@@ -229,7 +229,7 @@
public void SearchLoaclGateway()
{
//2021-01-15 : 浣忓畢娌℃湁缁戝畾缃戝叧鐨勬椂鍊欎笉鐢ㄦ悳绱紝骞朵笖涓嶈兘閾炬帴mqtt
- if(DB_ResidenceData.Instance.HomeGateway == null)
+ if(DB_ResidenceData.Instance.HomeGateway == null || string.IsNullOrEmpty(DB_ResidenceData.Instance.HomeGateway.gatewayId))
{
return;
}
@@ -336,7 +336,7 @@
}
}
- MainPage.Log($"鍙戦�佹暟鎹�:{Newtonsoft.Json.JsonConvert.SerializeObject(commandDictionary)}");
+ //MainPage.Log($"鍙戦�佹暟鎹�:{Newtonsoft.Json.JsonConvert.SerializeObject(commandDictionary)}");
///绗笁鏂规秱楦﹁澶囩粺涓�浣跨敤杩滅▼鎺у埗
switch(function.spk)
@@ -605,6 +605,7 @@
MainPage.Log($"灞�鍩熺綉淇℃伅: {receiveObj.Topic}");
MainPage.Log($"鍐呭: {res[1]}");
+
//楠岃瘉鏈夋晥鏁版嵁闀垮害
//if (res[1].Length != receiveObj.Length)
//{
@@ -620,6 +621,7 @@
{
return receiveObj;
}
+
var device = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceModule>(bodyJObj.objects.ToString());
if (device.device_mac == DB_ResidenceData.Instance.residenceGatewayMAC)
{
@@ -679,311 +681,162 @@
try
{
var localFunction = allLocalFuntion.Find((obj) => obj.sid == updateTemp.sid);
+ if (localFunction == null)
+ {
+ continue;
+ }
if (Ins.GatewayOnline_Local && isCloudData)//鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�
{
- if(!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(localFunction.spk))
+ if (!SPK.Get3tySpk(SPK.BrandType.All3tyBrand).Contains(localFunction.spk))
{
//MainPage.Log($"A鍗忚鏇存柊鐘舵��:鏈湴閾炬帴锛岄櫎浜嗘秱楦﹁澶囨暟鎹箣澶栫殑浜戠鏁版嵁涓嶅鐞�........");
return;
}
}
- //MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}");
+ MainPage.Log($"A鍗忚鏇存柊鐘舵��:{revString}");
foreach (var attr in updateTemp.status)
{
- localFunction.SetAttrState(attr.key,attr.value);
+ localFunction.time_stamp = temp.time_stamp;
+ localFunction.SetAttrState(attr.key, attr.value);
}
- if (localFunction != null)
+ //鏇存柊鐣岄潰鐘舵��
+ Function localObj = null;
+ switch (localFunction.spk)
{
- //鏇存柊鐣岄潰鐘舵��
- Function localObj = null;
- switch (localFunction.spk)
- {
- case SPK.LightSwitch:
- var localSwitch = FunctionList.List.lights.Find((obj) => obj.sid == updateTemp.sid);
- if (localSwitch != null)
+ case SPK.LightSwitch:
+ RelayPage.UpdataState(localFunction);
+ break;
+ case SPK.LightDimming:
+ localFunction.lastState = Language.StringByID(StringId.Brightness) + " : " +
+ localFunction.GetAttrState(FunctionAttributeKey.Brightness) + "%";
+ DimmerPage.UpdataStates(localFunction);
+ break;
+ case SPK.ElectricFan:
+ localFunction.lastState = Language.StringByID(StringId.Level) + " : " +
+ localFunction.GetAttrState(FunctionAttributeKey.OpenLevel);
+ FanPage.UpdataState(localFunction);
+ break;
+ case SPK.LightRGB:
+ localFunction.lastState = Language.StringByID(StringId.Brightness) + " : " + localFunction.GetAttrState(FunctionAttributeKey.Brightness) + "%";
+ RGBPage.UpdataStates(localFunction);
+ break;
+ case SPK.LightRGBW:
+ break;
+ case SPK.LightCCT:
+ localFunction.lastState = Language.StringByID(StringId.Brightness) + " : " + localFunction.GetAttrState(FunctionAttributeKey.Brightness) + "%";
+ ColorTureLampPage.UpdataStatus(localFunction);
+ break;
+ case SPK.CurtainSwitch:
+ localFunction.lastState = localFunction.trait_on_off.curValue.ToString() == "on" ? Language.StringByID(StringId.Open) : Language.StringByID(StringId.Close);
+ CurtainModulePage.UpdataState(localFunction);
+ break;
+ case SPK.CurtainTrietex:
+ localFunction.lastState = Language.StringByID(StringId.Open) + localFunction.GetAttrState(FunctionAttributeKey.Percent) + "%";
+ MotorCurtainPage.UpdataState(localFunction);
+ break;
+ case SPK.CurtainRoller:
+ localFunction.lastState = Language.StringByID(StringId.Open) + localFunction.GetAttrState(FunctionAttributeKey.Percent) + "%";
+ RollingShutterPage.UpdataState(localFunction);
+ break;
+ case SPK.CurtainShades:
+ break;
+ case SPK.AcStandard:
+ Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status);
+ if (localFunction != null)
+ {
+ localFunction.lastState = "";
+ switch (localFunction.GetAttrState(FunctionAttributeKey.Mode))
{
- localObj = localSwitch;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = localSwitch.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- RelayPage.UpdataState(localSwitch);
+ case "cool":
+ localFunction.lastState = Language.StringByID(StringId.Cool);
+ break;
+ case "heat":
+ localFunction.lastState = Language.StringByID(StringId.Heat);
+ break;
+ case "dry":
+ localFunction.lastState = Language.StringByID(StringId.Dry);
+ break;
+ case "auto":
+ localFunction.lastState = Language.StringByID(StringId.Auto);
+ break;
+ case "fan":
+ localFunction.lastState = Language.StringByID(StringId.AirSupply);
+ break;
}
- break;
- case SPK.LightDimming:
- var dimming = FunctionList.List.lights.Find((obj) => obj.sid == updateTemp.sid);
- if (dimming != null)
+ switch (localFunction.GetAttrState(FunctionAttributeKey.FanSpeed))
{
- localObj = dimming;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = dimming.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- dimming.lastState = Language.StringByID(StringId.Brightness) + " : " + dimming.brightness + "%";
- DimmerPage.UpdataStates(dimming);
+ case "high":
+ localFunction.lastState += " " + Language.StringByID(StringId.HighWindSpeed);
+ break;
+ case "medium":
+ localFunction.lastState += " " + Language.StringByID(StringId.MiddleWindSpeed);
+ break;
+ case "low":
+ localFunction.lastState += " " + Language.StringByID(StringId.LowWindSpeed);
+ break;
+ case "auto":
+ localFunction.lastState += " " + Language.StringByID(StringId.Auto);
+ break;
}
- break;
- case SPK.ElectricFan:
- var fan = FunctionList.List.fans.Find((obj) => obj.sid == updateTemp.sid);
- if (fan != null)
- {
- localObj = fan;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = fan.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- fan.lastState = Language.StringByID(StringId.Level) + " : " + fan.openLevel;
- FanPage.UpdataState(fan);
- }
- break;
- case SPK.LightRGB:
- var rgb = FunctionList.List.lights.Find((obj) => obj.sid == updateTemp.sid);
- if (rgb != null)
- {
- localObj = rgb;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = rgb.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- rgb.lastState = Language.StringByID(StringId.Brightness) + " : " + rgb.brightness + "%";
- RGBPage.UpdataStates(rgb);
- }
- break;
- case SPK.LightRGBW:
- break;
- case SPK.LightCCT:
- var lightCCT = FunctionList.List.lights.Find((obj) => obj.sid == updateTemp.sid);
- if (lightCCT != null)
- {
- localObj = lightCCT;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = lightCCT.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- lightCCT.lastState = Language.StringByID(StringId.Brightness) + " : " + lightCCT.brightness + "%";
- ColorTureLampPage.UpdataStates(lightCCT);
- }
- break;
- case SPK.CurtainSwitch:
- var curtain = FunctionList.List.curtains.Find((obj) => obj.sid == updateTemp.sid);
- if (curtain != null)
- {
- localObj = curtain;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = curtain.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- curtain.lastState = curtain.trait_on_off.curValue.ToString() == "on" ? Language.StringByID(StringId.Open) : Language.StringByID(StringId.Close);
- CurtainModulePage.UpdataState(curtain);
- }
- break;
- case SPK.CurtainTrietex:
- var trietex = FunctionList.List.curtains.Find((obj) => obj.sid == updateTemp.sid);
- if (trietex != null)
- {
- localObj = trietex;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = trietex.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- trietex.lastState = Language.StringByID(StringId.Open) + trietex.percent + "%";
- MotorCurtainPage.UpdataState(trietex);
- }
- break;
- case SPK.CurtainRoller:
- var roller = FunctionList.List.curtains.Find((obj) => obj.sid == updateTemp.sid);
- if (roller != null)
- {
- localObj = roller;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = roller.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- roller.lastState = Language.StringByID(StringId.Open) + roller.percent + "%";
- RollingShutterPage.UpdataState(roller);
- }
- break;
- case SPK.CurtainShades:
- break;
- case SPK.AcStandard:
- var ac = FunctionList.List.aCs.Find((obj) => obj.sid == updateTemp.sid);
- if (ac != null)
- {
- localObj = ac;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = ac.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- ac.lastState = "";
- switch (ac.GetAttrState(FunctionAttributeKey.Mode))
- {
- case "cool":
- ac.lastState = Language.StringByID(StringId.Cool);
- break;
- case "heat":
- ac.lastState = Language.StringByID(StringId.Heat);
- break;
- case "dry":
- ac.lastState = Language.StringByID(StringId.Dry);
- break;
- case "auto":
- ac.lastState = Language.StringByID(StringId.Auto);
- break;
- case "fan":
- ac.lastState = Language.StringByID(StringId.AirSupply);
- break;
- }
- switch (ac.GetAttrState(FunctionAttributeKey.FanSpeed))
- {
- case "high":
- ac.lastState += " " + Language.StringByID(StringId.HighWindSpeed);
- break;
- case "medium":
- ac.lastState += " " + Language.StringByID(StringId.MiddleWindSpeed);
- break;
- case "low":
- ac.lastState += " " + Language.StringByID(StringId.LowWindSpeed);
- break;
- case "auto":
- ac.lastState += " " + Language.StringByID(StringId.Auto);
- break;
- }
- ac.lastState += " " + ac.GetAttrState(FunctionAttributeKey.SetTemp) + ac.tempUnitString;
- ACPage.UpdataStates(ac);
- }
- break;
- case SPK.FloorHeatStandard:
- var fh = FunctionList.List.floorHeatings.Find((obj) => obj.sid == updateTemp.sid);
- if (fh != null)
- {
- localObj = fh;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = fh.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- switch (fh.trait_mode.curValue)
- {
- case "normal":
- fh.lastState = Language.StringByID(StringId.Normal);
- break;
- case "day":
- fh.lastState = Language.StringByID(StringId.Day);
- break;
- case "night":
- fh.lastState = Language.StringByID(StringId.Night);
- break;
- case "timer":
- fh.lastState = Language.StringByID(StringId.Auto);
- break;
- case "away":
- fh.lastState = Language.StringByID(StringId.Away);
- break;
- }
- fh.lastState += " " + fh.trait_temp.curValue + fh.tempUnitString;
- FloorHeatingPage.UpdataStates(fh);
- }
- break;
- case SPK.SensorPm25:
- case SPK.SensorCO2:
- case SPK.SensorTVOC:
- case SPK.SensorTemperature:
- case SPK.SensorHumidity:
- var sensor = FunctionList.List.sensorsEnvironmentalScience.Find((obj) => obj.sid == updateTemp.sid);
- if (sensor != null)
- {
- localObj = sensor;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = sensor.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- EnvironmentalSciencePage.LoadEvent_UpdataStatus(sensor);
- }
- break;
- case SPK.ElectricSocket:
- var es = FunctionList.List.switchSockets.Find((obj) => obj.sid == updateTemp.sid);
- if (es != null)
- {
- localObj = es;
- foreach (var attr in updateTemp.status)
- {
- var localAttr = es.attributes.Find((obj) => obj.key == attr.key);
- if (localAttr != null)
- {
- localAttr.curValue = attr.value;
- }
- }
- SocketPage.UpdataState(es);
- }
- break;
- case SPK.ElectricTV:
- break;
- case SPK.ElectricTuyaAirCleaner:
- case SPK.ElectricTuyaFan:
- case SPK.ElectricTuyaWeepRobot:
- case SPK.ElectricTuyaWaterValve:
- case SPK.SensorPir:
- case SPK.SensorDoorWindow:
- case SPK.SensorSmoke:
- case SPK.SensorWater:
- case SPK.ClothesHanger:
- case SPK.IrAC:
- //璁惧鐘舵�佹帹閫�
- Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid,updateTemp.status);
- break;
- }
- if (localObj != null)
- {
- HomePage.UpdataFunctionStates(localObj);
- RoomPage.UpdataStates(localObj);
- FunctionPage.UpdataStates(localObj);
- ClassificationPage.UpdataInfo(localObj);
- }
+ localFunction.lastState += " " + localFunction.GetAttrState(FunctionAttributeKey.SetTemp) + new AC().GetTempUnitString(localFunction);
+ ACPage.UpdataStates(localFunction);
+ }
+ break;
+ case SPK.FloorHeatStandard:
+ switch (localFunction.GetAttrState(FunctionAttributeKey.Mode))
+ {
+ case "normal":
+ localFunction.lastState = Language.StringByID(StringId.Normal);
+ break;
+ case "day":
+ localFunction.lastState = Language.StringByID(StringId.Day);
+ break;
+ case "night":
+ localFunction.lastState = Language.StringByID(StringId.Night);
+ break;
+ case "timer":
+ localFunction.lastState = Language.StringByID(StringId.Auto);
+ break;
+ case "away":
+ localFunction.lastState = Language.StringByID(StringId.Away);
+ break;
+ }
+ localFunction.lastState += " " + localFunction.GetAttrState(FunctionAttributeKey.SetTemp) + new FloorHeating().GetTempUnitString(localFunction);
+ FloorHeatingPage.UpdataStates(localFunction);
+ break;
+ case SPK.SensorPm25:
+ case SPK.SensorCO2:
+ case SPK.SensorTVOC:
+ case SPK.SensorTemperature:
+ case SPK.SensorHumidity:
+ EnvironmentalPage.LoadEvent_UpdataStatus(localFunction);
+ break;
+ case SPK.ElectricSocket:
+ SocketPage.UpdataState(localFunction);
+ break;
+ case SPK.ElectricTV:
+ break;
+ case SPK.ElectricTuyaAirCleaner:
+ case SPK.ElectricTuyaFan:
+ case SPK.ElectricTuyaWeepRobot:
+ case SPK.ElectricTuyaWaterValve:
+ case SPK.SensorPir:
+ case SPK.SensorDoorWindow:
+ case SPK.SensorSmoke:
+ case SPK.SensorWater:
+ case SPK.ClothesHanger:
+ case SPK.AcIr:
+ //璁惧鐘舵�佹帹閫�
+ Stan.HdlDeviceStatuPushLogic.Current.UpdateDeviceStatu(updateTemp.sid, updateTemp.status);
+ break;
}
+
+ HomePage.UpdataFunctionStates(localFunction);
+ RoomPage.UpdataStates(localFunction);
+ FunctionPage.UpdataStates(localFunction);
+ ClassificationPage.UpdataInfo(localFunction);
+
}
catch (Exception ex)
{
--
Gitblit v1.8.0