mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-01-17 05:32:45 +01:00
930811dc45
19884: drivers/touch_dev_gestures: add gesture recognition for touch devices r=aabadie a=gschorcht ### Contribution description This PR adds simple gesture recognition for touch devices accessed via the generic Touch Device API. It can be used in conjunction with device drivers that use either interrupts or polling mode. It supports up to two touches and the following gestures: - Single and double tap at given position - Long press and release given position - Moving while pressed with current position - Swipe left, right, up and down - Zoom in (spread) and out (pinch) Gesture recognition has been tested with: - [x] `stm32f746g-disco` (works out of the box) - [x] `stm32f723e-disco` (works out of the box) - [x] `stm32f429i-disc1` (works on top of PR #19885) - [x] `stm32l496g-disco` (works with my local LCD display changes waiting for PR #19825, not yet provided) - [x] `esp32s3-wt32-sc01-plus` (new board, not yet provided) ### Testing procedure Flash `tests/drivers/touch_dev_gestures` to a board with touch pane, for example: ``` BOARD=stm32f746g-disco make -j8 -C tests/drivers/touch_dev_gestures/ flash ``` PR #19885 is required for the `stm32f429i-disc1` board. The output should look like this: ``` main(): This is RIOT! (Version: 2023.10-devel-121-g81c5c-drivers/touch_dev_gestures) Single Tap X: 255, Y:154 Single Tap X: 253, Y:153 Double Tap X: 253, Y:149 Swipe right Swipe down Swipe left Swipe up Pressed X: 257, Y:155 Moving X: 257, Y:155 Moving X: 257, Y:155 Moving X: 259, Y:156 Moving X: 262, Y:157 Moving X: 266, Y:158 Moving X: 269, Y:160 Moving X: 273, Y:162 Moving X: 276, Y:165 Moving X: 278, Y:167 Moving X: 278, Y:169 Moving X: 278, Y:169 Released X: 279, Y:172 ``` ### Issues/PRs references Co-authored-by: Gunar Schorcht <gunar@schorcht.net>
169 lines
4.2 KiB
Plaintext
169 lines
4.2 KiB
Plaintext
# Copyright (c) 2020 HAW Hamburg
|
|
#
|
|
# This file is subject to the terms and conditions of the GNU Lesser
|
|
# General Public License v2.1. See the file LICENSE in the top level
|
|
# directory for more details.
|
|
|
|
menu "Drivers"
|
|
|
|
rsource "saul/Kconfig"
|
|
|
|
menu "Actuator Device Drivers"
|
|
rsource "aip31068/Kconfig"
|
|
rsource "apa102/Kconfig"
|
|
rsource "dac_dds/Kconfig"
|
|
rsource "dfplayer/Kconfig"
|
|
rsource "dynamixel/Kconfig"
|
|
rsource "feetech/Kconfig"
|
|
rsource "grove_ledbar/Kconfig"
|
|
rsource "motor_driver/Kconfig"
|
|
rsource "mcp47xx/Kconfig"
|
|
rsource "my9221/Kconfig"
|
|
rsource "rgbled/Kconfig"
|
|
rsource "servo/Kconfig"
|
|
rsource "ws281x/Kconfig"
|
|
endmenu # Actuator Device Drivers
|
|
|
|
menu "Display Device Drivers"
|
|
rsource "disp_dev/Kconfig"
|
|
rsource "dsp0401/Kconfig"
|
|
rsource "hd44780/Kconfig"
|
|
rsource "ili9341/Kconfig"
|
|
rsource "lcd/Kconfig"
|
|
rsource "st7735/Kconfig"
|
|
rsource "touch_dev/Kconfig"
|
|
rsource "touch_dev_gestures/Kconfig"
|
|
endmenu # Display Device Drivers
|
|
|
|
menu "Miscellaneous Device Drivers"
|
|
rsource "at/Kconfig"
|
|
rsource "at24mac/Kconfig"
|
|
rsource "bq2429x/Kconfig"
|
|
rsource "cst816s/Kconfig"
|
|
rsource "ds1307/Kconfig"
|
|
rsource "ds3231/Kconfig"
|
|
rsource "ds3234/Kconfig"
|
|
rsource "edbg_eui/Kconfig"
|
|
rsource "io1_xplained/Kconfig"
|
|
rsource "pcf857x/Kconfig"
|
|
rsource "tps6274x/Kconfig"
|
|
rsource "uart_half_duplex/Kconfig"
|
|
rsource "usbdev_mock/Kconfig"
|
|
endmenu # Miscellaneous Device Drivers
|
|
|
|
rsource "Kconfig.net"
|
|
|
|
menu "Peripherals drivers"
|
|
rsource "periph_common/Kconfig"
|
|
rsource "rtt_rtc/Kconfig"
|
|
rsource "soft_spi/Kconfig"
|
|
rsource "soft_uart/Kconfig"
|
|
rsource "usbdev_synopsys_dwc2/Kconfig"
|
|
endmenu # Peripherals drivers
|
|
|
|
menu "Sensor Device Drivers"
|
|
rsource "ad7746/Kconfig"
|
|
rsource "adcxx1c/Kconfig"
|
|
rsource "ads101x/Kconfig"
|
|
rsource "adt7310/Kconfig"
|
|
rsource "adxl345/Kconfig"
|
|
rsource "apds99xx/Kconfig"
|
|
rsource "at30tse75x/Kconfig"
|
|
rsource "bh1750fvi/Kconfig"
|
|
rsource "bh1900nux/Kconfig"
|
|
rsource "bme680/Kconfig"
|
|
rsource "bmp180/Kconfig"
|
|
rsource "bmx055/Kconfig"
|
|
rsource "bmx280/Kconfig"
|
|
rsource "ccs811/Kconfig"
|
|
rsource "cst816s/Kconfig"
|
|
rsource "dcf77/Kconfig"
|
|
rsource "dht/Kconfig"
|
|
rsource "ds18/Kconfig"
|
|
rsource "ds75lx/Kconfig"
|
|
rsource "ft5x06/Kconfig"
|
|
rsource "fxos8700/Kconfig"
|
|
rsource "gp2y10xx/Kconfig"
|
|
rsource "hdc1000/Kconfig"
|
|
rsource "hih6130/Kconfig"
|
|
rsource "hmc5883l/Kconfig"
|
|
rsource "hm330x/Kconfig"
|
|
rsource "hsc/Kconfig"
|
|
rsource "hts221/Kconfig"
|
|
rsource "ina2xx/Kconfig"
|
|
rsource "ina3221/Kconfig"
|
|
rsource "isl29020/Kconfig"
|
|
rsource "isl29125/Kconfig"
|
|
rsource "itg320x/Kconfig"
|
|
rsource "jc42/Kconfig"
|
|
rsource "l3g4200d/Kconfig"
|
|
rsource "l3gxxxx/Kconfig"
|
|
rsource "lc709203f/Kconfig"
|
|
rsource "lis2dh12/Kconfig"
|
|
rsource "lis3dh/Kconfig"
|
|
rsource "lis3mdl/Kconfig"
|
|
rsource "lm75/Kconfig"
|
|
rsource "lpd8808/Kconfig"
|
|
rsource "lpsxxx/Kconfig"
|
|
rsource "lsm6dsl/Kconfig"
|
|
rsource "lsm303dlhc/Kconfig"
|
|
rsource "lsm303agr/Kconfig"
|
|
rsource "ltc4150/Kconfig"
|
|
rsource "mag3110/Kconfig"
|
|
rsource "matrix_keypad/Kconfig"
|
|
rsource "mfrc522/Kconfig"
|
|
rsource "mhz19/Kconfig"
|
|
rsource "mma8x5x/Kconfig"
|
|
rsource "mma7660/Kconfig"
|
|
rsource "mpl3115a2/Kconfig"
|
|
rsource "mpu9x50/Kconfig"
|
|
rsource "mq3/Kconfig"
|
|
rsource "opt3001/Kconfig"
|
|
rsource "pca9633/Kconfig"
|
|
rsource "pca9685/Kconfig"
|
|
rsource "pcd8544/Kconfig"
|
|
rsource "ph_oem/Kconfig"
|
|
rsource "pir/Kconfig"
|
|
rsource "pulse_counter/Kconfig"
|
|
rsource "qmc5883l/Kconfig"
|
|
rsource "scd30/Kconfig"
|
|
rsource "sdp3x/Kconfig"
|
|
rsource "sgp30/Kconfig"
|
|
rsource "sds011/Kconfig"
|
|
rsource "seesaw_soil/Kconfig"
|
|
rsource "sht1x/Kconfig"
|
|
rsource "sht2x/Kconfig"
|
|
rsource "sht3x/Kconfig"
|
|
rsource "shtcx/Kconfig"
|
|
rsource "si70xx/Kconfig"
|
|
rsource "si114x/Kconfig"
|
|
rsource "si1133/Kconfig"
|
|
rsource "sm_pwm_01c/Kconfig"
|
|
rsource "sps30/Kconfig"
|
|
rsource "srf02/Kconfig"
|
|
rsource "srf04/Kconfig"
|
|
rsource "srf08/Kconfig"
|
|
rsource "stmpe811/Kconfig"
|
|
rsource "tcs37727/Kconfig"
|
|
rsource "tmp00x/Kconfig"
|
|
rsource "tsl2561/Kconfig"
|
|
rsource "tsl4531x/Kconfig"
|
|
rsource "vcnl40x0/Kconfig"
|
|
rsource "veml6070/Kconfig"
|
|
rsource "vl6180x/Kconfig"
|
|
endmenu # Sensor Device Drivers
|
|
|
|
menu "Storage Device Drivers"
|
|
rsource "at24cxxx/Kconfig"
|
|
rsource "at25xxx/Kconfig"
|
|
rsource "mtd/Kconfig"
|
|
rsource "mtd_mapper/Kconfig"
|
|
rsource "mtd_sdcard/Kconfig"
|
|
rsource "nvram/Kconfig"
|
|
rsource "nvram_spi/Kconfig"
|
|
rsource "sdcard_spi/Kconfig"
|
|
rsource "sdmmc/Kconfig"
|
|
endmenu # Storage Device Drivers
|
|
|
|
endmenu # Drivers
|