1
0
mirror of https://github.com/esphome/esphome.git synced 2025-02-08 14:10:54 +00:00

make show_packet part of the espnow component.

This commit is contained in:
NP v/d Spek 2024-09-23 22:51:40 +02:00
parent 59c70f722d
commit 4966adf9a6
2 changed files with 9 additions and 3 deletions

View File

@ -39,7 +39,8 @@ std::string format_mac_addr(const uint8_t *mac) {
sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]); sprintf(buf, "%02X:%02X:%02X:%02X:%02X:%02X", mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
return buf; return buf;
} }
void show_packet(const std::string &title, const ESPNowPacket &packet) {
void ESPNowComponent::show_packet(const std::string &title, const ESPNowPacket &packet) {
ESP_LOGVV(TAG, "%s packet: M:%s H:%cx%cx%c P:%c%c%c 0x%02x S:%02x C:ox%02x~0x%02x S:%02d V:%s", "test", ESP_LOGVV(TAG, "%s packet: M:%s H:%cx%cx%c P:%c%c%c 0x%02x S:%02x C:ox%02x~0x%02x S:%02d V:%s", "test",
format_mac_addr(packet.peer_as_bytes()).c_str(), packet.content_at(0), packet.content_at(1), format_mac_addr(packet.peer_as_bytes()).c_str(), packet.content_at(0), packet.content_at(1),
packet.content_at(2), packet.content_at(3), packet.content_at(4), packet.content_at(5), packet.content_at(2), packet.content_at(3), packet.content_at(4), packet.content_at(5),
@ -263,7 +264,7 @@ void ESPNowComponent::on_data_received(const uint8_t *addr, const uint8_t *data,
} else { } else {
packet->timestamp = millis(); packet->timestamp = millis();
} }
show_packet("Receive", *packet); this->show_packet("Receive", *packet);
if (packet->is_valid()) { if (packet->is_valid()) {
xQueueSendToBack(global_esp_now->receive_queue_, packet.get(), 10); xQueueSendToBack(global_esp_now->receive_queue_, packet.get(), 10);
@ -274,7 +275,7 @@ void ESPNowComponent::on_data_received(const uint8_t *addr, const uint8_t *data,
bool ESPNowComponent::write(const std::shared_ptr<ESPNowPacket> packet) { bool ESPNowComponent::write(const std::shared_ptr<ESPNowPacket> packet) {
uint8_t *mac = packet->peer_as_bytes(); uint8_t *mac = packet->peer_as_bytes();
show_packet("Write", *packet); this->show_packet("Write", *packet);
if (this->is_failed()) { if (this->is_failed()) {
ESP_LOGE(TAG, "Cannot send espnow packet, espnow failed to setup"); ESP_LOGE(TAG, "Cannot send espnow packet, espnow failed to setup");
} else if (this->send_queue_full()) { } else if (this->send_queue_full()) {
@ -293,6 +294,9 @@ bool ESPNowComponent::write(const std::shared_ptr<ESPNowPacket> packet) {
esp_err_t err = esp_now_send((uint8_t *) &mac, packet->content_bytes(), packet->get_size()); esp_err_t err = esp_now_send((uint8_t *) &mac, packet->content_bytes(), packet->get_size());
ESP_LOGVV(TAG, "S: 0x%04x.%d B: %d%s.", packet->get_sequents(), packet->attempts, this->send_queue_used(), ESP_LOGVV(TAG, "S: 0x%04x.%d B: %d%s.", packet->get_sequents(), packet->attempts, this->send_queue_used(),
(err == ESP_OK) ? "" : " FAILED"); (err == ESP_OK) ? "" : " FAILED");
this->defer([=, packet, err]() { this->on_sent_(std::move(packet), err == ESP_OK); });
this->defer([this, packet, err]() { this->defer([this, packet, err]() {
packet->reload(); packet->reload();
this->on_sent_(std::move(packet), err == ESP_OK); this->on_sent_(std::move(packet), err == ESP_OK);

View File

@ -249,6 +249,8 @@ class ESPNowComponent : public Component {
ESPNowDefaultProtocol *get_default_protocol(); ESPNowDefaultProtocol *get_default_protocol();
void show_packet(const std::string &title, const ESPNowPacket &packet);
protected: protected:
bool validate_channel_(uint8_t channel); bool validate_channel_(uint8_t channel);
ESPNowProtocol *get_protocol_(uint32_t protocol); ESPNowProtocol *get_protocol_(uint32_t protocol);