TcxDataProtocol
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: "0.2.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
ActivityGoals
Author
This package is developed and maintained by Kevin A. Hoogheem
License
BluetoothMessageProtocol is available under the MIT license