prova

Dependencies:   X_NUCLEO_53L0A1 mbed

Fork of 53L0A1_HandGestureRecognition by ST

Committer:
mapellil
Date:
Thu Feb 22 15:50:29 2018 +0000
Revision:
9:6205ef056c8a
Parent:
7:d79cbeda2982
AStDay

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mapellil 7:d79cbeda2982 1 /*******************************************************************************
mapellil 7:d79cbeda2982 2 Copyright © 2015, STMicroelectronics International N.V.
mapellil 7:d79cbeda2982 3 All rights reserved.
mapellil 7:d79cbeda2982 4
mapellil 7:d79cbeda2982 5 Use and Redistribution are permitted only in accordance with licensing terms
mapellil 7:d79cbeda2982 6 available at www.st.com under software reference X-CUBE-6180XA1, and provided
mapellil 7:d79cbeda2982 7 that the following conditions are met:
mapellil 7:d79cbeda2982 8 * Redistributions of source code must retain the above copyright
mapellil 7:d79cbeda2982 9 notice, this list of conditions and the following disclaimer.
mapellil 7:d79cbeda2982 10 * Redistributions in binary form must reproduce the above copyright
mapellil 7:d79cbeda2982 11 notice, this list of conditions and the following disclaimer in the
mapellil 7:d79cbeda2982 12 documentation and/or other materials provided with the distribution.
mapellil 7:d79cbeda2982 13 * Neither the name of STMicroelectronics nor the
mapellil 7:d79cbeda2982 14 names of its contributors may be used to endorse or promote products
mapellil 7:d79cbeda2982 15 derived from this software without specific prior written permission.
mapellil 7:d79cbeda2982 16
mapellil 7:d79cbeda2982 17 THIS SOFTWARE IS PROTECTED BY STMICROELECTRONICS PATENTS AND COPYRIGHTS.
mapellil 7:d79cbeda2982 18 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
mapellil 7:d79cbeda2982 19 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
mapellil 7:d79cbeda2982 20 WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
mapellil 7:d79cbeda2982 21 NON-INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS ARE DISCLAIMED.
mapellil 7:d79cbeda2982 22 IN NO EVENT SHALL STMICROELECTRONICS INTERNATIONAL N.V. BE LIABLE FOR ANY
mapellil 7:d79cbeda2982 23 DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
mapellil 7:d79cbeda2982 24 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
mapellil 7:d79cbeda2982 25 LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
mapellil 7:d79cbeda2982 26 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
mapellil 7:d79cbeda2982 27 (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
mapellil 7:d79cbeda2982 28 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mapellil 7:d79cbeda2982 29 ********************************************************************************/
mapellil 7:d79cbeda2982 30
mapellil 7:d79cbeda2982 31 /*
mapellil 7:d79cbeda2982 32 * @file tof_motion.h
mapellil 7:d79cbeda2982 33 * $Date: 2015-11-10 11:21:53 +0100 (Tue, 10 Nov 2015) $
mapellil 7:d79cbeda2982 34 * $Revision: 2612 $
mapellil 7:d79cbeda2982 35 */
mapellil 7:d79cbeda2982 36
mapellil 7:d79cbeda2982 37 #ifndef TOF_MOTION_H_
mapellil 7:d79cbeda2982 38 #define TOF_MOTION_H_
mapellil 7:d79cbeda2982 39
mapellil 7:d79cbeda2982 40 #include "tof_gestures_platform.h"
mapellil 7:d79cbeda2982 41
mapellil 7:d79cbeda2982 42 #ifdef __cplusplus
mapellil 7:d79cbeda2982 43 extern "C" {
mapellil 7:d79cbeda2982 44 #endif
mapellil 7:d79cbeda2982 45
mapellil 7:d79cbeda2982 46 /** @defgroup tof_motion Motion
mapellil 7:d79cbeda2982 47 * @brief Motion detector based on simple threshold
mapellil 7:d79cbeda2982 48 @par Description
mapellil 7:d79cbeda2982 49 This module returns one of the states defined in ::Gestures_Motion_Code_t based on a programmable range threshold.
mapellil 7:d79cbeda2982 50 When a transition state is returned (::GESTURES_MOTION_RAISE_UP or ::GESTURES_MOTION_DROP_DOWN), it also returns the
mapellil 7:d79cbeda2982 51 duration (in ms) of the previous state. For instance, assuming ::GESTURES_MOTION_RAISE_UP is returned, duration is
mapellil 7:d79cbeda2982 52 the time the state ::GESTURES_MOTION_DOWN_STATE has been maintained before the down=>up transition.
mapellil 7:d79cbeda2982 53 * @ingroup tof
mapellil 7:d79cbeda2982 54 * @{
mapellil 7:d79cbeda2982 55 */
mapellil 7:d79cbeda2982 56
mapellil 7:d79cbeda2982 57 /** Codes associated to Motion detection
mapellil 7:d79cbeda2982 58 */
mapellil 7:d79cbeda2982 59 enum Gestures_Motion_Code_t{
mapellil 7:d79cbeda2982 60 GESTURES_MOTION_NULL = 0, /*!< No motion detected */
mapellil 7:d79cbeda2982 61 GESTURES_MOTION_DOWN_STATE = 1, /*!< Hand is down (below threshold) */
mapellil 7:d79cbeda2982 62 GESTURES_MOTION_UP_STATE = 2, /*!< Hand is up (above threshold) */
mapellil 7:d79cbeda2982 63 GESTURES_MOTION_RAISE_UP = 3, /*!< Hand is raising up (transition from DOWN_STATE to UP_STATE is detected) */
mapellil 7:d79cbeda2982 64 GESTURES_MOTION_DROP_DOWN = 4, /*!< Hand is dropping down (transition from UP_STATE to DOWN_STATE is detected) */
mapellil 7:d79cbeda2982 65 };
mapellil 7:d79cbeda2982 66
mapellil 7:d79cbeda2982 67 /**
mapellil 7:d79cbeda2982 68 * @struct MotionData_t
mapellil 7:d79cbeda2982 69 * @brief Data structure for motion detection
mapellil 7:d79cbeda2982 70 */
mapellil 7:d79cbeda2982 71 typedef struct {
mapellil 7:d79cbeda2982 72 int threshold; /*!< Input : Range threshold */
mapellil 7:d79cbeda2982 73 int duration; /*!< Output : Duration (in ms) */
mapellil 7:d79cbeda2982 74 int previousRange; /*!< Private : Obvious */
mapellil 7:d79cbeda2982 75 int timestamp; /*!< Private : Obvious */
mapellil 7:d79cbeda2982 76 bool firstTime; /*!< Private : True only the first time */
mapellil 7:d79cbeda2982 77 } MotionData_t;
mapellil 7:d79cbeda2982 78
mapellil 7:d79cbeda2982 79 /**
mapellil 7:d79cbeda2982 80 * @brief Initialize Motion data
mapellil 7:d79cbeda2982 81 * @return 0 on success
mapellil 7:d79cbeda2982 82 */
mapellil 7:d79cbeda2982 83 int tof_initMotion(int threshold, MotionData_t *data);
mapellil 7:d79cbeda2982 84 /**
mapellil 7:d79cbeda2982 85 * @brief Return current motion state
mapellil 7:d79cbeda2982 86 @return One of the states defined in ::Gestures_Motion_Code_t
mapellil 7:d79cbeda2982 87 */
mapellil 7:d79cbeda2982 88 int tof_getMotion(int32_t range_mm, MotionData_t *data);
mapellil 7:d79cbeda2982 89
mapellil 7:d79cbeda2982 90 /** @} */
mapellil 7:d79cbeda2982 91
mapellil 7:d79cbeda2982 92 #ifdef __cplusplus
mapellil 7:d79cbeda2982 93 }
mapellil 7:d79cbeda2982 94 #endif
mapellil 7:d79cbeda2982 95 #endif /* TOF_MOTION_H_ */
mapellil 7:d79cbeda2982 96