![]() |
F´ Flight Software - C/C++ Documentation
NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
|
The Svc::ActiveLogger component processes events from other components. The events are put in packets and sent to an external component like the ground interface. The component provides event filtering capability such that events may be turned off via ID or severity.
The requirements for Svc::ActiveLogger are as follows:
Requirement | Description | Verification Method --------— | --------— | ----------------— AL-001 | The Svc::ActiveLogger component shall receive events and compose ter events based on event severity. | Unithem into downlink packets. | Inspection; Unit Test AL-002 | The Svc::ActiveLogger component shall have commands to filt Test AL-003 | The Svc::ActiveLogger component shall have commands to filter events based on the event ID. | Unit Test AL-004 | The Svc::ActiveLogger component shall call fatalOut port when FATAL is received | Inspection; Unit Test
The Svc::ActiveLogger component has the following component diagram:

The Svc::ActiveLogger component uses the following port types:
| Port Data Type | Name | Direction | Kind | Usage |
|---|---|---|---|---|
Fw::Log | LogRecv | Input | Synchronous | Receive events from components |
Fw::Com | PktSend | Output | n/a | Send event packets to external user |
Svc::FatalEvent | FatalAnnounce | Output | n/a | Send FATAL event (to health) |
The Svc::ActiveLogger component provides an event logging function for the software. The framework autocoder allows developers to specify a set of events in the component XML (see Events). For these components, the autocoder will add an Fw::Log output port to send events in serialized form. The ActiveLogger receives these port calls and provides commands to filter these events. The filtered events are sent to other components such as the ground interface.
Note: the Event ID value 0 is reserved for the logger.
Should a FATAL severity event arrive, it is announced using a FATAL out port allow the system to respond when a FATAL event is seen.
The Svc::ActiveLogger LogRecv input port handler filters events to lessen the load on the downstream components. The filters can be set by severity and ID. By default, the DIAGNOSTIC events are filtered out since the number of DIAGNOSTIC events can be quite high. All defaults can be globally configured in config/ActiveLoggerImplCfg.hpp. Filters are modified at runtime by the SET_EVENT_FILTER command.
The component also allows filtering events by event ID. There is a configuration parameter that sets the number of IDs that can be filtered. This allows operators to mute a particular event that might be flooding the downstream components. These filters are modified at runtime by the SET_ID_FILTER command.
FATAL events are never filtered, so they can be caught and broadcast to the system. Outgoing events are converted into the F´ ground format and sent out using the PktSend port.
When the ActiveLogger component receives a FATAL event, it calls the FatalAnnounce port. Another component that handles the system response to FATALs (such as resetting the system) can connect to this port to be informed when a FATAL has occurred.
The Svc::ActiveLogger component accepts events from other components.
Svc::ActiveLogger has no state machines, but stores the state of the event severity and event ID filters.
Svc::ActiveLogger has no significant algorithms.
TBD
| 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/25/2015 | Design review edits |
| 7/22/2015 | Design review actions |
| 9/7/2015 | Unit Test updates |
| 10/28/2015 | Added FATAL announce port |
| 12/1/2020 | Removed event buffers and post-filter |