如何记录传感器数据并导出为 CSV?
How to log sensor data and export to CSV?
我有一个 iOS 应用程序,它使用 CoreMotion 以大约 50Hz 的频率将传感器数据(陀螺仪、姿态、加速度等)打印到终端。我想保存传感器读数并将它们导出到 csv 文件。我会使用哪些框架(如果有的话)来执行此操作?我一直在尝试使用 Core Data,但我觉得它不是正确的工具。
供参考,这是我读取加速度计数据的方式:
func startAccel() ->Void{ //Starting accelerometer
motionManager.accelerometerUpdateInterval = 1.0 / Double(hz)
motionManager.startAccelerometerUpdates(to: OperationQueue.current!){ (data, error) in
if let myData = data{
let x = myData.acceleration.x
let y = myData.acceleration.y
let z = myData.acceleration.z
print("Acceleration X: \(x) Y: \(y) Z: \(z)")
}
}
}
要创建 CSV 文件,您只需创建一个字符串,用逗号分隔列,换行符分隔行,然后将字符串写入文件。
let csvString = allData
.map { "\([=10=].x),\([=10=].y),\([=10=].z)" }
.joined(separator: "\n")
csvString.write(toFile: "some-file.csv", atomically: true, encoding: .utf8)
我有一个 iOS 应用程序,它使用 CoreMotion 以大约 50Hz 的频率将传感器数据(陀螺仪、姿态、加速度等)打印到终端。我想保存传感器读数并将它们导出到 csv 文件。我会使用哪些框架(如果有的话)来执行此操作?我一直在尝试使用 Core Data,但我觉得它不是正确的工具。
供参考,这是我读取加速度计数据的方式:
func startAccel() ->Void{ //Starting accelerometer
motionManager.accelerometerUpdateInterval = 1.0 / Double(hz)
motionManager.startAccelerometerUpdates(to: OperationQueue.current!){ (data, error) in
if let myData = data{
let x = myData.acceleration.x
let y = myData.acceleration.y
let z = myData.acceleration.z
print("Acceleration X: \(x) Y: \(y) Z: \(z)")
}
}
}
要创建 CSV 文件,您只需创建一个字符串,用逗号分隔列,换行符分隔行,然后将字符串写入文件。
let csvString = allData
.map { "\([=10=].x),\([=10=].y),\([=10=].z)" }
.joined(separator: "\n")
csvString.write(toFile: "some-file.csv", atomically: true, encoding: .utf8)