9#include <soc/soc_caps.h>
11#include <driver/rmt_tx.h>
19#ifdef USE_LIBRETINY_VARIANT_BK7238
20#define REMOTE_TRANSMITTER_BK_PWM
25#if defined(USE_ESP32) && SOC_RMT_SUPPORTED
26#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 5, 1)
46#if defined(USE_ESP32) && SOC_RMT_SUPPORTED
53 void setup()
override;
64#if defined(USE_ESP32) && SOC_RMT_SUPPORTED
68#if (defined(USE_ESP32) && SOC_RMT_SUPPORTED) || defined(USE_LIBRETINY_VARIANT_RTL8720C) || \
69 defined(REMOTE_TRANSMITTER_BK_PWM)
72#if defined(USE_LIBRETINY_VARIANT_RTL8720C) || defined(REMOTE_TRANSMITTER_BK_PWM)
85#if defined(USE_ESP8266) || \
86 (defined(USE_LIBRETINY) && !defined(USE_LIBRETINY_VARIANT_RTL8720C) && !defined(REMOTE_TRANSMITTER_BK_PWM)) || \
87 defined(USE_RP2) || (defined(USE_ESP32) && !SOC_RMT_SUPPORTED)
91#if defined(USE_ESP8266) || \
92 (defined(USE_LIBRETINY) && !defined(USE_RTL87XX) && !defined(REMOTE_TRANSMITTER_BK_PWM)) || defined(USE_RP2) || \
93 (defined(USE_ESP32) && !SOC_RMT_SUPPORTED)
105#if defined(USE_LIBRETINY_VARIANT_RTL8720C) || defined(REMOTE_TRANSMITTER_BK_PWM)
131#ifdef USE_LIBRETINY_VARIANT_RTL8720C
135#ifdef REMOTE_TRANSMITTER_BK_PWM
143#if defined(USE_ESP32) && SOC_RMT_SUPPORTED
147#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 5, 1)
RemoteTransmitterBase(InternalGPIOPin *pin)
void advance_envelope_isr()
void send_internal(uint32_t send_times, uint32_t send_wait) override
bool envelope_ready_() const
void arm_envelope_timer_(uint32_t duration_us)
void calculate_on_off_time_(uint32_t carrier_frequency, uint32_t *on_time_period, uint32_t *off_time_period)
void write_envelope_level_(bool mark)
static void advance_active_isr()
float get_setup_priority() const override
void arm_chain_(uint32_t send_times, uint32_t send_wait)
Trigger complete_trigger_
void abort_stalled_chain_()
void stop_envelope_timer_()
void deliver_completion_()
void mark_(uint32_t on_time, uint32_t off_time, uint32_t usec)
void set_non_blocking(bool non_blocking)
Trigger * get_transmit_trigger()
uint32_t current_carrier_frequency_
volatile bool transmitting_
void set_carrier_duty_percent(uint8_t carrier_duty_percent)
volatile uint32_t isr_wait_remaining_
std::string error_string_
void start_isr_item_(size_t index)
std::vector< rmt_symbol_half_t > rmt_temp_
void set_eot_level(bool eot_level)
Trigger transmit_trigger_
volatile size_t isr_index_
void space_(uint32_t usec)
std::vector< int32_t > isr_data_
RemoteTransmitterComponent(InternalGPIOPin *pin)
rmt_channel_handle_t channel_
std::vector< rmt_symbol_word_t > rmt_temp_
rmt_encoder_handle_t encoder_
void await_target_time_()
void prepare_carrier_(uint32_t carrier_frequency)
volatile uint32_t isr_repeats_left_
void write_pwm_t1_(uint32_t t1_counts)
void digital_write(bool value)
Trigger * get_complete_trigger()
void arm_one_shot_(uint32_t duration_us)
volatile bool isr_in_gap_
void set_with_dma(bool with_dma)
uint8_t carrier_duty_percent_
void dump_config() override
RemoteTransmitterComponentStore store_
constexpr float DATA
For components that import data from directly connected sensors like DHT.