pw_hdlc: Multibyte address support
This extends the HDLC encoder and decoder in both C++ and Python to use
HDLC extended addressing, where the address field is a one-terminated
LSB varint.
Classes using HDLC, such as the HDLC ChannelOutput and WirePacketParser,
are updated accordingly.
Change-Id: I6affc4443079628567d33939d809218f7b7bdf41
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/38020
Reviewed-by: Keir Mierle <keir@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
diff --git a/pw_hdlc/docs.rst b/pw_hdlc/docs.rst
index c8b574a..6791855 100644
--- a/pw_hdlc/docs.rst
+++ b/pw_hdlc/docs.rst
@@ -102,7 +102,7 @@
^^^
.. cpp:namespace:: pw
-.. cpp:function:: Status hdlc::WriteUIFrame(uint8_t address, ConstByteSpan data, stream::Writer& writer)
+.. cpp:function:: Status hdlc::WriteUIFrame(uint64_t address, ConstByteSpan data, stream::Writer& writer)
Writes a span of data to a :ref:`pw::stream::Writer <module-pw_stream>` and
returns the status. This implementation uses the :ref:`module-pw_checksum`
@@ -221,9 +221,8 @@
Roadmap
=======
- **Expanded protocol support** - ``pw_hdlc`` currently only supports
- unnumbered information frames with a single address byte and control byte.
- Support for different frame types and extended address or control fields may
- be added in the future.
+ unnumbered information frames. Support for different frame types and
+ extended control fields may be added in the future.
- **Higher performance** - We plan to improve the overall performance of the
decoder and encoder implementations by using SIMD/NEON.