External API changes from v3 to v4

In the transition from v3 to v4 of Smart Shooter, there were a few breaking changes to the message spec used by the External API feature (and note, CaptureGRID 4 is in line with Smart Shooter 4).

Firstly, the API docs in the bitbucket repo was branched.
So for v3, please refer to this branch:

And for v4, this branch:

Here is a brief summary of the changes:

  • “Msg” suffix dropped from msg_id name fields
    For example, the “DetectCamerasMsg” is renamed to “DetectCameras”.

  • UTF8 BOM (byte order mark) is no longer added to outgoing messages

  • “msg_ref_num” field renamed to “msg_seq_num”

  • “Result” field renamed to “msg_result”

  • “GridSequenceNum” field renamed to “PhotoSequenceNum”

  • “GridBatchNum” field renamed to “PhotoBatchNum”

For a complete list, please refer to the commits made to the bitbucket repo.

In additional, the bitbucket repo also now contains a reference implementation of a python library, for reading/writing messages and maintaining state about cameras and photos. The code is available here:

The app itself has a embedded python interpreter, for running the built-in scripts, and this python library is used there.