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 { /// /// 指标数据 /// public class TargetData { public double _Power = 0d; public double _Speed = 0; /// /// km /// public double _Distance { get; set; } = 0D; public double? _Cadence = 0; public int? _HeartRate = 0; public int Ticks = 0; /// /// 纬度 /// public double _Lat { get; set; } = 0d; /// /// 经度 /// public double _Lon { get; set; } = 0d; public double _TotalClimb { get; set; } = 0d; //public double _Bearing = 0d; //视频帧数 public int? _FrameRate = 0; 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 = 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]); if (!string.IsNullOrWhiteSpace(split[5]) && split[5] != "null") { target._HeartRate = Convert.ToInt32(split[5], CultureInfo.InvariantCulture); //int.Parse(split[5]); } if (split.Length > 6) { target._Lat = Convert.ToDouble(split[6], CultureInfo.InvariantCulture); //double.Parse(split[6]); target._Lon = Convert.ToDouble(split[7], CultureInfo.InvariantCulture); //double.Parse(split[7]); //target._Bearing = double.Parse(split[8]); } return target; } } }