F´ Flight Software - C/C++ Documentation
devel
A framework for building embedded system applications to NASA flight quality standards.
|
DpCatalog
is an active F´ component that manages the downlink of generate data products. The data products were previously generated by components into a project-specific set of directories. Upon command, DpCatalog
will build a catalog of data existing products and start downloading them. They are downloaded based on a priority stored in the file and by generation time. DpCatalog
also has commands to reprioritize and delete data products.
NOTE: This release has an early prototype that will do the following:
Svc/FileDownlink
to downlink each file in the list.It does not:
Features and more extended unit testing will be added over time. Use at your own risk!
Requirement | Description | Rationale | Verification Method |
---|---|---|---|
SVC-DPCAT-001 | DpCatalog shall read a set of directories and build a catalog of data products. | DpCatalog needs to know at least one directory where data products reside | Test |
SVC-DPCAT-002 | DpCatalog shall sort data products first based on the internally recorded priority. | DpCatalog needs to downlink highest priority items first | Test |
SVC-DPCAT-003 | DpCatalog shall sort data products second based on the internally recorded time with oldest products as higher priority. | DpCatalog needs to downlink oldest items first | Test |
SVC-DPCAT-004 | DpCatalog shall sort data products third based on the internally recorded product ID with the lowest as higher priority. | DpCatalog needs to resolve case where priority and time match | Test |
SVC-DPCAT-005 | DpCatalog shall update the data product metadata once download is complete | DpCatalog needs to track completion status to avoid duplicate downloads | Test |
SVC-DPCAT-006 | DpCatalog shall implement a command and port to build the catalog. | DpCatalog should consume the resources to build the catalog only when needed | Test |
SVC-DPCAT-007 | DpCatalog shall implement a command and port to start downloading the catalog. | DpCatalog downloads should be timed for when communications are ready, and not consume comm window time building | Test |
SVC-DPCAT-008 | DpCatalog shall have filters for the download based on container ID, priority, and data size limit. | DpCatalog downloads should be tunable for available bandwidth and container metadata | Test |
SVC-DPCAT-009 | DpCatalog shall implement a way to insert newly-generated data products into the catalog after the catalog is built | DpCatalog should notice new products and not require a rebuild of the catalog | Test |
SVC-DPCAT-010 | DpCatalog shall implement commands to modify the priority of existing data products | Operators made change the priority to lower or raise priorities due to troubleshooting, etc | Test |
SVC-DPCAT-011 | DpCatalog shall implement commands to delete data products | Ground tools can use DpManager commands to automatically delete DPs | Test |
SVC-DPCAT-012 | DpCatalog shall implement a catalog data product that is a listing of existing data products and their metadata | Allow operators to know what products exist | Test |
SVC-DPCAT-013 | DpCatalog shall have filters for the catalog data product for priority, container ID, and time range | Allow operators to know what products exist | Test |
The design of DpCatalog
assumes the following:
Name | Type | Role |
---|---|---|
timeCaller | Fw::Time | TimeGet |
cmdIn | `Fw::Cmd` | Cmd |
cmdRegOut | `Fw::CmdReg` | CmdReg |
cmdResponseOut | `Fw::CmdResponse` | CmdResponse |
tlmOut | `Fw::Tlm` | Telemetry |
eventOut | `Fw::LogEvent` | LogEvent |
Name | Type | Kind | Purpose |
---|---|---|---|
sendFile | SendFileRequest | output | Send next file to downlink |
fileDone | SendFileComplete | async_input | Last requested file is complete |
newDp | DpNotify | async_input | Notification that a new DP has been generated |
DpCatalog
can be statically configured with the following constants:
Constant | Purpose |
---|---|
MAX_DP_DIRS | Maximum directories that can be provided for DPs |
During initialization, the initialization function takes a set of parameters:
Parameter | Purpose |
---|---|
dpDirs | A set of strings up to MAX_DP_DIRS that are directory names where DPs are written |
maxFiles | Specify the maximum number of files the catalog can track |
allocator | Memory allocator for catalog records |
TODO
TODO