Fix tm1651 enum (#6248)

This commit is contained in:
Keith Burzinski 2024-02-20 13:12:08 -06:00 committed by GitHub
parent edd1678463
commit 5ef1bab23e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 18 additions and 10 deletions

View file

@ -13,6 +13,7 @@ from esphome.const import (
CODEOWNERS = ["@freekode"] CODEOWNERS = ["@freekode"]
tm1651_ns = cg.esphome_ns.namespace("tm1651") tm1651_ns = cg.esphome_ns.namespace("tm1651")
TM1651Brightness = tm1651_ns.enum("TM1651Brightness")
TM1651Display = tm1651_ns.class_("TM1651Display", cg.Component) TM1651Display = tm1651_ns.class_("TM1651Display", cg.Component)
SetLevelPercentAction = tm1651_ns.class_("SetLevelPercentAction", automation.Action) SetLevelPercentAction = tm1651_ns.class_("SetLevelPercentAction", automation.Action)
@ -24,9 +25,9 @@ TurnOffAction = tm1651_ns.class_("SetLevelPercentAction", automation.Action)
CONF_LEVEL_PERCENT = "level_percent" CONF_LEVEL_PERCENT = "level_percent"
TM1651_BRIGHTNESS_OPTIONS = { TM1651_BRIGHTNESS_OPTIONS = {
1: TM1651Display.TM1651_BRIGHTNESS_LOW, 1: TM1651Brightness.TM1651_BRIGHTNESS_LOW,
2: TM1651Display.TM1651_BRIGHTNESS_MEDIUM, 2: TM1651Brightness.TM1651_BRIGHTNESS_MEDIUM,
3: TM1651Display.TM1651_BRIGHTNESS_HIGH, 3: TM1651Brightness.TM1651_BRIGHTNESS_HIGH,
} }
CONFIG_SCHEMA = cv.All( CONFIG_SCHEMA = cv.All(

View file

@ -12,9 +12,9 @@ static const char *const TAG = "tm1651.display";
static const uint8_t MAX_INPUT_LEVEL_PERCENT = 100; static const uint8_t MAX_INPUT_LEVEL_PERCENT = 100;
static const uint8_t TM1651_MAX_LEVEL = 7; static const uint8_t TM1651_MAX_LEVEL = 7;
static const uint8_t TM1651_BRIGHTNESS_LOW = 0; static const uint8_t TM1651_BRIGHTNESS_LOW_HW = 0;
static const uint8_t TM1651_BRIGHTNESS_MEDIUM = 2; static const uint8_t TM1651_BRIGHTNESS_MEDIUM_HW = 2;
static const uint8_t TM1651_BRIGHTNESS_HIGH = 7; static const uint8_t TM1651_BRIGHTNESS_HIGH_HW = 7;
void TM1651Display::setup() { void TM1651Display::setup() {
ESP_LOGCONFIG(TAG, "Setting up TM1651..."); ESP_LOGCONFIG(TAG, "Setting up TM1651...");
@ -78,14 +78,14 @@ uint8_t TM1651Display::calculate_level_(uint8_t new_level) {
uint8_t TM1651Display::calculate_brightness_(uint8_t new_brightness) { uint8_t TM1651Display::calculate_brightness_(uint8_t new_brightness) {
if (new_brightness <= 1) { if (new_brightness <= 1) {
return TM1651_BRIGHTNESS_LOW; return TM1651_BRIGHTNESS_LOW_HW;
} else if (new_brightness == 2) { } else if (new_brightness == 2) {
return TM1651_BRIGHTNESS_MEDIUM; return TM1651_BRIGHTNESS_MEDIUM_HW;
} else if (new_brightness >= 3) { } else if (new_brightness >= 3) {
return TM1651_BRIGHTNESS_HIGH; return TM1651_BRIGHTNESS_HIGH_HW;
} }
return TM1651_BRIGHTNESS_LOW; return TM1651_BRIGHTNESS_LOW_HW;
} }
} // namespace tm1651 } // namespace tm1651

View file

@ -13,6 +13,12 @@
namespace esphome { namespace esphome {
namespace tm1651 { namespace tm1651 {
enum TM1651Brightness : uint8_t {
TM1651_BRIGHTNESS_LOW = 1,
TM1651_BRIGHTNESS_MEDIUM = 2,
TM1651_BRIGHTNESS_HIGH = 3,
};
class TM1651Display : public Component { class TM1651Display : public Component {
public: public:
void set_clk_pin(InternalGPIOPin *pin) { clk_pin_ = pin; } void set_clk_pin(InternalGPIOPin *pin) { clk_pin_ = pin; }
@ -24,6 +30,7 @@ class TM1651Display : public Component {
void set_level_percent(uint8_t new_level); void set_level_percent(uint8_t new_level);
void set_level(uint8_t new_level); void set_level(uint8_t new_level);
void set_brightness(uint8_t new_brightness); void set_brightness(uint8_t new_brightness);
void set_brightness(TM1651Brightness new_brightness) { this->set_brightness(static_cast<uint8_t>(new_brightness)); }
void turn_on(); void turn_on();
void turn_off(); void turn_off();