F´ Flight Software - C/C++ Documentation
devel
A framework for building embedded system applications to NASA flight quality standards.
|
The Svc::PolyDb
component is meant to act as a resident database of values that components can use for checking or for data in algorithms.
The requirements for Svc::PolyDb
are as follows:
Requirement | Description | Verification Method |
---|---|---|
PDB-001 | The Svc::PolyDb component shall store Fw::PolyType values. | Inspection, Unit Test |
PDB-002 | The Svc::PolyDb component shall allow the Fw::PolyType values to be read and written. | Unit Test |
PDB-003 | The Svc::PolyDb component shall time tag the data | Unit Test |
PDB-004 | The Svc::PolyDb component shall report the measurement state of the data (good, stale, failure) | Unit Test |
The Svc::PolyDb
component has the following component diagram:
The Svc::PolyDb component uses the following port types:
Port Data Type | Name | Direction | Kind | Usage |
---|---|---|---|---|
`Svc::Poly` | getValue | Input | Guarded | Write Fw::PolyType values |
`Svc::Poly` | setValue | Input | Guarded | Write Fw::PolyType values |
Fw::PolyType
is different from binary telemetry in that it is not in a serialized form, but is stored as the native type. The component stores a table of ‘Fw::PolyType’ objects which are read and written by a table index enumeration. The table is protected by a mutex to prevent simultaneous access.
Users can customize the index name by modifying the config/PolyDbCfg.fpp
file in their own configuration directory.
Note that users should understand how the Fw::PolyType
works to avoid asserts when reading a different type than was written. To avoid asserts, user code can verify the expected type matches by calling the correct isXX()
function before trying to read the value out. The PolyDb
will not assert on the read or write of a Fw::PolyType
if there is a type mismatch. This only happens when trying to read out the value stored in the Fw::PolyType
.
The following diagram shows how components can share a value by having one component write the value, and the other read it:
Svc::PolyDb
has no state machines.
Svc::PolyDb
has no significant algorithms.
No dictionaries
Document | Link |
---|---|
Design Checklist | Link |
Code Checklist | Link |
Unit Test Checklist | Link |
To see unit test coverage run fprime-util check –coverage
Date | Description |
---|---|
6/19/2015 | Design review edits |
7/22/2015 | Design review actions |
9/15.2015 | Unit Test actions |