73 lines
2.5 KiB
C#

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;
//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();
target.Ticks = int.Parse(split[0]);
target._Power = double.Parse(split[1]);
target._Speed = double.Parse(split[2]);
target._Distance = double.Parse(split[3]);
target._Cadence = double.Parse(split[4]);
if (!string.IsNullOrWhiteSpace(split[5]) && split[5] != "null")
{
target._HeartRate = int.Parse(split[5]);
}
if (split.Length > 6)
{
target._Lat = double.Parse(split[6]);
target._Lon = double.Parse(split[7]);
//target._Bearing = double.Parse(split[8]);
}
return target;
}
}
}