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:
@@ -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() {
|
||||||
|
|||||||
@@ -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_;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user