| | |
| | | //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); |
| | |
| | | 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; |
| | |
| | | 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]; |
| | |
| | | } |
| | | 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) { |
| | |
| | | if (!string.IsNullOrEmpty (room.Name)) |
| | | UserDeviceToLight.UpdateBrighingCount (updateFlag); |
| | | if (hadBeUpdate) { |
| | | |
| | | UserRoom.UpdataDeviceStatus (common); |
| | | UserLightPage.UpdateStatus (updateFlag, usefullBytes [2]); |
| | | UserDeviceToLight.UpdateStatus (updateFlag, usefullBytes [2]); |
| | |
| | | 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; |
| | | //} |
| | | } |
| | | |
| | | |
| | |
| | | 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; |
| | | } |
| | |
| | | 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 (); |
| | |
| | | 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++) { |
| | |
| | | //} 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); |
| | |
| | | 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; |
| | |
| | | //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) { |
| | |
| | | } |
| | | 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 ()); |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | 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) |
| | | { |
| | |
| | | } 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; |
| | |
| | | UserConfig.Instance.SaveUserConfig (); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | if (dePath.Split ('_').Length == 2 && dePath.StartsWith ("GlobalScene")) { |
| | |
| | | outputStream.Flush (); |
| | | } |
| | | } catch (Exception ex) { |
| | | Console.WriteLine ("httpListener_EventHandler" + ex.ToString ()); |
| | | } |
| | | Utlis.WriteLine ("httpListener_EventHandler" + ex.ToString ()); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |