3 unstable releases
0.3.1 | Oct 1, 2021 |
---|---|
0.3.0 | Sep 27, 2021 |
0.2.0 | Sep 9, 2021 |
#1909 in Embedded development
75KB
1.5K
SLoC
Embedded Multi-Page HMI
An embedded page oriented HMI library supporting a few buttons as input and a constraint display as output on embedded devices.
Capabilities
- Predefined Input Models using two, three, four or five buttons or a rotary switch.
- Adaptable to different constraints displays: E.g.
- alpha-numerical
- ePaper, Oled via embedded-graphics crate
- Declarative page structure specification and page transition specification
- Multiple information pages
- Continuous page updates and page system triggered page transitions
- Dedicated startup/ shutdown pages
- Setting menu, submenu and edit pages
Usage
Add this to your Cargo.toml
:
[dependencies]
embedded-multi-page-hmi = "0.2"
Checkout the example how to specify page structures and interaction.
Example
A documented demonstration of all capabilities is maintained as an example in this crate. The example application runs on windows, linux and OSX in a terminal using the pancurses crate.
You can run the example as follow (assuming you have rust installed):
# Get this repository from github
git clone https://github.com/almedso/embedded-multi-page-hmi.git
cd embedded-multi-page-hmi
# Build and run the example
cargo run --example simulate-on-host
License
This project is licensed under
- MIT License (
LICENSE.md
or online)
Contribution
Feel free and join for contribution.
Checkout DESIGN-NOTES.md
for design issues and design decisions.
Future Work
- Edit page for select 1 of many
- Edit page for select multiple of many (list of binary flags)
- Provide examples on raspi with four-button epaper shield
- Move to no-std
- Replacement for Box with trait objects e.g. RefCell? in page manager
- Provide example on stmf32 with two-buttons and 16x2 alpha-num display
Dependencies
~69KB