mirror of
https://github.com/nasa/fprime.git
synced 2025-12-10 00:44:37 -06:00
Add SDD aggregation into the core website (#3139)
This commit is contained in:
parent
5a7452a474
commit
334c525984
@ -11,6 +11,12 @@
|
||||
},
|
||||
{
|
||||
"pattern": "^\\.\\./tree/HEAD/"
|
||||
},
|
||||
{
|
||||
"pattern": ".*\\.[chf]pp"
|
||||
},
|
||||
{
|
||||
"pattern": "../../../.."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
1
.github/actions/spelling/excludes.txt
vendored
1
.github/actions/spelling/excludes.txt
vendored
@ -100,3 +100,4 @@
|
||||
^\Qdocs/Tutorials/FullSystemTutorial/Tutorial.md\E$
|
||||
^\QSvc/FileUplink/test/ut/dest.bin\E$
|
||||
ignore$
|
||||
mlc-config.json
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page DrvBlockDriverComponent Drv::BlockDriver Component
|
||||
# Drv::BlockDriver Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page DrvByteStreamDriverModel Drv::ByteStreamDriverModel Byte Stream Driver Model
|
||||
# Drv::ByteStreamDriverModel Byte Stream Driver Model
|
||||
|
||||
The byte stream driver is a generic model for drivers implementing a "stream of bytes" interface. Typically these
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page DrvIp Drv::Ip IPv4 Socket Implementations
|
||||
# Drv::Ip IPv4 Socket Implementations
|
||||
|
||||
This package contains utility classes to help interact with standard IPv4 (Berkeley) sockets. These classes implement the
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page DrvStreamCrossover Drv::StreamCrossover Stream Crossover Component
|
||||
# Drv::StreamCrossover Stream Crossover Component
|
||||
|
||||
The Stream Crossover component allows a connection of byte stream driver model ports of type ByteStreamRecv and
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page DrvTcpClient Drv::TcpClient Component
|
||||
# Drv::TcpClient TCP Client Component
|
||||
|
||||
The TCP client component bridges the byte stream driver model interface to a remote TCP server to which this tcp client
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page DrvTcpServer Drv::TcpServer Component
|
||||
# Drv::TcpServer Tcp Server Component
|
||||
|
||||
The TCP server component bridges the byte stream driver model interface to a remote TCP client to which this tcp server
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page DrvUdp Drv::Udp Component
|
||||
# Drv::Udp UDP Component
|
||||
|
||||
The UDP client component bridges the byte stream driver model interface to a remote UDP port to which this udp component
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page FwBufferSerializableBufferGetBufferSend Fw::Buffer Serializable / Fw::BufferGet Port / Fw::BufferSend Port
|
||||
# Fw::Buffer Serializable / Fw::BufferGet Port / Fw::BufferSend Port
|
||||
|
||||
## 1 Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page FwCmdFwCmdResponseFwCmdReg Fw::Cmd / Fw::CmdResponse / Fw::CmdReg Ports
|
||||
# Fw::Cmd / Fw::CmdResponse / Fw::CmdReg Ports
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page FwComPort Fw::Com Port
|
||||
# Fw::Com Port
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,12 +1,11 @@
|
||||
\page FwDp Framework Support for Data Products
|
||||
# Framework Support for Data Products
|
||||
# Fw::Dp Framework Support for Data Products
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
This build module defines FPP ports and C++ classes that support
|
||||
the collection and storage of data products.
|
||||
For more information on data products and records, see the
|
||||
[data products documentation](../../../docs/documentation/user-manual/design/data-products.md).
|
||||
[data products documentation](../../../../../user-manual/design/data-products.md).
|
||||
|
||||
## 2. Configuration
|
||||
|
||||
@ -82,7 +81,7 @@ The header hash has the following format.
|
||||
|
||||
|Field Name|Serialized Size|Description|
|
||||
|----------|---------------|-----------|
|
||||
|`Header Hash`|[`HASH_DIGEST_LENGTH`](../../../Utils/Hash/README.md)|The hash value guarding the header.|
|
||||
|`Header Hash`|[`HASH_DIGEST_LENGTH`](../../../../api/cpp/html/index.html)|The hash value guarding the header.|
|
||||
|
||||
#### 5.1.3. Data
|
||||
|
||||
@ -119,7 +118,7 @@ The data hash has the following format.
|
||||
|
||||
|Field Name|Serialized Size|Description|
|
||||
|----------|---------------|-----------|
|
||||
|`Data Hash`|[`HASH_DIGEST_LENGTH`](../../../Utils/Hash/README.md)|The hash value guarding the data.|
|
||||
|`Data Hash`|[`HASH_DIGEST_LENGTH`](../../../../api/cpp/html/index.html)|The hash value guarding the data.|
|
||||
|
||||
### 5.2. Further Information
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page FwFilePacketClasses Fw::FilePacket Classes
|
||||
# Fw::FilePacket Classes
|
||||
|
||||
## 1 Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page FwLogLogText Fw::Log, Fw::LogText Ports
|
||||
# Fw::Log / Fw::LogText Ports
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page FwObjClasses Fw::Obj Classes
|
||||
# Fw::Obj Classes
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page FwPortClasses Fw::Port Classes
|
||||
# Fw::Port Classes
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page FwPrmGetPrmSet Fw::PrmGet / PrmSet Ports
|
||||
# Fw::PrmGet / PrmSet Ports
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page FwTimePort Fw::Time Port
|
||||
# Fw::Time Port
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page FwTlmPort Fw::Tlm Port
|
||||
# Fw::Tlm Port
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page FwTypeClasses Fw::Type Classes and Types
|
||||
# Fw::Type Classes and Types
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page RefPingReceiverComponent Ref::PingReceiver Component
|
||||
# Ref::PingReceiver Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page RefRecvBuffAppComponent Ref::RecvBuffApp Component
|
||||
# Ref::RecvBuffApp Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page RefSendBuffAppComponent Ref::SendBuffApp Component
|
||||
# Ref::SendBuffApp Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page RefSignalGenComponent Ref::SignalGen Component
|
||||
# Ref::SignalGen Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcActiveLoggerComponent Svc::ActiveLogger Component
|
||||
# Svc::ActiveLogger Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcActiveRateGroupComponent Svc::ActiveRateGroup Component
|
||||
# Svc::ActiveRateGroup Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcActiveTextLoggerComponent Svc::ActiveTextLogger Component
|
||||
# Svc::ActiveTextLogger Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcAssertFatalAdapterComponent Svc::AssertFatalAdapter Component
|
||||
# Svc::AssertFatalAdapter Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcBufferAccumulatorComponent Svc::BufferAccumulator Component
|
||||
# BufferAccumulator Component Dictionary
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcBufferManagerComponent Svc::BufferManager Component
|
||||
# Svc::BufferManager
|
||||
|
||||
## 1 Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcBufferRepeaterComponent Svc::BufferRepeater Component
|
||||
# Svc::BufferRepeater: Buffer Repeater (Passive Component)
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcCmdDispatcherComponent Svc::CmdDispatcher Component
|
||||
# Svc::CmdDispatcher Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcCmdSequencerComponent Svc::CmdSequencer Component
|
||||
# Svc::CmdSequencer Component
|
||||
|
||||
## 1 Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcCmdSplitter Svc::CmdSplitter Component
|
||||
# Svc::CmdSplitter Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcComQueueComponent Svc::ComQueue Component
|
||||
# Svc::ComQueue (Active Component)
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcComStubComponent Svc::ComStub Component
|
||||
# Svc::ComStub (Passive Component)
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcDeframerComponent Svc::Deframer Component
|
||||
# Svc::Deframer (Passive Component)
|
||||
|
||||
## 1. Introduction
|
||||
@ -95,9 +94,7 @@ SVC-DEFRAMER-011 | `Svc::Deframer` shall operate nominally when its port for sen
|
||||
|
||||
The diagram below shows the `Deframer` component.
|
||||
|
||||
<div>
|
||||
<img src="img/Deframer.png" width=700/>
|
||||
</div>
|
||||

|
||||
|
||||
### 4.2. Ports
|
||||
|
||||
@ -349,24 +346,18 @@ optional.
|
||||
|
||||
**Topology 1a: Buffers containing framed data (active byte stream driver):**
|
||||
|
||||
<div>
|
||||
<img src="img/top/framed-active.png" width=1000/>
|
||||
</div>
|
||||

|
||||
|
||||
**Topology 1b: Buffers containing framed data (passive byte stream driver):**
|
||||
|
||||
<div>
|
||||
<img src="img/top/framed-passive.png" width=1000/>
|
||||
</div>
|
||||

|
||||
|
||||
Revise the port number of `rateGroup.RateGroupMemberOut` as
|
||||
appropriate for your application.
|
||||
|
||||
**Topology 2: Command packets and command responses:**
|
||||
|
||||
<div>
|
||||
<img src="img/top/cmd.png" width=800/>
|
||||
</div>
|
||||

|
||||
|
||||
Revise the port numbers of `cmdDisp.seqCmdBuff` and
|
||||
`cmdDisp.compCmdStat` as appropriate for your application.
|
||||
@ -375,9 +366,7 @@ assign these numbers.
|
||||
|
||||
**Topology 3: Buffers containing packet data:**
|
||||
|
||||
<div>
|
||||
<img src="img/top/deframer-file.png" width=1000/>
|
||||
</div>
|
||||

|
||||
|
||||
### 6.2. Sequence Diagrams
|
||||
|
||||
@ -507,17 +496,13 @@ instance `hub` of type `Svc::GenericHub`.
|
||||
|
||||
**Topology 2: Command packets**
|
||||
|
||||
<div>
|
||||
<img src="img/top/hub-cmd.png" width=800/>
|
||||
</div>
|
||||

|
||||
|
||||
Revise the port number of `hub.portIn` as appropriate for your application.
|
||||
|
||||
**Topology 3: Buffers containing packet data**
|
||||
|
||||
<div>
|
||||
<img src="img/top/hub-file.png" width=1000/>
|
||||
</div>
|
||||

|
||||
|
||||
Revise the port number of `hub.buffersIn` as appropriate for your application.
|
||||
When `hub` receives a buffer on `buffersIn`, it copies the data across
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcDpCatalogComponent Svc::DpCatalog Component
|
||||
# Svc::DpCatalog Component
|
||||
|
||||
## 1 Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcDpManagerComponent Svc::DpManager Component
|
||||
# Svc::DpManager (Active Component)
|
||||
|
||||
## 1. Introduction
|
||||
@ -22,7 +21,7 @@ It does the following:
|
||||
client components.
|
||||
Upon receiving a buffer, send the buffer out on a port.
|
||||
Another component such as
|
||||
[`Svc::BufferAccumulator`](../../BufferAccumulator/docs/BufferAccumulator.md)
|
||||
[`Svc::BufferAccumulator`](../../BufferAccumulator/docs/sdd.md)
|
||||
or [`Svc::DpWriter`](../../DpWriter/docs/sdd.md)
|
||||
will process the buffer and then send it back to the buffer manager
|
||||
for deallocation.
|
||||
@ -42,9 +41,7 @@ SVC-DPMANAGER-004 | `Svc::DpManager` shall provide telemetry that reports the nu
|
||||
|
||||
The diagram below shows the `DpManager` component.
|
||||
|
||||
<div>
|
||||
<img src="img/DpManager.png" width=700/>
|
||||
</div>
|
||||

|
||||
|
||||
### 3.2. Ports
|
||||
|
||||
@ -197,21 +194,16 @@ connections.
|
||||
|
||||
#### 5.1.1. Synchronously Getting Data Product Buffers
|
||||
|
||||
<div>
|
||||
<img src="img/top/buffer-get.png" width=800/>
|
||||
</div>
|
||||

|
||||
|
||||
#### 5.1.2. Asynchronously Requesting Data Product Buffers
|
||||
|
||||
<div>
|
||||
<img src="img/top/buffer-request.png" width=800/>
|
||||
</div>
|
||||

|
||||
|
||||
|
||||
#### 5.1.3. Sending Data Products
|
||||
|
||||
<div>
|
||||
<img src="img/top/product-send.png" width=1000/>
|
||||
</div>
|
||||

|
||||
|
||||
### 5.2. Sequence Diagrams
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcDpWriterComponent Svc::DpWriter Component
|
||||
# Svc::DpWriter (Active Component)
|
||||
|
||||
## 1. Introduction
|
||||
@ -12,7 +11,7 @@ data products.
|
||||
They typically pass through an instance of
|
||||
[`Svc::DpManager`](../../DpManager/docs/sdd.md), and possibly through
|
||||
an instance of
|
||||
[`Svc::BufferAccumulator`](../../BufferAccumulator/docs/BufferAccumulator.md),
|
||||
[`Svc::BufferAccumulator`](../../BufferAccumulator/docs/sdd.md),
|
||||
before reaching `DpWriter`.
|
||||
|
||||
1. For each buffer _B_ received in step 1:
|
||||
@ -43,9 +42,7 @@ SVC-DPWRITER-006 | `Svc::DpManager` shall provide telemetry that reports the num
|
||||
|
||||
The diagram below shows the `DpWriter` component.
|
||||
|
||||
<div>
|
||||
<img src="img/DpWriter.png" width=700/>
|
||||
</div>
|
||||

|
||||
|
||||
### 3.2. Ports
|
||||
|
||||
@ -206,9 +203,7 @@ The diagrams use the following instances:
|
||||
|
||||
* `producer`: A component that produces data products.
|
||||
|
||||
<div>
|
||||
<img src="img/top/product-write.png" width=800/>
|
||||
</div>
|
||||

|
||||
|
||||
### 6.2. Sequence Diagrams
|
||||
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcFatalPort Svc::Fatal Port
|
||||
# Svc::Fatal Port
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcFatalHandlerComponent Svc::FatalHandler Component
|
||||
# Svc::FatalHandler Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcFileDownlinkComponent Svc::FileDownlink Component
|
||||
# Svc::FileDownlink Component
|
||||
|
||||
## 1 Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcFileManagerComponent Svc::FileManager Component
|
||||
# Svc::FileManager Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcFileUplinkComponent Svc::FileUplink Component
|
||||
# Svc::FileUplink Component
|
||||
|
||||
## 1 Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcFramerComponent Svc::Framer Component
|
||||
# Svc::Framer (Passive Component)
|
||||
|
||||
## 1. Introduction
|
||||
@ -193,25 +192,19 @@ The diagrams use the following instances:
|
||||
|
||||
**Topology 1: Telemetry packets:**
|
||||
|
||||
<div>
|
||||
<img src="img/top/tlm.png" width=1000/>
|
||||
</div>
|
||||

|
||||
|
||||
The `chanTlm` instance sends telemetry packets to the `framer` instance.
|
||||
|
||||
**Topology 2: Event packets:**
|
||||
|
||||
<div>
|
||||
<img src="img/top/event.png" width=1000/>
|
||||
</div>
|
||||

|
||||
|
||||
The `eventLogger` instance sends event packets to the `framer` instance.
|
||||
|
||||
**Topology 3: File packets:**
|
||||
|
||||
<div>
|
||||
<img src="img/top/framer-file.png" width=1000/>
|
||||
</div>
|
||||

|
||||
|
||||
The `fileDownlink` instance sends a sequence of file packets,
|
||||
representing a complete file, to the `framer` instance.
|
||||
@ -232,9 +225,7 @@ can handle the packets.
|
||||
|
||||
**Topology 4: Framed data:**
|
||||
|
||||
<div>
|
||||
<img src="img/top/framed.png" width=1000/>
|
||||
</div>
|
||||

|
||||
|
||||
`framer` allocates frame buffers from `buffMgr`.
|
||||
It sends buffers containing frames to `comm`.
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcFramingProtocol Svc::FramingProtocol Protocol
|
||||
# Svc::FramingProtocol Library
|
||||
|
||||
The `FramingProtocol` library defines the interfaces to the
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcGenericHubComponent Svc::GenericHub Component
|
||||
# Svc::GenericHub Generic Hub Component
|
||||
|
||||
The Generic Hub component is an implementation of the F´ [hub pattern](https://nasa.github.io/fprime/UsersGuide/best/hub-pattern.html).
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcHealthComponent Svc::Health Component
|
||||
# Svc::Health Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcPassiveConsoleTextLoggerComponent Svc::PassiveConsoleTextLogger Component
|
||||
# Svc::PassiveConsoleTextLogger Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcPassiveRateGroupComponent Svc::PassiveRateGroup Component
|
||||
# RateGroupDriver Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcPingPort Svc::Ping Port
|
||||
# Svc::Ping Port
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcPolyDbComponent Svc::PolyDb Component
|
||||
# Svc::PolyDb Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcPolyPort Svc::Poly Port
|
||||
# Svc::Poly Port
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcPosixTime Svc::PosixTime Component
|
||||
# Svc::PosixTime Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcPrmDbComponent Svc::PrmDb Component
|
||||
# Svc::PrmDb Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcRateGroupDriverComponent Svc::RateGroupDriver Component
|
||||
# Svc::RateGroupDriver Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcSchedPort Svc::Sched Port
|
||||
# Svc::Sched Port
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcStaticMemoryComponent Svc::StaticMemory Component
|
||||
# Svc::StaticMemory Component
|
||||
|
||||
The StaticMemory component is a drop in replacement for Svc::BufferManager that allocates memory out of a static pool of
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcSystemResourcesComponent Svc::SystemResources Component
|
||||
# SystemResources Component
|
||||
|
||||
The system resources component downlinks information about the running F´ system. This information includes:
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcTlmChanComponent Svc::TlmChan Component
|
||||
# Svc::TlmChan Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcTlmPacketizerComponent Svc::TlmPacketizer Component
|
||||
# Svc::TlmPacketizer Component
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
@ -1,4 +1,3 @@
|
||||
\page SvcWatchDogPort Svc::WatchDog Port
|
||||
# Svc::WatchDog Port
|
||||
|
||||
## 1. Introduction
|
||||
|
||||
5
docs/documentation/reference/sdd/index.md
Normal file
5
docs/documentation/reference/sdd/index.md
Normal file
@ -0,0 +1,5 @@
|
||||
# F´ Software Design Documents
|
||||
|
||||
Software Design Documents are intended to capture the design of an F´ component or module. These are located in the source tree of the framework.
|
||||
|
||||
### Index
|
||||
@ -56,17 +56,17 @@ components:
|
||||
1. A **data product manager**.
|
||||
This component allocates memory for empty containers.
|
||||
It also forwards filled containers to the data product writer.
|
||||
See [`Svc::DpManager`](../../reference/api/cpp/html/_svc_dp_manager_component.html).
|
||||
See [`Svc::DpManager`](../../reference/sdd/Svc/DpManager/docs/sdd.md).
|
||||
|
||||
1. A **data product writer**.
|
||||
This component receives filled containers from data product
|
||||
producers. It writes the contents of the containers to non-volatile
|
||||
storage. See [`Svc::DpWriter`](../../reference/api/cpp/html/_svc_dp_writer_component.html).
|
||||
storage. See [`Svc::DpWriter`](../../reference/sdd/Svc/DpWriter/docs/sdd.md).
|
||||
|
||||
1. A **data product catalog**.
|
||||
This component maintains a database of available data
|
||||
products. By command, it downlinks and deletes data products.
|
||||
See [`Svc::DpCatalog`](../../reference/api/cpp/html/_svc_dp_catalog_component.html).
|
||||
See [`Svc::DpCatalog`](../../reference/sdd/Svc/DpCatalog/docs/sdd.md).
|
||||
|
||||
1. A **data product processor**.
|
||||
This component is not yet developed.
|
||||
@ -111,7 +111,7 @@ and [_The FPP Language Specification_](https://nasa.github.io/fpp/fpp-spec.html)
|
||||
|
||||
FPP provides the following special ports for managing data products:
|
||||
|
||||
1. A **product get port** of type [`Fw::DpGet`](../../reference/api/cpp/html/_fw_dp.html).
|
||||
1. A **product get port** of type [`Fw::DpGet`](../../reference/sdd/Fw/Dp/docs/sdd.md).
|
||||
This is an output port for synchronously requesting
|
||||
memory from a buffer manager.
|
||||
The request is served on the thread that invokes the port
|
||||
@ -121,7 +121,7 @@ FPP provides the following special ports for managing data products:
|
||||
product get port productGetOut
|
||||
```
|
||||
|
||||
1. A **product request port** of type [`Fw::DpRequest`](../../reference/api/cpp/html/_fw_dp.html).
|
||||
1. A **product request port** of type [`Fw::DpRequest`](../../reference/sdd/Fw/Dp/docs/sdd.md).
|
||||
This is an output port for asynchronously requesting memory
|
||||
from a data product manager.
|
||||
The request is served on the thread of the data product manager.
|
||||
@ -132,14 +132,14 @@ FPP provides the following special ports for managing data products:
|
||||
product request port productRequestOut
|
||||
```
|
||||
|
||||
1. A **product receive port** of type [`Fw::DpResponse`](../../reference/api/cpp/html/_fw_dp.html).
|
||||
1. A **product receive port** of type [`Fw::DpResponse`](../../reference/sdd/Fw/Dp/docs/sdd.md).
|
||||
This is an input port for receiving an empty container in response
|
||||
to an asynchronous request. Example syntax:
|
||||
```
|
||||
async product recv port productRecvIn
|
||||
```
|
||||
|
||||
1. A **product send port** of type [`Fw::DpSend`](../../reference/api/cpp/html/_fw_dp.html).
|
||||
1. A **product send port** of type [`Fw::DpSend`](../../reference/sdd/Fw/Dp/docs/sdd.md).
|
||||
This is an output port for sending a filled container
|
||||
to a data product writer. Example syntax:
|
||||
```
|
||||
@ -213,7 +213,7 @@ the following API elements:
|
||||
priorities, and record IDs.
|
||||
|
||||
1. A member class _C_ `::DpContainer`. This class is derived from
|
||||
[`Fw::DpContainer`](../../reference/api/cpp/html/_fw_dp.html) and represents a container
|
||||
[`Fw::DpContainer`](../../reference/sdd/Fw/Dp/docs/sdd.md) and represents a container
|
||||
specialized to the data products defined in _C_.
|
||||
Each instance of _C_ `::DpContainer` is a wrapper for an `Fw::Buffer` _B_,
|
||||
which points to allocated memory.
|
||||
@ -222,7 +222,7 @@ defined in _C_ into the memory pointed to by _B_.
|
||||
There is one operation _C_ `::DpContainer::serialize_` _R_
|
||||
for each record _R_ defined in _C_.
|
||||
For the serialized format of each record, see the documentation
|
||||
for [`Fw::DpContainer`](../../reference/api/cpp/html/_fw_dp.html).
|
||||
for [`Fw::DpContainer`](../../reference/sdd/Fw/Dp/docs/sdd.md).
|
||||
|
||||
1. If _C_ has a `product` `get` port, a member function `dpGet_`
|
||||
_c_ for each container _c_ defined in _C_.
|
||||
@ -452,19 +452,19 @@ data products.
|
||||
|
||||
**Requesting and sending data products:**
|
||||
See the example uses in the documentation for
|
||||
[`Svc::DpManager`](../../reference/api/cpp/html/_svc_dp_manager_component.html).
|
||||
[`Svc::DpManager`](../../reference/sdd/Svc/DpManager/docs/sdd.md).
|
||||
The component referred to as `producer` in that document
|
||||
is a data product producer.
|
||||
|
||||
**Writing data products to non-volatile storage:**
|
||||
See the example uses in the documentation for
|
||||
[`Svc::DpWriter`](../../reference/api/cpp/html/_svc_dp_writer_component.html).
|
||||
[`Svc::DpWriter`](../../reference/sdd/Svc/DpWriter/docs/sdd.md).
|
||||
The component referred to as `producer` in that document
|
||||
is a data product producer.
|
||||
|
||||
**Cataloging and downlinking data products:**
|
||||
For a preliminary implementation of the data product catalog,
|
||||
see [`Svc::DpCatalog`](../../reference/api/cpp/html/_svc_dp_catalog_component.html).
|
||||
see [`Svc::DpCatalog`](../../reference/sdd/Svc/DpCatalog/docs/sdd.md).
|
||||
|
||||
**Processing data products:**
|
||||
TODO
|
||||
|
||||
@ -113,7 +113,7 @@ This component is designed for simplicity of implementation. System memory usage
|
||||
multiplied by the size of the memory regions. This memory is allocated as a large array on the stack. Valid memory
|
||||
allocations will always be returned or a software error will be tripped.
|
||||
|
||||
[Svc.StaticMemory is described in more detail](../../reference/api/cpp/html/_svc_static_memory_component.html).
|
||||
[Svc.StaticMemory is described in more detail](../../reference/sdd/Svc/StaticMemory/docs/sdd.md).
|
||||
|
||||
**When To Use Svc.StaticMemory**
|
||||
|
||||
@ -161,7 +161,7 @@ size larger than the request for an available buffer, which it then marks as use
|
||||
|
||||
There is no restriction on the ordering of calls for allocation and deallocation. Clients may have multiple outstanding allocations and thus asynchronous usage of these allocations is supported.
|
||||
|
||||
For more details, see the [Svc.BufferManager Doxygen documentation](../../reference/api/cpp/html/_svc_buffer_manager_component.html).
|
||||
For more details, see the [Svc.BufferManager SDD](../../reference/sdd/Svc/BufferManager/docs/sdd.md).
|
||||
|
||||
**When To Use Svc.BufferManager**
|
||||
|
||||
|
||||
@ -84,7 +84,7 @@ nothing to retry.
|
||||
|
||||
Uplink handles received data, unpacks F´ data types, and routes these to the greater F´ system. In a typical formation,
|
||||
these com buffers are sent to the command dispatcher and raw buffers are sent to the file uplink. Uplink is implemented with
|
||||
the [Svc.Deframer](../../reference/api/cpp/html/_svc_deframer_component.html) component. This component may be rate group driven in which case
|
||||
the [Svc.Deframer](../../reference/sdd/Svc/Deframer/docs/sdd.md) component. This component may be rate group driven in which case
|
||||
it polls for data or it may be driven by a driver's receive output port in which case it handles the data on that
|
||||
incoming port call. Svc.Deframer implements the
|
||||
[DeframingProtocolInterface](../../reference/api/cpp/html/class_svc_1_1_deframing_protocol_interface.html).
|
||||
@ -99,7 +99,7 @@ complete. This buffer is updated with the latest data and then processed for mes
|
||||
### Downlink
|
||||
|
||||
Downlink takes in F´ data and wraps the data with bytes supporting the necessary protocol. This assembled data is then
|
||||
sent to the driver for handling. Downlink is implemented with the [Svc.Framer](../../reference/api/cpp/html/_svc_framer_component.html)
|
||||
sent to the driver for handling. Downlink is implemented with the [Svc.Framer](../../reference/sdd/Svc/Framer/docs/sdd.md)
|
||||
component, which implements the [FramingProtocolInterface](../../reference/api/cpp/html/class_svc_1_1_framing_protocol_interface.html).
|
||||
|
||||
Svc.Framer packs F´ data using a [Svc::FramingProtocol](../../reference/api/cpp/html/class_svc_1_1_framing_protocol.html), which
|
||||
|
||||
@ -16,5 +16,5 @@ ARINC 653 Channels, High-speed hardware buses between nodes, and UARTs between n
|
||||
|
||||
## Generic Hub
|
||||
|
||||
There is now a standard implementation of the hub pattern. The [GenericHub](../../reference/api/cpp/html/_svc_generic_hub_component.html) is an
|
||||
There is now a standard implementation of the hub pattern. The [GenericHub](../../reference/sdd/Svc/GenericHub/docs/sdd.md) is an
|
||||
implementation of the hub pattern that passes through F´ ports and `Fw::Buffer`s.
|
||||
@ -910,7 +910,7 @@ EXCLUDE = ./docs/documentation ./docs/events ./docs/getting-start
|
||||
./docs/overview ./docs/support \
|
||||
*CMakeFiles/* ./Autocoders ./cmake ./gtest ./Ref ./RPI ./FppTest \
|
||||
STest ./mk ./README.md ./CONTRIBUTORS.md ./CONTRIBUTING.md ./SECURITY.md \
|
||||
./googletest/
|
||||
./googletest/ ./CODE_OF_CONDUCT.md ./LICENSE.md ./docs/INSTALL.md
|
||||
|
||||
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
|
||||
# directories that are symbolic links (a Unix file system feature) are excluded
|
||||
@ -926,7 +926,7 @@ EXCLUDE_SYMLINKS = NO
|
||||
# Note that the wildcards are matched against the file with absolute path, so to
|
||||
# exclude all test directories for example use the pattern */test/*
|
||||
|
||||
EXCLUDE_PATTERNS = */test/* */GTest/* */build-*/* */cmake/* */docs/v*.* */docs/_*
|
||||
EXCLUDE_PATTERNS = */test/* */GTest/* */build-*/* */cmake/* */docs/v*.* */docs/_* */sdd.md */index.md */docs/*.md */README.md
|
||||
|
||||
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
|
||||
# (namespaces, classes, functions, etc.) that should be excluded from the
|
||||
|
||||
@ -75,3 +75,7 @@ for image in $(find "${FPRIME}/Fw" "${FPRIME}/Svc" "${FPRIME}/Drv" \( -name '*.j
|
||||
do
|
||||
cp "${image}" "${IMG_DIR}"
|
||||
done
|
||||
|
||||
|
||||
# Aggregate and index SDDs so they are rendered in the website
|
||||
python3 "${FPRIME}/docs/doxygen/sdd_processing.py"
|
||||
|
||||
@ -1,169 +1,28 @@
|
||||
\mainpage
|
||||
|
||||
This is the F´ automatically generated documentation.
|
||||
The sidebar links point to the software description documentation (SDD) for the F´ components.
|
||||
This is the F´ automatically generated C++ documentation.
|
||||
The Namespace and Classes sections link to the documentation of the C++ code.
|
||||
Software Design Documents (SDDs) for each component can be found in the Reference part of the documentation at https://fprime.jpl.nasa.gov/
|
||||
|
||||
|
||||
|
||||
\page Fw Fw Components, Ports, and Classes
|
||||
|
||||
The Fw package provides the core classes, components, and ports to support F´. These classes allow
|
||||
for the core framework operation. In addition, these include the base classes on which components
|
||||
are built. Finally, of specific interest is Fw::Types providing the cored types in the system.
|
||||
|
||||
\subpage FwBufferSerializableBufferGetBufferSend
|
||||
|
||||
\subpage FwCmdFwCmdResponseFwCmdReg
|
||||
|
||||
\subpage FwComPort
|
||||
|
||||
\subpage FwFilePacketClasses
|
||||
|
||||
\subpage FwLogLogText
|
||||
|
||||
\subpage FwObjClasses
|
||||
|
||||
\subpage FwPortClasses
|
||||
|
||||
\subpage FwPrmGetPrmSet
|
||||
|
||||
\subpage FwTimePort
|
||||
|
||||
\subpage FwTlmPort
|
||||
|
||||
\subpage FwTypeClasses
|
||||
|
||||
|
||||
\page Os Os Components Ports and Classes
|
||||
|
||||
The Os package is an operating system abstraction layer. It provides basic Os system functions to
|
||||
F´. This includes things like Mutexes, Queues, Tasks, and a File System.
|
||||
|
||||
\subpage OsQueue
|
||||
|
||||
|
||||
\page Svc Svc Components, Ports, and Classes
|
||||
|
||||
The Svc package provides standard components to support greater F´ applications. This includes
|
||||
command and data handling components used for more complete applications.
|
||||
|
||||
\subpage SvcAMPCSSequenceClass
|
||||
|
||||
\subpage SvcActiveLoggerComponent
|
||||
|
||||
\subpage SvcActiveRateGroupComponent
|
||||
|
||||
\subpage SvcActiveTextLoggerComponent
|
||||
|
||||
\subpage SvcAssertFatalAdapterComponent
|
||||
|
||||
\subpage SvcBufferAccumulatorComponent
|
||||
|
||||
\subpage SvcBufferManagerComponent
|
||||
|
||||
\subpage SvcBufferRepeaterComponent
|
||||
|
||||
\subpage SvcCmdDispatcherComponent
|
||||
|
||||
\subpage SvcCmdSequencerComponent
|
||||
|
||||
\subpage SvcCmdSequencerFormats
|
||||
|
||||
\subpage SvcCmdSplitter
|
||||
|
||||
\subpage SvcComLoggerComponent
|
||||
|
||||
\subpage SvcComQueueComponent
|
||||
|
||||
\subpage SvcComSplitterComponent
|
||||
|
||||
\subpage SvcComStubComponent
|
||||
|
||||
\subpage SvcDeframerComponent
|
||||
|
||||
\subpage SvcFatalHandlerComponent
|
||||
|
||||
\subpage SvcFatalPort
|
||||
|
||||
\subpage SvcFileDownlinkComponent
|
||||
|
||||
\subpage SvcFileManagerComponent
|
||||
|
||||
\subpage SvcFileUplinkComponent
|
||||
|
||||
\subpage SvcFramerComponent
|
||||
|
||||
\subpage SvcFramingProtocol
|
||||
|
||||
\subpage SvcGenericHubComponent
|
||||
|
||||
\subpage SvcHealthComponent
|
||||
|
||||
\subpage SvcPassiveConsoleTextLoggerComponent
|
||||
|
||||
\subpage SvcPingPort
|
||||
|
||||
\subpage SvcPolyDbComponent
|
||||
|
||||
\subpage SvcPolyPort
|
||||
|
||||
\subpage SvcPosixTime
|
||||
|
||||
\subpage SvcPrmDbComponent
|
||||
|
||||
\subpage SvcPassiveRateGroupComponent
|
||||
|
||||
\subpage SvcRateGroupDriverComponent
|
||||
|
||||
\subpage SvcSchedPort
|
||||
|
||||
\subpage SvcStaticMemoryComponent
|
||||
|
||||
\subpage SvcSystemResourcesComponent
|
||||
|
||||
\subpage SvcTlmChanComponent
|
||||
|
||||
\subpage SvcTlmPacketizerComponent
|
||||
|
||||
\subpage SvcTlmPacketizerComponentDictionary
|
||||
|
||||
\subpage SvcWatchDogPort
|
||||
|
||||
|
||||
\page Drv Drv Components and Classes
|
||||
|
||||
The Drv package provides drivers to support various hardware functions for F´. These drivers
|
||||
include a sample block driver component as well a various drivers that support Linux hardware
|
||||
functions.
|
||||
|
||||
\subpage DrvBlockDriverComponent
|
||||
|
||||
\subpage DrvByteStreamDriverModel
|
||||
|
||||
\subpage DrvIp
|
||||
|
||||
\subpage DrvStreamCrossover
|
||||
|
||||
\subpage DrvTcpClient
|
||||
|
||||
\subpage DrvTcpServer
|
||||
|
||||
\subpage DrvUdp
|
||||
|
||||
|
||||
|
||||
\page Utils Utils Classes
|
||||
|
||||
The Utils package provides classes for general applications in F´ projects. These classes are for
|
||||
a variety of purposes.
|
||||
|
||||
\subpage UtilsHashClass
|
||||
|
||||
\subpage UtilsLockGuardClass
|
||||
|
||||
\subpage UtilsRateLimiterClass
|
||||
|
||||
\subpage UtilsTokenBucketClass
|
||||
|
||||
\subpage UtilsTypesLibrary
|
||||
|
||||
26
docs/doxygen/sdd_processing.py
Normal file
26
docs/doxygen/sdd_processing.py
Normal file
@ -0,0 +1,26 @@
|
||||
import os
|
||||
import shutil
|
||||
from pathlib import Path
|
||||
|
||||
SDD_DIR = "./docs/documentation/reference/sdd"
|
||||
os.makedirs(SDD_DIR, exist_ok=True)
|
||||
|
||||
# Append the new file path to index.md
|
||||
with open(Path(SDD_DIR) / 'index.md', 'a') as index_file:
|
||||
|
||||
# Find all sdd.md files and process them
|
||||
for file in list(Path('.').rglob('*/docs/sdd.md')):
|
||||
# Get module name and parent directory name
|
||||
second_parent = file.parents[1].name
|
||||
third_parent = file.parents[2].name
|
||||
|
||||
if third_parent in ["", ".", "fprime", "Ref"] or third_parent.startswith("cookiecutter-"):
|
||||
continue
|
||||
|
||||
source_dir = file.parents[1] / 'docs'
|
||||
dest_dir = Path(SDD_DIR) / third_parent / second_parent / 'docs'
|
||||
|
||||
os.makedirs(dest_dir, exist_ok=True)
|
||||
shutil.copytree(source_dir, dest_dir, dirs_exist_ok=True)
|
||||
|
||||
index_file.write(f"- [{third_parent}::{second_parent}](./{third_parent}/{second_parent}/docs/sdd.md)\n")
|
||||
@ -229,7 +229,11 @@ markdown_extensions:
|
||||
line_spans: __span
|
||||
pygments_lang_class: true
|
||||
- pymdownx.inlinehilite
|
||||
- pymdownx.superfences
|
||||
- pymdownx.superfences:
|
||||
custom_fences:
|
||||
- name: mermaid
|
||||
class: mermaid
|
||||
format: !!python/name:pymdownx.superfences.fence_code_format
|
||||
# adds support for admonitions/call-outs
|
||||
- admonition
|
||||
- pymdownx.details
|
||||
@ -321,6 +325,7 @@ nav:
|
||||
- Reference:
|
||||
- documentation/reference/index.md
|
||||
- 'C++ Documentation': 'documentation/reference/api/cpp/html/index.html'
|
||||
- 'Software Design Documents': 'documentation/reference/sdd/index.md'
|
||||
- 'FPP Language Specification': https://nasa.github.io/fpp/fpp-spec.html
|
||||
- 'CMake User API': 'documentation/user-manual/cmake/cmake-api.md'
|
||||
- 'GDS Developers Guide': documentation/reference/gds-cli-dev.md
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user