Refactoring: Scalability and performance (#252)

Refactoring v5.7 step 1
This commit is contained in:
Cabooman 2024-04-14 14:41:01 +02:00 committed by GitHub
parent 5a5cfc433b
commit ffa7a54f20
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
77 changed files with 926 additions and 286 deletions

View file

@ -0,0 +1,49 @@
#ifndef LED_H_
#define LED_H_
#include "../../include.h"
#include "../../lib/adafruit-Adafruit_NeoPixel/Adafruit_NeoPixel.h"
#include "timer.h"
enum led_mode { CLASSIC, FLOW, HEARTBEAT };
enum led_state { LED_NORMAL, LED_COMMAND, LED_RGB };
class LED {
public:
led_color color = led_color::GREEN;
LED()
: mode(led_mode::CLASSIC),
max_brightness(LED_MAX_BRIGHTNESS),
pixels(1, LED_PIN, NEO_GRB + NEO_KHZ800),
timer(LED_EXECUTION_FREQUENCY) {}
LED(led_mode mode)
: mode(mode),
max_brightness(LED_MAX_BRIGHTNESS),
pixels(1, LED_PIN, NEO_GRB + NEO_KHZ800),
timer(LED_EXECUTION_FREQUENCY) {}
void exe(void);
void init(void) { pixels.begin(); }
private:
Adafruit_NeoPixel pixels;
uint8_t max_brightness;
uint8_t brightness;
led_mode mode = led_mode::CLASSIC;
led_state state = LED_NORMAL;
MyTimer timer;
void classic_run(void);
void flow_run(void);
void rainbow_run(void);
void heartbeat_run(void);
uint8_t up_down(float middle_point_f);
};
void led_init(void);
void led_exe(void);
led_color led_get_color(void);
#endif