From a6d09d4aec4b9b0c0ea6eaa0906684aab634c296 Mon Sep 17 00:00:00 2001 From: Alan Rosenthal Date: Thu, 21 Mar 2024 19:45:10 +0000 Subject: [PATCH] pw_hex_dump: Add CMake support Change-Id: I454e8a625e3e878535e41e2b955359b9849d42eb Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/198170 Reviewed-by: Matt Stokes Reviewed-by: Armando Montanez Commit-Queue: Alan Rosenthal --- CMakeLists.txt | 1 + pw_hex_dump/CMakeLists.txt | 29 +++++++++++++++++++++++++++++ pw_hex_dump/docs.rst | 34 +++++++++++++++++----------------- 3 files changed, 47 insertions(+), 17 deletions(-) create mode 100644 pw_hex_dump/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ec9c36ac..0e303696f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -97,6 +97,7 @@ add_subdirectory(pw_digital_io EXCLUDE_FROM_ALL) add_subdirectory(pw_file EXCLUDE_FROM_ALL) add_subdirectory(pw_function EXCLUDE_FROM_ALL) add_subdirectory(pw_fuzzer EXCLUDE_FROM_ALL) +add_subdirectory(pw_hex_dump EXCLUDE_FROM_ALL) add_subdirectory(pw_hdlc EXCLUDE_FROM_ALL) add_subdirectory(pw_i2c EXCLUDE_FROM_ALL) add_subdirectory(pw_interrupt EXCLUDE_FROM_ALL) diff --git a/pw_hex_dump/CMakeLists.txt b/pw_hex_dump/CMakeLists.txt new file mode 100644 index 000000000..090b98627 --- /dev/null +++ b/pw_hex_dump/CMakeLists.txt @@ -0,0 +1,29 @@ +# Copyright 2024 The Pigweed Authors +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +include($ENV{PW_ROOT}/pw_build/pigweed.cmake) + +pw_add_library(pw_hex_dump STATIC + SOURCES + hex_dump.cc + HEADERS + public/pw_hex_dump/hex_dump.h + PUBLIC_INCLUDES + public + PUBLIC_DEPS + pw_bytes + pw_span + pw_status +) + diff --git a/pw_hex_dump/docs.rst b/pw_hex_dump/docs.rst index c9af0e4f0..9cbc8acdb 100644 --- a/pw_hex_dump/docs.rst +++ b/pw_hex_dump/docs.rst @@ -43,9 +43,9 @@ Examples .. code-block:: none - Offs. 0 1 2 3 4 5 6 7 8 9 A B C D E F Text - 0000: A4 CC 32 62 9B 46 38 1A 23 1A 2A 7A BC E2 40 A0 ..2b.F8.#.*z..@. - 0010: FF 33 E5 2B 9E 9F 6B 3C BE 9B 89 3C 7E 4A 7A 48 .3.+..k<...<~JzH + Offs. 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f Text + 0000: a4 cc 32 62 9b 46 38 1a 23 1a 2a 7a bc e2 40 a0 ..2b.F8.#.*z..@. + 0010: ff 33 e5 2b 9e 9f 6b 3c be 9b 89 3c 7e 4a 7a 48 .3.+..k<...<~JzH 0020: 18 . **Example 1:** @@ -53,11 +53,11 @@ Examples .. code-block:: none - Address 0 4 Text - 0x20000000: A4CC3262 9B46381A ..2b.F8. - 0x20000008: 231A2A7A BCE240A0 #.*z..@. - 0x20000010: FF33E52B 9E9F6B3C .3.+..k< - 0x20000018: BE9B893C 7E4A7A48 ...<~JzH + Address 00 04 Text + 0x20000000: a4cc3262 9b46381a ..2b.F8. + 0x20000008: 231a2a7a bce240a0 #.*z..@. + 0x20000010: ff33e52b 9e9f6b3c .3.+..k< + 0x20000018: be9b893c 7e4a7a48 ...<~JzH 0x20000020: 18 . **Example 2:** @@ -65,9 +65,9 @@ Examples .. code-block:: none - Offs. 0 1 2 3 4 5 6 7 8 9 A B C D E F - 0000: A4 CC 32 62 9B 46 38 1A 23 1A 2A 7A BC E2 40 A0 - 0010: FF 33 E5 2B 9E 9F 6B 3C BE 9B 89 3C 7E 4A 7A 48 + Offs. 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f + 0000: a4 cc 32 62 9b 46 38 1a 23 1a 2a 7a bc e2 40 a0 + 0010: ff 33 e5 2b 9e 9f 6b 3c be 9b 89 3c 7e 4a 7a 48 0020: 18 **Example 3:** @@ -75,8 +75,8 @@ Examples .. code-block:: none - A4CC32629B46381A231A2A7ABCE240A0 - FF33E52B9E9F6B3CBE9B893C7E4A7A48 + a4cc32629b46381a231a2a7abce240a0 + ff33e52b9e9f6b3cbe9b893c7e4a7a48 18 @@ -88,7 +88,7 @@ Here's an example of how this class might be used: std::array temp; FormattedHexDumper hex_dumper(temp); - hex_dumper.HideAscii(); + hex_dumper.flags.show_ascii = false; hex_dumper.BeginDump(my_data); while(hex_dumper.DumpLine().ok()) { LOG_INFO("%s", temp.data()); @@ -98,9 +98,9 @@ Which prints: .. code-block:: none - Offs. 0 1 2 3 4 5 6 7 8 9 A B C D E F - 0000: A4 CC 32 62 9B 46 38 1A 23 1A 2A 7A BC E2 40 A0 - 0010: FF 33 E5 2B 9E 9F 6B 3C BE 9B 89 3C 7E 4A 7A 48 + Offs. 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f + 0000: a4 cc 32 62 9b 46 38 1a 23 1a 2a 7a bc e2 40 a0 + 0010: ff 33 e5 2b 9e 9f 6b 3c be 9b 89 3c 7e 4a 7a 48 0020: 18 Dependencies