refactor(firmware): centralize configuration and diagnostics
This commit is contained in:
1 parent
7048ed89d0
commit
387fdaad23
140 files changed
+6891
-4541
No files matched your search
@@ -18,32 +18,10 @@ pub enum MavlinkTransmitFault<MemoryError, EngineError> {
|
||||
Engine(EngineError),
|
||||
}
|
||||
|
||||
/// Transport-neutral class of a terminal link fault.
|
||||
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
||||
pub enum TransmitFaultKind {
|
||||
/// DMA-visible frame preparation failed.
|
||||
Memory,
|
||||
/// The UART DMA engine rejected a transfer start.
|
||||
Engine,
|
||||
/// An active DMA transfer ended with a terminal fault or halt.
|
||||
Terminal,
|
||||
}
|
||||
|
||||
impl<MemoryError, EngineError> MavlinkTransmitFault<MemoryError, EngineError> {
|
||||
/// Returns the bounded category a platform may convert to a static log
|
||||
/// message without exposing a generic HAL error value on the wire.
|
||||
pub const fn kind(&self) -> TransmitFaultKind {
|
||||
match self {
|
||||
Self::Memory(_) => TransmitFaultKind::Memory,
|
||||
Self::Engine(_) => TransmitFaultKind::Engine,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Combined bounded-admission and DMA-start outcome.
|
||||
///
|
||||
/// The two outcomes stay distinct so a platform can account for a failed DMA
|
||||
/// start without falsely treating a queue-full source frame as retained.
|
||||
/// The outcomes stay distinct because admission decides whether the source may
|
||||
/// acknowledge its frame, while a failed start keeps reserved work for retry.
|
||||
#[must_use]
|
||||
pub struct AdmissionStart<MemoryError, EngineError> {
|
||||
/// Queue admission for the source frame.
|
||||
@@ -94,10 +72,9 @@ where
|
||||
}
|
||||
|
||||
/// Admits one frame and attempts one bounded DMA start while preserving
|
||||
/// both outcomes. Platform policy uses this to account for a failed DMA
|
||||
/// start without mistaking an admission rejection for a retained frame.
|
||||
/// A start failure retains the selected frame in the queue reservation for
|
||||
/// a later service-turn retry.
|
||||
/// both outcomes. A start failure retains the selected frame in the queue
|
||||
/// reservation for a later service-turn retry; it does not change whether
|
||||
/// the newly submitted source frame was admitted.
|
||||
pub fn admit_and_start(
|
||||
&mut self,
|
||||
class: FrameClass,
|
||||
|
||||
Reference in new issue
Block a user