| 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. |