设备扫描优化&我的收藏返回记忆位置
This commit is contained in:
parent
c209811f9f
commit
7f56624ec7
@ -238,11 +238,14 @@ public class BluetoothDeviceScript : MonoBehaviour
|
|||||||
{
|
{
|
||||||
if (parts.Length >= 2)
|
if (parts.Length >= 2)
|
||||||
{
|
{
|
||||||
if (ConnectedDisconnectPeripheralAction != null)
|
if (DisconnectedPeripheralAction != null)
|
||||||
ConnectedDisconnectPeripheralAction(parts[1]);
|
{
|
||||||
|
DisconnectedPeripheralAction(parts[1]);
|
||||||
if (DisconnectedPeripheralAction != null)
|
}
|
||||||
DisconnectedPeripheralAction(parts[1]);
|
else if (ConnectedDisconnectPeripheralAction != null)
|
||||||
|
{
|
||||||
|
ConnectedDisconnectPeripheralAction(parts[1]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (message.Length > connectionError.Length && message.Substring(0,connectionError.Length) == connectionError){
|
else if (message.Length > connectionError.Length && message.Substring(0,connectionError.Length) == connectionError){
|
||||||
|
|||||||
@ -104,6 +104,7 @@ public static class App
|
|||||||
|
|
||||||
public static Dictionary<string, string> LanguageManager { get; set; }
|
public static Dictionary<string, string> LanguageManager { get; set; }
|
||||||
public static string CurrentRouteType { get; set; }
|
public static string CurrentRouteType { get; set; }
|
||||||
|
public static string CurrentSubRouteType { get; set; }
|
||||||
#region 语言改变事件
|
#region 语言改变事件
|
||||||
public static event ChangeLanguageDelegate ChangeLanguageEvent;
|
public static event ChangeLanguageDelegate ChangeLanguageEvent;
|
||||||
static Dictionary<string, Dictionary<string, string>> dic;
|
static Dictionary<string, Dictionary<string, string>> dic;
|
||||||
|
|||||||
@ -1,14 +1,11 @@
|
|||||||
using Assets.Scripts.Ble;
|
using Assets.Scripts.Ble;
|
||||||
using Assets.Scripts.Ble.Service;
|
|
||||||
using Assets.Scripts.Devices.Ble.Devices;
|
using Assets.Scripts.Devices.Ble.Devices;
|
||||||
using Assets.Scripts.Devices.Ble.Interfaces;
|
using Assets.Scripts.Devices.Ble.Interfaces;
|
||||||
using Assets.Scripts.UI.Prefab.Device;
|
using Assets.Scripts.UI.Prefab.Device;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Assets.Scripts.Devices.Ble
|
namespace Assets.Scripts.Devices.Ble
|
||||||
@ -20,14 +17,33 @@ namespace Assets.Scripts.Devices.Ble
|
|||||||
private IDictionary<string, BleDevice> discoveredDevices = new Dictionary<string, BleDevice>();
|
private IDictionary<string, BleDevice> discoveredDevices = new Dictionary<string, BleDevice>();
|
||||||
|
|
||||||
public IBleWinHwInterface hwInterface { get; private set; }
|
public IBleWinHwInterface hwInterface { get; private set; }
|
||||||
|
|
||||||
|
private System.Timers.Timer timer;
|
||||||
public BleDeviceAdapter(IBleWinHwInterface bleWinHwInterface)
|
public BleDeviceAdapter(IBleWinHwInterface bleWinHwInterface)
|
||||||
{
|
{
|
||||||
|
if (timer == null)
|
||||||
|
{
|
||||||
|
timer = new System.Timers.Timer(1000);
|
||||||
|
timer.Elapsed += Timer_Elapsed;
|
||||||
|
timer.Start();
|
||||||
|
}
|
||||||
hwInterface = bleWinHwInterface;// BleWinHwInterface.GetInterface();
|
hwInterface = bleWinHwInterface;// BleWinHwInterface.GetInterface();
|
||||||
|
|
||||||
hwInterface.BluetoothStateChangedEvent += HwInterface_BluetoothStateChangedEvent;
|
hwInterface.BluetoothStateChangedEvent += HwInterface_BluetoothStateChangedEvent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
|
||||||
|
{
|
||||||
|
//移除到3s没有扫描到的设备
|
||||||
|
var now = DateTime.Now;
|
||||||
|
var needRemove = discoveredDevices.Where(c => (now - c.Value.LastActiveTime).TotalSeconds >= 3 && c.Value.State != Ant.DeviceState.Connected).ToList();
|
||||||
|
foreach (var item in needRemove)
|
||||||
|
{
|
||||||
|
discoveredDevices.Remove(item.Key);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private void HwInterface_BluetoothStateChangedEvent(IBleWinHwInterface hwInterface, BleState bleState)
|
private void HwInterface_BluetoothStateChangedEvent(IBleWinHwInterface hwInterface, BleState bleState)
|
||||||
{
|
{
|
||||||
if(bleState == BleState.Off)
|
if(bleState == BleState.Off)
|
||||||
@ -60,14 +76,10 @@ namespace Assets.Scripts.Devices.Ble
|
|||||||
{
|
{
|
||||||
hwInterface.StartScan((device) =>
|
hwInterface.StartScan((device) =>
|
||||||
{
|
{
|
||||||
if (!discoveredDevices.ContainsKey(device.Peripheral.Address))
|
if (!discoveredDevices.ContainsKey(device.Peripheral.Address)&& !string.IsNullOrWhiteSpace(device.Peripheral.Name))
|
||||||
{
|
{
|
||||||
Debug.Log($"发现设备{ device.Peripheral.Address }, \t\tName:{ device.Peripheral.Name }, type:{ device.SensorType } 服务:{string.Join(",", device.Services)}");
|
Debug.Log($"发现设备{ device.Peripheral.Address }, \t\tName:{ device.Peripheral.Name }, type:{ device.SensorType } 服务:{string.Join(",", device.Services)}");
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(device.Peripheral.Name))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (device.SensorType == Ant.SensorType.FtmsTrainer)
|
if (device.SensorType == Ant.SensorType.FtmsTrainer)
|
||||||
{
|
{
|
||||||
var device1 = new Ftms(device.Peripheral, hwInterface);
|
var device1 = new Ftms(device.Peripheral, hwInterface);
|
||||||
@ -110,10 +122,6 @@ namespace Assets.Scripts.Devices.Ble
|
|||||||
var device1 = new SpeedCadence(device.Peripheral, hwInterface);
|
var device1 = new SpeedCadence(device.Peripheral, hwInterface);
|
||||||
discoveredDevices.Add(device.Peripheral.Address, device1);
|
discoveredDevices.Add(device.Peripheral.Address, device1);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var device111 = discoveredDevices.Last().Value;
|
var device111 = discoveredDevices.Last().Value;
|
||||||
if (device111 != null && device111.State == Ant.DeviceState.Disconnected)
|
if (device111 != null && device111.State == Ant.DeviceState.Disconnected)
|
||||||
@ -134,14 +142,7 @@ namespace Assets.Scripts.Devices.Ble
|
|||||||
{
|
{
|
||||||
discoveredDevices[device.Peripheral.Address].SignalStrength = device.Rssi;
|
discoveredDevices[device.Peripheral.Address].SignalStrength = device.Rssi;
|
||||||
discoveredDevices[device.Peripheral.Address].LastActiveTime = DateTime.Now;
|
discoveredDevices[device.Peripheral.Address].LastActiveTime = DateTime.Now;
|
||||||
//Debug.Log($"设备{ device.Peripheral.Name }信号量:{ device.Rssi }");
|
Debug.Log($"设备{ device.Peripheral.Name }信号量:{ device.Rssi }");
|
||||||
}
|
|
||||||
//移除到5s没有扫描到的设备
|
|
||||||
var now = DateTime.Now;
|
|
||||||
var needRemove = discoveredDevices.Where(c => (now - c.Value.LastActiveTime).TotalSeconds > 5 && c.Value.State == Ant.DeviceState.Disconnected).ToList();
|
|
||||||
foreach (var item in needRemove)
|
|
||||||
{
|
|
||||||
discoveredDevices.Remove(item.Key);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -155,6 +156,8 @@ namespace Assets.Scripts.Devices.Ble
|
|||||||
{
|
{
|
||||||
this.ReleaseDevices();
|
this.ReleaseDevices();
|
||||||
hwInterface.Dispose();
|
hwInterface.Dispose();
|
||||||
|
timer.Stop();
|
||||||
|
timer.Dispose();
|
||||||
base.Dispose();
|
base.Dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -225,7 +225,7 @@ namespace Assets.Scripts.Ble
|
|||||||
IsSuccess = true,
|
IsSuccess = true,
|
||||||
Error = null
|
Error = null
|
||||||
};
|
};
|
||||||
PeripheralDisconnected(address, info);//连接前断开
|
//PeripheralDisconnected(address, info);//连接前断开
|
||||||
callback?.Invoke(self, info, s);
|
callback?.Invoke(self, info, s);
|
||||||
this.callbacks.Remove(info);
|
this.callbacks.Remove(info);
|
||||||
Debug.Log("连接成功!" + info.Name);
|
Debug.Log("连接成功!" + info.Name);
|
||||||
@ -242,8 +242,10 @@ namespace Assets.Scripts.Ble
|
|||||||
CharacteristicsDiscovered(address, service, characteristic);
|
CharacteristicsDiscovered(address, service, characteristic);
|
||||||
}, (address) =>
|
}, (address) =>
|
||||||
{
|
{
|
||||||
|
var ble = new WinBlePeripheralInfo(address,string.Empty);
|
||||||
Debug.Log("disconnect device:" + address);
|
Debug.Log("disconnect device:" + address);
|
||||||
PeripheralDisconnected(address, info);
|
peripheralDisconnectedEvent(this, ble, null, false);
|
||||||
|
PeripheralDisconnected(address, ble);
|
||||||
},
|
},
|
||||||
(address, error) =>
|
(address, error) =>
|
||||||
{
|
{
|
||||||
|
|||||||
@ -36,7 +36,7 @@ namespace Assets.Scripts.Devices.Ble
|
|||||||
this.managerStatusChanged -= value;
|
this.managerStatusChanged -= value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
WclBleManagerStatus statusEnum = WclBleManagerStatus.RadioOn;
|
WclBleManagerStatus statusEnum = WclBleManagerStatus.RadioOff;
|
||||||
internal BleMobileThread() {
|
internal BleMobileThread() {
|
||||||
Initialize();//初始蓝牙
|
Initialize();//初始蓝牙
|
||||||
}
|
}
|
||||||
@ -45,7 +45,6 @@ namespace Assets.Scripts.Devices.Ble
|
|||||||
var self = this;
|
var self = this;
|
||||||
if (statusEnum == WclBleManagerStatus.RadioOff)
|
if (statusEnum == WclBleManagerStatus.RadioOff)
|
||||||
{
|
{
|
||||||
//Initialize();
|
|
||||||
BluetoothLEHardwareInterface.BluetoothEnable(true);
|
BluetoothLEHardwareInterface.BluetoothEnable(true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@ -1,17 +1,7 @@
|
|||||||
using Assets.Scripts;
|
using Assets.Scripts;
|
||||||
using Assets.Scripts.Apis;
|
|
||||||
using Assets.Scripts.Apis.Models;
|
|
||||||
using Assets.Scripts.UI.Prefab.MapList;
|
|
||||||
using DG.Tweening;
|
using DG.Tweening;
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using UnityEditor;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Events;
|
|
||||||
using UnityEngine.EventSystems;
|
using UnityEngine.EventSystems;
|
||||||
using UnityEngine.SceneManagement;
|
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -38,24 +28,14 @@ public class MapListExtraController : PFUIPanel
|
|||||||
#else
|
#else
|
||||||
tmpCollectItem = Resources.Load<Transform>("UI/Prefab/NewRoute/RouteItem");
|
tmpCollectItem = Resources.Load<Transform>("UI/Prefab/NewRoute/RouteItem");
|
||||||
#endif
|
#endif
|
||||||
|
App.CurrentSubRouteType = "Route";
|
||||||
UIManager.AddEvent(typeSelector.Find("Container/Route").gameObject, EventTriggerType.PointerClick, b =>
|
UIManager.AddEvent(typeSelector.Find("Container/Route").gameObject, EventTriggerType.PointerClick, b =>
|
||||||
{
|
{
|
||||||
typeSelector.Find("Container/Route").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
ShowRouteList();
|
||||||
typeSelector.Find("Container1/Collection").GetComponent<Text>().color = Utils.HexToColorHtml("#5c5c6e");
|
|
||||||
SetImageStyle(true);
|
|
||||||
p1.DOLocalMoveX(p1originx, 0.5f);
|
|
||||||
p2.DOLocalMoveX(p2originx, 0.5f);
|
|
||||||
HandleMobileNavCustom(true);
|
|
||||||
});
|
});
|
||||||
UIManager.AddEvent(typeSelector.Find("Container1/Collection").gameObject, EventTriggerType.PointerClick, b =>
|
UIManager.AddEvent(typeSelector.Find("Container1/Collection").gameObject, EventTriggerType.PointerClick, b =>
|
||||||
{
|
{
|
||||||
typeSelector.Find("Container/Route").GetComponent<Text>().color = Utils.HexToColorHtml("#5c5c6e");
|
ShowCollectionList();
|
||||||
typeSelector.Find("Container1/Collection").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
|
||||||
SetImageStyle(false);
|
|
||||||
p1.DOLocalMoveX(p1originx - listWidth, 0.5f);
|
|
||||||
p2.DOLocalMoveX(p2originx - listWidth, 0.5f);
|
|
||||||
HandleMobileNavCustom(false);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -69,15 +49,30 @@ public class MapListExtraController : PFUIPanel
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Update()
|
private void ShowRouteList()
|
||||||
{
|
{
|
||||||
|
App.CurrentSubRouteType = "Route";
|
||||||
|
typeSelector.Find("Container/Route").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||||
|
typeSelector.Find("Container1/Collection").GetComponent<Text>().color = Utils.HexToColorHtml("#5c5c6e");
|
||||||
|
SetImageStyle(true);
|
||||||
|
p1.DOLocalMoveX(p1originx, 0.5f);
|
||||||
|
p2.DOLocalMoveX(p2originx, 0.5f);
|
||||||
|
HandleMobileNavCustom(true);
|
||||||
|
}
|
||||||
|
private void ShowCollectionList()
|
||||||
|
{
|
||||||
|
App.CurrentSubRouteType = "Collection";
|
||||||
|
typeSelector.Find("Container/Route").GetComponent<Text>().color = Utils.HexToColorHtml("#5c5c6e");
|
||||||
|
typeSelector.Find("Container1/Collection").GetComponent<Text>().color = Utils.HexToColorHtml("#ffffff");
|
||||||
|
SetImageStyle(false);
|
||||||
|
p1.DOLocalMoveX(p1originx - listWidth, 0.5f);
|
||||||
|
p2.DOLocalMoveX(p2originx - listWidth, 0.5f);
|
||||||
|
HandleMobileNavCustom(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Show()
|
public override void Show()
|
||||||
{
|
{
|
||||||
base.Show();
|
base.Show();
|
||||||
|
|
||||||
}
|
}
|
||||||
private int pageIndex = 0;
|
private int pageIndex = 0;
|
||||||
void HandleMobileNavCustom(bool b)
|
void HandleMobileNavCustom(bool b)
|
||||||
@ -131,6 +126,14 @@ public class MapListExtraController : PFUIPanel
|
|||||||
typeSelector.Find("Container1/Collection").GetComponent<Text>().color = Utils.HexToColorHtml("#5c5c6e");
|
typeSelector.Find("Container1/Collection").GetComponent<Text>().color = Utils.HexToColorHtml("#5c5c6e");
|
||||||
SetImageStyle(true);
|
SetImageStyle(true);
|
||||||
HandleMobileNavCustom(true);
|
HandleMobileNavCustom(true);
|
||||||
|
if (App.CurrentSubRouteType == "Route")
|
||||||
|
{
|
||||||
|
ShowRouteList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ShowCollectionList();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
private async void GetList()
|
private async void GetList()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -347,7 +347,8 @@ public class UIManager : MonoBehaviour
|
|||||||
}
|
}
|
||||||
public static void ShowNewRouteDetailPanel(int areaId,string coverImage)
|
public static void ShowNewRouteDetailPanel(int areaId,string coverImage)
|
||||||
{
|
{
|
||||||
App.CurrentRouteType = "";
|
if(App.CurrentRouteType != "My Collection")
|
||||||
|
App.CurrentRouteType = "";
|
||||||
UIManager.Show(UIManager.Instance.NewRouteDetailPanel, UIManager.Instance.MainPanel);
|
UIManager.Show(UIManager.Instance.NewRouteDetailPanel, UIManager.Instance.MainPanel);
|
||||||
UIManager.Instance.NewRouteDetailPanel.GetComponent<NewRouteDetailController>().Initial(areaId, coverImage);
|
UIManager.Instance.NewRouteDetailPanel.GetComponent<NewRouteDetailController>().Initial(areaId, coverImage);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -14,7 +14,4 @@ EditorBuildSettings:
|
|||||||
- enabled: 1
|
- enabled: 1
|
||||||
path: Assets/Scenes/Ride.unity
|
path: Assets/Scenes/Ride.unity
|
||||||
guid: d9f6ee75d0d54714fb4d2f90016a28bc
|
guid: d9f6ee75d0d54714fb4d2f90016a28bc
|
||||||
- enabled: 1
|
|
||||||
path: Assets/Scenes/VideoPlay.unity
|
|
||||||
guid: f25b9f482e27079448d130ae1ed0ea34
|
|
||||||
m_configObjects: {}
|
m_configObjects: {}
|
||||||
|
|||||||
@ -38,6 +38,7 @@ GraphicsSettings:
|
|||||||
- {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
|
- {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
- {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0}
|
- {fileID: 16001, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
- {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
|
- {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
|
- {fileID: 16003, guid: 0000000000000000f000000000000000, type: 0}
|
||||||
m_PreloadedShaders: []
|
m_PreloadedShaders: []
|
||||||
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
|
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
|
||||||
type: 0}
|
type: 0}
|
||||||
|
|||||||
@ -868,7 +868,7 @@ PlayerSettings:
|
|||||||
platformArchitecture:
|
platformArchitecture:
|
||||||
iPhone: 1
|
iPhone: 1
|
||||||
scriptingBackend:
|
scriptingBackend:
|
||||||
Android: 0
|
Android: 1
|
||||||
Standalone: 0
|
Standalone: 0
|
||||||
il2cppCompilerConfiguration:
|
il2cppCompilerConfiguration:
|
||||||
Standalone: 0
|
Standalone: 0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user