Skip to content

DBoroujerdi/tcx-builder

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TCX BUILDER

This package allows you to generate tcx file from Javascript Class. See tcx file definition here.

How to use ?

Install package using npm :

npm install tcx-builder

Import package

// First way
const tcxBuilder = require('tcx-builder');

// Prefered way
const { TrainingCenterDatabase } = require('tcx-builder');

// Using imports
import { TrainingCenterDatabase } from 'tcx-builder';

Check garmin tcx file description for more informations.

Example

import {
  TrainingCenterDatabase,
  Activity,
  ActivityLap,
  Track,
  TrackPoint,
  Position,
  HeartRateBpm,
  TrackPointExtensions,
  ActivityList,
  HeartRateInBeatsPerMinute,
} from 'tcx-builder';

const trackPoints: TrackPoint[] = [
  new TrackPoint({
    time: new Date(),
    position: new Position(48.853444, 2.348780),
    altitudeMeters: 100,
    distanceMeters: 0,
    heartRateBpm: new HeartRateBpm(150),
    cadence: 80,
    sensorState: 'Present',
    extensions: new TrackPointExtensions({
      Speed: 10,
      Watts: 200,
    }),
  }),
];

const myLap: ActivityLap = new ActivityLap(new Date(), {
  Calories: 0,
  DistanceMeters: 40000,
  Intensity: 'Active',
  TotalTimeSeconds: 4000,
  TriggerMethod: 'Distance',
  MaximumSpeed: 12,
  MaximumHeartRateBpm: new HeartRateInBeatsPerMinute({ value: 180 }),
  AverageHeartRateBpm: new HeartRateInBeatsPerMinute({ value: 160 }),
  Cadence: 80,
  Track: new Track({ trackPoints }),
});

const tcxActivity = new Activity('Biking', {
  Id: new Date(),
  Laps: [ myLap ],
  Notes: 'Activity Description',
});
const activityList = new ActivityList({ activity: [tcxActivity] });

const tcxObj = new TrainingCenterDatabase({ activities: activityList });

const xml: string = tcxObj.toXml();

About

Build tcx files from NodeJS

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 100.0%