feat: add display UI with splash screen, dashboard, and RSSI sparkline
Implement full SSD1306 OLED display support: - Splash screen on boot (1.5s) with project name, version, board - Dashboard showing radio state, config, counters, RSSI/SNR - RSSI history sparkline (64-sample ring buffer, 2px-wide bars) - DisplayOn/DisplayOff host commands routed via dedicated channel - Pure render functions against generic DrawTarget (no hardware coupling) - Display on/off control bypasses radio task entirely Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
17624 files changed
+4564928
-38
No files matched your search
+1
@@ -0,0 +1 @@
|
||||
{"files":{".cargo_vcs_info.json":"2911ae118111ca095e5e61db62432668a9e5425b41e41f0b91650e5ff69d6fee","CHANGELOG.md":"55fd188e7b16e87b678af0a410882c7e74e4d8abc0fe05f71e29e166a71f4434","Cargo.lock":"c2dc24aeced6854c093af26706fda12b9629355a2e0560768cb1f8d6be1b5982","Cargo.toml":"c8d55267d485e493a678ad0b33131ce24b0e97abf0ca3157e7efcd41fc90c418","Cargo.toml.orig":"7af6d9b013f4513650c49551303bc0311451dba6d8ebab9aa2410f6ab3d88e7d","LICENSE":"c524732311819f888ce57b1b56148feaa6e9b1705fcb158e7e5d71554ccf39ed","README.md":"62c8cd83a228866d12cad8c9c38e48904b88588888ce9000d366fcc637a0d510","src/lib.rs":"de0e31b4b5b9210e7c456c13ee5017cdbdc6a03fb85c4d647c0b0dd75fb1b21f"},"package":"7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d"}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"git": {
|
||||
"sha1": "a7f61c2b4dd74064b4cfd6b0f5cb5bf50f86e64b"
|
||||
},
|
||||
"path_in_vcs": ""
|
||||
}
|
||||
Vendored
+105
@@ -0,0 +1,105 @@
|
||||
# Changelog
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html),
|
||||
specifically the [variant used by Rust](http://doc.crates.io/manifest.html#the-version-field).
|
||||
|
||||
## [1.2.3] - 2025-03-03
|
||||
### Changed
|
||||
- Fix tests for Rust 1.81.
|
||||
- Declare Rust 1.51 as MSRV.
|
||||
|
||||
## [1.2.2] - 2022-10-28
|
||||
### Changed
|
||||
- Fix a couple of clippy warnings in the tests.
|
||||
|
||||
## [1.2.1] - 2022-02-25
|
||||
### Changed
|
||||
- Make trait methods `#[inline]`. This allows the compiler to make the call a
|
||||
no-op in many cases.
|
||||
|
||||
## [1.2.0] - 2021-10-19
|
||||
### Added
|
||||
- Trait impls for converting between `&[[T; N]]` and `&[u8]` for specific `T`.
|
||||
|
||||
## [1.1.0] - 2021-09-16
|
||||
### Added
|
||||
- `ToByteSlice` and `ToMutByteSlice` impl for `&[()]`. This always produces an
|
||||
empty byte slice.
|
||||
|
||||
## [1.0.0] - 2020-10-13
|
||||
### Removed
|
||||
- Support for casting between `Vec<T>` and `Vec<u8>`. This was actually
|
||||
unsound as the alloc trait requires that memory is deallocated with exactly
|
||||
the same alignment as it was allocated with.
|
||||
|
||||
### Fixed
|
||||
- `usize` tests on 16/32 bit architectures.
|
||||
|
||||
### Changed
|
||||
- Various documentation improvements.
|
||||
|
||||
## [0.3.5] - 2019-12-22
|
||||
### Changed
|
||||
- Improve documentation and examples
|
||||
|
||||
### Fixed
|
||||
- Fix running of tests on 16/32 bit architectures
|
||||
|
||||
## [0.3.4] - 2019-11-11
|
||||
### Added
|
||||
- Support for casting between `Vec<T>` and `Vec<u8>`
|
||||
|
||||
## [0.3.3] - 2019-11-02
|
||||
### Added
|
||||
- Support for `usize` and `isize`
|
||||
|
||||
## [0.3.2] - 2019-07-26
|
||||
### Changed
|
||||
- Add `no_std` support
|
||||
- Migrate to 2018 edition
|
||||
|
||||
## [0.3.1] - 2019-06-05
|
||||
### Fixed
|
||||
- Casting of empty slices works correctly now instead of failing with an
|
||||
alignment mismatch error.
|
||||
|
||||
## [0.3.0] - 2019-05-11
|
||||
### Added
|
||||
- The `Error` type now implements `Clone`.
|
||||
|
||||
### Changed
|
||||
- `AsByteSlice::as_byte_slice` and `ToByteSlice::to_byte_slice` were changed
|
||||
to always return `&[u8]` instead of `Result<&[u8], Error>`.
|
||||
- `AsMutByteSlice::as_mut_byte_slice` and `ToMutByteSlice::to_mut_byte_slice`
|
||||
were changed to always return `&mut [u8]` instead of `Result<&mut [u8],
|
||||
Error>`.
|
||||
- The `Display` impl for `Error` now produces more detailed error messages.
|
||||
- The variants of the `Error` enum were renamed.
|
||||
|
||||
## [0.2.0] - 2018-06-01
|
||||
### Changed
|
||||
- Major refactoring of how the traits work. It is now possible to work
|
||||
directly on `AsRef<[T]>` and `AsMut<[T]>`, e.g. on `Vec<T>` and `Box<[T]>`.
|
||||
|
||||
### Added
|
||||
- Trait impls for i128 and u128.
|
||||
|
||||
## [0.1.0] - 2017-08-14
|
||||
- Initial release of the `byte-slice-cast` crate.
|
||||
|
||||
[Unreleased]: https://github.com/sdroege/byte-slice-cast/compare/1.2.3...HEAD
|
||||
[1.2.3]: https://github.com/sdroege/byte-slice-cast/compare/1.2.2...1.2.3
|
||||
[1.2.2]: https://github.com/sdroege/byte-slice-cast/compare/1.2.1...1.2.2
|
||||
[1.2.1]: https://github.com/sdroege/byte-slice-cast/compare/1.2.0...1.2.1
|
||||
[1.2.0]: https://github.com/sdroege/byte-slice-cast/compare/1.1.0...1.2.0
|
||||
[1.1.0]: https://github.com/sdroege/byte-slice-cast/compare/1.0.0...1.1.0
|
||||
[1.0.0]: https://github.com/sdroege/byte-slice-cast/compare/0.3.5...1.0.0
|
||||
[0.3.5]: https://github.com/sdroege/byte-slice-cast/compare/0.3.4...0.3.5
|
||||
[0.3.4]: https://github.com/sdroege/byte-slice-cast/compare/0.3.3...0.3.4
|
||||
[0.3.3]: https://github.com/sdroege/byte-slice-cast/compare/0.3.2...0.3.3
|
||||
[0.3.2]: https://github.com/sdroege/byte-slice-cast/compare/0.3.1...0.3.2
|
||||
[0.3.1]: https://github.com/sdroege/byte-slice-cast/compare/0.3.0...0.3.1
|
||||
[0.3.0]: https://github.com/sdroege/byte-slice-cast/compare/0.2.0...0.3.0
|
||||
[0.2.0]: https://github.com/sdroege/byte-slice-cast/compare/0.1.0...0.2.0
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
[[package]]
|
||||
name = "byte-slice-cast"
|
||||
version = "1.2.3"
|
||||
Vendored
+45
@@ -0,0 +1,45 @@
|
||||
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
|
||||
#
|
||||
# When uploading crates to the registry Cargo will automatically
|
||||
# "normalize" Cargo.toml files for maximal compatibility
|
||||
# with all versions of Cargo and also rewrite `path` dependencies
|
||||
# to registry (e.g., crates.io) dependencies.
|
||||
#
|
||||
# If you are reading this file be aware that the original Cargo.toml
|
||||
# will likely look very different (and much more reasonable).
|
||||
# See Cargo.toml.orig for the original contents.
|
||||
|
||||
[package]
|
||||
edition = "2018"
|
||||
rust-version = "1.51.0"
|
||||
name = "byte-slice-cast"
|
||||
version = "1.2.3"
|
||||
authors = ["Sebastian Dröge <sebastian@centricular.com>"]
|
||||
build = false
|
||||
include = [
|
||||
"src/lib.rs",
|
||||
"Cargo.toml",
|
||||
"LICENSE",
|
||||
"README.md",
|
||||
"CHANGELOG.md",
|
||||
]
|
||||
autolib = false
|
||||
autobins = false
|
||||
autoexamples = false
|
||||
autotests = false
|
||||
autobenches = false
|
||||
description = "Safely cast bytes slices from/to slices of built-in fundamental numeric types"
|
||||
readme = "README.md"
|
||||
keywords = ["no_std"]
|
||||
license = "MIT"
|
||||
repository = "https://github.com/sdroege/bytes-num-slice-cast"
|
||||
|
||||
[features]
|
||||
default = ["std"]
|
||||
std = []
|
||||
|
||||
[lib]
|
||||
name = "byte_slice_cast"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[dependencies]
|
||||
Vendored
+23
@@ -0,0 +1,23 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Sebastian Dröge <sebastian@centricular.com>.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
# byte-slice-cast [](https://crates.io/crates/byte-slice-cast) [](https://github.com/sdroege/byte-slice-cast/actions) [](https://docs.rs/byte-slice-cast)
|
||||
|
||||
Safely cast between byte slices and slices of another built-in fundamental number type.
|
||||
|
||||
## LICENSE
|
||||
|
||||
byte-slice-cast is licensed under the MIT license ([LICENSE](LICENSE) or
|
||||
http://opensource.org/licenses/MIT).
|
||||
|
||||
## Contribution
|
||||
|
||||
Any kinds of contributions are welcome as a pull request.
|
||||
|
||||
Unless you explicitly state otherwise, any contribution intentionally
|
||||
submitted for inclusion in byte-slice-cast by you shall be licensed under the
|
||||
MIT license as above, without any additional terms or conditions.
|
||||
Vendored
+1002
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user