From 02d2dcdbf7e1c067ad862692f7738518fbb33b02 Mon Sep 17 00:00:00 2001 From: lishuo Date: Wed, 8 Jun 2022 13:05:56 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=BF=9E=E6=8E=A5=E7=A8=B3?= =?UTF-8?q?=E5=AE=9A=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Android/unityandroidbluetoothlelib.jar | Bin 37643 -> 37523 bytes Assets/Plugins/BluetoothDeviceScript.cs | 9 +++- Assets/Plugins/BluetoothHardwareInterface.cs | 3 +- Assets/Scripts/Devices/Ble/BleDevice.cs | 1 + .../Devices/Ble/mobile/BleMobileInterface.cs | 44 ++++++++++++++---- 5 files changed, 47 insertions(+), 10 deletions(-) diff --git a/Assets/Plugins/Android/unityandroidbluetoothlelib.jar b/Assets/Plugins/Android/unityandroidbluetoothlelib.jar index 21f7f248d34d1e8b36ce63595d8a9e3a03140b88..8731dae3d46719d332e111e7fd5fd1a39bd4e0f5 100644 GIT binary patch delta 35243 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 Hn>YRjsfLTK delta 35330 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 diff --git a/Assets/Plugins/BluetoothDeviceScript.cs b/Assets/Plugins/BluetoothDeviceScript.cs index 14d1b0d6..7685952f 100644 --- a/Assets/Plugins/BluetoothDeviceScript.cs +++ b/Assets/Plugins/BluetoothDeviceScript.cs @@ -24,6 +24,7 @@ public class BluetoothDeviceScript : MonoBehaviour public Action PeripheralReceivedWriteDataAction; public Action ConnectedPeripheralAction; public Action ConnectedDisconnectPeripheralAction { get; set; } + public Action ConnectErrorAction { get; set; } public Action DisconnectedPeripheralAction; public Action DeviceBleStatusDisconnectedAction; public Action DiscoveredServiceAction; @@ -53,10 +54,11 @@ public class BluetoothDeviceScript : MonoBehaviour void Update () { } - + const string connectionError = "ConnectionError"; const string deviceInitializedString = "Initialized"; const string deviceDeInitializedString = "DeInitialized"; const string deviceErrorString = "Error"; + const string deviceConnectErrorString = "ConnectionError"; const string deviceServiceAdded = "ServiceAdded"; const string deviceStartedAdvertising = "StartedAdvertising"; const string deviceStoppedAdvertising = "StoppedAdvertising"; @@ -77,6 +79,7 @@ public class BluetoothDeviceScript : MonoBehaviour public void OnBluetoothMessage (string message) { + Debug.Log(message); if (message != null) { char[] delim = new char[] { '~' }; @@ -242,6 +245,10 @@ public class BluetoothDeviceScript : MonoBehaviour DisconnectedPeripheralAction(parts[1]); } } + else if (message.Length > connectionError.Length && message.Substring(0,connectionError.Length) == connectionError){ + if (ConnectErrorAction != null) + ConnectErrorAction(parts[1], parts[2]); + } else if (message.Length >= deviceDiscoveredService.Length && message.Substring (0, deviceDiscoveredService.Length) == deviceDiscoveredService) { if (parts.Length >= 3 && DiscoveredServiceAction != null) diff --git a/Assets/Plugins/BluetoothHardwareInterface.cs b/Assets/Plugins/BluetoothHardwareInterface.cs index 14b9cf82..93c85514 100644 --- a/Assets/Plugins/BluetoothHardwareInterface.cs +++ b/Assets/Plugins/BluetoothHardwareInterface.cs @@ -604,7 +604,7 @@ public class BluetoothLEHardwareInterface #endif } - public static void ConnectToPeripheral (string name, Action connectAction, Action serviceAction, Action characteristicAction, Action disconnectAction = null) + public static void ConnectToPeripheral (string name, Action connectAction, Action serviceAction, Action characteristicAction, Action disconnectAction = null, Action errorAction = null) { #if !UNITY_EDITOR_OSX || !EXPERIMENTAL_MACOS_EDITOR @@ -618,6 +618,7 @@ public class BluetoothLEHardwareInterface bluetoothDeviceScript.DiscoveredCharacteristicAction = characteristicAction; bluetoothDeviceScript.ConnectedDisconnectPeripheralAction = disconnectAction; bluetoothDeviceScript.DeviceBleStatusDisconnectedAction = disconnectAction; + bluetoothDeviceScript.ConnectErrorAction = errorAction; } #if EXPERIMENTAL_MACOS_EDITOR && (UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX) diff --git a/Assets/Scripts/Devices/Ble/BleDevice.cs b/Assets/Scripts/Devices/Ble/BleDevice.cs index cccf4679..7228e351 100644 --- a/Assets/Scripts/Devices/Ble/BleDevice.cs +++ b/Assets/Scripts/Devices/Ble/BleDevice.cs @@ -106,6 +106,7 @@ namespace Assets.Scripts.Devices.Ble if (response.Error != null) { + this.State = DeviceState.Disconnected; if (response.Error.Code == WclBleErrors.WCL_E_BLUETOOTH_LE_DEVICE_NOT_FOUND) { Debug.Log("未找到设备"); diff --git a/Assets/Scripts/Devices/Ble/mobile/BleMobileInterface.cs b/Assets/Scripts/Devices/Ble/mobile/BleMobileInterface.cs index 58d55173..b2c1a994 100644 --- a/Assets/Scripts/Devices/Ble/mobile/BleMobileInterface.cs +++ b/Assets/Scripts/Devices/Ble/mobile/BleMobileInterface.cs @@ -9,6 +9,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Timers; using UnityEngine; namespace Assets.Scripts.Ble @@ -210,30 +211,41 @@ namespace Assets.Scripts.Ble List servicelist = new List(); List characteristilist = new List(); + public void ConnectPeripheral(BlePeripheralInfo info, Action callback) { - if (!this.callbacks.ContainsKey(info)) + var exsit = this.callbacks.Where(c => c.Key.Address == info.Address).Any(); + if (!exsit) { this.callbacks.Add(info, callback); } + else + { + var obj = this.callbacks.Where(c => c.Key.Address == info.Address).FirstOrDefault(); + this.callbacks.Remove(obj.Key); + this.callbacks.Add(info, callback); + } Debug.Log("try connect device" + info.Name + this.callbacks.Count.ToString()); + var self = this; if (this.callbacks.Count == 1) { - BleResponse s = new BleResponse(); - s.IsSuccess = true; - s.Error = null; - var self = this; BluetoothLEHardwareInterface.ConnectToPeripheral(info.Address, (address) => { + BleResponse s = new BleResponse + { + IsSuccess = true, + Error = null + }; callback?.Invoke(self, info, s); this.callbacks.Remove(info); - Debug.Log("连接成功!"+info.Name); + Debug.Log("连接成功!" + info.Name); if (this.callbacks.Any()) { this.ConnectPeripheral(this.callbacks.First().Key, this.callbacks.First().Value); } }, (address, service) => { + Debug.Log("发现服务"); ServicesDiscovered(address, service); }, (address, service, characteristic) => { @@ -242,9 +254,25 @@ namespace Assets.Scripts.Ble { Debug.Log("disconnect device:" + address); PeripheralDisconnected(address, info); - }); + }, + (address, error) => + { + BleResponse s = new BleResponse + { + IsSuccess = false, + Error = new BleHwInterfaceError(error) + }; + callback?.Invoke(self, info, s); + this.callbacks.Remove(info); + if (this.callbacks.Any()) + { + this.ConnectPeripheral(this.callbacks.First().Key, this.callbacks.First().Value); + } + } + ); } } + #region 私有方法 //服务发现 private void ServicesDiscovered(string address, string service) @@ -305,7 +333,7 @@ namespace Assets.Scripts.Ble } var characteristicsDiscoveredCallback = characteristicsDiscoveredCallbacks.Where(c => c.Key.MatchAddress(address)); - if (serviceCallback.Any()) + if (characteristicsDiscoveredCallback.Any()) { characteristicsDiscoveredCallbacks.Remove(characteristicsDiscoveredCallback.First().Key); }