LRAUV  revA
Data Slate

As described in requirement Channel communications between software units through a single “slate”, all communication between software units will be performed through a world-readable "slate".

The elements of the slate are built up as modules are loaded and initialize themselves. As necessary by dynamic reconfiguration, data elements may be added or put into an "orphaned" state, but data elements will not be removed during the course of a vehicle mission. The state table will keep track of orphaned data table elements to ensure they are not subsequently used, for example in a trigger or in an abstract argument.

The slate also stores metadata about elements (units, description). As much as practical, the API forces developers to include metadata rather than omit it.

Access to the table is through the read and write methods of DataReader and DataWriter objects, obtained through calls to Slate::NewInputReader, Slate::NewReader, Slate::NewWriter, Slate::NewUniversalReader, or Slate::NewUniversalWriter.

All read and write accesses to the table can be logged, although typically only writes are logged.