- #pragma once
-
- #include "esphome/components/gpio/output/gpio_binary_output.h"
- #include "esphome/components/ledc/ledc_output.h"
- #include "esphome/core/component.h"
-
- namespace esphome {
- namespace xiaomi {
- namespace bslamp2 {
-
- class LightHAL : Component {
- public:
- void set_red_pin(ledc::LEDCOutput *pin) { red_ = pin; }
- void set_green_pin(ledc::LEDCOutput *pin) { green_ = pin; }
- void set_blue_pin(ledc::LEDCOutput *pin) { blue_ = pin; }
- void set_white_pin(ledc::LEDCOutput *pin) { white_ = pin; }
- void set_master1_pin(gpio::GPIOBinaryOutput *pin) { master1_ = pin; }
- void set_master2_pin(gpio::GPIOBinaryOutput *pin) { master2_ = pin; }
-
- void turn_on() {
- master1_->turn_on();
- master2_->turn_on();
- }
-
- void turn_off() {
- master1_->turn_off();
- master2_->turn_off();
- }
-
- void set_rgbw(float r, float g, float b, float w) {
- red_->set_level(r);
- green_->set_level(g);
- blue_->set_level(b);
- white_->set_level(w);
- }
-
- protected:
- ledc::LEDCOutput *red_;
- ledc::LEDCOutput *green_;
- ledc::LEDCOutput *blue_;
- ledc::LEDCOutput *white_;
- gpio::GPIOBinaryOutput *master1_;
- gpio::GPIOBinaryOutput *master2_;
- };
-
- } // namespace bslamp2
- } // namespace xiaomi
- } // namespace esphome
|