F´ Flight Software - C/C++ Documentation NASA-v1.6.0
A framework for building embedded system applications to NASA flight quality standards.
|
FileUplink
is an active ISF component. It manages uplink of files to the spacecraft.
Requirement | Description | Rationale | Verification Method |
---|---|---|---|
ISF-FU-001 | FileUplink shall receive file packets, assemble them into files, and store the files in the on-board non-volatile storage. | This requirement provides the capability to uplink files to the spacecraft. | Test |
The design of FileUplink
assumes the following:
Fw::FilePacket
.In the nominal case of file uplink
a. Files are received one at a time. All packets of one file are received before receiving any packets of the next file.
b. Within a file, packets are received in order.
Name | Type | Role |
---|---|---|
timeCaller | Fw::Time | TimeGet |
tlmOut | Fw::Tlm | Telemetry |
eventOut | Fw::LogEvent | LogEvent |
Name | Type | Kind | Purpose |
---|---|---|---|
bufferSendIn | Fw::BufferSend | async input | Receives buffers containing file packets. |
bufferSendOut | Fw::BufferSend | output | Returns buffers for deallocation. |
FileUplink
maintains the following state:
FileUplink
expects to receive. The initial value is START.FileUplink
asynchronously receives buffers on `bufferSendIn`. Each buffer contains a file packet. When FileUplink
receives a buffer, it (a) determines the type of the file packet in the buffer; (b) takes action as specified in section below corresponding to the packet type; and (c) invokes `bufferSendOut` to return the buffer for deallocation.
Upon receipt of a START packet, FileUplink
does the following:
Upon receipt of a DATA packet P, FileUplink
does the following, where I is the sequence index of P:
Otherwise
a. If I is not equal to lastSequenceIndex + 1, then issue a PacketOutOfOrder warning reporting lastSequenceIndex and I.
b. If the packet offset and size are in bounds for the current file, then
c. Otherwise issue a PacketOutOfBounds warning.
Upon receipt of an END packet P, FileUplink
does the following:
If *receiveMode* is DATA, then do the following, where I is the sequence index of P:
a. If I is not equal to lastSequenceIndex + 1, then issue a PacketOutOfOrder warning reporting lastSequenceIndex and I.
b. Use writeFileDescriptor to do the following:
c. Close the file.
Upon receipt of a cancel packet P, FileUplink
does the following:
TBD
Document | Link |
---|---|
Design | Link |
Code | Link |
Unit Test | Link |
TODO