From 5a5a2b696866f947b6025d26c3302e8ffef46435 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期一, 11 一月 2021 16:11:20 +0800
Subject: [PATCH] 2021-01-11 1.更新MQTT连接和本地搜索网关方法。2.子账号相关接口完善

---
 Crabtree/SmartHome/UI/SimpleControl/CommonPage.cs |  147 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 125 insertions(+), 22 deletions(-)

diff --git a/Crabtree/SmartHome/UI/SimpleControl/CommonPage.cs b/Crabtree/SmartHome/UI/SimpleControl/CommonPage.cs
index 601ab84..e354ea1 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/CommonPage.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/CommonPage.cs
@@ -4,10 +4,19 @@
 using System.Text;
 using System.Collections.Generic;
 using Shared.SimpleControl.Phone;
-using service.hdlcontrol.com_WebServiceAirQuality;
+//using service.hdlcontrol.com_WebServiceAirQuality;
 
 namespace Shared.SimpleControl
 {
+    public class AirQuality
+    {
+        public string city;
+        public string airQTemp;
+        public string airQHumidity;
+        public string airQAirPM25;
+        public string airQAirWeather;
+    }
+
     public static class CommonPage
     {
         public static AirQuality AirQuality;
@@ -26,7 +35,7 @@
                         //127.0.0.1
                         if (ip == "0.0.0.0") {
                             try {
-                                ip = System.Net.Dns.GetHostEntry ("homeautomation.havells.com").AddressList [0].ToString ();
+                                ip = System.Net.Dns.GetHostEntry ("smarth-api.havells.com").AddressList [0].ToString ();
                             } catch { }
                         }
                         return new System.Net.IPEndPoint (System.Net.IPAddress.Parse (ip), 9999);
@@ -103,7 +112,7 @@
                     foreach (var bin in usefullBytes) {
                         pushBytesString += bin + ",";
                     }
-                    Console.WriteLine (pushBytesString);
+                    Utlis.WriteLine (pushBytesString);
 #endif
                     if (DeviceList.Find ((l) => { return l.SubnetID == subnetID && l.DeviceID == deviceID; }) != null) {
                         return;
@@ -122,7 +131,7 @@
                             continue;
                         }
                         DeviceType deviceType_wireless = (DeviceType)(usefullBytes [i] * 256 + usefullBytes [i + 1]);
-                        Console.WriteLine (deviceType_wireless.ToString ());
+                        Utlis.WriteLine (deviceType_wireless.ToString ());
                         if (noRemake || MyEncodingGB2312.GetString (usefullBytes, 2, 20).Trim ('\0') == "") {
                             byte [] ddd = CommonPage.MyEncodingGB2312.GetBytes (deviceType_wireless.ToString () + "-" + subnetID.ToString () + "-" + deviceID.ToString ());
                             byte [] newddd = new byte [20];
@@ -256,7 +265,8 @@
                     }
                     break;
                 case Command.SetSingleLightACK:
-                    Console.WriteLine ("Command.SetSingleLightACK");
+                    //Utlis.WriteLine ($"Command.SetSingleLightACK: subnetID:{subnetID} deviceID:{deviceID} 鍥炶矾锛歿usefullBytes [0]}");
+                    //Utlis.WriteLine ("Command.SetSingleLightACK");
                     foreach (var room in Room.Lists) {
                         var common = room.DeviceList.Find ((obj) => obj.CommonLoopID == subnetID.ToString () + "_" + deviceID.ToString () + "_" + usefullBytes [0].ToString ());
                         if (common != null) {
@@ -319,6 +329,7 @@
                                 if (!string.IsNullOrEmpty (room.Name))
                                     UserDeviceToLight.UpdateBrighingCount (updateFlag);
                                 if (hadBeUpdate) {
+                                   
                                     UserRoom.UpdataDeviceStatus (common);
                                     UserLightPage.UpdateStatus (updateFlag, usefullBytes [2]);
                                     UserDeviceToLight.UpdateStatus (updateFlag, usefullBytes [2]);
@@ -346,12 +357,14 @@
                                     UserDeviceToLight.UpdataEnergy (usefullBytes [0], updateFlag, usefullBytes [2] * 256 + usefullBytes [3]);
                                     UserRoom.UpdataEnergy (usefullBytes [0], common.Type + "_" + updateFlag, usefullBytes [2] * 256 + usefullBytes [3]);
                                     break;
-                                } else if (usefullBytes [0] == 11) {
-                                    UserDeviceToSocket.UpdataEnergy (usefullBytes [0], updateFlag, usefullBytes [2] * 256 * 256 * 256 + usefullBytes [3] * 256 * 256 + usefullBytes [4] * 256 + usefullBytes [5]);
-                                    UserDeviceToLight.UpdataEnergy (usefullBytes [0], updateFlag, usefullBytes [2] * 256 * 256 * 256 + usefullBytes [3] * 256 * 256 + usefullBytes [4] * 256 + usefullBytes [5]);
-                                    UserRoom.UpdataEnergy (usefullBytes [0], common.Type + "_" + updateFlag, usefullBytes [2] * 256 * 256 * 256 + usefullBytes [3] * 256 * 256 + usefullBytes [4] * 256 + usefullBytes [5]);
-                                    break;
                                 }
+                                //2020-07-01 瀹㈡埛鎻愬嚭闅愯棌kwh
+                                //else if (usefullBytes [0] == 11) {
+                                //    UserDeviceToSocket.UpdataEnergy (usefullBytes [0], updateFlag, usefullBytes [2] * 256 * 256 * 256 + usefullBytes [3] * 256 * 256 + usefullBytes [4] * 256 + usefullBytes [5]);
+                                //    UserDeviceToLight.UpdataEnergy (usefullBytes [0], updateFlag, usefullBytes [2] * 256 * 256 * 256 + usefullBytes [3] * 256 * 256 + usefullBytes [4] * 256 + usefullBytes [5]);
+                                //    UserRoom.UpdataEnergy (usefullBytes [0], common.Type + "_" + updateFlag, usefullBytes [2] * 256 * 256 * 256 + usefullBytes [3] * 256 * 256 + usefullBytes [4] * 256 + usefullBytes [5]);
+                                //    break;
+                                //}
                             }
 
 
@@ -711,7 +724,7 @@
                             case "DISPMODE":
                                 if (7 <= backResult [1].Length) {
                                     music.playMode = int.Parse (backResult [1].Substring (6, 1));
-                                    System.Console.WriteLine ("DISPMODE=====" + music.playMode);
+                                    Utlis.WriteLine ("DISPMODE=====" + music.playMode);
                                 }
                                 break;
                             }
@@ -1206,7 +1219,7 @@
                             continue;
                         }
                         deviceType = (DeviceType)(usefullBytes [iReadDeviceModulACK] * 256 + usefullBytes [iReadDeviceModulACK + 1]);
-                        Console.WriteLine (deviceType.ToString ());
+                        Utlis.WriteLine (deviceType.ToString ());
                         string devcieTempName = MyEncodingGB2312.GetString (usefullBytes, 2, 20).Trim ('\0');
                         if (notHasRemake || MyEncodingGB2312.GetString (usefullBytes, 2, 20).Trim ('\0') == "") {
                             devcieTempName = deviceType.ToString ().Replace (DeviceType.Sensor.ToString (), "") + "-" + deviceID.ToString ();
@@ -1239,7 +1252,7 @@
                             common.isMixBox = true;
                         } else {
                             Application.RunOnMainThread (() => {
-                                MainPage.Loading.Start ("Search for device:" + devcieTempName);
+                                //MainPage.Loading.Start ("Search for device:" + devcieTempName);
                                 ++searchTotal;
                                 GuideSettingGateway.InitSearchDeviceList (common);
                                 for (int k = 1; k <= common.LoopCount; k++) {
@@ -1272,6 +1285,14 @@
                         //} else if (deviceType1.ToString ().Contains ("Switch")) {
                         //    devcieLoopName = "Relay SW" + usefullBytes [2].ToString ();
                         //}
+
+                        //2020-07-03 濡傛灉鏄孩澶栨ā鍧楃被鍨嬶紝澶囨敞涓虹┖鐨勮瘽锛岄粯璁や负TV鍚嶅瓧
+                        if (deviceType1 == DeviceType.InfraredMode) {
+                            devcieLoopName = "TV " + usefullBytes [2].ToString ();
+                        } else if (deviceType1 == DeviceType.ACInfrared) {
+                            //2020-08-28 濡傛灉鏄孩澶栫┖璋冪被鍨嬶紝澶囨敞涓虹┖鐨勮瘽锛岄粯璁や负AC鍚嶅瓧
+                            devcieLoopName = "AC " + usefullBytes [2].ToString ();
+                        }
                         byte [] ddd = CommonPage.MyEncodingGB2312.GetBytes (devcieLoopName);
                         byte [] newddd = new byte [20];
                         Array.Copy (ddd, 0, newddd, 0, 20 < ddd.Length ? 20 : ddd.Length);
@@ -1590,7 +1611,7 @@
                         wirelessPanelButtonKey.Name = MyEncodingGB2312.GetString (usefullBytes, 3, 20).Trim ('\0');
                         wirelessPanelButtonKey.Mode = usefullBytes [23];
                         ButtonBkeyModelList.Add (wirelessPanelButtonKey.Mode);
-                        System.Console.WriteLine ("璇诲彇闈㈡澘鎸夐敭锛氬洖璺彿锛�" + wirelessPanelButtonKey.LoopID + "  妯″紡锛�" + wirelessPanelButtonKey.Mode);
+                        Utlis.WriteLine ("璇诲彇闈㈡澘鎸夐敭锛氬洖璺彿锛�" + wirelessPanelButtonKey.LoopID + "  妯″紡锛�" + wirelessPanelButtonKey.Mode);
                         IO.FileUtils.SaveEquipmentMessage (wirelessPanelButtonKey, wirelessPanelButtonKey.LoopID.ToString ());
                         #endregion
                         break;
@@ -2067,7 +2088,7 @@
                     //01 01 59(+30) 02 0D 03 64 00 01 
                     break;
                 case Command.AssignedAddressACK:
-                    Console.WriteLine (usefullBytes [0].ToString ());
+                    Utlis.WriteLine (usefullBytes [0].ToString ());
                     if (usefullBytes [0] == 3) {
                         dt = DateTime.Now;
                     } else if (usefullBytes [0] == 4) {
@@ -2075,24 +2096,24 @@
                     }
                     break;
                 case Command.Remote3thACK:
-                    Console.WriteLine (usefullBytes [0]);
+                    Utlis.WriteLine (usefullBytes [0]);
                     break;
                 case Command.DownloadInfraredACK:
                     string loopID_IM = usefullBytes [0] < 10 ? "0" + usefullBytes [0].ToString () : usefullBytes [0].ToString ();
                     if ((InfraredType)usefullBytes [2] != InfraredType.AC) {
                         if ((InfraredType)usefullBytes [2] == InfraredType.NULL) {
-                            Console.WriteLine ("NULL-------------");
+                            Utlis.WriteLine ("NULL-------------");
                         }
                         string filePath = "Equipment_InfraredMode_" + subnetID + "_" + deviceID + "_" + loopID_IM;
                         InfraredMode im = Newtonsoft.Json.JsonConvert.DeserializeObject<InfraredMode> (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (filePath)));
                         im.InfraredType = (InfraredType)usefullBytes [2];
-                        Console.WriteLine (im.InfraredType.ToString () + "------------------------------------------------------");
+                        Utlis.WriteLine (im.InfraredType.ToString () + "------------------------------------------------------");
                         IO.FileUtils.SaveEquipmentMessage (im, im.LoopID.ToString ());
                     }
                     break;
                 }
             } catch (Exception ex) {
-                Console.WriteLine ("Packet_ReceiveEvent锛�" + ex.ToString ());
+                Utlis.WriteLine ("Packet_ReceiveEvent锛�" + ex.ToString ());
             }
 
         }
@@ -2109,6 +2130,85 @@
             }
             return s;//
         }
+
+        //static void httpListener_EventHandler (System.Collections.Specialized.NameValueCollection nameValueCollection, System.IO.Stream outputStream, System.IO.Stream inputStream)
+        //{
+        //    //if (!isHttpListenerStart) {
+        //    //    return;
+        //    //}
+        //    try {
+        //        //System.Net.WebClient webClient = new System.Net.WebClient ();
+        //        //byte []bytes= webClient.DownloadData("http://ip:6001/GetAllFiles");
+        //        //               System.Text.Encoding.UTF8.GetString (bytes);
+        //        //List<string> list = new List<string> ();
+        //        //foreach(string s in list) { 
+        //        //    byte [] bytes = webClient.DownloadData ("http://ip:6001/Get"+s);
+        //        //    FileUtils.WriteFileByBytes (s, bytes);
+        //        //}
+
+        //        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 (IO.FileUtils.ReadFiles ()));
+        //                outputStream.Write (bytes, 0, bytes.Length);
+        //                outputStream.Flush ();
+        //            } else {
+        //                byte [] bytes;
+        //                if (!IO.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 ();
+        //            }
+        //        } else if (nameValueCollection ["Command"].StartsWith ("Upload")) {
+        //            string path = Application.RootPath + nameValueCollection ["Command"].Replace ("Upload", "");
+        //            string dePath = nameValueCollection ["Command"].Replace ("Upload", "");
+        //            if (dePath.StartsWith ("Room_")) {
+        //                new Room ().Add (dePath);
+        //            }
+        //            if (dePath.Split ('_').Length == 5) {
+        //                if (dePath.Split ('_') [1] == (typeof (OnePortBus).Name) || dePath.Split ('_') [1] == (typeof (OnePortWirelessFR).Name)) {
+        //                    UserConfig.Instance.RemoteModeFile = dePath;
+        //                    UserConfig.Instance.SaveUserConfig ();
+        //                }
+        //                if (dePath.Split ('_') [1] == (typeof (SecurityModul).Name)) {
+        //                    if (UserConfig.Instance.HideDeviceTypes.Contains ((R.MyInternationalizationString.Security))) {
+        //                        UserConfig.Instance.HideDeviceTypes.Remove (R.MyInternationalizationString.Security);
+        //                        UserConfig.Instance.SaveUserConfig ();
+        //                    }
+        //                }
+        //            }
+
+        //            if (dePath.Split ('_').Length == 2 && dePath.StartsWith ("GlobalScene")) {
+        //                var sceneFileList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (Scene.GlobalSceneFilePath)));
+        //                if (!sceneFileList.Contains (dePath)) {
+        //                    sceneFileList.Add (dePath);
+        //                    IO.FileUtils.WriteFileByBytes (Scene.GlobalSceneFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (sceneFileList)));
+        //                }
+        //            }
+        //            //Utlis.WriteLine ("鎺ユ敹"+path);
+        //            FileUtils.WriteFileByInputStream (path, inputStream);
+        //            Common common = Newtonsoft.Json.JsonConvert.DeserializeObject<Common> (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (path)));
+        //            if (common.DeviceTextID == R.MyInternationalizationString.ElectricalControl) {
+        //                UserConfig.Instance.SocketList.Add (common.CommonLoopID);
+        //            }
+        //        } else {
+        //            byte [] bytes = System.Text.Encoding.UTF8.GetBytes ("璇锋眰鍛戒护鏃犳晥锛�");
+        //            outputStream.Write (bytes, 0, bytes.Length);
+        //            outputStream.Flush ();
+        //        }
+        //    } catch (Exception ex) {
+        //        Utlis.WriteLine ("httpListener_EventHandler" + ex.ToString ());
+        //    } 
+        //}
+
 
         static void httpListener_EventHandler (System.Collections.Specialized.NameValueCollection nameValueCollection, System.IO.Stream outputStream, System.IO.Stream inputStream)
         {
@@ -2149,9 +2249,11 @@
                 } else if (nameValueCollection ["Command"].StartsWith ("Upload")) {
                     string path = Application.RootPath + nameValueCollection ["Command"].Replace ("Upload", "");
                     string dePath = nameValueCollection ["Command"].Replace ("Upload", "");
-                    if (dePath.StartsWith ("Room_")) {
+                    if (dePath.Contains ("Room_")) {
                         new Room ().Add (dePath);
                     }
+
+
                     if (dePath.Split ('_').Length == 5) {
                         if (dePath.Split ('_') [1] == (typeof (OnePortBus).Name) || dePath.Split ('_') [1] == (typeof (OnePortWirelessFR).Name)) {
                             UserConfig.Instance.RemoteModeFile = dePath;
@@ -2163,6 +2265,7 @@
                                 UserConfig.Instance.SaveUserConfig ();
                             }
                         }
+
                     }
 
                     if (dePath.Split ('_').Length == 2 && dePath.StartsWith ("GlobalScene")) {
@@ -2183,8 +2286,8 @@
                     outputStream.Flush ();
                 }
             } catch (Exception ex) {
-                Console.WriteLine ("httpListener_EventHandler" + ex.ToString ());
-            } 
+                Utlis.WriteLine ("httpListener_EventHandler" + ex.ToString ());
+            }
         }
 
         /// <summary>

--
Gitblit v1.8.0