mirror of
https://github.com/Djeeberjr/fw-anwesenheit.git
synced 2026-04-30 18:49:09 +00:00
moved LED and feedback to new lib
This commit is contained in:
188
src/feedback.rs
188
src/feedback.rs
@@ -6,6 +6,7 @@ use smart_leds::SmartLedsWriteAsync;
|
||||
use smart_leds::colors::{BLACK, GREEN, RED, YELLOW};
|
||||
use smart_leds::{brightness, colors::BLUE};
|
||||
|
||||
use crate::init::hardware;
|
||||
use crate::{FEEDBACK_STATE, init};
|
||||
|
||||
#[derive(Copy, Clone, Debug)]
|
||||
@@ -24,107 +25,104 @@ const LED_LEVEL: u8 = 255;
|
||||
|
||||
#[embassy_executor::task]
|
||||
pub async fn feedback_task(
|
||||
// mut led: SmartLedsAdapterAsync<
|
||||
// ConstChannelAccess<esp_hal::rmt::Tx, 0>,
|
||||
// { init::hardware::LED_BUFFER_SIZE },
|
||||
// >,
|
||||
mut led: SmartLedsAdapterAsync<'static, { hardware::LED_BUFFER_SIZE }>,
|
||||
buzzer: peripherals::GPIO21<'static>,
|
||||
) {
|
||||
debug!("Starting feedback task");
|
||||
let mut buzzer = init::hardware::setup_buzzer(buzzer);
|
||||
loop {
|
||||
let feedback_state = FEEDBACK_STATE.wait().await;
|
||||
// match feedback_state {
|
||||
// FeedbackState::Ack => {
|
||||
// led.write(brightness(
|
||||
// [GREEN; init::hardware::NUM_LEDS].into_iter(),
|
||||
// LED_LEVEL,
|
||||
// ))
|
||||
// .await
|
||||
// .unwrap();
|
||||
// buzzer.set_high();
|
||||
// Timer::after(Duration::from_millis(100)).await;
|
||||
// buzzer.set_low();
|
||||
// Timer::after(Duration::from_millis(50)).await;
|
||||
// }
|
||||
// FeedbackState::Nack => {
|
||||
// led.write(brightness(
|
||||
// [YELLOW; init::hardware::NUM_LEDS].into_iter(),
|
||||
// LED_LEVEL,
|
||||
// ))
|
||||
// .await
|
||||
// .unwrap();
|
||||
// buzzer.set_high();
|
||||
// Timer::after(Duration::from_millis(100)).await;
|
||||
// buzzer.set_low();
|
||||
// Timer::after(Duration::from_millis(100)).await;
|
||||
// buzzer.set_high();
|
||||
// Timer::after(Duration::from_millis(100)).await;
|
||||
// buzzer.set_low();
|
||||
// led.write(brightness(
|
||||
// [BLACK; init::hardware::NUM_LEDS].into_iter(),
|
||||
// LED_LEVEL,
|
||||
// ))
|
||||
// .await
|
||||
// .unwrap();
|
||||
// }
|
||||
// FeedbackState::Error => {
|
||||
// led.write(brightness(
|
||||
// [RED; init::hardware::NUM_LEDS].into_iter(),
|
||||
// LED_LEVEL,
|
||||
// ))
|
||||
// .await
|
||||
// .unwrap();
|
||||
// buzzer.set_high();
|
||||
// Timer::after(Duration::from_millis(500)).await;
|
||||
// buzzer.set_low();
|
||||
// Timer::after(Duration::from_millis(500)).await;
|
||||
// buzzer.set_high();
|
||||
// Timer::after(Duration::from_millis(500)).await;
|
||||
// buzzer.set_low();
|
||||
// }
|
||||
// FeedbackState::Startup => {
|
||||
// led.write(brightness(
|
||||
// [GREEN; init::hardware::NUM_LEDS].into_iter(),
|
||||
// LED_LEVEL,
|
||||
// ))
|
||||
// .await
|
||||
// .unwrap();
|
||||
// buzzer.set_high();
|
||||
// Timer::after(Duration::from_millis(10)).await;
|
||||
// buzzer.set_low();
|
||||
// Timer::after(Duration::from_millis(10)).await;
|
||||
// buzzer.set_high();
|
||||
// Timer::after(Duration::from_millis(10)).await;
|
||||
// buzzer.set_low();
|
||||
// Timer::after(Duration::from_millis(50)).await;
|
||||
// buzzer.set_high();
|
||||
// Timer::after(Duration::from_millis(100)).await;
|
||||
// buzzer.set_low();
|
||||
// led.write(brightness(
|
||||
// [BLACK; init::hardware::NUM_LEDS].into_iter(),
|
||||
// LED_LEVEL,
|
||||
// ))
|
||||
// .await
|
||||
// .unwrap();
|
||||
// }
|
||||
// FeedbackState::WIFI => {
|
||||
// led.write(brightness(
|
||||
// [BLUE; init::hardware::NUM_LEDS].into_iter(),
|
||||
// LED_LEVEL,
|
||||
// ))
|
||||
// .await
|
||||
// .unwrap();
|
||||
// }
|
||||
// FeedbackState::Idle => {
|
||||
// led.write(brightness(
|
||||
// [GREEN; init::hardware::NUM_LEDS].into_iter(),
|
||||
// LED_LEVEL,
|
||||
// ))
|
||||
// .await
|
||||
// .unwrap();
|
||||
// }
|
||||
// };
|
||||
match feedback_state {
|
||||
FeedbackState::Ack => {
|
||||
led.write(brightness(
|
||||
[GREEN; init::hardware::NUM_LEDS].into_iter(),
|
||||
LED_LEVEL,
|
||||
))
|
||||
.await
|
||||
.unwrap();
|
||||
buzzer.set_high();
|
||||
Timer::after(Duration::from_millis(100)).await;
|
||||
buzzer.set_low();
|
||||
Timer::after(Duration::from_millis(50)).await;
|
||||
}
|
||||
FeedbackState::Nack => {
|
||||
led.write(brightness(
|
||||
[YELLOW; init::hardware::NUM_LEDS].into_iter(),
|
||||
LED_LEVEL,
|
||||
))
|
||||
.await
|
||||
.unwrap();
|
||||
buzzer.set_high();
|
||||
Timer::after(Duration::from_millis(100)).await;
|
||||
buzzer.set_low();
|
||||
Timer::after(Duration::from_millis(100)).await;
|
||||
buzzer.set_high();
|
||||
Timer::after(Duration::from_millis(100)).await;
|
||||
buzzer.set_low();
|
||||
led.write(brightness(
|
||||
[BLACK; init::hardware::NUM_LEDS].into_iter(),
|
||||
LED_LEVEL,
|
||||
))
|
||||
.await
|
||||
.unwrap();
|
||||
}
|
||||
FeedbackState::Error => {
|
||||
led.write(brightness(
|
||||
[RED; init::hardware::NUM_LEDS].into_iter(),
|
||||
LED_LEVEL,
|
||||
))
|
||||
.await
|
||||
.unwrap();
|
||||
buzzer.set_high();
|
||||
Timer::after(Duration::from_millis(500)).await;
|
||||
buzzer.set_low();
|
||||
Timer::after(Duration::from_millis(500)).await;
|
||||
buzzer.set_high();
|
||||
Timer::after(Duration::from_millis(500)).await;
|
||||
buzzer.set_low();
|
||||
}
|
||||
FeedbackState::Startup => {
|
||||
led.write(brightness(
|
||||
[GREEN; init::hardware::NUM_LEDS].into_iter(),
|
||||
LED_LEVEL,
|
||||
))
|
||||
.await
|
||||
.unwrap();
|
||||
buzzer.set_high();
|
||||
Timer::after(Duration::from_millis(10)).await;
|
||||
buzzer.set_low();
|
||||
Timer::after(Duration::from_millis(10)).await;
|
||||
buzzer.set_high();
|
||||
Timer::after(Duration::from_millis(10)).await;
|
||||
buzzer.set_low();
|
||||
Timer::after(Duration::from_millis(50)).await;
|
||||
buzzer.set_high();
|
||||
Timer::after(Duration::from_millis(100)).await;
|
||||
buzzer.set_low();
|
||||
led.write(brightness(
|
||||
[BLACK; init::hardware::NUM_LEDS].into_iter(),
|
||||
LED_LEVEL,
|
||||
))
|
||||
.await
|
||||
.unwrap();
|
||||
}
|
||||
FeedbackState::WIFI => {
|
||||
led.write(brightness(
|
||||
[BLUE; init::hardware::NUM_LEDS].into_iter(),
|
||||
LED_LEVEL,
|
||||
))
|
||||
.await
|
||||
.unwrap();
|
||||
}
|
||||
FeedbackState::Idle => {
|
||||
led.write(brightness(
|
||||
[GREEN; init::hardware::NUM_LEDS].into_iter(),
|
||||
LED_LEVEL,
|
||||
))
|
||||
.await
|
||||
.unwrap();
|
||||
}
|
||||
};
|
||||
debug!("Feedback state: {:?}", feedback_state);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user