mirror of
https://github.com/esphome/esphome.git
synced 2025-07-29 14:46:40 +00:00
Fix missing protobuf message dump for batched messages with very verbose logging (#9206)
This commit is contained in:
parent
79e3d2b2d7
commit
f029f4f20e
@ -276,6 +276,11 @@ uint16_t APIConnection::encode_message_to_buffer(ProtoMessage &msg, uint16_t mes
|
|||||||
// Encode directly into buffer
|
// Encode directly into buffer
|
||||||
msg.encode(buffer);
|
msg.encode(buffer);
|
||||||
|
|
||||||
|
#ifdef HAS_PROTO_MESSAGE_DUMP
|
||||||
|
// Log the message for VV debugging
|
||||||
|
conn->log_send_message_(msg.message_name(), msg.dump());
|
||||||
|
#endif
|
||||||
|
|
||||||
// Calculate actual encoded size (not including header that was already added)
|
// Calculate actual encoded size (not including header that was already added)
|
||||||
size_t actual_payload_size = shared_buf.size() - size_before_encode;
|
size_t actual_payload_size = shared_buf.size() - size_before_encode;
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -19,7 +19,7 @@ class APIServerConnectionBase : public ProtoService {
|
|||||||
|
|
||||||
template<typename T> bool send_message(const T &msg) {
|
template<typename T> bool send_message(const T &msg) {
|
||||||
#ifdef HAS_PROTO_MESSAGE_DUMP
|
#ifdef HAS_PROTO_MESSAGE_DUMP
|
||||||
this->log_send_message_(T::message_name(), msg.dump());
|
this->log_send_message_(msg.message_name(), msg.dump());
|
||||||
#endif
|
#endif
|
||||||
return this->send_message_(msg, T::MESSAGE_TYPE);
|
return this->send_message_(msg, T::MESSAGE_TYPE);
|
||||||
}
|
}
|
||||||
|
@ -335,6 +335,7 @@ class ProtoMessage {
|
|||||||
#ifdef HAS_PROTO_MESSAGE_DUMP
|
#ifdef HAS_PROTO_MESSAGE_DUMP
|
||||||
std::string dump() const;
|
std::string dump() const;
|
||||||
virtual void dump_to(std::string &out) const = 0;
|
virtual void dump_to(std::string &out) const = 0;
|
||||||
|
virtual const char *message_name() const { return "unknown"; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -886,7 +886,7 @@ def build_message_type(
|
|||||||
public_content.append("#ifdef HAS_PROTO_MESSAGE_DUMP")
|
public_content.append("#ifdef HAS_PROTO_MESSAGE_DUMP")
|
||||||
snake_name = camel_to_snake(desc.name)
|
snake_name = camel_to_snake(desc.name)
|
||||||
public_content.append(
|
public_content.append(
|
||||||
f'static constexpr const char *message_name() {{ return "{snake_name}"; }}'
|
f'const char *message_name() const override {{ return "{snake_name}"; }}'
|
||||||
)
|
)
|
||||||
public_content.append("#endif")
|
public_content.append("#endif")
|
||||||
|
|
||||||
@ -1356,7 +1356,7 @@ def main() -> None:
|
|||||||
hpp += " template<typename T>\n"
|
hpp += " template<typename T>\n"
|
||||||
hpp += " bool send_message(const T &msg) {\n"
|
hpp += " bool send_message(const T &msg) {\n"
|
||||||
hpp += "#ifdef HAS_PROTO_MESSAGE_DUMP\n"
|
hpp += "#ifdef HAS_PROTO_MESSAGE_DUMP\n"
|
||||||
hpp += " this->log_send_message_(T::message_name(), msg.dump());\n"
|
hpp += " this->log_send_message_(msg.message_name(), msg.dump());\n"
|
||||||
hpp += "#endif\n"
|
hpp += "#endif\n"
|
||||||
hpp += " return this->send_message_(msg, T::MESSAGE_TYPE);\n"
|
hpp += " return this->send_message_(msg, T::MESSAGE_TYPE);\n"
|
||||||
hpp += " }\n\n"
|
hpp += " }\n\n"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user