From 334c52598461e1c1805d81ab453e22e81701bb41 Mon Sep 17 00:00:00 2001
From: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>
Date: Wed, 15 Jan 2025 14:05:46 -0800
Subject: [PATCH] Add SDD aggregation into the core website (#3139)
---
.../actions/markdown-check/mlc-config.json | 6 +
.github/actions/spelling/excludes.txt | 1 +
Drv/BlockDriver/docs/sdd.md | 1 -
Drv/ByteStreamDriverModel/docs/sdd.md | 1 -
Drv/Ip/docs/sdd.md | 1 -
Drv/StreamCrossover/docs/sdd.md | 1 -
Drv/TcpClient/docs/sdd.md | 1 -
Drv/TcpServer/docs/sdd.md | 1 -
Drv/Udp/docs/sdd.md | 1 -
Fw/Buffer/docs/sdd.md | 1 -
Fw/Cmd/docs/sdd.md | 1 -
Fw/Com/docs/sdd.md | 1 -
Fw/Dp/docs/sdd.md | 9 +-
Fw/FilePacket/docs/sdd.md | 1 -
Fw/Log/docs/sdd.md | 1 -
Fw/Obj/docs/sdd.md | 1 -
Fw/Port/docs/sdd.md | 1 -
Fw/Prm/docs/sdd.md | 1 -
Fw/Time/docs/sdd.md | 1 -
Fw/Tlm/docs/sdd.md | 1 -
Fw/Types/docs/sdd.md | 1 -
Ref/PingReceiver/docs/sdd.md | 1 -
Ref/RecvBuffApp/docs/sdd.md | 1 -
Ref/SendBuffApp/docs/sdd.md | 1 -
Ref/SignalGen/docs/sdd.md | 1 -
Svc/ActiveLogger/docs/sdd.md | 1 -
Svc/ActiveRateGroup/docs/sdd.md | 1 -
Svc/ActiveTextLogger/docs/sdd.md | 1 -
Svc/AssertFatalAdapter/docs/sdd.md | 1 -
.../docs/{BufferAccumulator.md => sdd.md} | 1 -
Svc/BufferManager/docs/sdd.md | 1 -
Svc/BufferRepeater/docs/sdd.md | 1 -
Svc/CmdDispatcher/docs/sdd.md | 1 -
Svc/CmdSequencer/docs/sdd.md | 1 -
Svc/CmdSplitter/docs/sdd.md | 1 -
Svc/ComQueue/docs/sdd.md | 1 -
Svc/ComStub/docs/sdd.md | 1 -
Svc/Deframer/docs/sdd.md | 29 +---
Svc/DpCatalog/docs/sdd.md | 1 -
Svc/DpManager/docs/sdd.md | 20 +--
Svc/DpWriter/docs/sdd.md | 11 +-
Svc/Fatal/docs/sdd.md | 1 -
Svc/FatalHandler/docs/sdd.md | 1 -
Svc/FileDownlink/docs/sdd.md | 1 -
Svc/FileManager/docs/sdd.md | 1 -
Svc/FileUplink/docs/sdd.md | 1 -
Svc/Framer/docs/sdd.md | 17 +-
Svc/FramingProtocol/docs/sdd.md | 1 -
Svc/GenericHub/docs/sdd.md | 1 -
Svc/Health/docs/sdd.md | 1 -
Svc/PassiveConsoleTextLogger/docs/sdd.md | 1 -
Svc/PassiveRateGroup/docs/sdd.md | 1 -
Svc/Ping/docs/sdd.md | 1 -
Svc/PolyDb/docs/sdd.md | 1 -
Svc/PolyIf/docs/sdd.md | 1 -
Svc/PosixTime/docs/sdd.md | 1 -
Svc/PrmDb/docs/sdd.md | 1 -
Svc/RateGroupDriver/docs/sdd.md | 1 -
Svc/Sched/docs/sdd.md | 1 -
Svc/StaticMemory/docs/sdd.md | 1 -
Svc/SystemResources/docs/sdd.md | 1 -
Svc/TlmChan/docs/sdd.md | 1 -
Svc/TlmPacketizer/docs/sdd.md | 1 -
Svc/WatchDog/docs/sdd.md | 1 -
docs/documentation/reference/sdd/index.md | 5 +
.../user-manual/design/data-products.md | 24 +--
.../user-manual/framework/dynamic-memory.md | 4 +-
.../user-manual/framework/ground-interface.md | 4 +-
.../user-manual/framework/hub-pattern.md | 2 +-
docs/doxygen/Doxyfile | 4 +-
docs/doxygen/generate_docs.bash | 4 +
docs/doxygen/mainpage.md | 145 +-----------------
docs/doxygen/sdd_processing.py | 26 ++++
docs/mkdocs.yml | 7 +-
74 files changed, 93 insertions(+), 282 deletions(-)
rename Svc/BufferAccumulator/docs/{BufferAccumulator.md => sdd.md} (96%)
create mode 100644 docs/documentation/reference/sdd/index.md
create mode 100644 docs/doxygen/sdd_processing.py
diff --git a/.github/actions/markdown-check/mlc-config.json b/.github/actions/markdown-check/mlc-config.json
index 960c81c556..fd5de5cca9 100644
--- a/.github/actions/markdown-check/mlc-config.json
+++ b/.github/actions/markdown-check/mlc-config.json
@@ -11,6 +11,12 @@
},
{
"pattern": "^\\.\\./tree/HEAD/"
+ },
+ {
+ "pattern": ".*\\.[chf]pp"
+ },
+ {
+ "pattern": "../../../.."
}
]
}
diff --git a/.github/actions/spelling/excludes.txt b/.github/actions/spelling/excludes.txt
index 413de33a32..47f4651ed4 100644
--- a/.github/actions/spelling/excludes.txt
+++ b/.github/actions/spelling/excludes.txt
@@ -100,3 +100,4 @@
^\Qdocs/Tutorials/FullSystemTutorial/Tutorial.md\E$
^\QSvc/FileUplink/test/ut/dest.bin\E$
ignore$
+mlc-config.json
diff --git a/Drv/BlockDriver/docs/sdd.md b/Drv/BlockDriver/docs/sdd.md
index 8190eefbbd..982803b0d4 100644
--- a/Drv/BlockDriver/docs/sdd.md
+++ b/Drv/BlockDriver/docs/sdd.md
@@ -1,4 +1,3 @@
-\page DrvBlockDriverComponent Drv::BlockDriver Component
# Drv::BlockDriver Component
## 1. Introduction
diff --git a/Drv/ByteStreamDriverModel/docs/sdd.md b/Drv/ByteStreamDriverModel/docs/sdd.md
index 7357cd2754..b06f371ec4 100644
--- a/Drv/ByteStreamDriverModel/docs/sdd.md
+++ b/Drv/ByteStreamDriverModel/docs/sdd.md
@@ -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
diff --git a/Drv/Ip/docs/sdd.md b/Drv/Ip/docs/sdd.md
index ca2be62588..51851f9402 100644
--- a/Drv/Ip/docs/sdd.md
+++ b/Drv/Ip/docs/sdd.md
@@ -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
diff --git a/Drv/StreamCrossover/docs/sdd.md b/Drv/StreamCrossover/docs/sdd.md
index 7333740342..f97c656785 100644
--- a/Drv/StreamCrossover/docs/sdd.md
+++ b/Drv/StreamCrossover/docs/sdd.md
@@ -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
diff --git a/Drv/TcpClient/docs/sdd.md b/Drv/TcpClient/docs/sdd.md
index 7fe2dd6739..37e52ca78e 100644
--- a/Drv/TcpClient/docs/sdd.md
+++ b/Drv/TcpClient/docs/sdd.md
@@ -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
diff --git a/Drv/TcpServer/docs/sdd.md b/Drv/TcpServer/docs/sdd.md
index 84f244b431..1834d52faf 100644
--- a/Drv/TcpServer/docs/sdd.md
+++ b/Drv/TcpServer/docs/sdd.md
@@ -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
diff --git a/Drv/Udp/docs/sdd.md b/Drv/Udp/docs/sdd.md
index 94c5396b61..018809c770 100644
--- a/Drv/Udp/docs/sdd.md
+++ b/Drv/Udp/docs/sdd.md
@@ -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
diff --git a/Fw/Buffer/docs/sdd.md b/Fw/Buffer/docs/sdd.md
index dddc1394a6..270c43b186 100644
--- a/Fw/Buffer/docs/sdd.md
+++ b/Fw/Buffer/docs/sdd.md
@@ -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
diff --git a/Fw/Cmd/docs/sdd.md b/Fw/Cmd/docs/sdd.md
index 96677cead2..4cdc94ecaa 100644
--- a/Fw/Cmd/docs/sdd.md
+++ b/Fw/Cmd/docs/sdd.md
@@ -1,4 +1,3 @@
-\page FwCmdFwCmdResponseFwCmdReg Fw::Cmd / Fw::CmdResponse / Fw::CmdReg Ports
# Fw::Cmd / Fw::CmdResponse / Fw::CmdReg Ports
## 1. Introduction
diff --git a/Fw/Com/docs/sdd.md b/Fw/Com/docs/sdd.md
index ab8eda6ce3..f305500db5 100644
--- a/Fw/Com/docs/sdd.md
+++ b/Fw/Com/docs/sdd.md
@@ -1,4 +1,3 @@
-\page FwComPort Fw::Com Port
# Fw::Com Port
## 1. Introduction
diff --git a/Fw/Dp/docs/sdd.md b/Fw/Dp/docs/sdd.md
index 2c9d864eac..a09aee4045 100644
--- a/Fw/Dp/docs/sdd.md
+++ b/Fw/Dp/docs/sdd.md
@@ -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
diff --git a/Fw/FilePacket/docs/sdd.md b/Fw/FilePacket/docs/sdd.md
index 544333e9f8..4477a02927 100644
--- a/Fw/FilePacket/docs/sdd.md
+++ b/Fw/FilePacket/docs/sdd.md
@@ -1,4 +1,3 @@
-\page FwFilePacketClasses Fw::FilePacket Classes
# Fw::FilePacket Classes
## 1 Introduction
diff --git a/Fw/Log/docs/sdd.md b/Fw/Log/docs/sdd.md
index 9b577e41d9..d9b76acdf6 100644
--- a/Fw/Log/docs/sdd.md
+++ b/Fw/Log/docs/sdd.md
@@ -1,4 +1,3 @@
-\page FwLogLogText Fw::Log, Fw::LogText Ports
# Fw::Log / Fw::LogText Ports
## 1. Introduction
diff --git a/Fw/Obj/docs/sdd.md b/Fw/Obj/docs/sdd.md
index e2c029eafe..15021d1587 100644
--- a/Fw/Obj/docs/sdd.md
+++ b/Fw/Obj/docs/sdd.md
@@ -1,4 +1,3 @@
-\page FwObjClasses Fw::Obj Classes
# Fw::Obj Classes
## 1. Introduction
diff --git a/Fw/Port/docs/sdd.md b/Fw/Port/docs/sdd.md
index 73d72f8606..2b92ebd0e9 100644
--- a/Fw/Port/docs/sdd.md
+++ b/Fw/Port/docs/sdd.md
@@ -1,4 +1,3 @@
-\page FwPortClasses Fw::Port Classes
# Fw::Port Classes
## 1. Introduction
diff --git a/Fw/Prm/docs/sdd.md b/Fw/Prm/docs/sdd.md
index 9924d3920f..094e314e1f 100644
--- a/Fw/Prm/docs/sdd.md
+++ b/Fw/Prm/docs/sdd.md
@@ -1,4 +1,3 @@
-\page FwPrmGetPrmSet Fw::PrmGet / PrmSet Ports
# Fw::PrmGet / PrmSet Ports
## 1. Introduction
diff --git a/Fw/Time/docs/sdd.md b/Fw/Time/docs/sdd.md
index 28f0cbffc8..8b2fd0ad40 100644
--- a/Fw/Time/docs/sdd.md
+++ b/Fw/Time/docs/sdd.md
@@ -1,4 +1,3 @@
-\page FwTimePort Fw::Time Port
# Fw::Time Port
## 1. Introduction
diff --git a/Fw/Tlm/docs/sdd.md b/Fw/Tlm/docs/sdd.md
index b7e890a3f9..649116c0f1 100644
--- a/Fw/Tlm/docs/sdd.md
+++ b/Fw/Tlm/docs/sdd.md
@@ -1,4 +1,3 @@
-\page FwTlmPort Fw::Tlm Port
# Fw::Tlm Port
## 1. Introduction
diff --git a/Fw/Types/docs/sdd.md b/Fw/Types/docs/sdd.md
index 2a98327dfb..bb4e156dfa 100644
--- a/Fw/Types/docs/sdd.md
+++ b/Fw/Types/docs/sdd.md
@@ -1,4 +1,3 @@
-\page FwTypeClasses Fw::Type Classes and Types
# Fw::Type Classes and Types
## 1. Introduction
diff --git a/Ref/PingReceiver/docs/sdd.md b/Ref/PingReceiver/docs/sdd.md
index 3f0261c19d..84e86480dd 100644
--- a/Ref/PingReceiver/docs/sdd.md
+++ b/Ref/PingReceiver/docs/sdd.md
@@ -1,4 +1,3 @@
-\page RefPingReceiverComponent Ref::PingReceiver Component
# Ref::PingReceiver Component
## 1. Introduction
diff --git a/Ref/RecvBuffApp/docs/sdd.md b/Ref/RecvBuffApp/docs/sdd.md
index a337d9c25b..fd201168f8 100644
--- a/Ref/RecvBuffApp/docs/sdd.md
+++ b/Ref/RecvBuffApp/docs/sdd.md
@@ -1,4 +1,3 @@
-\page RefRecvBuffAppComponent Ref::RecvBuffApp Component
# Ref::RecvBuffApp Component
## 1. Introduction
diff --git a/Ref/SendBuffApp/docs/sdd.md b/Ref/SendBuffApp/docs/sdd.md
index 8b50323311..7b20b0578f 100644
--- a/Ref/SendBuffApp/docs/sdd.md
+++ b/Ref/SendBuffApp/docs/sdd.md
@@ -1,4 +1,3 @@
-\page RefSendBuffAppComponent Ref::SendBuffApp Component
# Ref::SendBuffApp Component
## 1. Introduction
diff --git a/Ref/SignalGen/docs/sdd.md b/Ref/SignalGen/docs/sdd.md
index 145fbbfdbc..182361bd4c 100644
--- a/Ref/SignalGen/docs/sdd.md
+++ b/Ref/SignalGen/docs/sdd.md
@@ -1,4 +1,3 @@
-\page RefSignalGenComponent Ref::SignalGen Component
# Ref::SignalGen Component
## 1. Introduction
diff --git a/Svc/ActiveLogger/docs/sdd.md b/Svc/ActiveLogger/docs/sdd.md
index 0ccb388057..c5b7ff3cb9 100644
--- a/Svc/ActiveLogger/docs/sdd.md
+++ b/Svc/ActiveLogger/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcActiveLoggerComponent Svc::ActiveLogger Component
# Svc::ActiveLogger Component
## 1. Introduction
diff --git a/Svc/ActiveRateGroup/docs/sdd.md b/Svc/ActiveRateGroup/docs/sdd.md
index 883dae67f9..86b7f4ad6a 100644
--- a/Svc/ActiveRateGroup/docs/sdd.md
+++ b/Svc/ActiveRateGroup/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcActiveRateGroupComponent Svc::ActiveRateGroup Component
# Svc::ActiveRateGroup Component
## 1. Introduction
diff --git a/Svc/ActiveTextLogger/docs/sdd.md b/Svc/ActiveTextLogger/docs/sdd.md
index 5ccd114431..737b88b054 100644
--- a/Svc/ActiveTextLogger/docs/sdd.md
+++ b/Svc/ActiveTextLogger/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcActiveTextLoggerComponent Svc::ActiveTextLogger Component
# Svc::ActiveTextLogger Component
## 1. Introduction
diff --git a/Svc/AssertFatalAdapter/docs/sdd.md b/Svc/AssertFatalAdapter/docs/sdd.md
index 17e1930521..069a5232a4 100644
--- a/Svc/AssertFatalAdapter/docs/sdd.md
+++ b/Svc/AssertFatalAdapter/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcAssertFatalAdapterComponent Svc::AssertFatalAdapter Component
# Svc::AssertFatalAdapter Component
## 1. Introduction
diff --git a/Svc/BufferAccumulator/docs/BufferAccumulator.md b/Svc/BufferAccumulator/docs/sdd.md
similarity index 96%
rename from Svc/BufferAccumulator/docs/BufferAccumulator.md
rename to Svc/BufferAccumulator/docs/sdd.md
index 445ace658c..b7ed8c74f4 100644
--- a/Svc/BufferAccumulator/docs/BufferAccumulator.md
+++ b/Svc/BufferAccumulator/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcBufferAccumulatorComponent Svc::BufferAccumulator Component
# BufferAccumulator Component Dictionary
diff --git a/Svc/BufferManager/docs/sdd.md b/Svc/BufferManager/docs/sdd.md
index 7b8abdacde..5b806386bd 100644
--- a/Svc/BufferManager/docs/sdd.md
+++ b/Svc/BufferManager/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcBufferManagerComponent Svc::BufferManager Component
# Svc::BufferManager
## 1 Introduction
diff --git a/Svc/BufferRepeater/docs/sdd.md b/Svc/BufferRepeater/docs/sdd.md
index 3e859dcc11..71770fcc72 100644
--- a/Svc/BufferRepeater/docs/sdd.md
+++ b/Svc/BufferRepeater/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcBufferRepeaterComponent Svc::BufferRepeater Component
# Svc::BufferRepeater: Buffer Repeater (Passive Component)
## 1. Introduction
diff --git a/Svc/CmdDispatcher/docs/sdd.md b/Svc/CmdDispatcher/docs/sdd.md
index ce8f4bca59..1269bdb686 100644
--- a/Svc/CmdDispatcher/docs/sdd.md
+++ b/Svc/CmdDispatcher/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcCmdDispatcherComponent Svc::CmdDispatcher Component
# Svc::CmdDispatcher Component
## 1. Introduction
diff --git a/Svc/CmdSequencer/docs/sdd.md b/Svc/CmdSequencer/docs/sdd.md
index f897019f98..a5f8b96ba7 100644
--- a/Svc/CmdSequencer/docs/sdd.md
+++ b/Svc/CmdSequencer/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcCmdSequencerComponent Svc::CmdSequencer Component
# Svc::CmdSequencer Component
## 1 Introduction
diff --git a/Svc/CmdSplitter/docs/sdd.md b/Svc/CmdSplitter/docs/sdd.md
index dfab1c9cfa..8549ddc4bb 100644
--- a/Svc/CmdSplitter/docs/sdd.md
+++ b/Svc/CmdSplitter/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcCmdSplitter Svc::CmdSplitter Component
# Svc::CmdSplitter Component
## 1. Introduction
diff --git a/Svc/ComQueue/docs/sdd.md b/Svc/ComQueue/docs/sdd.md
index 362ab3c081..15473e6191 100644
--- a/Svc/ComQueue/docs/sdd.md
+++ b/Svc/ComQueue/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcComQueueComponent Svc::ComQueue Component
# Svc::ComQueue (Active Component)
## 1. Introduction
diff --git a/Svc/ComStub/docs/sdd.md b/Svc/ComStub/docs/sdd.md
index d05fdfc46b..22b6a98c85 100644
--- a/Svc/ComStub/docs/sdd.md
+++ b/Svc/ComStub/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcComStubComponent Svc::ComStub Component
# Svc::ComStub (Passive Component)
## 1. Introduction
diff --git a/Svc/Deframer/docs/sdd.md b/Svc/Deframer/docs/sdd.md
index a7612e5d68..5c4acf2719 100644
--- a/Svc/Deframer/docs/sdd.md
+++ b/Svc/Deframer/docs/sdd.md
@@ -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.
-
-

-
+
### 4.2. Ports
@@ -349,24 +346,18 @@ optional.
**Topology 1a: Buffers containing framed data (active byte stream driver):**
-
-

-
+
**Topology 1b: Buffers containing framed data (passive byte stream driver):**
-
-

-
+
Revise the port number of `rateGroup.RateGroupMemberOut` as
appropriate for your application.
**Topology 2: Command packets and command responses:**
-
-

-
+
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:**
-
-

-
+
### 6.2. Sequence Diagrams
@@ -507,17 +496,13 @@ instance `hub` of type `Svc::GenericHub`.
**Topology 2: Command packets**
-
-

-
+
Revise the port number of `hub.portIn` as appropriate for your application.
**Topology 3: Buffers containing packet data**
-
-

-
+
Revise the port number of `hub.buffersIn` as appropriate for your application.
When `hub` receives a buffer on `buffersIn`, it copies the data across
diff --git a/Svc/DpCatalog/docs/sdd.md b/Svc/DpCatalog/docs/sdd.md
index d17bb8f5b0..8fcd49dc90 100644
--- a/Svc/DpCatalog/docs/sdd.md
+++ b/Svc/DpCatalog/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcDpCatalogComponent Svc::DpCatalog Component
# Svc::DpCatalog Component
## 1 Introduction
diff --git a/Svc/DpManager/docs/sdd.md b/Svc/DpManager/docs/sdd.md
index 541ddcb679..a9259b6764 100644
--- a/Svc/DpManager/docs/sdd.md
+++ b/Svc/DpManager/docs/sdd.md
@@ -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.
-
-

-
+
### 3.2. Ports
@@ -197,21 +194,16 @@ connections.
#### 5.1.1. Synchronously Getting Data Product Buffers
-
-

-
+
#### 5.1.2. Asynchronously Requesting Data Product Buffers
-
-

-
+
+
#### 5.1.3. Sending Data Products
-
-

-
+
### 5.2. Sequence Diagrams
diff --git a/Svc/DpWriter/docs/sdd.md b/Svc/DpWriter/docs/sdd.md
index 22246f8b73..ebe8c3799a 100644
--- a/Svc/DpWriter/docs/sdd.md
+++ b/Svc/DpWriter/docs/sdd.md
@@ -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.
-
-

-
+
### 3.2. Ports
@@ -206,9 +203,7 @@ The diagrams use the following instances:
* `producer`: A component that produces data products.
-
-

-
+
### 6.2. Sequence Diagrams
diff --git a/Svc/Fatal/docs/sdd.md b/Svc/Fatal/docs/sdd.md
index 3329e5f00a..ef4465264a 100644
--- a/Svc/Fatal/docs/sdd.md
+++ b/Svc/Fatal/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcFatalPort Svc::Fatal Port
# Svc::Fatal Port
## 1. Introduction
diff --git a/Svc/FatalHandler/docs/sdd.md b/Svc/FatalHandler/docs/sdd.md
index cf3be4a366..f1b8dcbb08 100644
--- a/Svc/FatalHandler/docs/sdd.md
+++ b/Svc/FatalHandler/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcFatalHandlerComponent Svc::FatalHandler Component
# Svc::FatalHandler Component
## 1. Introduction
diff --git a/Svc/FileDownlink/docs/sdd.md b/Svc/FileDownlink/docs/sdd.md
index b910ccee02..e721bb809f 100644
--- a/Svc/FileDownlink/docs/sdd.md
+++ b/Svc/FileDownlink/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcFileDownlinkComponent Svc::FileDownlink Component
# Svc::FileDownlink Component
## 1 Introduction
diff --git a/Svc/FileManager/docs/sdd.md b/Svc/FileManager/docs/sdd.md
index b66879efa7..609409ff3a 100644
--- a/Svc/FileManager/docs/sdd.md
+++ b/Svc/FileManager/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcFileManagerComponent Svc::FileManager Component
# Svc::FileManager Component
## 1. Introduction
diff --git a/Svc/FileUplink/docs/sdd.md b/Svc/FileUplink/docs/sdd.md
index eb44ebfba5..4771d89974 100644
--- a/Svc/FileUplink/docs/sdd.md
+++ b/Svc/FileUplink/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcFileUplinkComponent Svc::FileUplink Component
# Svc::FileUplink Component
## 1 Introduction
diff --git a/Svc/Framer/docs/sdd.md b/Svc/Framer/docs/sdd.md
index 5b6ad1021e..29021ac8b4 100644
--- a/Svc/Framer/docs/sdd.md
+++ b/Svc/Framer/docs/sdd.md
@@ -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:**
-
-

-
+
The `chanTlm` instance sends telemetry packets to the `framer` instance.
**Topology 2: Event packets:**
-
-

-
+
The `eventLogger` instance sends event packets to the `framer` instance.
**Topology 3: File packets:**
-
-

-
+
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:**
-
-

-
+
`framer` allocates frame buffers from `buffMgr`.
It sends buffers containing frames to `comm`.
diff --git a/Svc/FramingProtocol/docs/sdd.md b/Svc/FramingProtocol/docs/sdd.md
index eb6014a126..ccf01b4beb 100644
--- a/Svc/FramingProtocol/docs/sdd.md
+++ b/Svc/FramingProtocol/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcFramingProtocol Svc::FramingProtocol Protocol
# Svc::FramingProtocol Library
The `FramingProtocol` library defines the interfaces to the
diff --git a/Svc/GenericHub/docs/sdd.md b/Svc/GenericHub/docs/sdd.md
index 643f84033b..8f84a4600c 100644
--- a/Svc/GenericHub/docs/sdd.md
+++ b/Svc/GenericHub/docs/sdd.md
@@ -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).
diff --git a/Svc/Health/docs/sdd.md b/Svc/Health/docs/sdd.md
index f704f26a7f..72dd1c1a78 100644
--- a/Svc/Health/docs/sdd.md
+++ b/Svc/Health/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcHealthComponent Svc::Health Component
# Svc::Health Component
## 1. Introduction
diff --git a/Svc/PassiveConsoleTextLogger/docs/sdd.md b/Svc/PassiveConsoleTextLogger/docs/sdd.md
index d1fd9cbda9..4cf5a2129f 100644
--- a/Svc/PassiveConsoleTextLogger/docs/sdd.md
+++ b/Svc/PassiveConsoleTextLogger/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcPassiveConsoleTextLoggerComponent Svc::PassiveConsoleTextLogger Component
# Svc::PassiveConsoleTextLogger Component
## 1. Introduction
diff --git a/Svc/PassiveRateGroup/docs/sdd.md b/Svc/PassiveRateGroup/docs/sdd.md
index 4b176f8d7a..d9cc9393c8 100644
--- a/Svc/PassiveRateGroup/docs/sdd.md
+++ b/Svc/PassiveRateGroup/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcPassiveRateGroupComponent Svc::PassiveRateGroup Component
# RateGroupDriver Component
## 1. Introduction
diff --git a/Svc/Ping/docs/sdd.md b/Svc/Ping/docs/sdd.md
index 4f6a1f90f3..c70be07f3a 100644
--- a/Svc/Ping/docs/sdd.md
+++ b/Svc/Ping/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcPingPort Svc::Ping Port
# Svc::Ping Port
## 1. Introduction
diff --git a/Svc/PolyDb/docs/sdd.md b/Svc/PolyDb/docs/sdd.md
index dda9b8f930..ca5b499130 100644
--- a/Svc/PolyDb/docs/sdd.md
+++ b/Svc/PolyDb/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcPolyDbComponent Svc::PolyDb Component
# Svc::PolyDb Component
## 1. Introduction
diff --git a/Svc/PolyIf/docs/sdd.md b/Svc/PolyIf/docs/sdd.md
index b2723bdef6..383d7c0029 100644
--- a/Svc/PolyIf/docs/sdd.md
+++ b/Svc/PolyIf/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcPolyPort Svc::Poly Port
# Svc::Poly Port
## 1. Introduction
diff --git a/Svc/PosixTime/docs/sdd.md b/Svc/PosixTime/docs/sdd.md
index ecf7cde26a..ed9db88072 100644
--- a/Svc/PosixTime/docs/sdd.md
+++ b/Svc/PosixTime/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcPosixTime Svc::PosixTime Component
# Svc::PosixTime Component
## 1. Introduction
diff --git a/Svc/PrmDb/docs/sdd.md b/Svc/PrmDb/docs/sdd.md
index 3bb236b73c..29556cf996 100644
--- a/Svc/PrmDb/docs/sdd.md
+++ b/Svc/PrmDb/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcPrmDbComponent Svc::PrmDb Component
# Svc::PrmDb Component
## 1. Introduction
diff --git a/Svc/RateGroupDriver/docs/sdd.md b/Svc/RateGroupDriver/docs/sdd.md
index b362a79546..a5bc2d6ec6 100644
--- a/Svc/RateGroupDriver/docs/sdd.md
+++ b/Svc/RateGroupDriver/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcRateGroupDriverComponent Svc::RateGroupDriver Component
# Svc::RateGroupDriver Component
## 1. Introduction
diff --git a/Svc/Sched/docs/sdd.md b/Svc/Sched/docs/sdd.md
index 0c61ac17fa..60271c186d 100644
--- a/Svc/Sched/docs/sdd.md
+++ b/Svc/Sched/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcSchedPort Svc::Sched Port
# Svc::Sched Port
## 1. Introduction
diff --git a/Svc/StaticMemory/docs/sdd.md b/Svc/StaticMemory/docs/sdd.md
index 9cd3ef6374..bf3598f80e 100644
--- a/Svc/StaticMemory/docs/sdd.md
+++ b/Svc/StaticMemory/docs/sdd.md
@@ -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
diff --git a/Svc/SystemResources/docs/sdd.md b/Svc/SystemResources/docs/sdd.md
index 37b2757a1b..dfa838603a 100644
--- a/Svc/SystemResources/docs/sdd.md
+++ b/Svc/SystemResources/docs/sdd.md
@@ -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:
diff --git a/Svc/TlmChan/docs/sdd.md b/Svc/TlmChan/docs/sdd.md
index faf3036089..8d9341b9ff 100644
--- a/Svc/TlmChan/docs/sdd.md
+++ b/Svc/TlmChan/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcTlmChanComponent Svc::TlmChan Component
# Svc::TlmChan Component
## 1. Introduction
diff --git a/Svc/TlmPacketizer/docs/sdd.md b/Svc/TlmPacketizer/docs/sdd.md
index 09e363fceb..894c3d21a6 100644
--- a/Svc/TlmPacketizer/docs/sdd.md
+++ b/Svc/TlmPacketizer/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcTlmPacketizerComponent Svc::TlmPacketizer Component
# Svc::TlmPacketizer Component
## 1. Introduction
diff --git a/Svc/WatchDog/docs/sdd.md b/Svc/WatchDog/docs/sdd.md
index fd0edcfb68..b2280c33c8 100644
--- a/Svc/WatchDog/docs/sdd.md
+++ b/Svc/WatchDog/docs/sdd.md
@@ -1,4 +1,3 @@
-\page SvcWatchDogPort Svc::WatchDog Port
# Svc::WatchDog Port
## 1. Introduction
diff --git a/docs/documentation/reference/sdd/index.md b/docs/documentation/reference/sdd/index.md
new file mode 100644
index 0000000000..e47957ace0
--- /dev/null
+++ b/docs/documentation/reference/sdd/index.md
@@ -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
diff --git a/docs/documentation/user-manual/design/data-products.md b/docs/documentation/user-manual/design/data-products.md
index 105643f65a..0c7c22885f 100644
--- a/docs/documentation/user-manual/design/data-products.md
+++ b/docs/documentation/user-manual/design/data-products.md
@@ -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
diff --git a/docs/documentation/user-manual/framework/dynamic-memory.md b/docs/documentation/user-manual/framework/dynamic-memory.md
index bfa4ad9414..09397fdab3 100644
--- a/docs/documentation/user-manual/framework/dynamic-memory.md
+++ b/docs/documentation/user-manual/framework/dynamic-memory.md
@@ -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**
diff --git a/docs/documentation/user-manual/framework/ground-interface.md b/docs/documentation/user-manual/framework/ground-interface.md
index 011798fbeb..08026d58a0 100644
--- a/docs/documentation/user-manual/framework/ground-interface.md
+++ b/docs/documentation/user-manual/framework/ground-interface.md
@@ -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
diff --git a/docs/documentation/user-manual/framework/hub-pattern.md b/docs/documentation/user-manual/framework/hub-pattern.md
index d8d32daca7..0f1d1ef169 100644
--- a/docs/documentation/user-manual/framework/hub-pattern.md
+++ b/docs/documentation/user-manual/framework/hub-pattern.md
@@ -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.
\ No newline at end of file
diff --git a/docs/doxygen/Doxyfile b/docs/doxygen/Doxyfile
index 699849b78b..e261621353 100644
--- a/docs/doxygen/Doxyfile
+++ b/docs/doxygen/Doxyfile
@@ -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
diff --git a/docs/doxygen/generate_docs.bash b/docs/doxygen/generate_docs.bash
index 777a25ac79..edc5236fa6 100755
--- a/docs/doxygen/generate_docs.bash
+++ b/docs/doxygen/generate_docs.bash
@@ -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"
diff --git a/docs/doxygen/mainpage.md b/docs/doxygen/mainpage.md
index 0f72c7991f..520c9ac6e1 100644
--- a/docs/doxygen/mainpage.md
+++ b/docs/doxygen/mainpage.md
@@ -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
diff --git a/docs/doxygen/sdd_processing.py b/docs/doxygen/sdd_processing.py
new file mode 100644
index 0000000000..2658d9463f
--- /dev/null
+++ b/docs/doxygen/sdd_processing.py
@@ -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")
diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml
index d8d938fce0..4c74255e32 100644
--- a/docs/mkdocs.yml
+++ b/docs/mkdocs.yml
@@ -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