设备连接稳定性

This commit is contained in:
lishuo authored and CaiYanPeng committed 2022-06-08 16:22:07 +08:00
1 parent c333086e30
commit 46b6c7fa01
9 files changed
+111 -62

No files matched your search

@@ -22,7 +22,7 @@ using static RowerTaskPanel;
public class RowerHomeScript : PFUIPanel
{
private class TempRowerCalc
private class TempRowerCalc
{
public int power { get; set; }
public ushort pace { get; set; }
@@ -52,7 +52,7 @@ public class RowerHomeScript : PFUIPanel
protected override void OnDestroy()
{
Debug.Log("銷毀");
if (RowerData != null)
if (RowerData != null)
{
RowerData.PullChanged -= PaintPullCurve;
RowerData.StartEvent -= StartFunc;
@@ -60,11 +60,11 @@ public class RowerHomeScript : PFUIPanel
}
C2RowerData.EnableChanged -= ModeChanged;
}
private IRowerDevice Rower
private IRowerDevice Rower
{
get
{
var device = App.MainDeviceAdapter.GetDevices().FirstOrDefault(d => (d.State == DeviceState.Connected || d.State == DeviceState.Connecting) && d.Sensor == SensorType.Rower);
var device = App.MainDeviceAdapter.GetDevices().FirstOrDefault(d => d.State == DeviceState.Connected && d.Sensor == SensorType.Rower);
if (device != null)
{
return (IRowerDevice)device;
@@ -75,9 +75,9 @@ public class RowerHomeScript : PFUIPanel
/// <summary>
/// 心率数据
/// </summary>
private int? HeartRate
private int? HeartRate
{
get
get
{
var device = App.MainDeviceAdapter.GetDevices().FirstOrDefault(d => (d.State == DeviceState.Connected || d.State == DeviceState.Connecting) && d.Sensor == SensorType.HeartRate);
if (device != null)
@@ -88,12 +88,12 @@ public class RowerHomeScript : PFUIPanel
}
}
GameObject btnStart;
Transform left, bottom, mid,rmydata;
Transform left, bottom, mid, rmydata;
Image leftImage;
Image rightImage;
float timer = 1.0f;
List<DoubleVector2> pullList, historyPullList;
public Dictionary<object, Sprite> spriteDict,spriteDict2;
public Dictionary<object, Sprite> spriteDict, spriteDict2;
List<string> records;
List<TempRowerCalc> values;
DateTime startTime;
@@ -127,7 +127,7 @@ public class RowerHomeScript : PFUIPanel
{
Id = Guid.NewGuid().ToString();
rowerType = new RowerType() { type = 1, value = 500 };
spriteDict = new Dictionary<object, Sprite>()
{
{"Start",Resources.Load<Sprite>("Images/RowerNew/ICON_continue_44") },
@@ -201,19 +201,19 @@ public class RowerHomeScript : PFUIPanel
UIManager.AddEvent(transform.Find("ResBar/BtnAdd").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
{
if (RowerData != null)
if (RowerData != null)
{
slider.GetComponent<PFUISlider>().SetValue((RowerData.ResistanceLevel + 1 - 50) / 300f);
}
});
UIManager.AddEvent(transform.Find("ResBar/BtnSub").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
{
if (RowerData != null)
if (RowerData != null)
{
slider.GetComponent<PFUISlider>().SetValue((RowerData.ResistanceLevel - 1 - 50) / 300f);
}
});
slider.GetComponent<PFUISlider>().valueHandler = (a) => 50 + a * 300;
slider.GetComponent<PFUISlider>().SetValueChanged(r =>
@@ -240,12 +240,12 @@ public class RowerHomeScript : PFUIPanel
});
UIManager.AddEvent(transform.Find("Stopped/DeviceStatus").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
{
if (checkRowing()) return;
//if (checkRowing()) return;
UIManager.ShowRowerDevicePanel();
});
UIManager.AddEvent(transform.Find("Stopped/DeviceStatusConnect").gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, b =>
{
if (checkRowing()) return;
//if (checkRowing()) return;
UIManager.ShowRowerDevicePanel();
});
//手机版tab
@@ -260,13 +260,13 @@ public class RowerHomeScript : PFUIPanel
//return;
if (checkRowing()) return;
if (C2RowerData.IsEnabled == true && C2RowerData.rowerType != null) return;
UIManager.ShowRowerTaskPanel(type=>
UIManager.ShowRowerTaskPanel(type =>
{
rowerType = type;
HandleSelectType();
},rowerType);
}, rowerType);
}, false);
var c2 = new NewMainNav.CustomButton(Resources.Load<Sprite>("Images/RowerNew/记录"), () =>
var c2 = new NewMainNav.CustomButton(Resources.Load<Sprite>("Images/RowerNew/记录"), () =>
{
if (checkRowing()) return;
UIManager.ShowResultListPanel();
@@ -289,7 +289,7 @@ public class RowerHomeScript : PFUIPanel
{
Discard();
});
if (RowerData != null)
if (RowerData != null)
{
RowerData.PullChanged -= PaintPullCurve;
RowerData.PullChanged += PaintPullCurve;
@@ -306,9 +306,9 @@ public class RowerHomeScript : PFUIPanel
public void ReRow(RowerResultModel r)
{
this.reRowData = r;
if (r!= null && r.Type.HasValue)
if (r != null && r.Type.HasValue)
{
rowerType = new RowerType { type = r.Type.Value,value = (float)r.TypeValue.Value };
rowerType = new RowerType { type = r.Type.Value, value = (float)r.TypeValue.Value };
if (Rower != null)
{
Rower.Reset();
@@ -320,15 +320,15 @@ public class RowerHomeScript : PFUIPanel
if (rowerType.type == 0)
{
dw = $"\nM/ 30Min";
}
else if (rowerType.type == 2)
}
else if (rowerType.type == 2)
{
dw = $"\nM";
}
bottom.Find("Expected/Title").GetComponent<Text>().text = $"{App.GetLocalString("EST")}{dw}";
}
}
private void DeleteCacheDir()
private void DeleteCacheDir()
{
//删除实时记录
try
@@ -340,12 +340,12 @@ public class RowerHomeScript : PFUIPanel
//Directory.Delete(dir, true);
}
}
catch (Exception e)
catch (Exception e)
{
Debug.LogError(e.ToString());
}
}
private void Discard()
private void Discard()
{
openTimer = false;
if (Application.internetReachability == NetworkReachability.NotReachable)
@@ -392,12 +392,17 @@ public class RowerHomeScript : PFUIPanel
//Utils.showToast(null, "请滑动划船机并开始", isLowest: true, type: 1);
}
protected override void OnDisable()
{
base.OnDisable();
//App.MainDeviceAdapter.StopScan();
}
public override void Show()
{
base.Show();
//var mainNav = this.transform.Find("MainNav").GetComponent<MainNav>();
//mainNav.ShowRowerTab();
//App.MainDeviceAdapter.StartScan();
transform.MyDOFade();
//Debug.Log("140,开始扫描");
//App.MainDeviceAdapter.StartScan();
@@ -405,18 +410,18 @@ public class RowerHomeScript : PFUIPanel
CheckLocalData();
//transform.Find("Left/Rower").GetComponent<RowerAnimation>().StartAnimation();
}
void Disconnect()
void Disconnect()
{
foreach(var d in App.MainDeviceAdapter.GetDevices())
foreach (var d in App.MainDeviceAdapter.GetDevices())
{
if ((d.State == DeviceState.Connected || d.State == DeviceState.Connecting) && (d.Sensor == SensorType.Rower || d.Sensor == SensorType.HeartRate))
if ((d.State == DeviceState.Connected || d.State == DeviceState.Connecting) && (d.Sensor == SensorType.Rower || d.Sensor == SensorType.HeartRate))
{
d.Disconnect();
}
}
App.MainDeviceAdapter.StopScan();
}
void HandleDiscardDirect()
void HandleDiscardDirect()
{
openTimer = false;
isPause = true;
@@ -425,7 +430,7 @@ public class RowerHomeScript : PFUIPanel
btnStart.tag = "Start";
Init();
}
void HandleSaveDirect()
void HandleSaveDirect()
{
openTimer = false;
isPause = true;
@@ -440,7 +445,7 @@ public class RowerHomeScript : PFUIPanel
{
if (Save()) Init();
}
else
else
{
if (SaveFunc(tempRecordData.model, tempRecordData.files)) Init();
}
@@ -450,7 +455,7 @@ public class RowerHomeScript : PFUIPanel
{
Utils.showToast(null, "Press \"Menu\" to save.", int.MaxValue, stopFunc: () => C2RowerData.isReadyStatus, endCallback: f);
}
else
else
{
f.Invoke();
}
@@ -459,15 +464,15 @@ public class RowerHomeScript : PFUIPanel
int truelyTime = 0;
private void StartFunc(object sender, EventArgs e)
{
if (UIManager.Instance.confirm!=null && UIManager.Instance.confirm.IsActive())
if (UIManager.Instance.confirm != null && UIManager.Instance.confirm.IsActive())
{
print("当前有弹窗");
return;
}
if (openTimer) return;
Id = Guid.NewGuid().ToString();
if (transform.parent.parent.Find("ModalPanel/RowerWelldone(Clone)") && transform.parent.parent.Find("ModalPanel/RowerWelldone(Clone)").gameObject.activeInHierarchy)
if (transform.parent.parent.Find("ModalPanel/RowerWelldone(Clone)") && transform.parent.parent.Find("ModalPanel/RowerWelldone(Clone)").gameObject.activeInHierarchy)
{
return;
}
@@ -479,7 +484,7 @@ public class RowerHomeScript : PFUIPanel
}
if (!isPause)
{
}
if (!openTimer)
{
@@ -498,9 +503,9 @@ public class RowerHomeScript : PFUIPanel
btnStart.GetComponent<Image>().sprite = spriteDict["Untagged"];
btnStart.tag = "Untagged";
}
private bool SaveFunc(RowerRecordModel model, List<string> files)
private bool SaveFunc(RowerRecordModel model, List<string> files)
{
if (Application.internetReachability == NetworkReachability.NotReachable)
if (Application.internetReachability == NetworkReachability.NotReachable)
{
transform.Find("Stopped").gameObject.SetActive(true);
Utils.showToast(null, App.GetLocalString("Please check the network status!"));
@@ -531,11 +536,11 @@ public class RowerHomeScript : PFUIPanel
tempRecordData = null;
return true;
}
public class TempRecordData
public class TempRecordData
{
public RowerRecordModel model;
public List<string> files;
public TempRecordData(RowerRecordModel model, List<string> files)
public TempRecordData(RowerRecordModel model, List<string> files)
{
this.model = model;
this.files = files;
@@ -547,15 +552,21 @@ public class RowerHomeScript : PFUIPanel
RowerRecordModel model = new RowerRecordModel();
model.Ticks = records.Count;
var bleDevice = App.MainDeviceAdapter.GetDevices().FirstOrDefault(d => (d.State == DeviceState.Connected || d.State == DeviceState.Connecting) && d.Sensor == SensorType.Rower) as BleDevice;
if (bleDevice != null)
if (bleDevice != null)
{
model.ManufacturerName = bleDevice.Name + " " + bleDevice.Network + " " + bleDevice.Sensor;
model.DeviceNumber = $"{ bleDevice.Address },{ bleDevice.Sensor }";
}
model.Id = Id;//Guid.NewGuid().ToString();
model.Weight = App.CurrentUser.Weight;
model.StartTime = createTime.Value.AddSeconds(-values.Count);
if (string.IsNullOrEmpty(shadowids))
{
model.StartTime = startTime;
}
else
{
model.StartTime = createTime.Value.AddSeconds(-values.Count);
}
model.CreateTime = createTime.Value;
Debug.Log(values.Count);
if (values.Count > 0)
@@ -786,7 +797,7 @@ public class RowerHomeScript : PFUIPanel
#if !UNITY_EDITOR
if (Rower == null)
{
HandleDiscardDirect();
//HandleDiscardDirect();
return;
}
if (RowerData == null) return;
@@ -1251,7 +1262,7 @@ public class RowerHomeScript : PFUIPanel
//graph.DataSource.AddPointToCategoryRealtime("Player 2", item.x, item.y);
if (M1.localPosition.x == 0)
{
rowerGraphChartFeed.SetData(v1, v2);
rowerGraphChartFeed.SetData(v1, v2);
}
else
{