* implement event handling for apsta{,dis}connect and probe
add to wifi_access_point example
* hide internal `Option` to simplify api
* move handler call logic to event.rs
* update_handler_leak
* - Add comments
- match simpler api from `std::panic::update_hook`
- do not assume size_of in prelude
- make all events handleable
- box static instead of leak
* update changelog
* elide lifetime on default handler
* newtypes for all event types.
* add doc to newtypes
* fix previous doc example
* - `get_handler` -> `handler`
- pass critical section to event handlers
- comment on perf of Box<ZST>
- don't pass `prev` in `update_handler`, instead call previous handler first unconditionally
* pass cs to dispatch_event_handler
* don't print "unhandled event" for handled events.
|
||
|---|---|---|
| .. | ||
| src | ||
| build.rs | ||
| Cargo.toml | ||
| CHANGELOG.md | ||
| MIGRATING-0.9.md | ||
| MIGRATING-0.10.md | ||
| README.md | ||
esp-wifi
A WiFi, BLE and ESP-NOW driver for Espressif microcontrollers.
Current support
If a cell contains an em dash (—) this means that the particular feature is not present for a chip. A check mark (✓) means that some driver implementation exists. A Tilde (˜) means it is implemented but buggy. An empty cell means that the feature is present in the chip but not implemented yet.
| Wifi | BLE | Coex | ESP-NOW | |
|---|---|---|---|---|
| ESP32 | ✓ | ✓ | ✓ | ✓ |
| ESP32-C2 | ✓ | ✓ | ✓ | ✓ |
| ESP32-C3 | ✓ | ✓ | ✓ | ✓ |
| ESP32-C6 | ✓ | ✓ | ✓ | ✓ |
| ESP32-H2 | — | ✓ | — | — |
| ESP32-S2 | ✓ | — | — | ✓ |
| ESP32-S3 | ✓ | ✓ | ✓ | ✓ |
Minimum supported Rust compiler version: 1.79.0
Missing / To be done
- Support for non-open SoftAP
Directory Structure
src/timer/: systimer code used for timing and task switchingsrc/preemt/: a bare minimum RISCV and Xtensa round-robin task schedulersrc/compat/: code needed to emulate enough of an (RT)OS to use the drivercommon.rs: basics like semaphores and recursive mutexestimer_compat.rs: code to emulate timer related functionality
examples/*.rs: examples
Driver version
This uses the WiFi drivers from https://github.com/esp-rs/esp-wireless-drivers-3rdparty
v5.1.2-602-gdb1e54a0c5-dirty commit db1e54a0c537d8b2cc2bd109ee88b50e1ca0ea80
https://github.com/esp-rs/esp-wireless-drivers-3rdparty/ (commit ca2809144cf6d2f89d413f1d415f1c4454ee6249)
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.