From abc4e92e199962da76ae58c611f2616066053194 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 23 十一月 2020 09:52:55 +0800
Subject: [PATCH] 2020-11-23 1.住宅相关接口替换。2.增加检测更新。3.增加服务器选择Dialog
---
HDL_ON/DriverLayer/CommonPage.cs | 546 ------------------------------------------------------
1 files changed, 2 insertions(+), 544 deletions(-)
diff --git a/HDL_ON/DriverLayer/CommonPage.cs b/HDL_ON/DriverLayer/CommonPage.cs
index f366770..af0ff35 100644
--- a/HDL_ON/DriverLayer/CommonPage.cs
+++ b/HDL_ON/DriverLayer/CommonPage.cs
@@ -1,550 +1,8 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Text;
-using HDL_ON.Entity;
-using HDL_ON.UI;
-using Shared;
-using Shared.Net;
-
+锘�
namespace HDL_ON.DAL
{
- public static class CommonPage
+ public class CommonPage
{
- public static Action RefreshAir;
- public static System.Net.IPEndPoint EndPoint
- {
- get
- {
- try
- {
- return new System.Net.IPEndPoint(System.Net.IPAddress.Parse(new NetWiFi().BroadcastIpAddress.ToString()), 6000);
- }
- catch
- {
- //闃叉寮傚父瀵艰嚧绋嬪簭閫�鍑�
- return new System.Net.IPEndPoint(System.Net.IPAddress.Parse("127.0.0.1"), 6000);
- }
- }
- }
- ///淇濆瓨璁惧澶囨敞鎵嶇敤gb2312锛屽叾浠栨儏鍐电敤utf8
- public static Encoding MyEncodingUTF8 = Encoding.UTF8;//Get
- public static Encoding MyEncodingGB2312
- {
- get
- {
- try
- {
- if (System.Globalization.CultureInfo.InstalledUICulture.EnglishName.ToUpper().StartsWith("CZECH"))
- {
- return Encoding.GetEncoding(1250);
- }
- else
- {
- return Encoding.GetEncoding("gb2312");
- }
- }
- catch (Exception ex)
- {
- MainPage.Log("MyEncodingGB2312 Erorr : " + ex.Message);
- return Encoding.GetEncoding("gb2312");
- }
- }
- }
- /// <summary>
- /// 鍒濆鍖栧鐞唖ocket鎺ユ敹鐨勬暟鎹�
- /// </summary>
- public static void InitReceiveEvent()
- {
- Packet.ReceiveEvent += Packet_ReceiveEvent;
- }
-
- public static float floatChange(byte b1, byte b2, byte b3, byte b4)
- {
- byte[] byteTemp = { b4, b3, b2, b1 };
- return BitConverter.ToSingle(byteTemp, 0);
- }
-
- static void Packet_ReceiveEvent(byte subnetID, byte deviceID, Command command, byte[] receiveBytes, string revGatewayIP)
- {
- try
- {
- Control.controlLostCount = 0;
-
- switch (command)
- {
- case Command.SetSingleLightACK:
- var queryList = new List<Function>();
- queryList.AddRange(DB_ResidenceData.functionList.electricals);
- queryList.AddRange(DB_ResidenceData.functionList.lights);
- foreach (var updataObj in queryList)
- {
- if (updataObj.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
- {
- if (updataObj.functionType != FunctionType.RGB)
- {
- if (updataObj.trait_on_off.value.ToString() == "on")
- {
- if (updataObj.functionType == FunctionType.Fan)
- {
- (updataObj as Fan).openLevel = receiveBytes[2];
- updataObj.lastState = Language.StringByID(StringId.Level) + " : " + receiveBytes[2];
- }
- else
- {
- (updataObj as Light).brightness = receiveBytes[2];
- updataObj.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[2] + "%";
- }
- }
- HomePage.UpdataFunctionStates(updataObj);
- RoomPage.UpdataStates(updataObj);
- FunctionPage.UpdataStates(updataObj);
- ClassificationPage.UpdataInfo(updataObj);
- switch (updataObj.functionType)
- {
- case FunctionType.Relay:
- RelayPage.UpdataState(updataObj as Light);
- break;
- case FunctionType.Dimmer:
- DimmerPage.UpdataStates(updataObj as Light);
- break;
- case FunctionType.Fan:
- FanPage.UpdataState(updataObj as Fan);
- break;
- }
- break;
- }
- }
- }
- break;
- case Command.ReadLightAllLoopBrightnessACK:
- for (int i = 0; i < receiveBytes[0]; i++)
- {
- var light = DB_ResidenceData.functionList.lights.Find((obj) => obj.bus_Data.SubnetID == subnetID && obj.bus_Data.DeviceID == deviceID && obj.bus_Data.LoopID == (i+1));
- if (light != null)
- {
- if (light.functionType != FunctionType.RGB)
- {
- light.trait_on_off.value = receiveBytes[light.bus_Data.LoopID] == 0 ? "off" : "on";
- if (light.trait_on_off.value.ToString() == "on")
- {
- light.brightness = receiveBytes[2];
- light.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[2] + "%";
- }
- HomePage.UpdataFunctionStates(light);
- RoomPage.UpdataStates(light);
- FunctionPage.UpdataStates(light);
- ClassificationPage.UpdataInfo(light);
- switch (light.functionType)
- {
- case FunctionType.Relay:
- RelayPage.UpdataState(light);
- break;
- case FunctionType.Dimmer:
- DimmerPage.UpdataStates(light);
- break;
- }
- }
- }
- else
- {
- var e = DB_ResidenceData.functionList.electricals.Find((obj) => obj.bus_Data.SubnetID == subnetID && obj.bus_Data.DeviceID == deviceID && obj.bus_Data.LoopID == i);
- if (e != null)
- {
- var fan = e as Fan;
- fan.trait_on_off.value = receiveBytes[2] == 0 ? "off" : "on";
- if (fan.trait_on_off.value.ToString() == "on")
- {
- fan.openLevel = receiveBytes[2];
- fan.lastState = Language.StringByID(StringId.Level) + " : " + receiveBytes[2];
- }
- HomePage.UpdataFunctionStates(fan);
- RoomPage.UpdataStates(fan);
- FunctionPage.UpdataStates(fan);
- ClassificationPage.UpdataInfo(fan);
- switch (fan.functionType)
- {
- case FunctionType.Fan:
- FanPage.UpdataState(fan);
- break;
- case FunctionType.Socket:
-
- break;
- }
- }
- }
- }
- break;
- case Command.SetLogicLoopColorACK:
- case Command.ReadLogicLoopColorACK:
- foreach (var rgb in DB_ResidenceData.functionList.lights)
- {
- if (rgb.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
- {
- if (rgb.functionType == FunctionType.RGB)
- {
- rgb.trait_on_off.value = receiveBytes[1] > 0 ? "on" : "off";
- if (receiveBytes[1] > 0)
- {
- rgb.brightness = receiveBytes[1];
- rgb.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[1] + "%";
- }
- rgb.redColor = receiveBytes[6];
- rgb.greenColor = receiveBytes[7];
- rgb.blueColor = receiveBytes[8];
-
- HomePage.UpdataFunctionStates(rgb);
- RoomPage.UpdataStates(rgb);
- FunctionPage.UpdataStates(rgb);
- ClassificationPage.UpdataInfo(rgb);
- RGBPage.UpdataStates(rgb);
- }
- }
- }
- break;
- case Command.SetCurtainModelStutasACK:
- case Command.ReadCurtainStutasACK:
- foreach (var curtain in DB_ResidenceData.functionList.curtains)
- {
- if (curtain.bus_Data.SubnetID == subnetID && curtain.bus_Data.DeviceID == deviceID)
- {
- if (receiveBytes[0] == 17)
- {
- if (receiveBytes[1] > 1)
- {
- curtain.trait_on_off.value = "on";
- }
- else
- {
- curtain.trait_on_off.value = "off";
- }
- curtain.percent = receiveBytes[1];
- curtain.lastState = Language.StringByID(StringId.Open) + curtain.percent + "%";
- }
- else
- {
- if (curtain.bus_Data.LoopID != receiveBytes[0])
- continue;
- switch (receiveBytes[1])
- {
- case 0:
- curtain.trait_on_off.value = "stop";
- break;
- case 1:
- curtain.trait_on_off.value = "on";
- curtain.lastState = Language.StringByID(StringId.Open);
- break;
- case 2:
- curtain.trait_on_off.value = "off";
- curtain.lastState = Language.StringByID(StringId.Close);
- break;
- }
- }
- RoomPage.UpdataStates(curtain);
- FunctionPage.UpdataStates(curtain);
- HomePage.UpdataFunctionStates(curtain);
- ClassificationPage.UpdataInfo(curtain);
- switch (curtain.functionType)
- {
- case FunctionType.Curtain:
- CurtainModulePage.UpdataState(curtain);
- break;
- case FunctionType.MotorCurtain:
- MotorCurtainPage.UpdataState(curtain);
- break;
- case FunctionType.RollingShutter:
- RollingShutterPage.UpdataState(curtain);
- break;
- }
- }
- }
- break;
- case Command.SetACModeACK:
- case Command.ReadACModeACK:
- foreach (var ac in DB_ResidenceData.functionList.aCs)
- {
- if (ac.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
- {
- ac.curTempType = receiveBytes[1];
- ac.indoorTemp = receiveBytes[2];
- ac.trait_on_off.value = receiveBytes[8] == 1 ? "on" : "off";
- ac.curModeIndex = receiveBytes[9];
- ac.curFanIndex = receiveBytes[10];
- ac.trait_temp.value = receiveBytes[11];
- ac.lastState = "";
- switch (ac.trait_mode.value.ToString())
- {
- 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.trait_fan.value.ToString())
- {
- 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.trait_temp.value + ac.tempUnitString;
- RoomPage.UpdataStates(ac);
- FunctionPage.UpdataStates(ac);
- HomePage.UpdataFunctionStates(ac);
- ClassificationPage.UpdataInfo(ac);
- ACPage.UpdataStates(ac);
- }
- }
- break;
- case Command.ReadFloorHeatACK:
- case Command.SetFloorHeatACK:
- foreach (var fh in DB_ResidenceData.functionList.floorHeatings)
- {
- if (fh.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
- {
- fh.curTempType = receiveBytes[2];
- fh.trait_on_off.value = receiveBytes[1] % 2 == 0 ? "off" : "on";
- fh.curModeIndex = receiveBytes[3];
- if (fh.modeTemp.ContainsKey("normal"))
- {
- fh.modeTemp["normal"] = receiveBytes[4];
- }
- else
- {
- fh.modeTemp.Add("normal", receiveBytes[4]);
- }
- if (fh.modeTemp.ContainsKey("day"))
- {
- fh.modeTemp["day"] = receiveBytes[5];
- }
- else
- {
- fh.modeTemp.Add("day", receiveBytes[5]);
- }
- if (fh.modeTemp.ContainsKey("night"))
- {
- fh.modeTemp["night"] = receiveBytes[6];
- }
- else
- {
- fh.modeTemp.Add("night", receiveBytes[6]);
- }
- if (fh.modeTemp.ContainsKey("away"))
- {
- fh.modeTemp["away"] = receiveBytes[7];
- }
- else
- {
- fh.modeTemp.Add("away", receiveBytes[7]);
- }
-
- switch (fh.trait_mode.value)
- {
- case "normal":
- fh.lastState = Language.StringByID(StringId.Normal);
- fh.curTemp = receiveBytes[4];
- break;
- case "day":
- fh.lastState = Language.StringByID(StringId.Day);
- fh.curTemp = receiveBytes[5];
- break;
- case "night":
- fh.lastState = Language.StringByID(StringId.Night);
- fh.curTemp = receiveBytes[6];
- break;
- case "timer":
- fh.lastState = Language.StringByID(StringId.Auto);
- if (receiveBytes[8] == 0)
- {
- fh.timeFlag = 0;
- fh.curTemp = receiveBytes[5];
- }
- else
- {
- fh.timeFlag = 1;
- fh.curTemp = receiveBytes[6];
- }
- break;
- case "away":
- fh.curTemp = receiveBytes[7];
- fh.lastState = Language.StringByID(StringId.Away);
- break;
- }
- fh.lastState += " " + fh.curTemp + fh.tempUnitString;
- RoomPage.UpdataStates(fh);
- FunctionPage.UpdataStates(fh);
- HomePage.UpdataFunctionStates(fh);
- ClassificationPage.UpdataInfo(fh);
- FloorHeatingPage.UpdataStates(fh);
- }
- }
- break;
- case Command.ReadDeviceLoopInfoACK:
- FunctionType dt = (FunctionType)(11 * 256 + receiveBytes[1]);
- string tag = receiveBytes[1] + "_" + subnetID + "_" + deviceID + "_" + receiveBytes[2];
- foreach (var sensor in DB_ResidenceData.functionList.sensorsEnvironmentalScience)
- {
- if (sensor.bus_Data != null)
- {
- if ((int)sensor.functionType % 256 == receiveBytes[1] && sensor.bus_Data.SubnetID == subnetID &&
- sensor.bus_Data.DeviceID == deviceID && sensor.bus_Data.LoopID == receiveBytes[2])
- {
- switch (dt)
- {
- case FunctionType.Temp:
- byte[] tempBytes = new byte[] { receiveBytes[24], receiveBytes[25], receiveBytes[26], receiveBytes[27] };
- sensor.values = Math.Round(BitConverter.ToSingle(tempBytes, 0), 1);
- break;
- case FunctionType.Humidity:
- sensor.values = Convert.ToDouble(receiveBytes[24] * 256 + receiveBytes[25]) / 10;
- break;
- case FunctionType.TVOC:
- sensor.values = Convert.ToDouble(receiveBytes[24] * 256 + receiveBytes[25]) / 100;
- break;
- case FunctionType.PM25:
- sensor.values = Convert.ToInt32(receiveBytes[24] * 256 + receiveBytes[25]);
- break;
- case FunctionType.CO2:
- sensor.values = Convert.ToInt32(receiveBytes[24] * 256 + receiveBytes[25]);
- break;
- }
- EnvironmentalSciencePage.LoadEvent_UpdataStatus(sensor);
- }
- }
- }
- break;
- case Command.New_Analog_Quantity_BROADCAST:
- string tag1 = receiveBytes[1] + "_" + subnetID + "_" + deviceID + "_" + receiveBytes[2];
- foreach (var sensor in DB_ResidenceData.functionList.sensorsEnvironmentalScience)
- {
- if (sensor.bus_Data != null)
- {
- if ((int)sensor.functionType % 256 == receiveBytes[1] && sensor.bus_Data.SubnetID == subnetID &&
- sensor.bus_Data.DeviceID == deviceID && sensor.bus_Data.LoopID == receiveBytes[2])
- {
- //0淇濈暀 1鏃犵鍙�4Byte鏁村舰 2鏈夌鍙�4Byte鏁村舰 3Float褰紙浠B憋級
- switch (receiveBytes[3])
- {
- case 1:
- sensor.values = (receiveBytes[5] * 256 * 256 * 256) + (receiveBytes[6] * 256 * 256) + (receiveBytes[7] * 256) + receiveBytes[8];
- break;
- case 2:
- sensor.values = -1 * ((receiveBytes[5] * 256 * 256 * 256) + (receiveBytes[6] * 256 * 256) + (receiveBytes[7] * 256) + receiveBytes[8]);
- break;
- case 3:
- byte[] tempBytes = new byte[] { receiveBytes[5], receiveBytes[6], receiveBytes[7], receiveBytes[8] };
- sensor.values = Math.Round(BitConverter.ToSingle(tempBytes, 0), 1);
- break;
- }
- switch (receiveBytes[4])
- {
- case 2:
- if (receiveBytes[1] == 5)//TVOC闇�姹傞櫎浠�100000
- sensor.values /= 100000;
- break;
- }
- EnvironmentalSciencePage.LoadEvent_UpdataStatus(sensor);
- }
- }
- }
- break;
- case Command.InstructionPanelKeyACK:
- case Command.ReadInstructionPanelKeyACK:
- byte reACPanel = 0;
- if (receiveBytes.Length == 2)
- {
- reACPanel = 1;
- }
- else if (receiveBytes.Length == 3)
- {
- reACPanel = receiveBytes[2];
- }
- else
- {
- break;
- }
- foreach (var ac in DB_ResidenceData.functionList.aCs)
- {
- if (ac.GetBusId() == subnetID + "_" + deviceID + "_" + reACPanel)
- {
- switch (receiveBytes[0])
- {
- case 3://
- ac.trait_on_off.value = receiveBytes[1] == 1 ? "on" : "off";
- break;
- case 4:
- case 7:
- case 8:
- case 19:
- ac.trait_temp.value = receiveBytes[1];
- break;
- case 5:
- ac.curFanIndex = receiveBytes[1];
- break;
- case 6:
- ac.curModeIndex = receiveBytes[1];
- break;
-
- }
- ac.lastState = "";
- ac.lastState += " " + ac.trait_temp.value + ac.tempUnitString;
- RoomPage.UpdataStates(ac);
- FunctionPage.UpdataStates(ac);
- HomePage.UpdataFunctionStates(ac);
- ClassificationPage.UpdataInfo(ac);
- ACPage.UpdataStates(ac);
- }
- }
- break;
- case Command.ReadPanleTempACK://1944
- case Command.PanleBroadcastTemp:
- foreach (var ac in DB_ResidenceData.functionList.aCs)
- {
- if (ac.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
- {
- ac.indoorTemp = receiveBytes[1];
- FunctionPage.UpdataStates(ac);
- }
- }
- break;
- }
- }
- catch (Exception ex)
- {
- MainPage.Log($"Bus Rev Erorr : {ex.Message}");
- }
- }
- /// <summary>
- /// byte 鍙樺瓧绗︿覆
- /// </summary>
- /// <returns>The to hex16.</returns>
- /// <param name="b">The blue component.</param>
- public static string byteToHex16(byte b)
- {
- string s = Convert.ToString(b, 16).ToUpper();
- if (s.Length <= 1)
- {
- return "0" + s;
- }
- return s;//
- }
}
}
\ No newline at end of file
--
Gitblit v1.8.0