RadioFrequencyCall - Builder pattern for transmitting radio frequency signals.
const uint8_t * packed_data_
uint16_t get_packed_count() const
uint32_t get_repeat_count() const
Get the repeat count.
bool has_raw_timings() const
Check if raw timings have been set (any format)
optional< uint32_t > frequency_hz_
RadioFrequencyCall & set_raw_timings_base64url(const std::string &base64url)
Set the raw timings from base64url-encoded little-endian int32 data.
RadioFrequencyCall & set_frequency(uint32_t frequency_hz)
Set the carrier frequency in Hz (e.g. 433920000 for 433.92 MHz)
uint16_t get_packed_length() const
const std::vector< int32_t > * raw_timings_
RadioFrequencyCall(RadioFrequency *parent)
void perform()
Perform the transmission.
RadioFrequencyModulation modulation_
bool is_base64url() const
Check if using base64url data format.
RadioFrequencyCall & set_raw_timings_packed(const uint8_t *data, uint16_t length, uint16_t count)
Set the raw timings from packed protobuf sint32 data (zigzag + varint encoded)
RadioFrequencyCall & set_modulation(RadioFrequencyModulation modulation)
Set the modulation type (defaults to OOK)
RadioFrequencyCall & set_repeat_count(uint32_t count)
Set the number of times to repeat transmission (1 = transmit once, 2 = transmit twice,...
RadioFrequencyCall & set_raw_timings(const std::vector< int32_t > &timings)
Set the raw timings from a vector (positive = mark, negative = space)
const std::string & get_base64url_data() const
Get the base64url data string.
RadioFrequencyModulation get_modulation() const
Get the modulation type.
const std::string * base64url_ptr_
const uint8_t * get_packed_data() const
Get packed data (only valid if set via set_raw_timings_packed)
const optional< uint32_t > & get_frequency() const
Get the frequency in Hz.
bool is_packed() const
Check if using packed data format.
const std::vector< int32_t > & get_raw_timings() const
Get the raw timings (only valid if set via set_raw_timings)
RadioFrequency - Base class for radio frequency implementations.
RadioFrequencyCall make_call()
Create a call object for transmitting.
uint32_t get_capability_flags() const
Get capability flags for this radio frequency instance.
LazyCallbackManager< void(const RadioFrequencyCall &)> control_callback_
LazyCallbackManager< void(remote_base::RemoteReceiveData)> receive_callback_
bool on_receive(remote_base::RemoteReceiveData data) override
Called when RF data is received (from RemoteReceiverListener)
void add_on_receive_callback(F &&callback)
Add a callback to invoke when RF data is received.
const RadioFrequencyTraits & get_traits() const
float get_setup_priority() const override
virtual void control(const RadioFrequencyCall &call)=0
Perform the actual transmission (called by RadioFrequencyCall::perform()) Platforms must override thi...
void dump_config() override
void add_on_control_callback(F &&callback)
Add a callback to invoke when a transmit call is made on this entity.
RadioFrequencyTraits & get_traits()
Get the traits for this radio frequency implementation.
RadioFrequencyTraits traits_
RadioFrequencyTraits - Describes the capabilities of a radio frequency implementation.
void set_supports_transmitter(bool supports)
uint32_t get_frequency_min_hz() const
Hardware-supported tunable frequency range in Hz.
uint32_t frequency_min_hz_
void set_supports_receiver(bool supports)
uint32_t get_supported_modulations() const
Bitmask of supported RadioFrequencyModulation values (bit N = modulation value N supported).
uint32_t frequency_max_hz_
bool supports_transmitter_
uint32_t get_frequency_max_hz() const
bool get_supports_transmitter() const
uint32_t supported_modulations_
void set_supported_modulations(uint32_t mask)
void set_frequency_min_hz(uint32_t freq)
void set_fixed_frequency_hz(uint32_t freq)
Convenience setter for fixed-frequency hardware (sets min == max).
void add_supported_modulation(RadioFrequencyModulation mod)
void set_frequency_max_hz(uint32_t freq)
bool get_supports_receiver() const
RadioFrequencyModulation
Modulation types supported by radio frequency implementations.
@ RADIO_FREQUENCY_MODULATION_OOK
RadioFrequencyCapability
Capability flags for individual radio frequency instances.
constexpr float AFTER_CONNECTION
For components that should be initialized after a data connection (API/MQTT) is connected.