Core traits.
This commit is contained in:
@ -16,4 +16,7 @@ workspace = true
|
|||||||
[dependencies.defmt]
|
[dependencies.defmt]
|
||||||
workspace = true
|
workspace = true
|
||||||
[dependencies.uom]
|
[dependencies.uom]
|
||||||
workspace = true
|
workspace = true
|
||||||
|
[dependencies.embassy-sync]
|
||||||
|
workspace = true
|
||||||
|
optional = true
|
@ -3,13 +3,25 @@ mod output;
|
|||||||
|
|
||||||
pub use physical::transducer::*;
|
pub use physical::transducer::*;
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------------------------------------------
|
#[cfg(feature = "embassy-sync")]
|
||||||
// ----- Publisher ------------------------
|
use embassy_sync::blocking_mutex::raw::RawMutex;
|
||||||
// ---------------------------------------------------------------------------------------------------------------------
|
#[cfg(feature = "embassy-sync")]
|
||||||
|
use embassy_sync::pubsub;
|
||||||
|
#[cfg(feature = "embassy-sync")]
|
||||||
|
use embassy_sync::pubsub::Subscriber;
|
||||||
|
|
||||||
#[cfg(feature = "embassy-sync")]
|
#[cfg(feature = "embassy-sync")]
|
||||||
pub trait Publisher {
|
pub trait Publisher {
|
||||||
type Value: Copy;
|
type Value: Copy;
|
||||||
|
type Mutex: RawMutex;
|
||||||
|
const CAPACITY: usize;
|
||||||
|
const NUM_SUBS: usize;
|
||||||
|
const NUM_PUBS: usize;
|
||||||
|
|
||||||
|
fn subscribe(
|
||||||
fn subscribe() -> SubT;
|
&self,
|
||||||
}
|
) -> Result<
|
||||||
|
Subscriber<Self::Mutex, Self::Value, Self::CAPACITY, Self::NUM_SUBS, Self::NUM_PUBS>,
|
||||||
|
pubsub::Error,
|
||||||
|
>;
|
||||||
|
}
|
||||||
|
@ -23,7 +23,4 @@ workspace = true
|
|||||||
[dependencies.defmt]
|
[dependencies.defmt]
|
||||||
workspace = true
|
workspace = true
|
||||||
[dependencies.uom]
|
[dependencies.uom]
|
||||||
workspace = true
|
workspace = true
|
||||||
[dependencies.embassy-sync]
|
|
||||||
workspace = true
|
|
||||||
optional = true
|
|
@ -6,5 +6,5 @@ pub mod output;
|
|||||||
pub trait Stateful {
|
pub trait Stateful {
|
||||||
type Value: Copy;
|
type Value: Copy;
|
||||||
|
|
||||||
fn state() -> Self::Value;
|
fn state(&self) -> Self::Value;
|
||||||
}
|
}
|
||||||
|
@ -3,5 +3,5 @@ pub trait Output {
|
|||||||
|
|
||||||
//TODO: return result
|
//TODO: return result
|
||||||
//TODO: Make maybe async
|
//TODO: Make maybe async
|
||||||
fn set(setting: Self::Value);
|
fn set(&mut self, setting: Self::Value);
|
||||||
}
|
}
|
Reference in New Issue
Block a user