Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Decode TLV payload data and present it in a human readable format (#2…
…7638) * Start with a flat tree library for a human TLV format * Temp change for test * Switch to a flat list and more flexible finding ... expect I want to find by id AND name eventually * Clang-format * Add tests for searching by name in a flat tree * Provide non-array find-entry * Have a good tree position that works for navigating and descend/ascend * Added more documentation * Add more unit tests * Fix naming * Support current path for flat tree positions * Restyle * Add IM message encoding, to have pretty-print of data once available * Added secure channel message formats * Add UDC defintions * Rename things * make the matter file parseable * Attempt to start a codegen for tlv meta mapping * Restyle * Add missing files * Restyle * Have some codegen working, start defining types and names * Start implementing a bit of a table generation. not done, but tables start to exist * Support events for tables * Add support for commands (untested though) * More work, all except lists and constants are code-generated * Restyle * List support and better tag support including anonymous support * Make tags specific: many tags are NOT context tags currently * Restyle * Add some test data for development tests * Start adding some test support ... to be removed later * Code compiles * Add a unit test that compiles and runs * Starting some decoding support. Still very much broken * A bit more decoding, this time we handle lists. TLV interface is VERY bad * Better decoding, we now show data * Add some item information, to prepare for enum and bitmap decoding * Restyle * Add error messages on usage of command line * remove a non yes/no argument * Update error syntax for 2 more arguments * update the help. using both true/false and yes/no is a mess * Update logic for decoding * Do not allow restyle * Better StringBuilder formatting * Test adjustment * Naming update * Restyle * Add Format option for buffer writers and string builders * Update comments * Updated to only have printf inside stringbuilder and NOT bufferwriter * Restyle * Add missing file * remove cpp file comments * Fix cast to make clang happy * Much better formatting and make the compile clang-friendly * minor const correctness change. TLVReader has non-const getters * Add special tags for payloads of things * Added logic for binary data and payloads, to process things * Start adding clusters metadata, make everything const-correct * Minor update * Start updating formats * Never pass null pointer in vsnprintf, since our size available is never 0 * Restyle * Restyle * Better decoding * Clean up some printfs * Iterator decoding seems to work, including getting sub-data types * Better organization of code ... protocols decoder is actually a class now * Allow passing in decode trees for protocol understanding * Better arg parsing - was able to test for invalid data * Restyle * Add back reset call to stringbuilder * Restyle and make protocol decoding actually work * Unformatted protocols/cluster meta * Add more trace data for testing, fix SEGFAULT in decoder * Support non-struct list entries * Switch list decoding logic to be inside generated metadata * Restyle * Fix compilation and generation * Start having codegen support for protocols metadata * Move clusters meta to compile time codegen as well * Restyle * Cleanup dependencies a bit * Start making TestDecoding be actual unit tests * more unit tests, without protocol decoding * Slightly better formatting * More unit tests ... although invalid data looks odd * Better formatting of unknown attributes * Updated tests * Restyle * Better messaging, test overflows * Removed unused file * Undo submodule update * Add some tests for invoke. Command list is NOT complete * Restyle * Yield commands that have no request structure * Fix comment * Start adding some unit tests for cpp-tlvmeta codegen * Add tests for real * Allow both hex and json at the same time for output * Rename log_json to just json * Add file output option for json tracing * make the output look like a json array when outputing to file * Restyle * Fix support of "json:log" * Fix support of "json:log" * make things compile * Rename open/close to openfile/closefile to avoid override errors * Restyle * StartsWith should be available now globally as it is always used * StartsWith should be available now globally as it is always used * Forward declare json to make arm cross compile pass * Forward declare json to make arm cross compile pass * Restyle * Add some support for formatting enums and bitmaps * Restyle * Add json_tracing exceptions for includes checks * Proper bitmap support with tests, status codes are bitmaps now * Restyle * Update test for overflow to have more unique values * Restyle * Fix decoding of command inputs and names * Add a fuzz test for payload decoder * Handle invalid TLV * Add more error handling. Fuzzing runs longer now * Restyle * Make clang happy * Fix efr32 unit test compilation * Fix python lint * Restyle * Fix typo and restyle * Restyle * Add dependencies to flat-tree for generated code: they are needed * make tests use uppercase for unknown tags as this is the code update I made recently * Undo submodule update * Make clang-tidy happy * Fix subscribe response message indexing to match spec --------- Co-authored-by: Andrei Litvin <[email protected]>
- Loading branch information