diff --git a/.github/actions/markdown-check/mlc-config.json b/.github/actions/markdown-check/mlc-config.json index 960c81c5561..fd5de5cca9b 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 413de33a322..47f4651ed4e 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 8190eefbbda..982803b0d4d 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 7357cd27549..b06f371ec4c 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 ca2be625883..51851f9402b 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 73337403424..f97c6567856 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 7fe2dd67392..37e52ca78e3 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 84f244b4311..1834d52faf8 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 94c5396b611..018809c7704 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 dddc1394a6f..270c43b1868 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 96677cead25..4cdc94ecaa9 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 ab8eda6ce36..f305500db52 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 2c9d864eac1..a09aee4045a 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 544333e9f86..4477a02927f 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 9b577e41d94..d9b76acdf6c 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 e2c029eafeb..15021d15877 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 73d72f86066..2b92ebd0e93 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 9924d3920f7..094e314e1fa 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 28f0cbffc81..8b2fd0ad401 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 b7e890a3f9b..649116c0f16 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 2a98327dfb6..bb4e156dfac 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 3f0261c19d8..84e86480dda 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 a337d9c25b6..fd201168f81 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 8b50323311c..7b20b0578f8 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 145fbbfdbc6..182361bd4cf 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 0ccb388057a..c5b7ff3cb92 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 883dae67f93..86b7f4ad6a9 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 5ccd1144311..737b88b054b 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 17e19305214..069a5232a46 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 445ace658ca..b7ed8c74f49 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 7b8abdacde7..5b806386bd3 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 3e859dcc119..71770fcc724 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 ce8f4bca59d..1269bdb686a 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 f897019f980..a5f8b96ba7e 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 dfab1c9cfa6..8549ddc4bb8 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 362ab3c0810..15473e61914 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 d05fdfc46bf..22b6a98c85c 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 a7612e5d685..5c4acf2719f 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. -
- -
+![Deframer](img/Deframer.png) ### 4.2. Ports @@ -349,24 +346,18 @@ optional. **Topology 1a: Buffers containing framed data (active byte stream driver):** -
- -
+![active](img/top/framed-active.png) **Topology 1b: Buffers containing framed data (passive byte stream driver):** -
- -
+![passive](img/top/framed-passive.png) Revise the port number of `rateGroup.RateGroupMemberOut` as appropriate for your application. **Topology 2: Command packets and command responses:** -
- -
+![cmd](img/top/cmd.png) 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:** -
- -
+![file](img/top/deframer-file.png) ### 6.2. Sequence Diagrams @@ -507,17 +496,13 @@ instance `hub` of type `Svc::GenericHub`. **Topology 2: Command packets** -
- -
+![hub-cmd](img/top/hub-cmd.png) Revise the port number of `hub.portIn` as appropriate for your application. **Topology 3: Buffers containing packet data** -
- -
+![file](img/top/hub-file.png) 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 d17bb8f5b0a..8fcd49dc907 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 541ddcb679f..a9259b67640 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. -
- -
+![DpManager](img/DpManager.png) ### 3.2. Ports @@ -197,21 +194,16 @@ connections. #### 5.1.1. Synchronously Getting Data Product Buffers -
- -
+![Buffer Get](img/top/buffer-get.png) #### 5.1.2. Asynchronously Requesting Data Product Buffers -
- -
+![Buffer Request](img/top/buffer-request.png) + #### 5.1.3. Sending Data Products -
- -
+![Product Send](img/top/product-send.png) ### 5.2. Sequence Diagrams diff --git a/Svc/DpWriter/docs/sdd.md b/Svc/DpWriter/docs/sdd.md index 22246f8b733..ebe8c3799ad 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. -
- -
+![DpWriter](img/DpWriter.png) ### 3.2. Ports @@ -206,9 +203,7 @@ The diagrams use the following instances: * `producer`: A component that produces data products. -
- -
+![product-write](./img/top/product-write.png) ### 6.2. Sequence Diagrams diff --git a/Svc/Fatal/docs/sdd.md b/Svc/Fatal/docs/sdd.md index 3329e5f00a3..ef4465264a7 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 cf3be4a366d..f1b8dcbb081 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 b910ccee026..e721bb809fc 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 b66879efa7f..609409ff3ae 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 eb44ebfba5d..4771d89974b 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 5b6ad1021e9..29021ac8b47 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:** -
- -
+![tlm](img/top/tlm.png) The `chanTlm` instance sends telemetry packets to the `framer` instance. **Topology 2: Event packets:** -
- -
+![event](img/top/event.png) The `eventLogger` instance sends event packets to the `framer` instance. **Topology 3: File packets:** -
- -
+![file](img/top/framer-file.png) 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:** -
- -
+![framed](img/top/framed.png) `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 eb6014a126c..ccf01b4beb4 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 643f84033b8..8f84a4600cc 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 f704f26a7f0..72dd1c1a780 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 d1fd9cbda9f..4cf5a2129f2 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 4b176f8d7aa..d9cc9393c80 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 4f6a1f90f34..c70be07f3a3 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 dda9b8f9309..ca5b4991302 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 b2723bdef67..383d7c0029d 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 ecf7cde26a4..ed9db880720 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 3bb236b73c4..29556cf9963 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 b362a795464..a5bc2d6ec66 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 0c61ac17fac..60271c186d6 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 9cd3ef63744..bf3598f80e9 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 37b2757a1b0..dfa838603ac 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 faf3036089d..8d9341b9ff7 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 09e363fceb9..894c3d21a63 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 fd0edcfb68c..b2280c33c8c 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 00000000000..e47957ace02 --- /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 105643f65a7..0c7c22885fa 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 bfa4ad94149..09397fdab37 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 011798fbebe..08026d58a01 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 d8d32daca7d..0f1d1ef169d 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 699849b78b8..e2616213534 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 777a25ac790..edc5236fa69 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 0f72c7991fb..520c9ac6e19 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 00000000000..2658d9463f5 --- /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 d8d938fce05..4c74255e326 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