1
0
mirror of https://github.com/esphome/esphome.git synced 2026-02-08 00:31:58 +00:00

[cc1101] Avoid heap allocation for trigger (#13715)

This commit is contained in:
J. Nick Koston
2026-02-02 07:34:50 +01:00
committed by GitHub
parent b5b9a89561
commit 61e33217cd
2 changed files with 3 additions and 4 deletions

View File

@@ -156,7 +156,7 @@ void CC1101Component::call_listeners_(const std::vector<uint8_t> &packet, float
for (auto &listener : this->listeners_) { for (auto &listener : this->listeners_) {
listener->on_packet(packet, freq_offset, rssi, lqi); listener->on_packet(packet, freq_offset, rssi, lqi);
} }
this->packet_trigger_->trigger(packet, freq_offset, rssi, lqi); this->packet_trigger_.trigger(packet, freq_offset, rssi, lqi);
} }
void CC1101Component::loop() { void CC1101Component::loop() {

View File

@@ -79,7 +79,7 @@ class CC1101Component : public Component,
// Packet mode operations // Packet mode operations
CC1101Error transmit_packet(const std::vector<uint8_t> &packet); CC1101Error transmit_packet(const std::vector<uint8_t> &packet);
void register_listener(CC1101Listener *listener) { this->listeners_.push_back(listener); } void register_listener(CC1101Listener *listener) { this->listeners_.push_back(listener); }
Trigger<std::vector<uint8_t>, float, float, uint8_t> *get_packet_trigger() const { return this->packet_trigger_; } Trigger<std::vector<uint8_t>, float, float, uint8_t> *get_packet_trigger() { return &this->packet_trigger_; }
protected: protected:
uint16_t chip_id_{0}; uint16_t chip_id_{0};
@@ -96,8 +96,7 @@ class CC1101Component : public Component,
// Packet handling // Packet handling
void call_listeners_(const std::vector<uint8_t> &packet, float freq_offset, float rssi, uint8_t lqi); void call_listeners_(const std::vector<uint8_t> &packet, float freq_offset, float rssi, uint8_t lqi);
Trigger<std::vector<uint8_t>, float, float, uint8_t> *packet_trigger_{ Trigger<std::vector<uint8_t>, float, float, uint8_t> packet_trigger_;
new Trigger<std::vector<uint8_t>, float, float, uint8_t>()};
std::vector<uint8_t> packet_; std::vector<uint8_t> packet_;
std::vector<CC1101Listener *> listeners_; std::vector<CC1101Listener *> listeners_;