First release of `tcslog-tools`, two command-line tools for looking at a
[tcslog](https://crates.io/crates/tcslog) log — written on board a vehicle that
cannot send its telemetry home as it is produced, and usually read somewhere
else entirely, after the segment files have been downlinked a piece at a time.
Requires `tcslog` 0.2.
```sh
cargo install tcslog-tools
```
### Added
- `tcslog-dump` reads a whole log and prints it, naming the directory, the
segment file name prefix, and the suffix. `--text` decodes payloads as UTF-8,
with invalid sequences replaced; without it each byte is printed as the
character of that value. `--verbose` adds segment headers, session boundaries
and a closing summary to the records themselves.
- Losses are printed rather than passed over. Where segment files are missing or
damaged, the dump says how many went missing and where, and a record cut
short is shown as a partial, marked so it cannot be read as a whole one.
Running out of files is the only thing that ends the dump.
- `tcslog-dumphdr` prints one segment file's header — its identifiers, size,
format and position in its session — and never consults the file's name, so
it works on a file renamed or copied out of its log's directory. It reads the
file named on the command line, or standard input when none is given, and
reads only the header rather than the data section behind it.
- Installation from a registry, with `cargo install tcslog-tools`, or from a
checkout with `make install`. `PREFIX` chooses somewhere other than your home
directory and `DESTDIR` stages the install for packaging; `make uninstall`
removes both binaries, honouring the same two variables.
### Notes
- Neither tool needs `TIMER_RESOLUTION`. That value is required only to create
segment files, and neither of these creates one, so both take the library
with its `write` feature off — which is why they are a crate of their own
rather than part of the library's workspace, and why someone who only wants
to read a log need not build the writing side to do it.
- The `tcslog` repository's error-recovery suite drives both tools; its
`bin/tcslog-tool` locates them, expecting `../tcslog-tools` beside that
checkout unless `TCSLOG_TOOLS` says otherwise.
- The log format, the record formats, and the recovery rules these tools report
on are described in the library's documentation. These tools' own
documentation is `docs/tcslog-tools.rst`.
- Requires Rust 1.75 or later. Dual licensed under MIT OR Apache-2.0.
[0.1.5]: https://github.com/vomlehn/tcslog-tools/releases/tag/v0.1.5
[0.1.4]: https://github.com/vomlehn/tcslog-tools/releases/tag/v0.1.4
[0.1.3]: https://github.com/vomlehn/tcslog-tools/releases/tag/v0.1.3
[0.1.2]: https://github.com/vomlehn/tcslog-tools/releases/tag/v0.1.2
[0.1.1]: https://github.com/vomlehn/tcslog-tools/releases/tag/v0.1.1
[0.1.0]: https://github.com/vomlehn/tcslog-tools/releases/tag/v0.1.0