代码之家  ›  专栏  ›  技术社区  ›  Johncarlo

如何记录传感器数据并导出到CSV?

  •  0
  • Johncarlo  · 技术社区  · 7 年前

    我有一个iOS应用程序,可以使用CoreMotion以约50Hz的频率将传感器数据(陀螺仪、姿态、加速度等)打印到终端。我想保存传感器读数并将其导出到csv文件。我会使用哪些框架(如果有的话)来实现这一点?我一直在尝试使用核心数据,但我觉得它不是正确的工具。

    作为参考,以下是我读取加速计数据的方式:

    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)")
            }
        }
    }
    
    1 回复  |  直到 7 年前
        1
  •  1
  •   dalton_c    7 年前

    创建CSV文件所要做的就是创建一个字符串,用逗号分隔列,用换行符分隔行,然后将字符串写入文件。

    let csvString = allData
        .map { "\($0.x),\($0.y),\($0.z)" }
        .joined(separator: "\n")
    csvString.write(toFile: "some-file.csv", atomically: true, encoding: .utf8)