diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 48 |
1 files changed, 23 insertions, 25 deletions
diff --git a/src/main.rs b/src/main.rs index de13de8..dd764c8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,7 @@ #![no_std] #![no_main] -extern crate alloc; -use alloc::string::String; +use core::env; use esp_backtrace as _; // panic_handler use esp_hal::{ interrupt::software::SoftwareInterruptControl, rmt::Rmt, time::Rate, timer::timg::TimerGroup, @@ -11,7 +10,7 @@ use esp_hal_smartled::{SmartLedsAdapter, smart_led_buffer}; use esp_radio::wifi; use smart_leds::RGB; -use esp32c6_play::{init, sin, wait_ms, write_rgb}; +use esp32c6_play::{connect_wifi, init, mk_wifi_config, sin, wait_ms, write_rgb}; // This creates a default app-descriptor required by the esp-idf bootloader. // For more information see: <https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/app_image_format.html#application-description> @@ -25,40 +24,39 @@ fn main() -> ! { // initialize heap esp_alloc::heap_allocator!(size: 64 * 1024); - // initialize wifi + // initialize esp-rtos as scheduler for esp-radio let timg0 = TimerGroup::new(peripherals.TIMG0); let software_interrupt = SoftwareInterruptControl::new(peripherals.SW_INTERRUPT); esp_rtos::start(timg0.timer0, software_interrupt.software_interrupt0); - let esp_radio_controller = esp_radio::init().expect("failed to init radio controller"); - let (mut wifi_controller, _) = wifi::new( - &esp_radio_controller, - peripherals.WIFI, - wifi::Config::default(), - ) - .expect("failed to create wifi controller"); - let wifi_config = wifi::ModeConfig::AccessPoint( - wifi::AccessPointConfig::default() - .with_auth_method(wifi::AuthMethod::WpaWpa2Personal) - .with_ssid(String::from("ssid-test")) - .with_password(String::from("password")), - ); - wifi_controller - .set_config(&wifi_config) - .expect("failed to set wifi config"); + // initialize wifi + let radio_controller = esp_radio::init().expect("failed to init radio controller"); + let (mut wifi_controller, _) = + wifi::new(&radio_controller, peripherals.WIFI, wifi::Config::default()) + .expect("failed to init wifi controller"); - wifi_controller - .start() - .expect("failed to start wifi controller"); + let wifi_config = mk_wifi_config(); + connect_wifi(&mut wifi_controller, &wifi_config); - // set up rgb led + // initialize rgb led let mut led_buffer = smart_led_buffer!(1 /* # of leds */); let mut rgb_led = { let frequency = Rate::from_mhz(80); // max frequency of RMT - let rmt = Rmt::new(peripherals.RMT, frequency).expect("failed to initialize RMT0"); + let rmt = Rmt::new(peripherals.RMT, frequency).expect("failed to initialize rmt"); SmartLedsAdapter::new(rmt.channel0, peripherals.GPIO8, &mut led_buffer) }; + // red led and waiting message + write_rgb(&mut rgb_led, RGB::new(255, 20, 20)); + log::info!("connecting..."); + while !wifi_controller + .is_connected() + .expect("failed to check connection status") + { + wait_ms(100); + } + log::info!("connected to the access point"); + loop { for i in 0..255 { let r: u8 = i; |
