From 5f46903845cf9b2cb4d7f186370d3eb7fb6c9577 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期四, 21 一月 2021 16:05:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/NewFilePath' into WJC --- HDL-ON_iOS/BlueWifi.cs | 205 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 205 insertions(+), 0 deletions(-) diff --git a/HDL-ON_iOS/BlueWifi.cs b/HDL-ON_iOS/BlueWifi.cs new file mode 100644 index 0000000..e5eeff6 --- /dev/null +++ b/HDL-ON_iOS/BlueWifi.cs @@ -0,0 +1,205 @@ +锘縰sing System; +using CoreBluetooth; +using Foundation; +using HdlBlufi; + +namespace HDL_ON +{ + + public class MyBlufiClient + { + + HdlBluWi share; + + BlufiClient blufiClient; + + public new BlueWifiDelegate BlufiDelegate; + public MyBlufiClient() + { + 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 + } + } + +} \ No newline at end of file -- Gitblit v1.8.0