From f718d23a262a5a8e1241fdeaeb4153399f95e79d Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期二, 21 四月 2020 09:19:05 +0800 Subject: [PATCH] 20200421 --- HDL_ON/DAL/Net/CommonPage.cs | 315 +++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 238 insertions(+), 77 deletions(-) diff --git a/HDL_ON/DAL/Net/CommonPage.cs b/HDL_ON/DAL/Net/CommonPage.cs index efd3d4a..c8d3b65 100644 --- a/HDL_ON/DAL/Net/CommonPage.cs +++ b/HDL_ON/DAL/Net/CommonPage.cs @@ -13,9 +13,10 @@ public static bool IsRemote; public static Action RefreshAir; - public static string FindGatewayChilrenIPAddress = new NetWiFi ().BroadcastIpAddress.ToString (); + public static string FindGatewayChilrenIPAddress = new NetWiFi().BroadcastIpAddress.ToString(); private static string ip = "0.0.0.0"; - public static System.Net.IPEndPoint EndPoint { + public static System.Net.IPEndPoint EndPoint + { get { try @@ -32,7 +33,8 @@ ///淇濆瓨璁惧澶囨敞鎵嶇敤gb2312锛屽叾浠栨儏鍐电敤utf8 public static Encoding MyEncodingUTF8 = Encoding.UTF8;//Get - public static Encoding MyEncodingGB2312 { + public static Encoding MyEncodingGB2312 + { get { try @@ -57,37 +59,38 @@ public static DateTime dt; //public static byte currentSubnetID = 0; - public static void InitHttpListener () + public static void InitHttpListener() { - if (isHttpListenerStart) { + if (isHttpListenerStart) + { return; } - HttpListener.Start (new NetWiFi ().IpAddress, 6001); + HttpListener.Start(new NetWiFi().IpAddress, 6001); HttpListener.EventHandler -= httpListener_EventHandler; HttpListener.EventHandler += httpListener_EventHandler; isHttpListenerStart = true; } - public static void CloseHttpListener () + public static void CloseHttpListener() { //isHttpListenerStart = false; //return; if (!isHttpListenerStart) return; - HttpListener.Close (); + HttpListener.Close(); isHttpListenerStart = false; } /// <summary> /// 鍒濆鍖栧鐞唖ocket鎺ユ敹鐨勬暟鎹� /// </summary> - public static void InitReceiveEvent () + public static void InitReceiveEvent() { Packet.ReceiveEvent += Packet_ReceiveEvent; } - public static float floatChange (byte b1, byte b2, byte b3, byte b4) + public static float floatChange(byte b1, byte b2, byte b3, byte b4) { byte[] byteTemp = { b4, b3, b2, b1 }; - return BitConverter.ToSingle (byteTemp, 0); + return BitConverter.ToSingle(byteTemp, 0); } @@ -97,44 +100,183 @@ { switch (command) { + case Command.ReadLightSingleLoopBrightnessACK: case Command.SetSingleLightACK: - foreach (var function in DB_ResidenceData.residenceData.functions) + foreach (var function in DB_ResidenceData.residenceData.functionList.lights) { if (function.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0]) { - if (function.funcType == FunctionType.Light) + if (function.functionCategory == FunctionCategory.Light&& function.functionType != FunctionType.RGB) { var light = function as Light; - if (receiveBytes[2] == 0 && light.state == 0) + //if (receiveBytes[2] == 0 && light.on_off == "off") + //{ + // break; + //} + //if (function.functionType == "Relay") + //{ + // var relay = function as Light; + // relay.on_off = receiveBytes[2] == 0 ? "off" : "on"; + // HomePage.UpdataLightView(relay); + //} + //else if (function.functionType == "Dimmer") + //{ + //var light = function as Light; + light.on_off = receiveBytes[2] == 0 ? "off" : "on"; + if (light.on_off == "on") { - break; + light.brightness = receiveBytes[2]; + light.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[2] + "%"; } - if (receiveBytes[2] == 100 && light.state == 1) + HomePage.UpdataFunctionStates(light); + RoomPage.UpdataStates(light); + FunctionPage.UpdataStates(light); + ClassificationPage.UpdataInfo(light); + switch (light.functionType) { - break; + case FunctionType.Relay: + RelayPage.UpdataState(light); + break; + case FunctionType.Dimmer: + DimmerPage.UpdataStates(light); + break; } - if (function.bus_DeviceType == "Relay") - { - var relay = function as Light; - relay.state = receiveBytes[2] == 0 ? 0 : 1; - HomePage.UpdataLightView(relay); - } - else if (function.bus_DeviceType == "Dimmer") - { - var dimmer = function as Dimmer; - dimmer.state = receiveBytes[2] == 0 ? 0 : 1; - dimmer.brightness = receiveBytes[1]; - if (receiveBytes[2] > 0) - dimmer.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[2] + "%"; - HomePage.UpdataLightView(dimmer); - } + //} } + } + } + break; + case Command.SetLogicLoopColorACK: + case Command.ReadLogicLoopColorACK: + foreach (var rgb in DB_ResidenceData.residenceData.functionList.lights) + { + if (rgb.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0]) + { + if (rgb.functionType == FunctionType.RGB) + { + rgb.on_off = 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.residenceData.functionList.curtains) + { + if (curtain.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0]) + { + switch(receiveBytes[1]) + { + case 0: + curtain.on_off = "stop"; + break; + case 1: + curtain.on_off = "on"; + curtain.lastState = Language.StringByID(StringId.Open); + break; + case 2: + curtain.on_off = "off"; + curtain.lastState = Language.StringByID(StringId.Close); + break; + default: + if (receiveBytes[1] > 1) + { + curtain.on_off = "on"; + } + else + { + curtain.on_off = "off"; + } + curtain.openLevel = receiveBytes[1]; + curtain.lastState = Language.StringByID(StringId.Open) + curtain.openLevel + "%"; + break; + } + RoomPage.UpdataStates(curtain); + FunctionPage.UpdataStates(curtain); + HomePage.UpdataFunctionStates(curtain); + ClassificationPage.UpdataInfo(curtain); + switch (curtain.functionType) + { + case FunctionType.Curtain: + CurtainModulePage.UpdataState(curtain); + break; + } + } + } + break; + case Command.SetACModeACK: + case Command.ReadACModeACK: + foreach (var ac in DB_ResidenceData.residenceData.functionList.aCs) + { + if (ac.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0]) + { + ac.curTempType = receiveBytes[1]; + ac.indoorTemp = receiveBytes[2]; + ac.on_off = receiveBytes[8] == 1 ? "on" : "off"; + ac.curModeIndex = receiveBytes[9]; + ac.curFanIndex = receiveBytes[10]; + ac.curTemp = receiveBytes[11]; + ac.lastState = ""; + switch (ac.curMode) + { + 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.curFan) + { + 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.curTemp + "掳C"; + RoomPage.UpdataStates(ac); + FunctionPage.UpdataStates(ac); + HomePage.UpdataFunctionStates(ac); + ClassificationPage.UpdataInfo(ac); + ACPage.UpdataStates(ac); } } break; } } - catch (Exception ex) { + catch (Exception ex) + { MainPage.Log($"Bus Rev Erorr : {ex.Message}"); } } @@ -143,49 +285,62 @@ /// </summary> /// <returns>The to hex16.</returns> /// <param name="b">The blue component.</param> - public static string byteToHex16 (byte b) + public static string byteToHex16(byte b) { - string s = Convert.ToString (b, 16).ToUpper (); - if (s.Length <= 1) { + string s = Convert.ToString(b, 16).ToUpper(); + if (s.Length <= 1) + { return "0" + s; } return s;// } - static void httpListener_EventHandler (System.Collections.Specialized.NameValueCollection nameValueCollection, System.IO.Stream outputStream, System.IO.Stream inputStream) + static void httpListener_EventHandler(System.Collections.Specialized.NameValueCollection nameValueCollection, System.IO.Stream outputStream, System.IO.Stream inputStream) { - try { - if (nameValueCollection ["Command"] != null && nameValueCollection ["Command"].StartsWith ("Get")) { - string tempFileName = nameValueCollection ["Command"].Replace ("Get", ""); - if ("AllFiles" == tempFileName) { - byte [] bytes = System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (FileUtils.ReadFiles ())); - outputStream.Write (bytes, 0, bytes.Length); - outputStream.Flush (); - } else { - byte [] bytes; - if (!FileUtils.Exists (tempFileName)) { - bytes = System.Text.Encoding.UTF8.GetBytes ("鏂囦欢鍚嶄笉瀛樺湪锛�"); - outputStream.Write (bytes, 0, bytes.Length); - outputStream.Flush (); + try + { + if (nameValueCollection["Command"] != null && nameValueCollection["Command"].StartsWith("Get")) + { + string tempFileName = nameValueCollection["Command"].Replace("Get", ""); + if ("AllFiles" == tempFileName) + { + byte[] bytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(FileUtils.ReadFiles())); + outputStream.Write(bytes, 0, bytes.Length); + outputStream.Flush(); + } + else + { + byte[] bytes; + if (!FileUtils.Exists(tempFileName)) + { + bytes = System.Text.Encoding.UTF8.GetBytes("鏂囦欢鍚嶄笉瀛樺湪锛�"); + outputStream.Write(bytes, 0, bytes.Length); + outputStream.Flush(); return; } - System.IO.FileStream fs = new System.IO.FileStream (Application.RootPath + tempFileName, System.IO.FileMode.Open); - bytes = new byte [fs.Length]; - fs.Read (bytes, 0, bytes.Length); - fs.Close (); - outputStream.Write (bytes, 0, bytes.Length); - outputStream.Flush (); + System.IO.FileStream fs = new System.IO.FileStream(Application.RootPath + tempFileName, System.IO.FileMode.Open); + bytes = new byte[fs.Length]; + fs.Read(bytes, 0, bytes.Length); + fs.Close(); + outputStream.Write(bytes, 0, bytes.Length); + outputStream.Flush(); } - } else if (nameValueCollection ["Command"].StartsWith ("Upload")) { - string path = Application.RootPath + nameValueCollection ["Command"].Replace ("Upload", ""); - string dePath = nameValueCollection ["Command"].Replace ("Upload", ""); - } else { - byte [] bytes = System.Text.Encoding.UTF8.GetBytes ("璇锋眰鍛戒护鏃犳晥锛�"); - outputStream.Write (bytes, 0, bytes.Length); - outputStream.Flush (); } - } catch (Exception ex) { - MainPage.Log ("httpListener_EventHandler" + ex.ToString ()); + else if (nameValueCollection["Command"].StartsWith("Upload")) + { + string path = Application.RootPath + nameValueCollection["Command"].Replace("Upload", ""); + string dePath = nameValueCollection["Command"].Replace("Upload", ""); + } + else + { + byte[] bytes = System.Text.Encoding.UTF8.GetBytes("璇锋眰鍛戒护鏃犳晥锛�"); + outputStream.Write(bytes, 0, bytes.Length); + outputStream.Flush(); + } + } + catch (Exception ex) + { + MainPage.Log("httpListener_EventHandler" + ex.ToString()); } } @@ -193,22 +348,28 @@ /// 鐩戝惉璇锋眰鐨凥ttp绔彛 /// </summary> public static int Port = 5555; - static void httpListener_EventHandler (string rawUrl, System.IO.Stream outputStream, System.IO.Stream inputStream) + static void httpListener_EventHandler(string rawUrl, System.IO.Stream outputStream, System.IO.Stream inputStream) { - foreach (var musicInfo in MusicInfo.MusicInfoList) { - if ("audio-item-" + musicInfo.ID == rawUrl.TrimStart ('/')) { - var file = new System.IO.FileStream (musicInfo.Data, System.IO.FileMode.Open, System.IO.FileAccess.Read); - byte [] bytes = new byte [1024]; - try { - while (file.CanRead) { - int len = file.Read (bytes, 0, bytes.Length); - if (len == 0) { + foreach (var musicInfo in MusicInfo.MusicInfoList) + { + if ("audio-item-" + musicInfo.ID == rawUrl.TrimStart('/')) + { + var file = new System.IO.FileStream(musicInfo.Data, System.IO.FileMode.Open, System.IO.FileAccess.Read); + byte[] bytes = new byte[1024]; + try + { + while (file.CanRead) + { + int len = file.Read(bytes, 0, bytes.Length); + if (len == 0) + { break; } - outputStream.Write (bytes, 0, len); + outputStream.Write(bytes, 0, len); } - } catch { } - file.Close (); + } + catch { } + file.Close(); break; } } -- Gitblit v1.8.0