From cbc156bc38d8b8eae7aef60cb186ab2b52fa701f Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期二, 16 七月 2024 13:59:56 +0800
Subject: [PATCH] 增加全部挂断

---
 HDL_ON/UI/UI2/FuntionControlView/HisenseTV /Send.cs |  135 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 134 insertions(+), 1 deletions(-)

diff --git a/HDL_ON/UI/UI2/FuntionControlView/HisenseTV /Send.cs b/HDL_ON/UI/UI2/FuntionControlView/HisenseTV /Send.cs
index 9f0a66a..f4873e7 100644
--- a/HDL_ON/UI/UI2/FuntionControlView/HisenseTV /Send.cs
+++ b/HDL_ON/UI/UI2/FuntionControlView/HisenseTV /Send.cs
@@ -1,5 +1,8 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
 using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using HDL_ON.UI.UI2.FuntionControlView.VideoDoorLock;
@@ -26,6 +29,96 @@
                 return sendMethod;
 
             }
+
+        }
+        /// <summary>
+        /// 鎵撳紑娴蜂俊鐢佃
+        /// </summary>
+        /// <param name="deviceMac">鐢佃mac</param>
+        public void Open(string deviceMac)
+        {
+            CommonMethod.Current.SunThread(() =>
+            {
+                // 鍒涘缓UdpClient瀹炰緥
+                UdpClient udpClient = new UdpClient();
+                try
+                {
+                    // 璁剧疆鍙戦�佸拰鎺ユ敹鏁版嵁鐨処P鍜岀鍙�
+                    IPEndPoint iPEndPoint = new IPEndPoint(IPAddress.Parse("255.255.255.255"), 9);
+                    // 鍙戦�佹暟鎹�
+                    //byte[] data = System.Text.Encoding.ASCII.GetBytes("Hello, UDP Server!");
+                    byte[] data = StrToToHexByte(deviceMac);
+                    for (int i = 0; i < 16; i++)
+                    {
+                        udpClient.Send(data, data.Length, iPEndPoint);
+                        //Console.WriteLine("鏁版嵁宸插彂閫�");
+                    }
+                    //// 鎺ユ敹鏁版嵁
+                    //IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0);
+                    //byte[] receivedData = udpClient.Receive(ref remoteEP);
+                    //string receivedMessage = System.Text.Encoding.ASCII.GetString(receivedData);
+                    //Console.WriteLine("鎺ユ敹鍒扮殑鏁版嵁锛�" + receivedMessage);
+                }
+                catch (Exception e)
+                {
+                    Console.WriteLine("鍙戠敓閿欒锛�" + e.Message);
+                }
+                finally
+                {
+                    // 鍏抽棴UdpClient杩炴帴
+                    udpClient.Close();
+                }
+            }, TipType.none);
+
+        }
+
+        /// <summary>
+        /// 鍒锋柊璁惧鐘舵��
+        /// </summary>
+        /// <param name="tipType">鏄惁闇�瑕佹彁绀�,榛樿鎻愮ず</param>
+        /// <returns></returns>
+        public bool RefreshDeviceStatus(List<string> functionIds, TipType tipType = TipType.flicker)
+        {
+            try
+            {
+                Dictionary<string, object> d = new Dictionary<string, object>();
+                d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+                d.Add("deviceIds", functionIds);
+                var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_RefreshDeviceStatus, "鍒锋柊璁惧鐘舵��");
+                if (!this.DataChecking(responsePackNew, tipType))
+                {
+                    return false;
+                }
+                return true;
+            }
+            catch
+            {
+                return false;
+            }
+        }
+
+        /// <summary>
+        /// 鑾峰彇璁惧璇︽儏
+        /// </summary>
+        /// <param name="tipType">鏄惁闇�瑕佹彁绀�,榛樿鎻愮ず</param>
+        /// <returns></returns>
+        public Function GetDeviceInfo(string functionId, TipType tipType = TipType.flicker)
+        {
+            Dictionary<string, object> d = new Dictionary<string, object>();
+            d.Add("homeId", DB_ResidenceData.Instance.CurrentRegion.id);
+            d.Add("deviceIds", new List<string>() { functionId });
+
+            var responsePackNew = RequestServerhomeId(d, NewAPI.Api_Post_GetDevcieInfoList, "鑾峰彇璁惧璇︽儏");
+            if (!this.DataChecking(responsePackNew, tipType))
+            {
+                return null;
+            }
+            var functionList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Function>>(responsePackNew.Data.ToString());
+            if (functionList != null && functionList.Count > 0)
+            {
+                return functionList[0];
+            }
+            return null;
 
         }
 
@@ -65,6 +158,46 @@
             { IsBackground = true }.Start();
         }
 
+        /// <summary>
+        /// 灏�16杩涘埗鐨勫瓧绗︿覆杞负byte[]
+        /// </summary>
+        /// <param name="hexDeviceMacString"></param>
+        /// <returns></returns>
+        private byte[] StrToToHexByte(string hexDeviceMacString)
+        {
+            if (string.IsNullOrEmpty(hexDeviceMacString))
+            {
+                return new byte[] { };
+            }
+            hexDeviceMacString = hexDeviceMacString.Replace(" ", "").Replace("_","");
+            if ((hexDeviceMacString.Length % 2) != 0) {
+                return new byte[] { };
+            }
+            byte[] returnBytes = new byte[hexDeviceMacString.Length / 2];
+            for (int i = 0; i < returnBytes.Length; i++)
+                returnBytes[i] = Convert.ToByte(hexDeviceMacString.Substring(i * 2, 2), 16);
+            return returnBytes;
+        } 
+
+        /// <summary>
+        /// 浜岃繘鍒舵暟缁勮浆鍗佸叚杩涘埗瀛楃涓�
+        /// </summary>
+        /// <param name="btyes"></param>
+        /// <returns></returns>
+        private string Byte2hex(byte[] btyes) 
+        {
+            StringBuilder sb = new StringBuilder(btyes.Length * 2);
+            for (int i = 0; i < btyes.Length; i++)
+            {
+                int hight = ((btyes[i] >> 4) & 0x0f);
+                int low = btyes[i] & 0x0f;
+                sb.Append(hight > 9 ? (char)((hight - 10) + 'a') : (char)(hight + '0'));
+                sb.Append(low > 9 ? (char)((low - 10) + 'a') : (char)(low + '0'));
+            }
+            return sb.ToString();
+        }
+
+
 
         /// <summary>
         ///璇锋眰鏈嶅姟鍣紙涓庝綇瀹呮湁鍏�:渚嬪锛沨omeId锛� 
@@ -97,7 +230,7 @@
             {
                 if (TipType.flicker == tipType)
                 {
-                    if (responsePackNew == null)
+                    if (responsePackNew == null || responsePackNew.Code == "-1")
                     {
                         responsePackNew = new ResponsePackNew { message = "娌″洖澶�,璇风‘璁ょ綉缁滄槸鍚︽甯�.", Code = "-1", };
                     }

--
Gitblit v1.8.0