8000 GitHub - chepiok/TcxDataProtocol: Training Center XML Format
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

chepiok/TcxDataProtocol

 
 

Repository files navigation

TcxDataProtocol

Swift5 Version License Platform Readme Score

Provides a Swift version of the TCX XML format.

Installation

TcxDataProtocol is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'TcxDataProtocol'

Swift Package Manager:

dependencies: [
    .package(url: "https://github.com/FitnessKit/TcxDataProtocol", from: "1.0.0")
]

How to Use

Decode

let tcxUrl = URL(fileURLWithPath: "TestFile" + ".tcx")
let tcxData = try? Data(contentsOf: tcxUrl)

if let tcxData = tcxData {
    let tcxFile = try? TcxFile.decode(from: tcxData)
}

Encode

let build = Build(version: Version(major: 0, minor: 1, buildMajor: 0, buildMinor: 0), time: nil, builder: nil, type: .alpha)
let author = Author(name: "TcxDataProtocol", build: build, language: nil, partNumber: "11-22-33")

let lap = ActivityLap(startTime: Date(), totalTime: 45.0, distance: 12.0, maximumSpeed: nil, calories: 120, averageHeartRate: nil, maximumHeartRate: nil, intensity: .active, cadence: nil, triggerMethod: .manual, track: nil, notes: nil, extensions: nil)

let activity = Activity(sport: .biking, identification: Date(), lap: [lap], notes: nil, training: nil, creator: nil)

let activities = ActivityList(activities: [activity], multiSportSession: nil)

let database = TrainingCenterDatabase(activities: activities, courses: nil, author: author)

let TCXFile = TcxFile(database: database)

let encodedData = try? TCXFile.encode(prettyPrinted: true)

if let encodedData = encodedData {
    let xml = String(bytes: encodedData, encoding: .utf8)
    print(xml!)
}

Supported Elements

  • ActivityList
  • Activity
  • ActivityLap
  • ActivityReference
  • Application
  • Author
  • Build
  • BuildType
  • Course
  • CourseLap
  • CourseList
  • CoursePoint
  • CoursePointType
  • Creator
  • Gender
  • HeartRateInBeatsPerMinute
  • HeartRateInBeatsPercentMax
  • Intensity
  • MultiSportSession
  • NextSport
  • Plan
  • Position
  • QuickWorkoutResults
  • SensorState
  • Sport
  • Track
  • Trackpoint
  • Training
  • TrainingType
  • TriggerMethod
  • Version

Supported Extensions

  • ActivityExtension

    • CadenceSensorType
    • ActivityTrackpointExtension
    • ActivityLapExtension
  • ActivityGoals

    • Measure
    • RecurrenceCode
    • Period
    • ActivityGoal
    • ActivityGoals

Author

This package is developed and maintained by Kevin A. Hoogheem

License

BluetoothMessageProtocol is available under the MIT license

About

Training Center XML Format

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Swift 99.0%
  • Ruby 1.0%
0