From e6a26ee148587327478d9a82624a820c907b6e16 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期三, 04 十一月 2020 14:58:15 +0800 Subject: [PATCH] 20201104 --- HDL_ON/DriverLayer/CommonPage.cs | 550 ------------------------------------------------------ 1 files changed, 2 insertions(+), 548 deletions(-) diff --git a/HDL_ON/DriverLayer/CommonPage.cs b/HDL_ON/DriverLayer/CommonPage.cs index 825b601..af0ff35 100644 --- a/HDL_ON/DriverLayer/CommonPage.cs +++ b/HDL_ON/DriverLayer/CommonPage.cs @@ -1,554 +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.trait_temp.value = receiveBytes[4]; - break; - case "day": - fh.lastState = Language.StringByID(StringId.Day); - fh.trait_temp.value = receiveBytes[5]; - break; - case "night": - fh.lastState = Language.StringByID(StringId.Night); - fh.trait_temp.value = receiveBytes[6]; - break; - case "timer": - fh.lastState = Language.StringByID(StringId.Auto); - if (receiveBytes[8] == 0) - { - fh.timeFlag = 0; - fh.trait_temp.value = receiveBytes[5]; - } - else - { - fh.timeFlag = 1; - fh.trait_temp.value = receiveBytes[6]; - } - break; - case "away": - fh.trait_temp.value = receiveBytes[7]; - fh.lastState = Language.StringByID(StringId.Away); - break; - } - fh.lastState += " " + fh.trait_temp.value + 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; - case Command.ReadGatewayACK: - Control.VerGateway(receiveBytes); - 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