zoukankan      html  css  js  c++  java
  • 传感器- 加速计

    /**

     *  CoreMotion

     *

     */

    #import "ViewController.h"

    #import <CoreMotion/CoreMotion.h> // 导入框架

    @interface ViewController ()

    @property (nonatomic, strong) CMMotionManager *mgr;// 必须搞成全局的

    @end

    @implementation ViewController

    - (void)viewDidLoad {

        [super viewDidLoad];

       

    //    [self push];

        

        [self pull];

    }

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

    {

        CMAcceleration acceleration = self.mgr.accelerometerData.acceleration;

        

        LogRed(@"%f --- %f  ---- %f",acceleration.x, acceleration.y, acceleration.z);

    }

    /**

     *  pull  --- 需要的时候, 采集

     */

    - (void)pull

    {

        // 1. 创建运动管理者对象

        self.mgr = [[CMMotionManager alloc] init];

        

        // 2. 判断加速计是否可用

        if (self.mgr.isAccelerometerAvailable) {

            

            // 4. 开始采样  ---  pull

            [self.mgr startAccelerometerUpdates];

        }else{

            LogGreen(@"加速计不可用");

        }

    }

    /**

     *  push --- 根据设置的采集时间间隔, 实时采集

     */

    - (void)push

    {

        // 1. 创建运动管理者对象

        self.mgr = [[CMMotionManager alloc] init];

        

        // 2. 判断加速计是否可用

        if (self.mgr.isAccelerometerAvailable) {

            /**

             *  accelerometerUpdateInterval --- 采样时间

             isAccelerometerActive       --- 是否正在采集

             startAccelerometerUpdates   --- pull

             startAccelerometerUpdatesToQueue  --- push

             stopAccelerometerUpdates    --- 停止采样

             accelerometerData           --- 采集到的数据

             */

            

            // 3. 设置采样间隔

            self.mgr.accelerometerUpdateInterval = 1.0 / 30.0;

            

            // 4. 开始采样

            [self.mgr startAccelerometerUpdatesToQueue:[NSOperationQueue mainQueue] withHandler:^(CMAccelerometerData *accelerometerData, NSError *error) {

                // 采集到数据时, 就会调用

                if(error) return;

                

                CMAcceleration acceleration = accelerometerData.acceleration;

                LogRed(@"%f --- %f  ---- %f",acceleration.x, acceleration.y, acceleration.z);

            }];

          

        }else{

            LogGreen(@"加速计不可用");

        }

    }

  • 相关阅读:
    09不可变类型
    08浅拷贝和深拷贝
    07参数的传递
    06判等对象是否相等
    05引用类型以及特殊引用类型string
    报错:Missing type map configuration or unsupported mapping
    黄聪:VS2010开发T4模版引擎之基础入门
    黄聪:《网站高转换率法则》#2:你的网站是垃圾站吗?
    黄聪:《网站高转换率法则》#1:为什么要研究网站转换率?
    黄聪:百度知道中对HTML字符实体、字符编号,&开头字符的使用
  • 原文地址:https://www.cnblogs.com/guangleijia/p/4834836.html
Copyright © 2011-2022 走看看