11#include <driver/gpio.h>
13#include <esp_idf_version.h>
15#if ESP_IDF_VERSION_MAJOR >= 5
16#include <driver/rmt_tx.h>
18#include <driver/rmt.h>
22namespace esp32_rmt_led_strip {
35 void setup()
override;
60 void set_led_params(uint32_t bit0_high, uint32_t bit0_low, uint32_t bit1_high, uint32_t bit1_low,
61 uint32_t reset_time_high, uint32_t reset_time_low);
64#if ESP_IDF_VERSION_MAJOR >= 5
71 for (
int i = 0; i < this->
size(); i++)
84#if ESP_IDF_VERSION_MAJOR >= 5
void set_rmt_channel(rmt_channel_t channel)
rmt_symbol_word_t * rmt_buf_
void set_pin(uint8_t pin)
float get_setup_priority() const override
size_t get_buffer_size_() const
void set_is_rgbw(bool is_rgbw)
light::LightTraits get_traits() override
void clear_effect_data() override
void set_rmt_symbols(uint32_t rmt_symbols)
rmt_encoder_handle_t encoder_
void write_state(light::LightState *state) override
void set_use_dma(bool use_dma)
void set_num_leds(uint16_t num_leds)
void set_is_wrgb(bool is_wrgb)
light::ESPColorView get_view_internal(int32_t index) const override
int32_t size() const override
void set_max_refresh_rate(uint32_t interval_us)
Set a maximum refresh rate in µs as some lights do not like being updated too often.
rmt_channel_handle_t channel_
void set_rgb_order(RGBOrder rgb_order)
void set_led_params(uint32_t bit0_high, uint32_t bit0_low, uint32_t bit1_high, uint32_t bit1_low, uint32_t reset_time_high, uint32_t reset_time_low)
void dump_config() override
optional< uint32_t > max_refresh_rate_
void set_use_psram(bool use_psram)
This class represents the communication layer between the front-end MQTT layer and the hardware outpu...
This class is used to represent the capabilities of a light.
@ RGB_WHITE
RGB color output and a separate white output.
@ WHITE
White output only (use only if the light also has another color mode such as RGB).
Providing packet encoding functions for exchanging data with a remote host.