Fork from https://os.mbed.com/teams/NXP/code/FXOS8700Q/ to use a local and namespaced MotionSensor.h header that would otherwise clash with other libraries.

Dependents:   TALab2B_Part2_ECE595 TALab3C_i2c_acc Project1 FinalProject ... more

Committer:
carlosperate
Date:
Tue Oct 08 18:48:38 2019 +0000
Revision:
13:a8deb4ce9b4a
Parent:
MotionSensor.h@12:a8429f06a04b
Added the MbedComponent namespace to the MotionSensor class.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
carlosperate 12:a8429f06a04b 1 /* MotionSensor Base Class
carlosperate 12:a8429f06a04b 2 * Copyright (c) 2014-2015 ARM Limited
carlosperate 12:a8429f06a04b 3 *
carlosperate 12:a8429f06a04b 4 * Licensed under the Apache License, Version 2.0 (the "License");
carlosperate 12:a8429f06a04b 5 * you may not use this file except in compliance with the License.
carlosperate 12:a8429f06a04b 6 * You may obtain a copy of the License at
carlosperate 12:a8429f06a04b 7 *
carlosperate 12:a8429f06a04b 8 * http://www.apache.org/licenses/LICENSE-2.0
carlosperate 12:a8429f06a04b 9 *
carlosperate 12:a8429f06a04b 10 * Unless required by applicable law or agreed to in writing, software
carlosperate 12:a8429f06a04b 11 * distributed under the License is distributed on an "AS IS" BASIS,
carlosperate 12:a8429f06a04b 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
carlosperate 12:a8429f06a04b 13 * See the License for the specific language governing permissions and
carlosperate 12:a8429f06a04b 14 * limitations under the License.
carlosperate 12:a8429f06a04b 15 */
carlosperate 12:a8429f06a04b 16
carlosperate 13:a8deb4ce9b4a 17 #ifndef MBED_COMPONENT_MOTIONSENSOR_H
carlosperate 13:a8deb4ce9b4a 18 #define MBED_COMPONENT_MOTIONSENSOR_H
carlosperate 12:a8429f06a04b 19
carlosperate 12:a8429f06a04b 20 #include "stdint.h"
carlosperate 12:a8429f06a04b 21
carlosperate 12:a8429f06a04b 22 /** motion_data_counts_t struct
carlosperate 12:a8429f06a04b 23 */
carlosperate 12:a8429f06a04b 24 typedef struct {
carlosperate 12:a8429f06a04b 25 int16_t x; /*!< x-axis counts */
carlosperate 12:a8429f06a04b 26 int16_t y; /*!< y-axis counts */
carlosperate 12:a8429f06a04b 27 int16_t z; /*!< z-axis counts */
carlosperate 12:a8429f06a04b 28 } motion_data_counts_t;
carlosperate 12:a8429f06a04b 29
carlosperate 12:a8429f06a04b 30 /** motion_data_units_t struct
carlosperate 12:a8429f06a04b 31 */
carlosperate 12:a8429f06a04b 32 typedef struct {
carlosperate 12:a8429f06a04b 33 float x; /*!< x-axis counts */
carlosperate 12:a8429f06a04b 34 float y; /*!< y-axis counts */
carlosperate 12:a8429f06a04b 35 float z; /*!< z-axis counts */
carlosperate 12:a8429f06a04b 36 } motion_data_units_t;
carlosperate 12:a8429f06a04b 37
carlosperate 12:a8429f06a04b 38
carlosperate 13:a8deb4ce9b4a 39 namespace MbedComponent {
carlosperate 13:a8deb4ce9b4a 40
carlosperate 12:a8429f06a04b 41 /** Motion Sensor Base Class
carlosperate 12:a8429f06a04b 42 Useful for accessing data in a common way
carlosperate 12:a8429f06a04b 43 */
carlosperate 12:a8429f06a04b 44 class MotionSensor
carlosperate 12:a8429f06a04b 45 {
carlosperate 12:a8429f06a04b 46 public:
carlosperate 12:a8429f06a04b 47
carlosperate 12:a8429f06a04b 48 /** Enable the sensor for operation
carlosperate 12:a8429f06a04b 49 */
carlosperate 12:a8429f06a04b 50 virtual void enable(void) const = 0;
carlosperate 12:a8429f06a04b 51
carlosperate 12:a8429f06a04b 52 /** disable the sensors operation
carlosperate 12:a8429f06a04b 53 */
carlosperate 12:a8429f06a04b 54 virtual void disable(void) const = 0;
carlosperate 12:a8429f06a04b 55
carlosperate 12:a8429f06a04b 56 /** Set the sensor sample rate
carlosperate 12:a8429f06a04b 57 @param frequency The desires sample frequency
carlosperate 12:a8429f06a04b 58 @return The amount of error in Hz between desired and actual frequency
carlosperate 12:a8429f06a04b 59 */
carlosperate 12:a8429f06a04b 60 virtual uint32_t sampleRate(uint32_t frequency) const = 0;
carlosperate 12:a8429f06a04b 61
carlosperate 12:a8429f06a04b 62 /** Tells of new data is ready
carlosperate 12:a8429f06a04b 63 @return The amount of data samples ready to be read from a device
carlosperate 12:a8429f06a04b 64 */
carlosperate 12:a8429f06a04b 65 virtual uint32_t dataReady(void) const = 0;
carlosperate 12:a8429f06a04b 66
carlosperate 12:a8429f06a04b 67 /** Get the x data in counts
carlosperate 12:a8429f06a04b 68 @param x A referene to the variable to put the data in, 0 denotes not used
carlosperate 12:a8429f06a04b 69 @return The x data in counts
carlosperate 12:a8429f06a04b 70 */
carlosperate 12:a8429f06a04b 71 virtual int16_t getX(int16_t &x) const = 0;
carlosperate 12:a8429f06a04b 72
carlosperate 12:a8429f06a04b 73 /** Get the y data in counts
carlosperate 12:a8429f06a04b 74 @param y A referene to the variable to put the data in, 0 denotes not used
carlosperate 12:a8429f06a04b 75 @return The y data in counts
carlosperate 12:a8429f06a04b 76 */
carlosperate 12:a8429f06a04b 77 virtual int16_t getY(int16_t &y) const = 0;
carlosperate 12:a8429f06a04b 78
carlosperate 12:a8429f06a04b 79 /** Get the z data in counts
carlosperate 12:a8429f06a04b 80 @param z A referene to the variable to put the data in, 0 denotes not used
carlosperate 12:a8429f06a04b 81 @return The z data in counts
carlosperate 12:a8429f06a04b 82 */
carlosperate 12:a8429f06a04b 83 virtual int16_t getZ(int16_t &z) const = 0;
carlosperate 12:a8429f06a04b 84
carlosperate 12:a8429f06a04b 85 /** Get the x data in units
carlosperate 12:a8429f06a04b 86 @param x A referene to the variable to put the data in, 0 denotes not used
carlosperate 12:a8429f06a04b 87 @return The x data in units
carlosperate 12:a8429f06a04b 88 */
carlosperate 12:a8429f06a04b 89 virtual float getX(float &x) const = 0;
carlosperate 12:a8429f06a04b 90
carlosperate 12:a8429f06a04b 91 /** Get the y data in units
carlosperate 12:a8429f06a04b 92 @param y A referene to the variable to put the data in, 0 denotes not used
carlosperate 12:a8429f06a04b 93 @return The y data in units
carlosperate 12:a8429f06a04b 94 */
carlosperate 12:a8429f06a04b 95 virtual float getY(float &y) const = 0;
carlosperate 12:a8429f06a04b 96
carlosperate 12:a8429f06a04b 97 /** Get the z data in units
carlosperate 12:a8429f06a04b 98 @param z A referene to the variable to put the data in, 0 denotes not used
carlosperate 12:a8429f06a04b 99 @return The z data in units
carlosperate 12:a8429f06a04b 100 */
carlosperate 12:a8429f06a04b 101 virtual float getZ(float &z) const = 0;
carlosperate 12:a8429f06a04b 102
carlosperate 12:a8429f06a04b 103 /** Get the x,y,z data in counts
carlosperate 12:a8429f06a04b 104 @param xyz A referene to the variable to put the data in, 0 denotes not used
carlosperate 12:a8429f06a04b 105 */
carlosperate 12:a8429f06a04b 106 virtual void getAxis(motion_data_counts_t &xyz) const = 0;
carlosperate 12:a8429f06a04b 107
carlosperate 12:a8429f06a04b 108 /** Get the x,y,z data in units
carlosperate 12:a8429f06a04b 109 @param xyz A referene to the variable to put the data in, 0 denotes not used
carlosperate 12:a8429f06a04b 110 */
carlosperate 12:a8429f06a04b 111 virtual void getAxis(motion_data_units_t &xyz) const = 0;
carlosperate 12:a8429f06a04b 112 };
carlosperate 12:a8429f06a04b 113
carlosperate 13:a8deb4ce9b4a 114 } // End namespace
carlosperate 13:a8deb4ce9b4a 115
carlosperate 12:a8429f06a04b 116 #endif