# sounding

CLI tool for:
- trajectory evaluation (`trajectory`)
- process/system profiling (`probe`)

## Install

### From crates.io (recommended)

```bash
cargo install sounding
```

Or with rerun for visualisation:

```bash
cargo install sounding --features rerun
```

### Fast binary install with cargo-binstall

```bash
cargo binstall sounding
```

### Linux/macOS release archives

Download the matching `tar.gz` from releases, then install:

```bash
tar -xzf sounding-<VERSION>-<TARGET>.tar.gz
sudo install -m 755 sounding-<VERSION>-<TARGET>/sounding /usr/local/bin/sounding
```

### Arch Linux (btw) (AUR)

Source build package:

```bash
yay -S sounding
```

Prebuilt binary package:

```bash
yay -S sounding-bin
```

### Homebrew (macOS)

```bash
brew tap uos/sounding
brew install sounding
```

### Debian/Ubuntu packages

`.deb` packages are published in the [PPA repository](https://codeberg.org/uos-robotics/ppa).

## Build from source

```bash
cargo build --release
```

## Run

```bash
# all commands
cargo run -- --help
```

## Trajectory command

```bash
cargo run -- trajectory <ESTIMATED_TUM> <REFERENCE_TUM>
```

Common options:

```bash
--json
--export-summary-json [JSON_FILE]
--export-plots-dir [DIR]
--delta <N>
--rerun
```

## Probe command

```bash
cargo run -- probe <TARGET_PID_OR_NAME> --output-dir <DIR>
```

Common options:

```bash
--json
--output-dir <DIR>
--interval <SECONDS>
--strict
--rerun
```

