Skip to main content

rsiot/components/cmp_esp_wifi/
config.rs

1pub use esp_idf_svc::wifi::AuthMethod as ConfigAuthMethod;
2use esp_idf_svc::{eventloop::EspSystemEventLoop, hal::modem::Modem, timer::EspTaskTimerService};
3
4// ANCHOR: Config
5/// Конфигурация cmp_esp_wifi
6pub struct Config<TMsg> {
7    /// Модем для подключения
8    pub peripherals: Modem<'static>,
9
10    /// Ссылка на цикл событий
11    pub event_loop: EspSystemEventLoop,
12
13    /// Ссылка на таймер
14    pub timer_service: EspTaskTimerService,
15
16    /// Настройка WiFi как точки доступа
17    ///
18    /// None - точка доступа не настраиваeтся
19    pub access_point: Option<ConfigAccessPoint>,
20
21    /// Настройка WiFi как клиента
22    ///
23    /// None - подключение к внешней точке доступа не настраивается
24    pub client: Option<ConfigClient>,
25
26    /// Функция, создающее исходящее сообщение с состоянием подключения к WiFi
27    pub fn_wifi_connected: fn(bool) -> TMsg,
28}
29// ANCHOR: Config
30
31// ANCHOR: ConfigAccessPoint
32/// Настройка WiFi как точки доступа
33pub struct ConfigAccessPoint {
34    /// Название точки доступа
35    pub ssid: String,
36}
37// ANCHOR: ConfigAccessPoint
38
39// ANCHOR: ConfigClient
40/// Настройка WiFi как клиента
41pub struct ConfigClient {
42    /// Название точки доступа
43    pub ssid: String,
44
45    /// Пароль точки доступа
46    pub password: String,
47
48    /// Защита сети
49    pub auth_method: ConfigAuthMethod,
50}
51// ANCHOR: ConfigClient