UNPKG

read-tcx

Version:

Read tcx files (supported files exported from Garmin Connect, Polar Flow, Tapiriik) and convert it to Activity Json Oblect

79 lines (65 loc) 2.73 kB
import TrackPoint from "./trackpoint"; import { TempLap, TempTrackPoint } from './interface'; export default class Lap { StartTime: Date; TotalTimeSeconds: number = -1; DistanceMeters: number = -1; MaximumSpeed: number = -1; Calories: number = -1; AverageHeartRateBpm: number = -1; MaximumHeartRateBpm: number = -1; Cadence: number = -1; Track: Array<TrackPoint>; AvgSpeed: number = -1; constructor() { this.StartTime = new Date(1, 1, 1, 0, 0, 1); this.Track = new Array<TrackPoint>(); } fill = (obj: TempLap) => { if (obj) { if (obj.StartTime) { this.StartTime = new Date(obj.StartTime); } if (obj.TotalTimeSeconds || obj.TotalTimeSeconds >=0 ) { this.TotalTimeSeconds = obj.TotalTimeSeconds } if (obj.DistanceMeters || obj.DistanceMeters >=0 ) { this.DistanceMeters = obj.DistanceMeters } if (obj.MaximumSpeed || obj.DistanceMeters >=0) { this.MaximumSpeed = obj.MaximumSpeed } if (obj.Calories || obj.Calories >= 0) { this.Calories = obj.Calories } if (obj.AverageHeartRateBpm.Value) { this.AverageHeartRateBpm = obj.AverageHeartRateBpm.Value; } if (obj.MaximumHeartRateBpm.Value) { this.MaximumHeartRateBpm = obj.MaximumHeartRateBpm.Value; } //polar only Τα άλλα θα τα υπολογίσω από τα σημεία if (obj.Cadence) { this.Cadence = obj.Cadence } if (obj.Extensions.LX.AvgSpeed) { this.AvgSpeed = obj.Extensions.LX.AvgSpeed; } // console.log(typeof(obj.Track.Trackpoint) + ' - '+JSON.stringify(obj.Track.Trackpoint.length, null, 2)); if (obj.Track.Trackpoint && obj.Track.Trackpoint.length !== undefined) { for (let i = 0; i < obj.Track.Trackpoint.length; i++) { this.Track[i] = new TrackPoint(); this.Track[i].fill(obj.Track.Trackpoint[i]); // console.log(JSON.stringify(this.Track[i], null, 2)); } } else { this.Track[0] = new TrackPoint(); let temp = new Array(); temp.push(obj.Track.Trackpoint); this.Track[0].fill((temp[0] as TempTrackPoint)); // console.log(JSON.stringify(this.Track[0],null,2)); } } } }