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": "^\\.\\./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$
|
^\Qdocs/Tutorials/FullSystemTutorial/Tutorial.md\E$
|
||||||
^\QSvc/FileUplink/test/ut/dest.bin\E$
|
^\QSvc/FileUplink/test/ut/dest.bin\E$
|
||||||
ignore$
|
ignore$
|
||||||
|
mlc-config.json
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page DrvBlockDriverComponent Drv::BlockDriver Component
|
|
||||||
# Drv::BlockDriver Component
|
# Drv::BlockDriver Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page DrvByteStreamDriverModel Drv::ByteStreamDriverModel Byte Stream Driver Model
|
|
||||||
# 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
|
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
|
# Drv::Ip IPv4 Socket Implementations
|
||||||
|
|
||||||
This package contains utility classes to help interact with standard IPv4 (Berkeley) sockets. These classes implement the
|
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
|
# Drv::StreamCrossover Stream Crossover Component
|
||||||
|
|
||||||
The Stream Crossover component allows a connection of byte stream driver model ports of type ByteStreamRecv and
|
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
|
# 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
|
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
|
# 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
|
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
|
# 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
|
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
|
# Fw::Buffer Serializable / Fw::BufferGet Port / Fw::BufferSend Port
|
||||||
|
|
||||||
## 1 Introduction
|
## 1 Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page FwCmdFwCmdResponseFwCmdReg Fw::Cmd / Fw::CmdResponse / Fw::CmdReg Ports
|
|
||||||
# Fw::Cmd / Fw::CmdResponse / Fw::CmdReg Ports
|
# Fw::Cmd / Fw::CmdResponse / Fw::CmdReg Ports
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page FwComPort Fw::Com Port
|
|
||||||
# Fw::Com Port
|
# Fw::Com Port
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,12 +1,11 @@
|
|||||||
\page FwDp Framework Support for Data Products
|
# Fw::Dp Framework Support for Data Products
|
||||||
# Framework Support for Data Products
|
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|
||||||
This build module defines FPP ports and C++ classes that support
|
This build module defines FPP ports and C++ classes that support
|
||||||
the collection and storage of data products.
|
the collection and storage of data products.
|
||||||
For more information on data products and records, see the
|
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
|
## 2. Configuration
|
||||||
|
|
||||||
@ -82,7 +81,7 @@ The header hash has the following format.
|
|||||||
|
|
||||||
|Field Name|Serialized Size|Description|
|
|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
|
#### 5.1.3. Data
|
||||||
|
|
||||||
@ -119,7 +118,7 @@ The data hash has the following format.
|
|||||||
|
|
||||||
|Field Name|Serialized Size|Description|
|
|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
|
### 5.2. Further Information
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page FwFilePacketClasses Fw::FilePacket Classes
|
|
||||||
# Fw::FilePacket Classes
|
# Fw::FilePacket Classes
|
||||||
|
|
||||||
## 1 Introduction
|
## 1 Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page FwLogLogText Fw::Log, Fw::LogText Ports
|
|
||||||
# Fw::Log / Fw::LogText Ports
|
# Fw::Log / Fw::LogText Ports
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page FwObjClasses Fw::Obj Classes
|
|
||||||
# Fw::Obj Classes
|
# Fw::Obj Classes
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page FwPortClasses Fw::Port Classes
|
|
||||||
# Fw::Port Classes
|
# Fw::Port Classes
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page FwPrmGetPrmSet Fw::PrmGet / PrmSet Ports
|
|
||||||
# Fw::PrmGet / PrmSet Ports
|
# Fw::PrmGet / PrmSet Ports
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page FwTimePort Fw::Time Port
|
|
||||||
# Fw::Time Port
|
# Fw::Time Port
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page FwTlmPort Fw::Tlm Port
|
|
||||||
# Fw::Tlm Port
|
# Fw::Tlm Port
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page FwTypeClasses Fw::Type Classes and Types
|
|
||||||
# Fw::Type Classes and Types
|
# Fw::Type Classes and Types
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page RefPingReceiverComponent Ref::PingReceiver Component
|
|
||||||
# Ref::PingReceiver Component
|
# Ref::PingReceiver Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page RefRecvBuffAppComponent Ref::RecvBuffApp Component
|
|
||||||
# Ref::RecvBuffApp Component
|
# Ref::RecvBuffApp Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page RefSendBuffAppComponent Ref::SendBuffApp Component
|
|
||||||
# Ref::SendBuffApp Component
|
# Ref::SendBuffApp Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page RefSignalGenComponent Ref::SignalGen Component
|
|
||||||
# Ref::SignalGen Component
|
# Ref::SignalGen Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcActiveLoggerComponent Svc::ActiveLogger Component
|
|
||||||
# Svc::ActiveLogger Component
|
# Svc::ActiveLogger Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcActiveRateGroupComponent Svc::ActiveRateGroup Component
|
|
||||||
# Svc::ActiveRateGroup Component
|
# Svc::ActiveRateGroup Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcActiveTextLoggerComponent Svc::ActiveTextLogger Component
|
|
||||||
# Svc::ActiveTextLogger Component
|
# Svc::ActiveTextLogger Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcAssertFatalAdapterComponent Svc::AssertFatalAdapter Component
|
|
||||||
# Svc::AssertFatalAdapter Component
|
# Svc::AssertFatalAdapter Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcBufferAccumulatorComponent Svc::BufferAccumulator Component
|
|
||||||
# BufferAccumulator Component Dictionary
|
# BufferAccumulator Component Dictionary
|
||||||
|
|
||||||
|
|
||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcBufferManagerComponent Svc::BufferManager Component
|
|
||||||
# Svc::BufferManager
|
# Svc::BufferManager
|
||||||
|
|
||||||
## 1 Introduction
|
## 1 Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcBufferRepeaterComponent Svc::BufferRepeater Component
|
|
||||||
# Svc::BufferRepeater: Buffer Repeater (Passive Component)
|
# Svc::BufferRepeater: Buffer Repeater (Passive Component)
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcCmdDispatcherComponent Svc::CmdDispatcher Component
|
|
||||||
# Svc::CmdDispatcher Component
|
# Svc::CmdDispatcher Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcCmdSequencerComponent Svc::CmdSequencer Component
|
|
||||||
# Svc::CmdSequencer Component
|
# Svc::CmdSequencer Component
|
||||||
|
|
||||||
## 1 Introduction
|
## 1 Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcCmdSplitter Svc::CmdSplitter Component
|
|
||||||
# Svc::CmdSplitter Component
|
# Svc::CmdSplitter Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcComQueueComponent Svc::ComQueue Component
|
|
||||||
# Svc::ComQueue (Active Component)
|
# Svc::ComQueue (Active Component)
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcComStubComponent Svc::ComStub Component
|
|
||||||
# Svc::ComStub (Passive Component)
|
# Svc::ComStub (Passive Component)
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcDeframerComponent Svc::Deframer Component
|
|
||||||
# Svc::Deframer (Passive Component)
|
# Svc::Deframer (Passive Component)
|
||||||
|
|
||||||
## 1. Introduction
|
## 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.
|
The diagram below shows the `Deframer` component.
|
||||||
|
|
||||||
<div>
|

|
||||||
<img src="img/Deframer.png" width=700/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
### 4.2. Ports
|
### 4.2. Ports
|
||||||
|
|
||||||
@ -349,24 +346,18 @@ optional.
|
|||||||
|
|
||||||
**Topology 1a: Buffers containing framed data (active byte stream driver):**
|
**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):**
|
**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
|
Revise the port number of `rateGroup.RateGroupMemberOut` as
|
||||||
appropriate for your application.
|
appropriate for your application.
|
||||||
|
|
||||||
**Topology 2: Command packets and command responses:**
|
**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
|
Revise the port numbers of `cmdDisp.seqCmdBuff` and
|
||||||
`cmdDisp.compCmdStat` as appropriate for your application.
|
`cmdDisp.compCmdStat` as appropriate for your application.
|
||||||
@ -375,9 +366,7 @@ assign these numbers.
|
|||||||
|
|
||||||
**Topology 3: Buffers containing packet data:**
|
**Topology 3: Buffers containing packet data:**
|
||||||
|
|
||||||
<div>
|

|
||||||
<img src="img/top/deframer-file.png" width=1000/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
### 6.2. Sequence Diagrams
|
### 6.2. Sequence Diagrams
|
||||||
|
|
||||||
@ -507,17 +496,13 @@ instance `hub` of type `Svc::GenericHub`.
|
|||||||
|
|
||||||
**Topology 2: Command packets**
|
**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.
|
Revise the port number of `hub.portIn` as appropriate for your application.
|
||||||
|
|
||||||
**Topology 3: Buffers containing packet data**
|
**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.
|
Revise the port number of `hub.buffersIn` as appropriate for your application.
|
||||||
When `hub` receives a buffer on `buffersIn`, it copies the data across
|
When `hub` receives a buffer on `buffersIn`, it copies the data across
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcDpCatalogComponent Svc::DpCatalog Component
|
|
||||||
# Svc::DpCatalog Component
|
# Svc::DpCatalog Component
|
||||||
|
|
||||||
## 1 Introduction
|
## 1 Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcDpManagerComponent Svc::DpManager Component
|
|
||||||
# Svc::DpManager (Active Component)
|
# Svc::DpManager (Active Component)
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
@ -22,7 +21,7 @@ It does the following:
|
|||||||
client components.
|
client components.
|
||||||
Upon receiving a buffer, send the buffer out on a port.
|
Upon receiving a buffer, send the buffer out on a port.
|
||||||
Another component such as
|
Another component such as
|
||||||
[`Svc::BufferAccumulator`](../../BufferAccumulator/docs/BufferAccumulator.md)
|
[`Svc::BufferAccumulator`](../../BufferAccumulator/docs/sdd.md)
|
||||||
or [`Svc::DpWriter`](../../DpWriter/docs/sdd.md)
|
or [`Svc::DpWriter`](../../DpWriter/docs/sdd.md)
|
||||||
will process the buffer and then send it back to the buffer manager
|
will process the buffer and then send it back to the buffer manager
|
||||||
for deallocation.
|
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.
|
The diagram below shows the `DpManager` component.
|
||||||
|
|
||||||
<div>
|

|
||||||
<img src="img/DpManager.png" width=700/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
### 3.2. Ports
|
### 3.2. Ports
|
||||||
|
|
||||||
@ -197,21 +194,16 @@ connections.
|
|||||||
|
|
||||||
#### 5.1.1. Synchronously Getting Data Product Buffers
|
#### 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
|
#### 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
|
#### 5.1.3. Sending Data Products
|
||||||
|
|
||||||
<div>
|

|
||||||
<img src="img/top/product-send.png" width=1000/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
### 5.2. Sequence Diagrams
|
### 5.2. Sequence Diagrams
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcDpWriterComponent Svc::DpWriter Component
|
|
||||||
# Svc::DpWriter (Active Component)
|
# Svc::DpWriter (Active Component)
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
@ -12,7 +11,7 @@ data products.
|
|||||||
They typically pass through an instance of
|
They typically pass through an instance of
|
||||||
[`Svc::DpManager`](../../DpManager/docs/sdd.md), and possibly through
|
[`Svc::DpManager`](../../DpManager/docs/sdd.md), and possibly through
|
||||||
an instance of
|
an instance of
|
||||||
[`Svc::BufferAccumulator`](../../BufferAccumulator/docs/BufferAccumulator.md),
|
[`Svc::BufferAccumulator`](../../BufferAccumulator/docs/sdd.md),
|
||||||
before reaching `DpWriter`.
|
before reaching `DpWriter`.
|
||||||
|
|
||||||
1. For each buffer _B_ received in step 1:
|
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.
|
The diagram below shows the `DpWriter` component.
|
||||||
|
|
||||||
<div>
|

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

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

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

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

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

|
||||||
<img src="img/top/framed.png" width=1000/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
`framer` allocates frame buffers from `buffMgr`.
|
`framer` allocates frame buffers from `buffMgr`.
|
||||||
It sends buffers containing frames to `comm`.
|
It sends buffers containing frames to `comm`.
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcFramingProtocol Svc::FramingProtocol Protocol
|
|
||||||
# Svc::FramingProtocol Library
|
# Svc::FramingProtocol Library
|
||||||
|
|
||||||
The `FramingProtocol` library defines the interfaces to the
|
The `FramingProtocol` library defines the interfaces to the
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcGenericHubComponent Svc::GenericHub Component
|
|
||||||
# Svc::GenericHub Generic Hub 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).
|
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
|
# Svc::Health Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcPassiveConsoleTextLoggerComponent Svc::PassiveConsoleTextLogger Component
|
|
||||||
# Svc::PassiveConsoleTextLogger Component
|
# Svc::PassiveConsoleTextLogger Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcPassiveRateGroupComponent Svc::PassiveRateGroup Component
|
|
||||||
# RateGroupDriver Component
|
# RateGroupDriver Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcPingPort Svc::Ping Port
|
|
||||||
# Svc::Ping Port
|
# Svc::Ping Port
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcPolyDbComponent Svc::PolyDb Component
|
|
||||||
# Svc::PolyDb Component
|
# Svc::PolyDb Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcPolyPort Svc::Poly Port
|
|
||||||
# Svc::Poly Port
|
# Svc::Poly Port
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcPosixTime Svc::PosixTime Component
|
|
||||||
# Svc::PosixTime Component
|
# Svc::PosixTime Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcPrmDbComponent Svc::PrmDb Component
|
|
||||||
# Svc::PrmDb Component
|
# Svc::PrmDb Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcRateGroupDriverComponent Svc::RateGroupDriver Component
|
|
||||||
# Svc::RateGroupDriver Component
|
# Svc::RateGroupDriver Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcSchedPort Svc::Sched Port
|
|
||||||
# Svc::Sched Port
|
# Svc::Sched Port
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcStaticMemoryComponent Svc::StaticMemory Component
|
|
||||||
# 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
|
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
|
# SystemResources Component
|
||||||
|
|
||||||
The system resources component downlinks information about the running F´ system. This information includes:
|
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
|
# Svc::TlmChan Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcTlmPacketizerComponent Svc::TlmPacketizer Component
|
|
||||||
# Svc::TlmPacketizer Component
|
# Svc::TlmPacketizer Component
|
||||||
|
|
||||||
## 1. Introduction
|
## 1. Introduction
|
||||||
|
|||||||
@ -1,4 +1,3 @@
|
|||||||
\page SvcWatchDogPort Svc::WatchDog Port
|
|
||||||
# Svc::WatchDog Port
|
# Svc::WatchDog Port
|
||||||
|
|
||||||
## 1. Introduction
|
## 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**.
|
1. A **data product manager**.
|
||||||
This component allocates memory for empty containers.
|
This component allocates memory for empty containers.
|
||||||
It also forwards filled containers to the data product writer.
|
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**.
|
1. A **data product writer**.
|
||||||
This component receives filled containers from data product
|
This component receives filled containers from data product
|
||||||
producers. It writes the contents of the containers to non-volatile
|
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**.
|
1. A **data product catalog**.
|
||||||
This component maintains a database of available data
|
This component maintains a database of available data
|
||||||
products. By command, it downlinks and deletes data products.
|
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**.
|
1. A **data product processor**.
|
||||||
This component is not yet developed.
|
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:
|
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
|
This is an output port for synchronously requesting
|
||||||
memory from a buffer manager.
|
memory from a buffer manager.
|
||||||
The request is served on the thread that invokes the port
|
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
|
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
|
This is an output port for asynchronously requesting memory
|
||||||
from a data product manager.
|
from a data product manager.
|
||||||
The request is served on the thread of the 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
|
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
|
This is an input port for receiving an empty container in response
|
||||||
to an asynchronous request. Example syntax:
|
to an asynchronous request. Example syntax:
|
||||||
```
|
```
|
||||||
async product recv port productRecvIn
|
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
|
This is an output port for sending a filled container
|
||||||
to a data product writer. Example syntax:
|
to a data product writer. Example syntax:
|
||||||
```
|
```
|
||||||
@ -213,7 +213,7 @@ the following API elements:
|
|||||||
priorities, and record IDs.
|
priorities, and record IDs.
|
||||||
|
|
||||||
1. A member class _C_ `::DpContainer`. This class is derived from
|
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_.
|
specialized to the data products defined in _C_.
|
||||||
Each instance of _C_ `::DpContainer` is a wrapper for an `Fw::Buffer` _B_,
|
Each instance of _C_ `::DpContainer` is a wrapper for an `Fw::Buffer` _B_,
|
||||||
which points to allocated memory.
|
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_
|
There is one operation _C_ `::DpContainer::serialize_` _R_
|
||||||
for each record _R_ defined in _C_.
|
for each record _R_ defined in _C_.
|
||||||
For the serialized format of each record, see the documentation
|
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_`
|
1. If _C_ has a `product` `get` port, a member function `dpGet_`
|
||||||
_c_ for each container _c_ defined in _C_.
|
_c_ for each container _c_ defined in _C_.
|
||||||
@ -452,19 +452,19 @@ data products.
|
|||||||
|
|
||||||
**Requesting and sending data products:**
|
**Requesting and sending data products:**
|
||||||
See the example uses in the documentation for
|
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
|
The component referred to as `producer` in that document
|
||||||
is a data product producer.
|
is a data product producer.
|
||||||
|
|
||||||
**Writing data products to non-volatile storage:**
|
**Writing data products to non-volatile storage:**
|
||||||
See the example uses in the documentation for
|
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
|
The component referred to as `producer` in that document
|
||||||
is a data product producer.
|
is a data product producer.
|
||||||
|
|
||||||
**Cataloging and downlinking data products:**
|
**Cataloging and downlinking data products:**
|
||||||
For a preliminary implementation of the data product catalog,
|
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:**
|
**Processing data products:**
|
||||||
TODO
|
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
|
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.
|
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**
|
**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.
|
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**
|
**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,
|
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
|
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
|
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
|
incoming port call. Svc.Deframer implements the
|
||||||
[DeframingProtocolInterface](../../reference/api/cpp/html/class_svc_1_1_deframing_protocol_interface.html).
|
[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
|
||||||
|
|
||||||
Downlink takes in F´ data and wraps the data with bytes supporting the necessary protocol. This assembled data is then
|
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).
|
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
|
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
|
## 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.
|
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 \
|
./docs/overview ./docs/support \
|
||||||
*CMakeFiles/* ./Autocoders ./cmake ./gtest ./Ref ./RPI ./FppTest \
|
*CMakeFiles/* ./Autocoders ./cmake ./gtest ./Ref ./RPI ./FppTest \
|
||||||
STest ./mk ./README.md ./CONTRIBUTORS.md ./CONTRIBUTING.md ./SECURITY.md \
|
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
|
# 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
|
# 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
|
# 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 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
|
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
|
||||||
# (namespaces, classes, functions, etc.) that should be excluded from the
|
# (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
|
do
|
||||||
cp "${image}" "${IMG_DIR}"
|
cp "${image}" "${IMG_DIR}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
# Aggregate and index SDDs so they are rendered in the website
|
||||||
|
python3 "${FPRIME}/docs/doxygen/sdd_processing.py"
|
||||||
|
|||||||
@ -1,169 +1,28 @@
|
|||||||
\mainpage
|
\mainpage
|
||||||
|
|
||||||
This is the F´ automatically generated documentation.
|
This is the F´ automatically generated C++ documentation.
|
||||||
The sidebar links point to the software description documentation (SDD) for the F´ components.
|
|
||||||
The Namespace and Classes sections link to the documentation of the C++ code.
|
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
|
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
|
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.
|
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
|
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.
|
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
|
The Svc package provides standard components to support greater F´ applications. This includes
|
||||||
command and data handling components used for more complete applications.
|
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
|
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
|
include a sample block driver component as well a various drivers that support Linux hardware
|
||||||
functions.
|
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
|
The Utils package provides classes for general applications in F´ projects. These classes are for
|
||||||
a variety of purposes.
|
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
|
line_spans: __span
|
||||||
pygments_lang_class: true
|
pygments_lang_class: true
|
||||||
- pymdownx.inlinehilite
|
- 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
|
# adds support for admonitions/call-outs
|
||||||
- admonition
|
- admonition
|
||||||
- pymdownx.details
|
- pymdownx.details
|
||||||
@ -321,6 +325,7 @@ nav:
|
|||||||
- Reference:
|
- Reference:
|
||||||
- documentation/reference/index.md
|
- documentation/reference/index.md
|
||||||
- 'C++ Documentation': 'documentation/reference/api/cpp/html/index.html'
|
- '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
|
- 'FPP Language Specification': https://nasa.github.io/fpp/fpp-spec.html
|
||||||
- 'CMake User API': 'documentation/user-manual/cmake/cmake-api.md'
|
- 'CMake User API': 'documentation/user-manual/cmake/cmake-api.md'
|
||||||
- 'GDS Developers Guide': documentation/reference/gds-cli-dev.md
|
- 'GDS Developers Guide': documentation/reference/gds-cli-dev.md
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user