BattOr Agent
============

The BattOr Agent is a C++ library that acts as a means of
communicating with a BattOr. BattOrs is an external USB device,
typically connected to the host, that's capable of recording
accurate, high-frequency (2000Hz) power samples.

The BattOr Agent accepts five high-level tracing commands:

- **StartTracing**, which tells the BattOr to start collecting power
samples.
- **StopTracing**, which tells the BattOr to stop collecting power
samples and return its trace log.
- **SupportsExplicitClockSync**, which returns whether the BattOr is
able to record clock sync markers in its own trace log.
- **RecordClockSyncMarker**, which writes the specified string into the
BattOr trace log. Because this string is accompanied by a BattOr tracing
timestamp, we can use this as a way of correlating the BattOr timeline
and the host computer's timeline.
- **IssueClockSyncMarker**, which tells the BattOr to issue clock sync
markers to all other tracing agents that it's connected to.

For those calling the agent from non-C++ code, we also provide a thin
binary wrapper around the C++ library.
