Skip to content

Instantly share code, notes, and snippets.

@dayerdl
Created May 17, 2020 19:51
Show Gist options
  • Save dayerdl/947c6b79cd8e7a8eedd807f39d606f99 to your computer and use it in GitHub Desktop.
Save dayerdl/947c6b79cd8e7a8eedd807f39d606f99 to your computer and use it in GitHub Desktop.
//
// ViewController.swift
// 5gMeter
//
// Created by David Lopez Dayer on 5/17/20.
// Copyright © 2020 David Lopez Dayer. All rights reserved.
//
import UIKit
import CoreMotion
class ViewController: UIViewController {
@IBOutlet weak var xValue: UILabel!
@IBOutlet weak var yValue: UILabel!
@IBOutlet weak var zValue: UILabel!
@IBOutlet weak var fieldValue: UILabel!
let motionManager = CMMotionManager()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.motionManager.magnetometerUpdateInterval = 1
self.motionManager.startMagnetometerUpdates(to: OperationQueue.main) {
data, err in
self.magnetometerData(data: data, err: err)
}
}
func magnetometerData(data: CMMagnetometerData?, err: Error?) -> Swift.Void {
if err != nil {
return
}
let x = data!.magneticField.x
let y = data!.magneticField.y
let z = data!.magneticField.z
xValue.text = String("\(data!.magneticField.x.rounded())")
yValue.text = String("\(data!.magneticField.y.rounded())")
zValue.text = String("\(data!.magneticField.z.rounded())")
let field = sqrt(x*x + y*y + z*z)
fieldValue.text = "\(field.rounded())"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment