• 传感器- 加速计


    /**

     *  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(@"加速计不可用");

        }

    }

  • 相关阅读:
    R语言与概率统计(三) 多元统计分析(上)
    R语言与概率统计(二) 假设检验
    win系统下启动linux上的kafka集群及使用
    MD5加密解密帮助类
    Effective JavaScript Item 39 绝不要重用父类型中的属性名
    博客搬家啦!
    ABAP 中的搜索帮助
    &lt;转&gt;bash: qmake: command not found...
    EJB学习笔记六(EJB中的拦截器)
    需求管理之被遗忘的需求
  • 原文地址:https://www.cnblogs.com/guangleijia/p/4834836.html
Copyright © 2020-2023  润新知