Validate configuration through its owning schemas and keep board declarations separate from shared F722 resource ownership. Bound USB transitions, isolate transport failures and retain restart-only activation. Migrate navigation and flight consumers with the sensor and schema contracts. Require explicit installation data and synchronous output authority; board motor outputs remain inhibited. Validation: assembled-prefix host tests, strict Clippy, platform/USB tests and both ARM release builds. Final-source coverage and scoped Miri/Kani evidence are retained separately from hardware qualification.
32 lines
570 B
Rust
32 lines
570 B
Rust
use kaptan_config_derive::{Config, ConfigEnum};
|
|
|
|
#[derive(Clone, Copy, ConfigEnum)]
|
|
#[repr(u8)]
|
|
enum Mode {
|
|
Off = 0,
|
|
On = 1,
|
|
}
|
|
|
|
#[derive(Config)]
|
|
struct NonzeroEnum {
|
|
#[config(enum, id = 1, key = "value", unit = "")]
|
|
#[config(nonzero)]
|
|
value: Mode,
|
|
}
|
|
|
|
#[derive(Config)]
|
|
struct RangedEnum {
|
|
#[config(enum, id = 1, key = "value", unit = "")]
|
|
#[config(range(min = 0, max = 1))]
|
|
value: Mode,
|
|
}
|
|
|
|
#[derive(Config)]
|
|
struct FiniteEnum {
|
|
#[config(enum, id = 1, key = "value", unit = "")]
|
|
#[config(finite)]
|
|
value: Mode,
|
|
}
|
|
|
|
fn main() {}
|