#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum Channel {
_11,
_12,
_13,
_14,
_15,
_16,
_17,
_18,
_19,
_20,
_21,
_22,
_23,
_24,
_25,
_26,
}
impl TryFrom<i32> for Channel {
type Error = ();
fn try_from(value: i32) -> Result<Self, Self::Error> {
match value {
11 => Ok(Channel::_11),
12 => Ok(Channel::_12),
13 => Ok(Channel::_13),
14 => Ok(Channel::_14),
15 => Ok(Channel::_15),
16 => Ok(Channel::_16),
17 => Ok(Channel::_17),
18 => Ok(Channel::_18),
19 => Ok(Channel::_19),
20 => Ok(Channel::_20),
21 => Ok(Channel::_21),
22 => Ok(Channel::_22),
23 => Ok(Channel::_23),
24 => Ok(Channel::_24),
25 => Ok(Channel::_25),
26 => Ok(Channel::_26),
_ => Err(()),
}
}
}
impl From<Channel> for u8 {
fn from(ch: Channel) -> u8 {
match ch {
Channel::_11 => 11,
Channel::_12 => 12,
Channel::_13 => 13,
Channel::_14 => 14,
Channel::_15 => 15,
Channel::_16 => 16,
Channel::_17 => 17,
Channel::_18 => 18,
Channel::_19 => 19,
Channel::_20 => 20,
Channel::_21 => 21,
Channel::_22 => 22,
Channel::_23 => 23,
Channel::_24 => 24,
Channel::_25 => 25,
Channel::_26 => 26,
}
}
}
impl Default for Channel {
fn default() -> Self {
Self::_26
}
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Debug, Default, Clone, PartialEq)]
pub struct RxConfig {
pub channel: Channel,
}
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
#[derive(Debug, Default, Clone, PartialEq)]
pub struct TxConfig {
pub channel: Channel,
pub cca: bool,
}
impl TxConfig {
pub fn default_with_cca() -> Self {
Self {
cca: true,
..Default::default()
}
}
}