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
MbedComponentMotionSensor.h@13:a8deb4ce9b4a, 2019-10-08 (annotated)
- 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?
User | Revision | Line number | New 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 |