Sawmill: A CLI tool for exporting and trimming WPILib DataLogs
Motivation
While the existing DataLogTool can load multiple DataLogs from local and remote locations and export them as CSVs, that code is heavily tied to the GUI and so substantial code duplication would be inevitable. DataLog editing APIs will be added to the datalog library and exposed through a cli wrapper. At a later date they may be exposed in DataLogTool as well.
Features
- Convert a DataLog to CSV or JSON with the ability to include Control records if desired
- Selectively export a single entry in either format
- Trim DataLogs based on either a start and end time or a start time and a duration
- Rename entries (output datalog, csv, or json)
Usage
Converting a DataLog to a non-binary format
sawmill export json LOGFILE EXPORT-FILE [--mode <export-mode>]
sawmill export csv LOGFILE EXPORT-FILE [--mode <export-mode>]
LOGFILE is a valid path to a .wpilog file, and EXPORT-FILE is a valid path to a CSV or JSON file. All directories in EXPORT-FILE must exist, but the file itself will be created if it does not exist.
Extracting an entry
sawmill extract ENTRY LOGFILE EXPORTFILE [--format <export-format>]
ENTRY is the case-sensitive name of an entry that exists in LOGFILE. --format must be either "json" or "csv" and defaults to CSV.
Trimming a DataLog
sawmill trim LOGFILE [ENTRY] --start <timestamp> --duration <duration> [--format <export-format>]
sawmill trim LOGFILE [ENTRY] --start <timestamp> --end <timestamp> [--format <export-format>]
Renaming an Entry
sawmill rename-entry LOGFILE ENTRY NEW-NAME [--format <export format>]
TODO:
- [ ] CSV Export (partially done)
- [ ] JSON Export (partially done)
- [ ] Entry extraction
- [ ] Trimming
- [ ] Renaming
- [ ] Add FTC RoadRunner log support?