From e13a9980ce617db1394a76944186c5d5bd595d5d Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 02 六月 2021 14:37:12 +0800
Subject: [PATCH] 5月需求bug修复
---
HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs | 179 +++++++++++++++++++++++++++++++++--------------------------
1 files changed, 101 insertions(+), 78 deletions(-)
diff --git a/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs
index 21594a8..b416038 100644
--- a/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs
+++ b/HDL_ON/UI/UI0-Stan/Logic/HdlBluetoothAndroidLogic.cs
@@ -119,17 +119,20 @@
/// <param name="FinishEvent">鎼滅储缁撴潫鐨勪簨浠�</param>
public void ScanBluetooth(int waitTime, Action<List<BluetoothInfo>> FinishEvent)
{
- //鍐嶆妫�娴嬫槸鍚﹁兘澶熸悳绱㈣摑鐗�
- this.CheckCanScanBluetooth((result) =>
+ HdlThreadLogic.Current.RunMain(() =>
{
- if (result == true)
+ //鍐嶆妫�娴嬫槸鍚﹁兘澶熸悳绱㈣摑鐗�
+ this.CheckCanScanBluetooth((result) =>
{
- HdlThreadLogic.Current.RunThread(() =>
+ if (result == true)
{
- //寮�濮嬫悳绱㈣摑鐗�
- this.DoScanBluetooth(waitTime, FinishEvent);
- });
- }
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //寮�濮嬫悳绱㈣摑鐗�
+ this.DoScanBluetooth(waitTime, FinishEvent);
+ });
+ }
+ });
});
}
@@ -142,24 +145,36 @@
{
var listBluetoothInfo = new List<BluetoothInfo>();
- var adapter = Android.Bluetooth.BluetoothAdapter.DefaultAdapter;
- var scanner = adapter.BluetoothLeScanner;
+ BluetoothScanCallback scanCallback = null;
+ Android.Bluetooth.BluetoothAdapter adapter = null;
+ Android.Bluetooth.LE.BluetoothLeScanner scanner = null;
- var scanCallback = new BluetoothScanCallback();
- scanner.StartScan(null, new Android.Bluetooth.LE.ScanSettings.Builder().SetScanMode(Android.Bluetooth.LE.ScanMode.LowLatency).Build(), scanCallback);
+ //浠ラ槻涓囦竴,钃濈墮閮戒涪鍦ㄤ富绾跨▼涓繍琛�
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ adapter = Android.Bluetooth.BluetoothAdapter.DefaultAdapter;
+ scanner = adapter.BluetoothLeScanner;
+ scanCallback = new BluetoothScanCallback();
+ scanner.StartScan(null, new Android.Bluetooth.LE.ScanSettings.Builder().SetScanMode(Android.Bluetooth.LE.ScanMode.LowLatency).Build(), scanCallback);
+ }, ShowErrorMode.NO);
+
+ //绛夊緟
System.Threading.Thread.Sleep(waitTime * 1000);
- scanner.StopScan(scanCallback);
- adapter.Dispose();
-
- foreach (var data in scanCallback.listData)
+ HdlThreadLogic.Current.RunMain(() =>
{
- listBluetoothInfo.Add(data);
- }
- scanCallback.listData.Clear();
+ scanner.StopScan(scanCallback);
+ adapter.Dispose();
- FinishEvent?.Invoke(listBluetoothInfo);
+ foreach (var data in scanCallback.listData)
+ {
+ listBluetoothInfo.Add(data);
+ }
+ scanCallback.listData.Clear();
+
+ FinishEvent?.Invoke(listBluetoothInfo);
+ });
}
/// <summary>
@@ -231,24 +246,35 @@
/// <param name="connectEvent">鍥犱负闇�瑕佸鏂瑰弽棣�,鎵�浠ヤ娇鐢ㄥ洖璋�(閾炬帴缁撴灉 false:杩炴帴澶辫触 true:杩炴帴鎴愬姛)</param>
public void ContectBluetooth(BluetoothInfo bluetooth, Action<bool> connectEvent)
{
- try
+ HdlThreadLogic.Current.RunMain(() =>
{
- this.nowBlufiClient = new Blufi.Espressif.BlufiClient(Application.Activity, bluetooth.Device);
-
- //涓�涓洖璋冧簨浠�
- var callback = new InnerGattCallback();
- callback.ConnectionStateEvent += (div, newState) =>
+ try
{
- if (div == 1)
+ this.nowBlufiClient = new Blufi.Espressif.BlufiClient(Application.Activity, bluetooth.Device);
+
+ //涓�涓洖璋冧簨浠�
+ var callback = new InnerGattCallback();
+ callback.ConnectionStateEvent += (div, newState) =>
{
- if (newState == Android.Bluetooth.ProfileState.Connected)
+ if (div == 1)
{
- //閾炬帴寤虹珛鎴愬姛
- connectEvent?.Invoke(true);
- //鍙�氱煡涓�娆�
- connectEvent = null;
+ if (newState == Android.Bluetooth.ProfileState.Connected)
+ {
+ //閾炬帴寤虹珛鎴愬姛
+ connectEvent?.Invoke(true);
+ //鍙�氱煡涓�娆�
+ connectEvent = null;
+ }
+ else if (newState == Android.Bluetooth.ProfileState.Disconnected)
+ {
+ //鍏抽棴閾炬帴
+ this.DisContectBluetooth();
+ connectEvent?.Invoke(false);
+ //鍙�氱煡涓�娆�
+ connectEvent = null;
+ }
}
- else if (newState == Android.Bluetooth.ProfileState.Disconnected)
+ else if (div == -1)
{
//鍏抽棴閾炬帴
this.DisContectBluetooth();
@@ -256,50 +282,42 @@
//鍙�氱煡涓�娆�
connectEvent = null;
}
- }
- else if (div == -1)
- {
- //鍏抽棴閾炬帴
- this.DisContectBluetooth();
- connectEvent?.Invoke(false);
- //鍙�氱煡涓�娆�
- connectEvent = null;
- }
- };
- nowBlufiClient.SetGattCallback(callback);
+ };
+ nowBlufiClient.SetGattCallback(callback);
- //鍙﹀涓�涓洖璋冧簨浠�
- var blufiCall = new BlufiCallbackMain();
- blufiCall.StateEvent += (div, data) =>
+ //鍙﹀涓�涓洖璋冧簨浠�
+ var blufiCall = new BlufiCallbackMain();
+ blufiCall.StateEvent += (div, data) =>
+ {
+ //-1:寮傚父 1:姝e父 2:鍙戦�佹暟鎹垚鍔� 3:鍙戦�佹暟鎹け璐�
+ if (div == StatuEnum.A寮傚父)
+ {
+ //鍏抽棴閾炬帴
+ this.DisContectBluetooth();
+ connectEvent?.Invoke(false);
+ //鍙�氱煡涓�娆�
+ connectEvent = null;
+ }
+ else if (div == StatuEnum.A鍙戦�佹垚鍔� || div == StatuEnum.A鍙戦�佸け璐�)
+ {
+ sendStatuValue = div == StatuEnum.A鍙戦�佹垚鍔� ? 1 : 0;
+ }
+ else if (div == StatuEnum.A钃濈墮鍙嶉)
+ {
+ //钃濈墮杩斿洖鐨勭粨鏋�
+ this.ReceiveEvent?.Invoke(data);
+ }
+ };
+ nowBlufiClient.SetBlufiCallback(blufiCall);
+ //鎵ц閾炬帴
+ nowBlufiClient.Connect();
+ }
+ catch
{
- //-1:寮傚父 1:姝e父 2:鍙戦�佹暟鎹垚鍔� 3:鍙戦�佹暟鎹け璐�
- if (div == StatuEnum.A寮傚父)
- {
- //鍏抽棴閾炬帴
- this.DisContectBluetooth();
- connectEvent?.Invoke(false);
- //鍙�氱煡涓�娆�
- connectEvent = null;
- }
- else if (div == StatuEnum.A鍙戦�佹垚鍔� || div == StatuEnum.A鍙戦�佸け璐�)
- {
- sendStatuValue = div == StatuEnum.A鍙戦�佹垚鍔� ? 1 : 0;
- }
- else if (div == StatuEnum.A钃濈墮鍙嶉)
- {
- //钃濈墮杩斿洖鐨勭粨鏋�
- this.ReceiveEvent?.Invoke(data);
- }
- };
- nowBlufiClient.SetBlufiCallback(blufiCall);
- //鎵ц閾炬帴
- nowBlufiClient.Connect();
- }
- catch
- {
- connectEvent?.Invoke(false);
- connectEvent = null;
- }
+ connectEvent?.Invoke(false);
+ connectEvent = null;
+ }
+ });
}
/// <summary>
@@ -488,9 +506,14 @@
try
{
this.sendStatuValue = -1;
- //鍙戦�佹暟鎹�
- var byteData = System.Text.Encoding.UTF8.GetBytes(i_data);
- this.nowBlufiClient.PostCustomData(byteData);
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //鍙戦�佹暟鎹�
+ var byteData = System.Text.Encoding.UTF8.GetBytes(i_data);
+ this.nowBlufiClient.PostCustomData(byteData);
+
+ }, ShowErrorMode.NO);
+
if (waiTime == 0) { return true; }
waiTime *= 5;
--
Gitblit v1.8.0