| | |
| | | using 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> |
| | | /// 搜索到蓝牙设备之后到代理事件 |
| | | /// </summary> |
| | | FBYBleDeviceBackBlock getBlufiDeviceDelegate; |
| | | /// <summary> |
| | | /// 设备搜索到蓝牙设备之后到代理事件 |
| | | /// </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) |
| | | //{ |
| | | |
| | | //} |
| | | |
| | | |
| | | } |
| | | } |
| | | } |