修复设备选择界面多设备选择bug
This commit is contained in:
1 parent
7729332f41
commit
5671b35dce
21 files changed
+111
-56
No files matched your search
@@ -41,7 +41,7 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
private UnityEngine.Object deviceItem;
|
||||
private VerticalLayoutGroup content;
|
||||
private PfUIButton connectBtn;
|
||||
private Dictionary<ushort, DeviceItem> deviceList;
|
||||
private Dictionary<string, DeviceItem> deviceList;
|
||||
private Text noDevice,Title;
|
||||
private RectTransform searchIconRect;
|
||||
|
||||
@@ -49,7 +49,7 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
{
|
||||
base.Awake();
|
||||
|
||||
deviceList = new Dictionary<ushort, DeviceItem>();
|
||||
deviceList = new Dictionary<string, DeviceItem>();
|
||||
|
||||
var container = this.transform.Find("GameObject");
|
||||
var closeBtn = container.Find("CloseBtn");
|
||||
@@ -64,7 +64,7 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
_x = searchIconRect.localPosition.x;
|
||||
_y = searchIconRect.localPosition.y;
|
||||
|
||||
base.SetRounded(panel.GetComponent<Image>().transform, 20f);
|
||||
base.SetRounded(panel.GetComponent<Image>().transform, 20f);
|
||||
|
||||
UIManager.AddEvent(closeBtn.gameObject, EventTriggerType.PointerClick, new UnityEngine.Events.UnityAction<BaseEventData>(e =>
|
||||
{
|
||||
@@ -82,7 +82,16 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
{
|
||||
if (item.Value.GetStatus() == false)
|
||||
{
|
||||
if (item.Value.DeviceInfo.Sensor == SensorType)
|
||||
if (SensorType == SensorType.SpeedCadence)
|
||||
{
|
||||
if (item.Value.DeviceInfo.Sensor == SensorType.SpeedCadence || item.Value.DeviceInfo.Sensor == SensorType.Cadence)
|
||||
{
|
||||
//Debug.Log("断开设备" + item.Value.DeviceInfo.Name);
|
||||
item.Value.DeviceInfo.Disconnect();
|
||||
DeviceCache.Remove(item.Value.DeviceInfo);
|
||||
}
|
||||
}
|
||||
else if (item.Value.DeviceInfo.Sensor == SensorType)
|
||||
{
|
||||
item.Value.DeviceInfo.Disconnect();
|
||||
DeviceCache.Remove(item.Value.DeviceInfo);
|
||||
@@ -90,7 +99,7 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
}
|
||||
}
|
||||
var dd = deviceList.Select(d => d.Value).Where(d => d.GetStatus()).FirstOrDefault();
|
||||
if(dd != null)
|
||||
if (dd != null)
|
||||
{
|
||||
dd.DeviceInfo.Connect();
|
||||
DeviceCache.Add(dd.DeviceInfo);
|
||||
@@ -98,7 +107,7 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
this.Close();
|
||||
}));
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// Start is called before the first frame update
|
||||
@@ -131,6 +140,7 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
//var a = AntConnector.Instance().discoveredDevices;
|
||||
switch (SensorType)
|
||||
{
|
||||
case SensorType.SpeedCadence:
|
||||
case SensorType.Cadence:
|
||||
devices = App.MainDeviceAdapter.GetDevices().Where(d => d.Sensor == SensorType || (d is ICadenceDevice && d.State == DeviceState.Connected)).OrderBy(d=>d.Priority).ToList();
|
||||
break;
|
||||
@@ -140,9 +150,7 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
case SensorType.Power:
|
||||
devices = App.MainDeviceAdapter.GetDevices().Where(d => d.Sensor == SensorType || (d is IPowerDevice && d.State == DeviceState.Connected)).OrderBy(d=>d.Priority).ToList();
|
||||
break;
|
||||
case SensorType.Speed:
|
||||
break;
|
||||
case SensorType.SpeedCadence:
|
||||
case SensorType.Speed:
|
||||
devices = App.MainDeviceAdapter.GetDevices().Where(d => d.Sensor == SensorType || (d is ISpeedDevice && d.State == DeviceState.Connected)).OrderBy(d => d.Priority).ToList();
|
||||
break;
|
||||
case SensorType.Trainer:
|
||||
@@ -154,7 +162,7 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
|
||||
foreach (var device in devices)
|
||||
{
|
||||
if (deviceList.ContainsKey(device.DeviceNumber))
|
||||
if (deviceList.ContainsKey(device.Id))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -170,7 +178,7 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
deviceItemObj.Set(true);
|
||||
foreach (var item in deviceList)
|
||||
{
|
||||
if (item.Key != deviceItemObj.DeviceInfo.DeviceNumber)
|
||||
if (item.Key != deviceItemObj.DeviceInfo.Id)
|
||||
{
|
||||
item.Value.Set(false);
|
||||
}
|
||||
@@ -186,7 +194,7 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
// }
|
||||
//}));
|
||||
|
||||
deviceList.Add(device.DeviceNumber, deviceItemObj);
|
||||
deviceList.Add(device.Id, deviceItemObj);
|
||||
}
|
||||
|
||||
if(deviceList.All(d=>d.Value.GetStatus() == false))
|
||||
@@ -199,6 +207,12 @@ public class ConnectDeviceModal : PFUIPanel
|
||||
//connectBtn.text.text = "DISCOUNECT";
|
||||
noDevice.text = firstDevice.DeviceInfo.Name;
|
||||
}
|
||||
//DeviceItem firstDevice;
|
||||
//var devicesTemp = deviceList.Select(d => d.Value).Where(d => d.DeviceInfo.State == DeviceState.Connected);
|
||||
//if(SensorType == SensorType.Cadence || SensorType == SensorType.SpeedCadence)
|
||||
//{
|
||||
// firstDevice = devicesTemp.FirstOrDefault(d=>d)
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ public class DeviceItem : Selectable, IEventSystemHandler, IPointerClickHandler
|
||||
public override void OnDeselect(BaseEventData eventData)
|
||||
{
|
||||
//base.OnDeselect(eventData);
|
||||
Debug.Log("deselect");
|
||||
//Debug.Log("deselect");
|
||||
|
||||
|
||||
//DeviceInfo.Disconnect();
|
||||
|
||||
@@ -158,7 +158,7 @@ public class DeviceView : MonoBehaviour
|
||||
|
||||
powerUnit.text = "W";
|
||||
}
|
||||
else if (SensorType == SensorType.SpeedCadence)
|
||||
else if (SensorType == SensorType.Speed)
|
||||
{
|
||||
sprite0 = Resources.Load<Sprite>("Images/Devices/Speed_0");
|
||||
sprite1 = Resources.Load<Sprite>("Images/Devices/Speed_1");
|
||||
@@ -166,7 +166,7 @@ public class DeviceView : MonoBehaviour
|
||||
|
||||
powerUnit.text = "KPH";
|
||||
}
|
||||
else if (SensorType == SensorType.Cadence)
|
||||
else if (SensorType == SensorType.Cadence || SensorType == SensorType.SpeedCadence)
|
||||
{
|
||||
sprite0 = Resources.Load<Sprite>("Images/Devices/Cadence_0");
|
||||
sprite1 = Resources.Load<Sprite>("Images/Devices/Cadence_1");
|
||||
@@ -289,15 +289,14 @@ public class DeviceView : MonoBehaviour
|
||||
{
|
||||
case SensorType.None:
|
||||
break;
|
||||
case SensorType.SpeedCadence:
|
||||
case SensorType.Cadence:
|
||||
return "Cadence Sensor";
|
||||
case SensorType.HeartRate:
|
||||
return "Heart Rate Monitor";
|
||||
case SensorType.Power:
|
||||
return "Power Meter";
|
||||
case SensorType.Speed:
|
||||
break;
|
||||
case SensorType.SpeedCadence:
|
||||
case SensorType.Speed:
|
||||
return "Speed Meter";
|
||||
case SensorType.Trainer:
|
||||
return "Smart Trainer";
|
||||
@@ -316,6 +315,7 @@ public class DeviceView : MonoBehaviour
|
||||
{
|
||||
case SensorType.None:
|
||||
break;
|
||||
case SensorType.SpeedCadence:
|
||||
case SensorType.Cadence:
|
||||
//cadenceValue.text = (connectedDevice as ICadenceDevice).Cadence.ToString();
|
||||
return (connectedDevice as ICadenceDevice).Cadence.ToString();
|
||||
@@ -324,8 +324,6 @@ public class DeviceView : MonoBehaviour
|
||||
case SensorType.Power:
|
||||
return (connectedDevice as IPowerDevice).Power.ToString();
|
||||
case SensorType.Speed:
|
||||
break;
|
||||
case SensorType.SpeedCadence:
|
||||
return (connectedDevice as ISpeedDevice).Speed.ToString();
|
||||
case SensorType.Trainer:
|
||||
//powerValue.text = (connectedDevice as IPowerDevice).Power.ToString();
|
||||
@@ -357,6 +355,7 @@ public class DeviceView : MonoBehaviour
|
||||
{
|
||||
case SensorType.None:
|
||||
break;
|
||||
case SensorType.SpeedCadence:
|
||||
case SensorType.Cadence:
|
||||
return devices.FirstOrDefault(d => d is ICadenceDevice);
|
||||
case SensorType.HeartRate:
|
||||
@@ -369,7 +368,6 @@ public class DeviceView : MonoBehaviour
|
||||
//}
|
||||
return item;
|
||||
case SensorType.Speed:
|
||||
case SensorType.SpeedCadence:
|
||||
return devices.FirstOrDefault(d => d is ISpeedDevice);
|
||||
case SensorType.Trainer:
|
||||
var item3 = devices.FirstOrDefault(d => d.Sensor == SensorType.Trainer);
|
||||
|
||||
Reference in new issue
Block a user