Commelec API

We are developing an API for Commelec so that anyone can write a Resource Agent that can 'speak' to our Grid Agent. In fact, we distinguish between a "high-level API" which is easy to use, but can only be used with a limited (and fixed) set of resources, and a "low-level API" which is very flexible, but its use requires a deeper understanding of the Commelec message format.
The high-level API relies on a small daemon program, that runs on the same machine as the resource agent and takes care of the communication with the grid agent. The resource agent can communicate with the daemon over UDP in JSON. Hence, it should be easy to communicate to the daemon from a high-level programming language, like Python, NI LabVIEW or MATLAB.

The low-level API is built on top of a message format (a schema) that is defined in the Cap'n Proto schema language. (Cap'n Proto is a data-serialisation framework like "ASN.1" or "Protocol Buffers", but is much more modern and is superior in many aspects.)

The COMMELEC message format specification and the low-level API and high-level API source code are publicly available (under the MIT license) on GitHub.


Precompiled builds for commelecd:
Linux ARMv7a CortexA9 (NI compactRIO 9068)