Merge branch 'dev_cyp1' into dev_combine

# Conflicts:
#	.gitignore
#	Assets/Scripts/Devices/Ble/Characteristic/C2RowerData.cs
#	Assets/Scripts/Scenes/MainController.cs
This commit is contained in:
lishuo committed 2022-07-11 14:52:54 +08:00
commit 342740b740
13 files changed
+132 -109

No files matched your search

+9
View File
@@ -35,20 +35,29 @@ public class PFUISlider : MonoBehaviour
});
}
public bool runCallback = false;
private bool ondraging = false;
public void SetValueChanged(System.Action<float> a)
{
this.ValueChangedHandler = a;
slider = transform.GetComponent<Slider>();
slider.onValueChanged.RemoveAllListeners();
UIManager.AddEvent(slider.gameObject, EventTriggerType.BeginDrag, (e) =>
{
ondraging = true;
});
UIManager.AddEvent(slider.gameObject, EventTriggerType.EndDrag, (e) =>
{
ondraging = false;
OnValueChanged();
});
slider.onValueChanged.AddListener((f) =>
{
current = f;
if(!ondraging)
OnValueChanged();
});
}
@@ -104,7 +104,7 @@ public class RowerHomeScript : PFUIPanel
double Kj = 0;
int seconds = 0;
bool isPause = false;
public RowerType rowerType = null;
public RowerType rowerType = new RowerType() { type = 1, value = 500 };
/// <summary>
/// 计算停止的秒数,如果超过5秒,除了累加值都变成--,这些值记录为0,提示用户如果超过90秒,将直接保存数据
/// 如果5-90秒有拉力,则继续滑行
@@ -129,7 +129,6 @@ public class RowerHomeScript : PFUIPanel
protected override void Awake()
{
Id = Guid.NewGuid().ToString();
rowerType = new RowerType() { type = 1, value = 500 };
spriteDict = new Dictionary<object, Sprite>()
{
@@ -299,7 +298,7 @@ public class RowerHomeScript : PFUIPanel
RowerData.CompleteEvent -= CompelteFunc;
RowerData.CompleteEvent += CompelteFunc;
}
rowerType = new RowerType { type = 1, value = 500 };
HandleSelectType();
Init();
isFirstReset = false;
@@ -391,7 +390,7 @@ public class RowerHomeScript : PFUIPanel
historyTime = 0;
if (C2RowerData.IsEnabled == true)
{
Utils.showToast(null, "Press \"Menu\" to save.", int.MaxValue, stopFunc: () => C2RowerData.isReadyStatus, endCallback: Init);
Utils.showToast(null, "Press \"Menu\" to save.", int.MaxValue, stopFunc: () => C2RowerData.isReadyStatus, endCallback: ()=> Init());
}
else
{
@@ -419,7 +418,7 @@ public class RowerHomeScript : PFUIPanel
dw = $"\nM";
}
bottom.Find("Expected/Title").GetComponent<Text>().text = $"{App.GetLocalString("EST")}{dw}";
Init();
Init(true);
//Utils.showToast(null, "请滑动划船机并开始", isLowest: true, type: 1);
}
@@ -560,24 +559,27 @@ public class RowerHomeScript : PFUIPanel
var strokeCount = RowerData.StrokeCount;
var power = RowerData.InstantaneousPower;
var rate = RowerData.StrokeRate;
if (rowerType.type == 1)
{
TimeText.text = $"{RowerData.ElapsedTime}";
KMText.text = "0";
trainingTime = RowerData.TrainingTime;
}
else
{
TimeText.text = TimeSpan.FromSeconds(0).ToPFString();
KMText.text = $"{RowerData.TotalDistance}";
trainingTime = rowerType.value;
}
records.Add($"{strokeCount},{RowerData.ElapsedTime},{RowerData.TotalDistance},{RowerData.InstantaneousPower},{RowerData.InstantaneousPace},{RowerData.StrokeRate},{RowerData.ResistanceLevel},{heartRate},{energy},{RowerData.AveragePower},{RowerData.ElapsedTime}");
truelyTime++;
records.Add($"{strokeCount},{RowerData.ElapsedTime},{RowerData.TotalDistance},{RowerData.InstantaneousPower},{RowerData.InstantaneousPace},{RowerData.StrokeRate},{RowerData.ResistanceLevel},{heartRate},{energy},{RowerData.AveragePower},{truelyTime}");
var tmpdata = new TempRowerCalc() { strokeCount = strokeCount, pace = RowerData.InstantaneousPace, power = power, rate = rate, heartRate = heartRate, distance = (int)RowerData.TotalDistance, energy = energy };
values.Add(tmpdata);
SendDataToRace(tmpdata);
HandleSaveDirect();
}
private double trainingTime = 0;
private bool SaveFunc(RowerRecordModel model, List<string> files)
{
if (Application.internetReachability == NetworkReachability.NotReachable)
@@ -588,13 +590,14 @@ public class RowerHomeScript : PFUIPanel
return false;
}
model.TrainingTime = trainingTime;
model.ManufacturerName = deviceName + " " + deviceNetwork + " " + deviceSensor;
model.DeviceNumber = $"{ deviceAddress },{ deviceSensor }";
var res = ConfigHelper.rowerApi.Add(model, files);
if (res.result)
{
UIManager.ShowRowerWelldone(model.Id, Init);
UIManager.ShowRowerWelldone(model.Id, ()=> Init());
try
{
if (File.Exists(files[0]))
@@ -671,8 +674,8 @@ public class RowerHomeScript : PFUIPanel
model.AvgPower = values.Average(x => x.power);
model.AvgRate = values.Average(x => x.rate);
model.AvgHeartRate = (int)values.Average(x => x.heartRate);
model.StrokeCount = (ushort)values.Max(x=>x.strokeCount);
model.TotalDistance = (ushort)values.Max(x => x.distance);
model.StrokeCount = values.Max(x=>x.strokeCount);
model.TotalDistance = values.Max(x => x.distance);
model.Kj = values.Max(x => x.energy);
}
model.TotalTime = records.Count;
@@ -710,14 +713,16 @@ public class RowerHomeScript : PFUIPanel
//Disconnect();
}
private void Init()
private void Init(bool init = false)
{
initRower = init;
ResetChart();
deviceName = "";
deviceNetwork = "";
deviceAddress = "";
deviceSensor = "";
pointCount = 0;
trainingTime = 0;
print("初始化");
if (Rower != null)
{
@@ -745,21 +750,20 @@ public class RowerHomeScript : PFUIPanel
openTimer = false;
if (rowerType.type == 0)
{
Debug.Log("rowerType.type == 0");
TimeText.text = "---";
KMText.text = "---";
}
else
if (rowerType.type == 1)
{
if (rowerType.type == 1)
{
TimeText.text = "---";
KMText.text = $"{rowerType.value}";
}
else
{
TimeText.text = TimeSpan.FromSeconds(rowerType.value).ToPFString();
KMText.text = "---";
}
Debug.Log("rowerType.type == 1");
TimeText.text = "---";
KMText.text = $"{rowerType.value}";
}
if (rowerType.type == 2)
{
TimeText.text = TimeSpan.FromSeconds(rowerType.value).ToPFString();
KMText.text = "---";
}
WText.text = "---";
@@ -788,6 +792,8 @@ public class RowerHomeScript : PFUIPanel
#endif
C2RowerData.EnableChanged -= ModeChanged;
C2RowerData.EnableChanged += ModeChanged;
C2RowerData.RowerTypeChanged -= RowerTypeChanged;
C2RowerData.RowerTypeChanged += RowerTypeChanged;
if (RowerData != null)
{
RowerData.RowerResChanged -= ResChanged;
@@ -810,7 +816,11 @@ public class RowerHomeScript : PFUIPanel
Resources.UnloadUnusedAssets();
GC.Collect();
}
private void RowerTypeChanged(object sender, EventArgs e)
{
rowerType = C2RowerData.rowerType;
HandleSelectType();
}
private void ModeChanged(object sender, EventArgs e)
{
if (RowerData != null)
@@ -929,10 +939,8 @@ public class RowerHomeScript : PFUIPanel
Debug.Log($"ElapsedTime :{RowerData.ElapsedTime} : {truelyTime}-{RowerData.TotalDistance}");
TempRowerCalc tmpdata = null;
//解决C2里程训练无法结束的问题
var c2notStop = C2RowerData.IsEnabled && rowerType!=null && rowerType.type !=0 && (rowerType.value-totalDistance) <= 5;
//里程停止逻辑
if (totalDistance == RowerData.TotalDistance && !c2notStop)
if (totalDistance == RowerData.TotalDistance)
{
//判定一次停止
stopSeconds++;
@@ -1351,8 +1359,10 @@ public class RowerHomeScript : PFUIPanel
}
float staticTimer = 1f,shortTimer = 0.25f;
int ticks { get; set; } = 0;
bool initRower = false;
void Update()
{
InitC2Rower();
shortTimer -= Time.deltaTime;
if (shortTimer <= 0)
{
@@ -1372,14 +1382,21 @@ public class RowerHomeScript : PFUIPanel
TimerTicks();
ticks++;
}
HandleStatic();
var heartRate = HeartRate ?? 0;
BPMText.text = heartRate == 0 ? "---" : heartRate.ToString();
HandleStatic();
timer += 1f ;
}
}
private void InitC2Rower()
{
if (!initRower && Rower != null && RowerData != null && rowerType != null && C2RowerData.IsEnabled && C2RowerData.isReadyStatus)
{
initRower = true;
HandleC2RowerTaskPanel(rowerType);
}
}
void ShortUpdateData()
{
if (!openTimer) return;
@@ -1433,17 +1450,5 @@ public class RowerHomeScript : PFUIPanel
transform.Find("Stopped/DeviceStatus").gameObject.SetActive(!flag);
transform.Find("Stopped/DeviceStatusConnect").gameObject.SetActive(flag);
}
if (Rower != null)
{
if (C2RowerData.IsEnabled == true && !openTimer && !isPause && C2RowerData.rowerType!=null && rowerType!= null && !rowerType.EqualTo(C2RowerData.rowerType))
{
rowerType = C2RowerData.rowerType;
HandleSelectType();
}
//if (C2RowerData.IsEnabled)
//{
// Rower.C2GetStatus(new byte[] { 0xc1 });
//}
}
}
}
@@ -246,6 +246,8 @@ public class RowerMultiModeScript : MonoBehaviour
StartCoroutine(Get(url, (res) =>
{
shadowList = res.data;
if (shadowList == null)
return;
var _tmpList = shadowList.Select(x => new TraceData
{
list = x.list,
@@ -27,7 +27,7 @@ public class RowerTaskPanel : PFUIPanel
}
}
Transform selector, distance, time;
public RowerType rowerType;
public RowerType rowerType { get; set; }
public Action<RowerType> callBack { get; set; }
@@ -155,7 +155,7 @@ public class RowerWelldone : PFUIPanel
var game = i == 0 ? Instantiate<GameObject>(AllRecord) : Instantiate<GameObject>(Record);
var content = i != 0 ? game.transform.Find("Content") : game.transform;
content.Find("Index").GetComponent<Text>().text = i == 0 ? "ALL" : i.ToString("00");
content.Find("Time").GetComponent<Text>().text = TimeSpan.FromSeconds(item.Ticks).ToString();
content.Find("Time").GetComponent<Text>().text = i == 0 ? TimeSpan.FromSeconds(item.Ticks).ToString(@"hh\:mm\:ss\.ff"): TimeSpan.FromSeconds(item.Ticks).ToString(@"hh\:mm\:ss");
content.Find("Distance").GetComponent<Text>().text = item.Distance.ToString("#0");
content.Find("500").GetComponent<Text>().text = TimeSpan.FromSeconds(item.Speed).ToString().Substring(3, 5);
content.Find("Power").GetComponent<Text>().text = item.Power.ToString("#0");