2020-09-17 10:23:26 +08:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
|
|
|
|
|
|
namespace OnlineUserPool.Model
|
|
|
|
|
|
{
|
|
|
|
|
|
public class TargetData
|
|
|
|
|
|
{
|
|
|
|
|
|
public double _Power = 0d;
|
2021-07-07 09:49:36 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// km/h
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public double _Speed { get; set; } = 0;
|
2020-09-17 10:23:26 +08:00
|
|
|
|
public double _Distance = 0D;
|
|
|
|
|
|
public double? _Cadence = 0;
|
|
|
|
|
|
public int? _HeartRate = 0;
|
|
|
|
|
|
public int Ticks = 0;
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 纬度
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public double _Lat = 0d;
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 经度
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public double _Lon = 0d;
|
|
|
|
|
|
public double _Bearing = 0d;
|
2022-05-10 19:23:32 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 帧数
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int? _FrameRate = 0;
|
2020-09-17 10:23:26 +08:00
|
|
|
|
|
|
|
|
|
|
public TargetData Clone()
|
|
|
|
|
|
{
|
|
|
|
|
|
return (TargetData)MemberwiseClone();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override string ToString()
|
|
|
|
|
|
{
|
2022-05-10 19:23:32 +08:00
|
|
|
|
return string.Format($"Ticks:{Ticks} Power:{_Power} Speed:{_Speed} Distance:{_Distance} Cadence:{_Cadence} HeartRate:{_HeartRate} Lat:{_Lat} Lon:{_Lon} FrameRate:{_FrameRate}");
|
2020-09-17 10:23:26 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public string Write()
|
|
|
|
|
|
{
|
|
|
|
|
|
return string.Format($"{Ticks},{_Power},{_Speed},{_Distance},{_Cadence},{_HeartRate},{_Lat},{_Lon},{_Bearing}");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-01-24 15:23:28 +08:00
|
|
|
|
private static TargetData _target = new TargetData();
|
2020-09-17 10:23:26 +08:00
|
|
|
|
public static TargetData Read(string data)
|
|
|
|
|
|
{
|
|
|
|
|
|
string[] split = data.Split(',');
|
2024-01-24 15:23:28 +08:00
|
|
|
|
_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]);
|
2021-01-18 20:24:19 +08:00
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(split[5]) && split[5] != "null")
|
|
|
|
|
|
{
|
2024-01-24 15:23:28 +08:00
|
|
|
|
_target._HeartRate = int.Parse(split[5]);
|
2021-01-18 20:24:19 +08:00
|
|
|
|
}
|
2020-09-17 10:23:26 +08:00
|
|
|
|
if (split.Length > 6)
|
|
|
|
|
|
{
|
2024-01-24 15:23:28 +08:00
|
|
|
|
_target._Lat = double.Parse(split[6]);
|
|
|
|
|
|
_target._Lon = double.Parse(split[7]);
|
2020-10-27 10:20:47 +08:00
|
|
|
|
|
|
|
|
|
|
if (split.Length >= 9)
|
|
|
|
|
|
{
|
2024-01-24 15:23:28 +08:00
|
|
|
|
_target._Bearing = double.Parse(split[8]);
|
2020-10-27 10:20:47 +08:00
|
|
|
|
}
|
2020-09-17 10:23:26 +08:00
|
|
|
|
}
|
2024-01-24 15:23:28 +08:00
|
|
|
|
|
|
|
|
|
|
return _target;
|
2020-09-17 10:23:26 +08:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|