elk_led_controller/schedule.rs
1/*!
2 # Scheduling functionality for LED strips
3
4 This module provides scheduling capabilities for the LED strips,
5 allowing them to be turned on or off at specific days and times.
6*/
7
8/// Represents days of the week for scheduling
9#[derive(Debug, Clone, Copy)]
10pub struct Days {
11 /// Monday (0x01)
12 pub monday: u8,
13 /// Tuesday (0x02)
14 pub tuesday: u8,
15 /// Wednesday (0x04)
16 pub wednesday: u8,
17 /// Thursday (0x08)
18 pub thursday: u8,
19 /// Friday (0x10)
20 pub friday: u8,
21 /// Saturday (0x20)
22 pub saturday: u8,
23 /// Sunday (0x40)
24 pub sunday: u8,
25 /// All days (0x7F)
26 pub all: u8,
27 /// Week days (Monday-Friday, 0x1F)
28 pub week_days: u8,
29 /// Weekend days (Saturday-Sunday, 0x60)
30 pub weekend_days: u8,
31 /// No days (0x00)
32 pub none: u8,
33}
34
35/// Predefined day constants for scheduling
36pub const WEEK_DAYS: Days = Days {
37 monday: 0x01,
38 tuesday: 0x02,
39 wednesday: 0x04,
40 thursday: 0x08,
41 friday: 0x10,
42 saturday: 0x20,
43 sunday: 0x40,
44 all: 0x01 + 0x02 + 0x04 + 0x08 + 0x10 + 0x20 + 0x40,
45 week_days: 0x01 + 0x02 + 0x04 + 0x08 + 0x10,
46 weekend_days: 0x20 + 0x40,
47 none: 0x00,
48};