rsiot/components/cmp_esp_i2c_master/
config.rs1use std::time::Duration;
2
3use esp_idf_svc::hal::{gpio::AnyIOPin, i2c::I2c, peripheral::Peripheral};
4
5use crate::{drivers_i2c::I2cDevices, message::MsgDataBound};
6
7pub struct Config<TMsg, TI2c, TPeripheral>
9where
10 TMsg: MsgDataBound,
11 TI2c: Peripheral<P = TPeripheral> + 'static,
12 TPeripheral: I2c,
13{
14 pub i2c: TI2c,
16
17 pub sda: AnyIOPin,
19
20 pub scl: AnyIOPin,
22
23 pub baudrate: ConfigBaudrate,
25
26 pub pullup_enable: bool,
28
29 pub timeout: Duration,
31
32 pub devices: Vec<I2cDevices<TMsg>>,
34}
35
36#[derive(Clone)]
38pub enum ConfigBaudrate {
39 Standard,
41
42 Fast,
44}