FitDataProtocol
Garmin 可扩展和互操作数据传输协议的 Swift 版本。
支持 SDK 版本 21.16.0
安装
FitDataProtocol 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中
pod 'FitDataProtocol'
Swift 包管理器
dependencies: [
.package(url: "https://github.com/FitnessKit/FitDataProtocol", from: "2.1.4")
]
如何使用
解码 FIT 文件
let fileUrl = URL(fileURLWithPath: "WeightScaleMultiUser" + ".fit")
let fileData = try? Data(contentsOf: fileUrl)
if let fileData = fileData {
var decoder = FitFileDecoder(crcCheckingStrategy: .throws)
do {
try decoder.decode(data: fileData,
messages: FitFileDecoder.defaultMessages,
decoded: { (message: FitMessage) in
print("Got Message: \(message)")
if let message = message as? FileIdMessage {
print("mssage", message.deviceSerialNumber)
}
if let message = message as? RecordMessage {
records.append(message)
}
if let message = message as? SportMessage {
sports.append(message)
}
if let message = message as? ActivityMessage {
activity.append(message)
}
})
} catch {
print(error)
}
}
编码 FIT 文件
作为编码 FIT 文件的一部分,您可以检查编码数据的有效性。
选项有
- 无 - 不进行有效性检查
- fileType - 根据“文件类型”,将进行检查以确保包含正确的字段
- garminConnect - 为 GarminConnect 创建 FIT 文件的特殊检查
示例
let activity = ActivityMessage(timeStamp: FitTime(date: Date()),
totalTimerTime: nil,
localTimeStamp: nil,
numberOfSessions: nil,
activity: Activity.multisport,
event: nil,
eventType: nil,
eventGroup: nil)
let fieldId = FileIdMessage(deviceSerialNumber: nil,
fileCreationDate: time,
manufacturer: Manufacturer.garmin,
product: nil,
fileNumber: nil,
fileType: FileType.activity,
productName: nil)
let encoder = FitFileEncoder(dataValidityStrategy: .none)
let result = encoder.encode(fildIdMessage: fiel, messages: [activity])
switch result {
case .success(let encodedData):
print(encodedData as NSData)
/// you can save off the file data
case .failure(let error):
print(error.localizedDescription)
}
///
/// You can still use doCatch
///
do {
let encoder = FitFileEncoder(dataValidityStrategy: .none)
let data = try encoder.encode(fildIdMessage: fieldId, messages: [activity]).get()
print(data as NSData)
/// you can save off the file data
} catch {
print(error)
}
作者
此包由 Kevin A. Hoogheem 开发和维护
许可证
FitDataProtocol 在 MIT 许可证 之下可用