From e985d1b79937c41ebdaa4caa2974ec03929db915 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 20 一月 2021 11:43:54 +0800
Subject: [PATCH] 20200120:ios 红外包蓝牙sdk对接

---
 HDL-ON_iOS/BlueWifi.cs |  268 +++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 195 insertions(+), 73 deletions(-)

diff --git a/HDL-ON_iOS/BlueWifi.cs b/HDL-ON_iOS/BlueWifi.cs
index d0a6ef1..e5eeff6 100644
--- a/HDL-ON_iOS/BlueWifi.cs
+++ b/HDL-ON_iOS/BlueWifi.cs
@@ -1,83 +1,205 @@
 锘縰sing System;
-using HdlBluWi;
+using CoreBluetooth;
 using Foundation;
+using HdlBlufi;
+
 namespace HDL_ON
 {
 
-    public class BlueWifi
+    public class MyBlufiClient 
     {
-        public BlueWifi()
+
+        HdlBluWi share;
+
+        BlufiClient blufiClient;
+
+        public new BlueWifiDelegate BlufiDelegate;
+        public MyBlufiClient()
         {
-            //BlufiDelegate
+            SetBlufiDeviceDelegate(null);
+
+            share = HdlBluWi.Share();
+
+
+            blufiClient = new BlufiClient();
+
+            blufiClient.CentralManagerDelete = new BlueCBCentralManagerDelegate();
+            blufiClient.BlufiDelegate = new BlueWifiDelegate(blufiClient);
+        }
+
+        //public string GetPer()
+        //{
+            //share.
+        //}
+
+
+        /// <summary>
+        /// 鎼滅储鍒拌摑鐗欒澶囦箣鍚庡埌浠g悊浜嬩欢
+        /// </summary>
+        FBYBleDeviceBackBlock getBlufiDeviceDelegate;
+        /// <summary>
+        /// 璁惧鎼滅储鍒拌摑鐗欒澶囦箣鍚庡埌浠g悊浜嬩欢
+        /// </summary>
+        public void SetBlufiDeviceDelegate(Action<string,string> action)
+        {
+            getBlufiDeviceDelegate = new FBYBleDeviceBackBlock((arg0) => {
+                action?.Invoke(arg0.Name,arg0.Uuid.ToString());
+                if (!string.IsNullOrEmpty(arg0.Name)&& arg0.Name.Contains("BLU"))
+                {
+                    Console.WriteLine($"{arg0.Name}  :  {arg0.Uuid}");
+                }
+            });
+        }
+
+        /// <summary>
+        /// 鎼滅储钃濈墮璁惧
+        /// </summary>
+        public void ScanBlufi()
+        {
+            share.StartScan(getBlufiDeviceDelegate);
+        }
+        /// <summary>
+        /// 鍋滄鎼滅储钃濈墮璁惧
+        /// </summary>
+        public void StopScanBlufi()
+        {
+            share.StopScan();
+        }
+        /// <summary>
+        /// 鍏抽棴 BlufiClient Close BlufiClient
+        /// 閲婃斁璧勬簮
+        /// </summary>
+        public void CloseBlufiClient()
+        {
+            blufiClient.Close();
+        }
+
+        /// <summary>
+        /// 閾炬帴钃濈墮
+        /// </summary>
+        public void ConnectionBlufi(string blufiId)
+        {
+            blufiClient.Connect(blufiId);
+        }
+
+
+
+        /// <summary>
+        /// 鏂紑钃濈墮閾炬帴
+        /// </summary>
+        public void CloseConnectionBlufi()
+        {
+            blufiClient.RequestCloseConnection();
+        }
+
+        /// <summary>
+        /// 鍙戦�佹暟鎹�
+        /// </summary>
+        public void SendMsg(string msg)
+        {
+            NSData vs = new NSData();
+            vs = msg;
+            blufiClient.PostCustomData(vs);
+        }
+
+
+
+        public class BlueWifiDelegate : BlufiDelegate
+        {
+            [Weak] BlufiClient _client;
+            public BlueWifiDelegate(BlufiClient client)
+            {
+                _client = client;
+            }
+            public BlueWifiDelegate()
+            {
+            }
+
+            protected BlueWifiDelegate(NSObjectFlag t) : base(t)
+            {
+            }
+
+            protected internal BlueWifiDelegate(IntPtr handle) : base(handle)
+            {
+            }
+
+            public override void Blufi_didNegotiateSecurity(HdlBlufi.BlufiClient client, BlufiStatusCode status)
+            {
+                Console.WriteLine("Blufi_didNegotiateSecurity");
+                //base.Blufi_didNegotiateSecurity(client, status);
+            }
+
+            public override void Blufi_didPostCustomData(HdlBlufi.BlufiClient client, NSData data, BlufiStatusCode status)
+            {
+                if (status == BlufiStatusCode.Success)
+                {
+                    MainPage.Log($"鍙戦�佽摑鐗欐暟鎹垚鍔�:{data.ToString()}");
+                }
+                else
+                {
+                    MainPage.Log("鍙戦�佽摑鐗欐暟鎹け璐�");
+                }
+            }
+
+            public override void Blufi_didReceiveDeviceScanResponse(HdlBlufi.BlufiClient client, BlufiScanResponse[] scanResults, BlufiStatusCode status)
+            {
+                Console.WriteLine("Blufi_didReceiveDeviceScanResponse");
+                //base.Blufi_didReceiveDeviceScanResponse(client, scanResults, status);
+            }
+
+            public override void Blufi_didReceiveDeviceVersionResponse(HdlBlufi.BlufiClient client, BlufiVersionResponse response, BlufiStatusCode status)
+            {
+                Console.WriteLine("Blufi_didReceiveDeviceVersionResponse");
+                //base.Blufi_didReceiveDeviceVersionResponse(client, response, status);
+            }
+
+            public override void Blufi_didPostConfigureParams(HdlBlufi.BlufiClient client, BlufiStatusCode status)
+            {
+                Console.WriteLine("Blufi_didPostConfigureParams");
+                //base.Blufi_didPostConfigureParams(client, status);
+            }
+
+            public override void Blufi_didReceiveCustomData(HdlBlufi.BlufiClient client, NSData data, BlufiStatusCode status)
+            {
+                Console.WriteLine("Blufi_didReceiveCustomData");
+                //base.Blufi_didReceiveCustomData(client, data, status);
+            }
+
+            public override void Blufi_didReceiveDeviceStatusResponse(HdlBlufi.BlufiClient client, BlufiStatusResponse response, BlufiStatusCode status)
+            {
+                Console.WriteLine("Blufi_didReceiveDeviceStatusResponse");
+                //base.Blufi_didReceiveDeviceStatusResponse(client, response, status);
+            }
+
+            public override void Blufi_didReceiveError(HdlBlufi.BlufiClient client, nint errCode)
+            {
+                Console.WriteLine("Blufi_didReceiveError");
+                //base.Blufi_didReceiveError(client, errCode);
+            }
+
+            public override void Blufi_gattPrepared(HdlBlufi.BlufiClient client, BlufiStatusCode status, CBService service, CBCharacteristic writeChar, CBCharacteristic notifyChar)
+            {
+                if(status == BlufiStatusCode.Success)
+                {
+                    MainPage.Log("钃濈墮杩炴帴鎴愬姛");
+                }
+                else
+                {
+                    MainPage.Log("钃濈墮杩炴帴澶辫触");
+                }
+                //base.Blufi_gattPrepared(client, status, service, writeChar, notifyChar);
+            }
+        }
+
+        public class BlueCBCentralManagerDelegate : CBCentralManagerDelegate
+        {
+            public override void UpdatedState(CBCentralManager central)
+            {
+                
+                //throw new NotImplementedException();
+            }
+            //public override void 
         }
     }
 
-    public class BlueWifiDelegate : BlufiDelegate
-    {
-        public BlueWifiDelegate(BlufiClient client)
-        {
-            _client = client;
-        }
-
-
-		[Weak] BlufiClient _client;
-		public override void Blufi(BlufiClient client, BlufiStatusCode status)
-        {
-
-        }
-
-		public override void Blufi_DidPostConfigureParams(BlufiClient client, BlufiStatusCode status)
-        {
-
-        }
-
-		public override void Blufi_DidPostCustomData(BlufiClient client, NSData data, BlufiStatusCode status)
-        {
-
-        }
-
-
-        public override void Blufi_DidReceiveCustomData(BlufiClient client, NSData data, BlufiStatusCode status)
-        {
-
-        }
-
-
-        //public override void Blufi_DidReceiveDeviceScanResponse(BlufiClient client, NSObject[]? scanResults, BlufiStatusCode status)
-        //{
-
-        //}
-
-
-        public override void Blufi_DidReceiveDeviceStatusResponse(BlufiClient client, NSObject response, BlufiStatusCode status)
-        {
-
-        }
-
-
-        public override void Blufi_DidReceiveDeviceVersionResponse(BlufiClient client, NSObject response, BlufiStatusCode status)
-        {
-
-        }
-
-
-        public override void Blufi_DidReceiveError(BlufiClient client, nint errCode)
-        {
-
-        }
-
-
-        //public override bool Blufi_GattNotification(BlufiClient client, NSData data, NSObject pkgType, NSObject subType)
-        //{
-
-        //}
-
-
-        //public override void Blufi_GattPrepared(BlufiClient client, BlufiStatusCode status, CBService? service, CBCharacteristic? writeChar, CBCharacteristic? notifyChar)
-        //{
-
-        //}
-
-
-    }
-}
+}
\ No newline at end of file

--
Gitblit v1.8.0