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