Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Input Device Manager #23

Open
Mischback opened this issue Jul 5, 2022 · 0 comments
Open

Input Device Manager #23

Mischback opened this issue Jul 5, 2022 · 0 comments
Labels
type/feature New feature or request
Milestone

Comments

@Mischback
Copy link
Owner

Obviously, the krachkiste needs some kind of input device manager.

Prerequisite

Hardware

Input Devices are considered every physical means to interact with the actual device, including buttons / touch sensors, rotary encoders.

These physical input devices will need a digital representation / a driver to include them in the software part.

Remark The web interface may be considered a virtual input device aswell and should (generally speaking) follow the same internal logic.

Software

The project is implemented in loosely coupled functional units (in ESP-IDF's terminology: components). The components work out of the box and do not interact directly with each other.

Instead, the actual main application ties them together and makes them interact with each other.

Each component clearly defines its external interface. This may consist of two core parts:

a) the component may define component-specific events that reveal information about the internal state of the component.
b) the component may expose component-specific commands that may be used by an external actor (e.g. the main application) to trigger certain actions within the component.

Input Device Manager

The input device manager should map the (physical) input devices to actions of available components.

This is highly project-specific, meaning it may differ for every implementation. While the components are as pluggable as possible (see above, loose coupling), they are tied together by the main application.

The main application should then configure the ESP32's I/O ports (GPIO, I2S, I2C, SPI, ...) as per the actual project-specific schematic. One part of this is the mapping of input devices.

@Mischback Mischback added the type/feature New feature or request label Jul 5, 2022
@Mischback Mischback added this to the Release 1.0.0 milestone Jul 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant