LRAUV  revA
Data and Slate

All communications between Components (see Component) are via readers and writers that interact via the slate... More...

Classes

class  ArgDataElement
 Adds methods to a SimpleDataElement appropriate for a mission script Arg value. More...
 
class  Blob_Test
 Unit tests for the BlobValue, BlobReader, and BlobWriter classes. More...
 
class  BlobValue
 Wraps a StrValue as an arbitrary collection of binary values, with units. More...
 
class  DataAccess
 Serializable representation of DataAccessor object. More...
 
class  DataAccess_Test
 Unit tests for DataAccess class. More...
 
class  DataAccessor
 Abstact base class of all elements which can write to, or read from the slate. More...
 
class  DataElement
 Abstact base class for one "element" of the Slate. More...
 
class  DataElement::UninitializedException
 
class  DataReader
 A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL, which is returned if a dataValue request is made and this Accessor's associated DataElement is unavailable for some reason (not initialized, orphaned, or failed). More...
 
class  DataValue
 A DataValue is an abstract base class for a data value and associated engineering units of the value, where a "value" is a chunk of data that would be written in a single stroke – such as an integer or floating point value – or the pair of values associated with Latitude and Longitude, or even a 6-DOF location or rate. More...
 
class  DataWriter
 A DataAccessor that writes values to the Slate via its associated DataElement. More...
 
class  Double
 Wraps a double precision (8-byte) floating point number and unit for storage in a DataElement. More...
 
class  Double::StaticDestructor
 Makes sure that mallocRing_s is deleted on shutdown. More...
 
class  Double4
 Wraps a double precision (8-byte) floating point number and unit for storage in a DataElement. More...
 
class  Double6
 Wraps a double precision (8-byte) floating point number and unit for storage in a DataElement. More...
 
class  Double_Test
 Unit tests for Double class. More...
 
class  ElementURI
 Code unit that represents a unique name for a DataElement. More...
 
class  ElementURI_Test
 Unit tests for ElementURI class. More...
 
class  Float
 Wraps a single precision (4-byte) floating point number and unit for storage in a DataElement. More...
 
class  Float::StaticDestructor
 Makes sure that mallocRing_s is deleted on shutdown. More...
 
class  Float2
 Wraps a single precision (4-byte) floating point number and unit for storage in a DataElement. More...
 
class  Float3
 Wraps a single precision (4-byte) floating point number and unit for storage in a DataElement. More...
 
class  Int
 Wraps a 32-bit (4-byte) signed integer and unit for storage in a DataElement. More...
 
class  Int::StaticDestructor
 Makes sure that mallocRing_s is deleted on shutdown. More...
 
class  Location
 Wraps a pair of double precision (8-byte) floating point numbers and units for storage in a DataElement. More...
 
class  Location_Test
 Unit tests for Location class. More...
 
class  Matrix3x3
 Contains a 3x3 array of double precision floating point numbers, along with methods for performing common operations on the array such as invert(), mult(), etc. More...
 
class  Matrix6x6
 Contains a 6x6 array of double precision floating point numbers, along with methods for performing common operations on the array such as invert(), mult(), etc. More...
 
class  Mtx_Test
 Unit tests for Mtx class. More...
 
class  Point3D
 Wraps three double precision (8-byte) floating point numbers. More...
 
class  Point6D
 Wraps six double precision (8-byte) floating point numbers. More...
 
class  Short
 Wraps a single precision (4-byte) floating point number and unit for storage in a DataElement. More...
 
class  SimpleDataElement
 A "Simple" DataElement. More...
 
class  SimSlate
 SimSlate is a simple, non-logging slate for transferring data between the external simulator and other modules, without worrying about module dependencies. More...
 
class  SimSlate::StaticInitializer
 Makes sure that static _entries are initialized. More...
 
class  Slate
 Code unit that represents the slate. More...
 
class  Slate::StaticDestructor
 Makes sure that static objects are deleted on shutdown. More...
 
class  StrValue
 Wraps a string (see Str) as a DataValue, so strings can be written to and read from the slate. More...
 
class  StrValue_Test
 Unit tests for StrValue class. More...
 
class  UChar
 Wraps a 32-bit (4-byte) signed integer and unit for storage in a DataElement. More...
 
class  Universal_Test
 Unit tests for the BlobValue, BlobReader, and BlobWriter classes. More...
 
class  UniversalDataElement
 Implementation of a DataElement as a "UniversalDataElement". More...
 
class  UniversalDataReader
 A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL, which is returned if a dataValue request is made and this Accessor's associated DataElement is unavailable for some reason (not initialized, orphaned, or failed). More...
 
class  UniversalDataWriter
 A DataAccessor that writes values to the Slate via its associated DataElement. More...
 
class  UniversalURI
 Code unit that represents a unique name for a measured quantity. More...
 
class  UShort
 Wraps a single precision (4-byte) floating point number and unit for storage in a DataElement. More...
 

Enumerations

enum  BinaryDataType {
  NO_TYPE = -0x01, MULTIVALUE = 0x00, STRVALUE = MULTIVALUE, UCHAR1 = 0x02,
  SHORT2 = 0x05, USHORT2 = 0x06, FLOAT2 = 0x07, FLOAT3 = 0x0B,
  INT4 = 0x0D, FLOAT4 = 0x0F, DOUBLE4 = 0x2F, DOUBLE6 = 0x37,
  DOUBLE8 = 0x1F
}
 These are binary type identifiers for serializing and unserializing The syntax below handles up to 16 8-byte numbers per packet. More...
 
enum  DataAccessor::AccessorType { DataAccessor::DATA_READER = 0, DataAccessor::DATA_WRITER = 1 }
 
enum  DataAccessor::RequestStrategy {
  DataAccessor::NO_STRATEGY = -1, DataAccessor::MIN_POWER, DataAccessor::MIN_ERROR, DataAccessor::MIN_LATENCY,
  DataAccessor::MAX_FREQUENCY, DataAccessor::ALL_DEVICES, DataAccessor::STRATEGY_COUNT
}
 
enum  ElementURI::ElementType {
  ElementURI::BASE_ELEMENT = 0, ElementURI::CONFIG_ELEMENT = 1, ElementURI::DATA_ELEMENT = 2, ElementURI::SETTING_ELEMENT = 3,
  ElementURI::UNIVERSAL_ELEMENT = 4, ElementURI::BLOB_VALUE_FLAG = 0x10
}
 
enum  SimSlate::SimEntryType {
  SimSlate::ALTITUDE_METER, SimSlate::BUOYANCY_POSITION_CUBIC_METER, SimSlate::DENSITY_KILOGRAM_PER_CUBIC_METER, SimSlate::DEPTH_METER,
  SimSlate::EASTWARD_WATER_VELOCITY_METER_PER_SECOND, SimSlate::ELEVATOR_ANGLE_RADIAN, SimSlate::HEADING_RADIAN, SimSlate::LATITUDE_DEGREE,
  SimSlate::LONGITUDE_DEGREE, SimSlate::MAGNETIC_VARIATION_DEGREE, SimSlate::MASS_CONCENTRATION_OF_CHLOROPHYLL_UG_PER_L, SimSlate::MASS_CONCENTRATION_OF_OXYGEN_UG_PER_L,
  SimSlate::MASS_POSITION_METER, SimSlate::MOLE_CONCENTRATION_OF_NITRATE_UMOLE_PER_L, SimSlate::NORTHWARD_WATER_VELOCITY_METER_PER_SECOND, SimSlate::PITCH_RADIAN,
  SimSlate::PITCH_RATE_RADIAN_PER_SECOND, SimSlate::ROLL_RADIAN, SimSlate::ROLL_RATE_RADIAN_PER_SECOND, SimSlate::PROPELLER_OMEGA_RADIAN_PER_SECOND,
  SimSlate::RUDDER_ANGLE_RADIAN, SimSlate::SALINITY_PART_PER_THOUSAND, SimSlate::SOUND_SPEED_METER_PER_SECOND, SimSlate::TEMPERATURE_DEGREE_CELSIUS,
  SimSlate::VELOCITY_X_WRT_GROUND_METER_PER_SECOND, SimSlate::VELOCITY_Y_WRT_GROUND_METER_PER_SECOND, SimSlate::VELOCITY_Z_WRT_GROUND_METER_PER_SECOND, SimSlate::WATER_VELOCITY_X_METER_PER_SECOND,
  SimSlate::WATER_VELOCITY_Y_METER_PER_SECOND, SimSlate::WATER_VELOCITY_Z_METER_PER_SECOND, SimSlate::YAW_RATE_RADIAN_PER_SECOND, SimSlate::HOMING_SENSOR_RANGE_M,
  SimSlate::HOMING_SENSOR_AZIM_RAD, SimSlate::HOMING_SENSOR_ELEV_RAD, SimSlate::NUM_ENTRIES
}
 

Functions

virtual AbstractBlobReader::~AbstractBlobReader ()
 Abstract parent class that adds the capability of reading BlobValues to a "normal" DataReader See below for implementation in BlobReader Also implemented in UniversalReader::UniversalBlobReader. More...
 
virtual bool BlobReader::read (DataValue &readTo)
 A DataReader for reading BlobValues, normally created via Component::newBlobReader() More...
 
virtual AbstractBlobWriter::~AbstractBlobWriter ()
 A DataWriter for writing BlobValues, normally created via Component::newBlobWriter() See below for implementation in BlobWriter Also implemented in UniversalWriter::UniversalBlobWriter. More...
 

Detailed Description

All communications between Components (see Component) are via readers and writers that interact via the slate...

which is itself basically a registry of URIs corresponding to Component names and variable names.

Enumeration Type Documentation

Enumerator
DATA_READER 
DATA_WRITER 

These are binary type identifiers for serializing and unserializing The syntax below handles up to 16 8-byte numbers per packet.

Here's the mapping:

  • 0b.... ..00 = String
  • 0b.... ..01 = signed number
  • 0b.... ..10 = unsigned number
  • 0b.... ..11 = real number
  • 0b...0 00.. = 1 byte length per number
  • 0b...0 01.. = 2 byte length per number
  • 0b...0 10.. = 3 byte length per number
  • 0b...0 11.. = 4 byte length per number
  • 0b...1 00.. = 5 byte length per number
  • 0b...1 01.. = 6 byte length per number
  • 0b...1 10.. = 7 byte length per number
  • 0b...1 11.. = 8 byte length per number
  • 0b..0. .... = internally handled as a 4-byte number
  • 0b..1. .... = internally handled as a 8-byte number
  • 0b00.. .... = 1 unit per packet
  • 0b01.. .... = 2 units per packet
  • 0b10.. .... = 3 units per packet
  • 0b11.. .... = 6 units per packet
  • 0b1111 1111 = special value 0XFF == NO_TYPE
Enumerator
NO_TYPE 
MULTIVALUE 
STRVALUE 
UCHAR1 
SHORT2 
USHORT2 
FLOAT2 
FLOAT3 
INT4 
FLOAT4 
DOUBLE4 
DOUBLE6 
DOUBLE8 
Enumerator
BASE_ELEMENT 
CONFIG_ELEMENT 
DATA_ELEMENT 
SETTING_ELEMENT 
UNIVERSAL_ELEMENT 
BLOB_VALUE_FLAG 
Enumerator
NO_STRATEGY 
MIN_POWER 
MIN_ERROR 
MIN_LATENCY 
MAX_FREQUENCY 
ALL_DEVICES 
STRATEGY_COUNT 
Enumerator
ALTITUDE_METER 
BUOYANCY_POSITION_CUBIC_METER 
DENSITY_KILOGRAM_PER_CUBIC_METER 
DEPTH_METER 
EASTWARD_WATER_VELOCITY_METER_PER_SECOND 
ELEVATOR_ANGLE_RADIAN 
HEADING_RADIAN 
LATITUDE_DEGREE 
LONGITUDE_DEGREE 
MAGNETIC_VARIATION_DEGREE 
MASS_CONCENTRATION_OF_CHLOROPHYLL_UG_PER_L 
MASS_CONCENTRATION_OF_OXYGEN_UG_PER_L 
MASS_POSITION_METER 
MOLE_CONCENTRATION_OF_NITRATE_UMOLE_PER_L 
NORTHWARD_WATER_VELOCITY_METER_PER_SECOND 
PITCH_RADIAN 
PITCH_RATE_RADIAN_PER_SECOND 
ROLL_RADIAN 
ROLL_RATE_RADIAN_PER_SECOND 
PROPELLER_OMEGA_RADIAN_PER_SECOND 
RUDDER_ANGLE_RADIAN 
SALINITY_PART_PER_THOUSAND 
SOUND_SPEED_METER_PER_SECOND 
TEMPERATURE_DEGREE_CELSIUS 
VELOCITY_X_WRT_GROUND_METER_PER_SECOND 
VELOCITY_Y_WRT_GROUND_METER_PER_SECOND 
VELOCITY_Z_WRT_GROUND_METER_PER_SECOND 
WATER_VELOCITY_X_METER_PER_SECOND 
WATER_VELOCITY_Y_METER_PER_SECOND 
WATER_VELOCITY_Z_METER_PER_SECOND 
YAW_RATE_RADIAN_PER_SECOND 
HOMING_SENSOR_RANGE_M 
HOMING_SENSOR_AZIM_RAD 
HOMING_SENSOR_ELEV_RAD 
NUM_ENTRIES 

Function Documentation

virtual bool BlobReader::read ( DataValue readTo)
inlinevirtual

A DataReader for reading BlobValues, normally created via Component::newBlobReader()

Implements AbstractBlobReader.

References DataReader::read().

virtual AbstractBlobReader::~AbstractBlobReader ( )
inlinevirtual

Abstract parent class that adds the capability of reading BlobValues to a "normal" DataReader See below for implementation in BlobReader Also implemented in UniversalReader::UniversalBlobReader.

virtual AbstractBlobWriter::~AbstractBlobWriter ( )
inlinevirtual

A DataWriter for writing BlobValues, normally created via Component::newBlobWriter() See below for implementation in BlobWriter Also implemented in UniversalWriter::UniversalBlobWriter.