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