Beispiel #1
0
        public SparkFun_APDS9960(ref I2cDevice i2CDevice)
        {
            I2C = i2CDevice;

            _gestureUdDelta = 0;
            _gestureLrDelta = 0;

            _gestureUdCount = 0;
            _gestureLrCount = 0;

            _gestureNearCount = 0;
            _gestureFarCount  = 0;

            _gestureState  = StateDefinitions.NA_STATE;
            _gestureMotion = DirectionDefinitions.DIR_NONE;
        }
Beispiel #2
0
        private void ResetGestureParameters()
        {
            _gestureData.Index         = 0;
            _gestureData.TotalGestures = 0;

            _gestureUdDelta = 0;
            _gestureLrDelta = 0;

            _gestureUdCount = 0;
            _gestureLrCount = 0;

            _gestureNearCount = 0;
            _gestureFarCount  = 0;

            _gestureState  = StateDefinitions.NA_STATE;
            _gestureMotion = DirectionDefinitions.DIR_NONE;
        }
        public SparkFun_APDS9960(ref I2cDevice i2CDevice)
        {
            I2C = i2CDevice;

            _gestureUdDelta = 0;
            _gestureLrDelta = 0;

            _gestureUdCount = 0;
            _gestureLrCount = 0;

            _gestureNearCount = 0;
            _gestureFarCount = 0;

            _gestureState = StateDefinitions.NA_STATE;
            _gestureMotion = DirectionDefinitions.DIR_NONE;
        }
        private bool DecodeGesture()
        {
            /* Return if near or far event is detected */
            if (_gestureState == StateDefinitions.NEAR_STATE)
            {
                _gestureMotion = DirectionDefinitions.DIR_NEAR;
                return true;
            }

            if (_gestureState == StateDefinitions.FAR_STATE)
            {
                _gestureMotion = DirectionDefinitions.DIR_FAR;
                return true;
            }

            /* Determine swipe direction */
            if ((_gestureUdCount == -1) && (_gestureLrCount == 0))
            {
                _gestureMotion = DirectionDefinitions.DIR_UP;
            }
            else if ((_gestureUdCount == 1) && (_gestureLrCount == 0))
            {
                _gestureMotion = DirectionDefinitions.DIR_DOWN;
            }
            else if ((_gestureUdCount == 0) && (_gestureLrCount == 1))
            {
                _gestureMotion = DirectionDefinitions.DIR_RIGHT;
            }
            else if ((_gestureUdCount == 0) && (_gestureLrCount == -1))
            {
                _gestureMotion = DirectionDefinitions.DIR_LEFT;
            }
            else if ((_gestureUdCount == -1) && (_gestureLrCount == 1))
            {
                if (Math.Abs(_gestureUdDelta) > Math.Abs(_gestureLrDelta))
                {
                    _gestureMotion = DirectionDefinitions.DIR_UP;
                }
                else
                {
                    _gestureMotion = DirectionDefinitions.DIR_RIGHT;
                }
            }
            else if ((_gestureUdCount == 1) && (_gestureLrCount == -1))
            {
                if (Math.Abs(_gestureUdDelta) > Math.Abs(_gestureLrDelta))
                {
                    _gestureMotion = DirectionDefinitions.DIR_DOWN;
                }
                else
                {
                    _gestureMotion = DirectionDefinitions.DIR_LEFT;
                }
            }
            else if ((_gestureUdCount == -1) && (_gestureLrCount == -1))
            {
                if (Math.Abs(_gestureUdDelta) > Math.Abs(_gestureLrDelta))
                {
                    _gestureMotion = DirectionDefinitions.DIR_UP;
                }
                else
                {
                    _gestureMotion = DirectionDefinitions.DIR_LEFT;
                }
            }
            else if ((_gestureUdCount == 1) && (_gestureLrCount == 1))
            {
                if (Math.Abs(_gestureUdDelta) > Math.Abs(_gestureLrDelta))
                {
                    _gestureMotion = DirectionDefinitions.DIR_DOWN;
                }
                else
                {
                    _gestureMotion = DirectionDefinitions.DIR_RIGHT;
                }
            }
            else
            {
                return false;
            }

            return true;
        }
        private void ResetGestureParameters()
        {
            _gestureData.Index = 0;
            _gestureData.TotalGestures = 0;

            _gestureUdDelta = 0;
            _gestureLrDelta = 0;

            _gestureUdCount = 0;
            _gestureLrCount = 0;

            _gestureNearCount = 0;
            _gestureFarCount = 0;

            _gestureState = StateDefinitions.NA_STATE;
            _gestureMotion = DirectionDefinitions.DIR_NONE;
        }
Beispiel #6
0
        private bool DecodeGesture()
        {
            /* Return if near or far event is detected */
            if (_gestureState == StateDefinitions.NEAR_STATE)
            {
                _gestureMotion = DirectionDefinitions.DIR_NEAR;
                return(true);
            }

            if (_gestureState == StateDefinitions.FAR_STATE)
            {
                _gestureMotion = DirectionDefinitions.DIR_FAR;
                return(true);
            }

            /* Determine swipe direction */
            if ((_gestureUdCount == -1) && (_gestureLrCount == 0))
            {
                _gestureMotion = DirectionDefinitions.DIR_UP;
            }
            else if ((_gestureUdCount == 1) && (_gestureLrCount == 0))
            {
                _gestureMotion = DirectionDefinitions.DIR_DOWN;
            }
            else if ((_gestureUdCount == 0) && (_gestureLrCount == 1))
            {
                _gestureMotion = DirectionDefinitions.DIR_RIGHT;
            }
            else if ((_gestureUdCount == 0) && (_gestureLrCount == -1))
            {
                _gestureMotion = DirectionDefinitions.DIR_LEFT;
            }
            else if ((_gestureUdCount == -1) && (_gestureLrCount == 1))
            {
                if (Math.Abs(_gestureUdDelta) > Math.Abs(_gestureLrDelta))
                {
                    _gestureMotion = DirectionDefinitions.DIR_UP;
                }
                else
                {
                    _gestureMotion = DirectionDefinitions.DIR_RIGHT;
                }
            }
            else if ((_gestureUdCount == 1) && (_gestureLrCount == -1))
            {
                if (Math.Abs(_gestureUdDelta) > Math.Abs(_gestureLrDelta))
                {
                    _gestureMotion = DirectionDefinitions.DIR_DOWN;
                }
                else
                {
                    _gestureMotion = DirectionDefinitions.DIR_LEFT;
                }
            }
            else if ((_gestureUdCount == -1) && (_gestureLrCount == -1))
            {
                if (Math.Abs(_gestureUdDelta) > Math.Abs(_gestureLrDelta))
                {
                    _gestureMotion = DirectionDefinitions.DIR_UP;
                }
                else
                {
                    _gestureMotion = DirectionDefinitions.DIR_LEFT;
                }
            }
            else if ((_gestureUdCount == 1) && (_gestureLrCount == 1))
            {
                if (Math.Abs(_gestureUdDelta) > Math.Abs(_gestureLrDelta))
                {
                    _gestureMotion = DirectionDefinitions.DIR_DOWN;
                }
                else
                {
                    _gestureMotion = DirectionDefinitions.DIR_RIGHT;
                }
            }
            else
            {
                return(false);
            }

            return(true);
        }