2021-03-30 17:15:16 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Globalization;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Assets.Scenes.Ride.Scripts.Model
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 指标数据
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class TargetData
|
|
|
|
|
|
{
|
|
|
|
|
|
public double _Power = 0d;
|
|
|
|
|
|
public double _Speed = 0;
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// km
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public double _Distance { get; set; } = 0D;
|
|
|
|
|
|
public double? _Cadence = 0;
|
|
|
|
|
|
public int? _HeartRate = 0;
|
|
|
|
|
|
public int Ticks = 0;
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 纬度
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public double _Lat { get; set; } = 0d;
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 经度
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public double _Lon { get; set; } = 0d;
|
|
|
|
|
|
|
2021-04-22 19:29:59 +08:00
|
|
|
|
public double _TotalClimb { get; set; } = 0d;
|
|
|
|
|
|
|
2021-03-30 17:15:16 +08:00
|
|
|
|
//public double _Bearing = 0d;
|
|
|
|
|
|
|
|
|
|
|
|
public TargetData Clone()
|
|
|
|
|
|
{
|
|
|
|
|
|
return (TargetData)MemberwiseClone();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override string ToString()
|
|
|
|
|
|
{
|
|
|
|
|
|
return string.Format($"Ticks:{Ticks} Power:{_Power} Speed:{_Speed} Distance:{_Distance} Cadence:{_Cadence} HeartRate:{_HeartRate} Lat:{_Lat} Lon:{_Lon}");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string Write()
|
|
|
|
|
|
{
|
|
|
|
|
|
return string.Format($"{ Ticks },{ _Power.ToString(CultureInfo.InvariantCulture) },{ _Speed.ToString(CultureInfo.InvariantCulture) },{ Math.Round(_Distance, 6).ToString(CultureInfo.InvariantCulture) },{ (_Cadence == null ? "" : _Cadence.Value.ToString(CultureInfo.InvariantCulture)) },{ (_HeartRate == null ? "null" : _HeartRate.Value.ToString(CultureInfo.InvariantCulture)) },{ Math.Round(_Lat, 6).ToString(CultureInfo.InvariantCulture) },{ Math.Round(_Lon, 6).ToString(CultureInfo.InvariantCulture) }");//,{_Bearing}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static TargetData Read(string data)
|
|
|
|
|
|
{
|
|
|
|
|
|
string[] split = data.Split(',');
|
|
|
|
|
|
var target = new TargetData();
|
2021-06-07 17:05:49 +08:00
|
|
|
|
target.Ticks = Convert.ToInt32(split[0], CultureInfo.InvariantCulture); //int.Parse(split[0]);
|
|
|
|
|
|
target._Power = Convert.ToDouble(split[1], CultureInfo.InvariantCulture);
|
|
|
|
|
|
target._Speed = Convert.ToDouble(split[2], CultureInfo.InvariantCulture);// double.Parse(split[2]);
|
|
|
|
|
|
target._Distance = Convert.ToDouble(split[3], CultureInfo.InvariantCulture); //double.Parse(split[3]);
|
|
|
|
|
|
target._Cadence = Convert.ToDouble(split[4], CultureInfo.InvariantCulture); //double.Parse(split[4]);
|
2021-03-30 17:15:16 +08:00
|
|
|
|
if (!string.IsNullOrWhiteSpace(split[5]) && split[5] != "null")
|
|
|
|
|
|
{
|
2021-06-07 17:05:49 +08:00
|
|
|
|
target._HeartRate = Convert.ToInt32(split[5], CultureInfo.InvariantCulture); //int.Parse(split[5]);
|
2021-03-30 17:15:16 +08:00
|
|
|
|
}
|
|
|
|
|
|
if (split.Length > 6)
|
|
|
|
|
|
{
|
2021-06-07 17:05:49 +08:00
|
|
|
|
target._Lat = Convert.ToDouble(split[6], CultureInfo.InvariantCulture); //double.Parse(split[6]);
|
|
|
|
|
|
target._Lon = Convert.ToDouble(split[7], CultureInfo.InvariantCulture); //double.Parse(split[7]);
|
2021-03-30 17:15:16 +08:00
|
|
|
|
//target._Bearing = double.Parse(split[8]);
|
|
|
|
|
|
}
|
|
|
|
|
|
return target;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|