mirror of
https://github.com/dalathegreat/Battery-Emulator.git
synced 2025-10-04 18:29:48 +02:00
Refactoring: Scalability and performance (#252)
Refactoring v5.7 step 1
This commit is contained in:
parent
5a5cfc433b
commit
ffa7a54f20
77 changed files with 926 additions and 286 deletions
49
Software/src/devboard/utils/led_handler.h
Normal file
49
Software/src/devboard/utils/led_handler.h
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue