diff options
Diffstat (limited to 'pw_log_tokenized/base64_over_hdlc.cc')
-rw-r--r-- | pw_log_tokenized/base64_over_hdlc.cc | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/pw_log_tokenized/base64_over_hdlc.cc b/pw_log_tokenized/base64_over_hdlc.cc index 29e925ab7..997f6cf55 100644 --- a/pw_log_tokenized/base64_over_hdlc.cc +++ b/pw_log_tokenized/base64_over_hdlc.cc @@ -15,17 +15,19 @@ // This function serves as a backend for pw_tokenizer / pw_log_tokenized that // encodes tokenized logs as Base64 and writes them using HDLC. -#include "pw_log_tokenized/base64_over_hdlc.h" - #include "pw_hdlc/encoder.h" +#include "pw_log_tokenized/base64.h" #include "pw_log_tokenized/handler.h" #include "pw_span/span.h" #include "pw_stream/sys_io_stream.h" +#include "pw_string/string.h" #include "pw_tokenizer/base64.h" namespace pw::log_tokenized { namespace { +inline constexpr int kBase64LogHdlcAddress = 1; + stream::SysIoWriter writer; } // namespace @@ -36,15 +38,12 @@ extern "C" void pw_log_tokenized_HandleLog( const uint8_t log_buffer[], size_t size_bytes) { // Encode the tokenized message as Base64. - char base64_buffer[tokenizer::kDefaultBase64EncodedBufferSize]; - const size_t base64_bytes = tokenizer::PrefixedBase64Encode( - span(log_buffer, size_bytes), base64_buffer); - base64_buffer[base64_bytes] = '\0'; + const pw::InlineBasicString base64_string = + PrefixedBase64Encode(log_buffer, size_bytes); // HDLC-encode the Base64 string via a SysIoWriter. - hdlc::WriteUIFrame(PW_LOG_TOKENIZED_BASE64_LOG_HDLC_ADDRESS, - as_bytes(span(base64_buffer, base64_bytes)), - writer); + hdlc::WriteUIFrame( + kBase64LogHdlcAddress, as_bytes(span(base64_string)), writer); } } // namespace pw::log_tokenized |