From 6f1369bbcfffa8c9f3e49ac3fe3be3441d743af6 Mon Sep 17 00:00:00 2001 From: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com> Date: Tue, 21 Jan 2025 14:32:52 -0800 Subject: [PATCH] Update docs structure for website versioning improvements (#3150) --------- Co-authored-by: ashleynilo --- .gitignore | 5 +- Fw/Dp/docs/sdd.md | 6 +- README.md | 4 +- RPI/README.md | 2 +- Ref/README.md | 2 +- docs/INSTALL.md | 2 +- docs/documentation/index.md | 39 --- .../documentation/reference/fpp-user-guide.md | 10 - docs/documentation/reference/sdd/index.md | 5 - docs/doxygen/Doxyfile | 6 +- docs/doxygen/generate_docs.bash | 2 +- docs/doxygen/sdd_processing.py | 19 +- docs/events/event-request.md | 6 - docs/events/index.md | 6 - docs/getting-started/index.md | 6 +- .../how-to/develop-fprime-libraries.md | 0 .../how-to/develop-gds-plugins.md | 0 .../how-to/develop-subtopologies.md | 0 docs/{documentation => }/how-to/index.md | 0 .../how-to/porting-guide.md | 0 docs/index.md | 43 ++- docs/mkdocs.yml | 249 +++++------------- docs/overview/index.md | 6 - docs/overview/powerful-swa.md | 6 - docs/overview/projects.md | 6 - docs/overview/streamline-sd.md | 6 - .../reference/gds-cli-dev.md | 6 +- docs/{documentation => }/reference/index.md | 20 +- docs/reference/sdd.md | 6 + docs/support/index.md | 6 - docs/support/publications.md | 4 - .../tutorials/cross-compilation.md | 0 .../tutorials/img/rancher-config.png | Bin .../tutorials/img/rancher-running.png | Bin docs/{documentation => }/tutorials/index.md | 8 +- .../user-manual/cmake/Customization.md | 0 .../user-manual/cmake/Targets.md | 0 .../user-manual/cmake/cmake-advanced.md | 0 .../user-manual/cmake/cmake-api.md | 0 .../user-manual/cmake/cmake-intro.md | 0 .../user-manual/cmake/cmake-platforms.md | 0 .../user-manual/cmake/cmake-toolchains.md | 0 .../user-manual/cmake/cmake-uts.md | 0 .../cmake/img/CMake - Architecture.png | Bin .../cmake/img/CMake File Organization.png | Bin .../cmake/img/CMake Lists Hierarchy.png | Bin .../cmake/img/CMake Ops - Old Style.png | Bin .../cmake/img/CMake Ops - Recommended.png | Bin .../cmake/img/CMake Ops - Traditional.png | Bin .../design/communication-adapter-interface.md | 2 +- .../user-manual/design/data-products.md | 24 +- .../user-manual/design/fpp-json-dict.md | 0 .../user-manual/design/fprime-architecture.md | 0 .../user-manual/design/numerical-types.md | 0 .../design/package-implementations.md | 0 .../user-manual/design/rate-group.md | 2 +- .../user-manual/design/state-machines.md | 2 +- .../user-manual/framework/app-man-drv.md | 2 +- .../user-manual/framework/assert.md | 0 .../framework/autocoded-functions.md | 0 .../framework/baremetal-multicore.md | 0 .../framework/building-topology.md | 0 .../framework/configuring-fprime.md | 0 .../user-manual/framework/dynamic-memory.md | 4 +- .../user-manual/framework/ground-interface.md | 6 +- .../user-manual/framework/hub-pattern.md | 4 +- .../user-manual/framework/settings.md | 0 .../user-manual/gds/gds-cli.md | 4 +- .../user-manual/gds/gds-custom-dashboards.md | 4 +- .../gds/gds-dashboard-reference.md | 0 .../user-manual/gds/gds-test-api-guide.md | 4 +- .../user-manual/gds/seqgen.md | 0 docs/{documentation => }/user-manual/index.md | 0 .../user-manual/overview/cmd-evt-chn-prm.md | 10 +- .../overview/development-practice.md | 0 .../user-manual/overview/enum-arr-ser.md | 0 .../user-manual/overview/full-intro.md | 0 .../user-manual/overview/gds-introduction.md | 22 +- .../user-manual/overview/port-comp-top.md | 14 +- .../user-manual/overview/proj-dep.md | 2 +- .../user-manual/overview/source-tree.md | 0 .../user-manual/overview/unit-testing.md | 2 +- .../security/software-bill-of-materials.md | 0 83 files changed, 201 insertions(+), 393 deletions(-) delete mode 100644 docs/documentation/index.md delete mode 100644 docs/documentation/reference/fpp-user-guide.md delete mode 100644 docs/documentation/reference/sdd/index.md delete mode 100644 docs/events/event-request.md delete mode 100644 docs/events/index.md rename docs/{documentation => }/how-to/develop-fprime-libraries.md (100%) rename docs/{documentation => }/how-to/develop-gds-plugins.md (100%) rename docs/{documentation => }/how-to/develop-subtopologies.md (100%) rename docs/{documentation => }/how-to/index.md (100%) rename docs/{documentation => }/how-to/porting-guide.md (100%) delete mode 100644 docs/overview/index.md delete mode 100644 docs/overview/powerful-swa.md delete mode 100644 docs/overview/projects.md delete mode 100644 docs/overview/streamline-sd.md rename docs/{documentation => }/reference/gds-cli-dev.md (98%) rename docs/{documentation => }/reference/index.md (64%) create mode 100644 docs/reference/sdd.md delete mode 100644 docs/support/index.md delete mode 100644 docs/support/publications.md rename docs/{documentation => }/tutorials/cross-compilation.md (100%) rename docs/{documentation => }/tutorials/img/rancher-config.png (100%) rename docs/{documentation => }/tutorials/img/rancher-running.png (100%) rename docs/{documentation => }/tutorials/index.md (89%) rename docs/{documentation => }/user-manual/cmake/Customization.md (100%) rename docs/{documentation => }/user-manual/cmake/Targets.md (100%) rename docs/{documentation => }/user-manual/cmake/cmake-advanced.md (100%) rename docs/{documentation => }/user-manual/cmake/cmake-api.md (100%) rename docs/{documentation => }/user-manual/cmake/cmake-intro.md (100%) rename docs/{documentation => }/user-manual/cmake/cmake-platforms.md (100%) rename docs/{documentation => }/user-manual/cmake/cmake-toolchains.md (100%) rename docs/{documentation => }/user-manual/cmake/cmake-uts.md (100%) rename docs/{documentation => }/user-manual/cmake/img/CMake - Architecture.png (100%) rename docs/{documentation => }/user-manual/cmake/img/CMake File Organization.png (100%) rename docs/{documentation => }/user-manual/cmake/img/CMake Lists Hierarchy.png (100%) rename docs/{documentation => }/user-manual/cmake/img/CMake Ops - Old Style.png (100%) rename docs/{documentation => }/user-manual/cmake/img/CMake Ops - Recommended.png (100%) rename docs/{documentation => }/user-manual/cmake/img/CMake Ops - Traditional.png (100%) rename docs/{documentation => }/user-manual/design/communication-adapter-interface.md (98%) rename docs/{documentation => }/user-manual/design/data-products.md (94%) rename docs/{documentation => }/user-manual/design/fpp-json-dict.md (100%) rename docs/{documentation => }/user-manual/design/fprime-architecture.md (100%) rename docs/{documentation => }/user-manual/design/numerical-types.md (100%) rename docs/{documentation => }/user-manual/design/package-implementations.md (100%) rename docs/{documentation => }/user-manual/design/rate-group.md (98%) rename docs/{documentation => }/user-manual/design/state-machines.md (99%) rename docs/{documentation => }/user-manual/framework/app-man-drv.md (98%) rename docs/{documentation => }/user-manual/framework/assert.md (100%) rename docs/{documentation => }/user-manual/framework/autocoded-functions.md (100%) rename docs/{documentation => }/user-manual/framework/baremetal-multicore.md (100%) rename docs/{documentation => }/user-manual/framework/building-topology.md (100%) rename docs/{documentation => }/user-manual/framework/configuring-fprime.md (100%) rename docs/{documentation => }/user-manual/framework/dynamic-memory.md (98%) rename docs/{documentation => }/user-manual/framework/ground-interface.md (97%) rename docs/{documentation => }/user-manual/framework/hub-pattern.md (90%) rename docs/{documentation => }/user-manual/framework/settings.md (100%) rename docs/{documentation => }/user-manual/gds/gds-cli.md (99%) rename docs/{documentation => }/user-manual/gds/gds-custom-dashboards.md (98%) rename docs/{documentation => }/user-manual/gds/gds-dashboard-reference.md (100%) rename docs/{documentation => }/user-manual/gds/gds-test-api-guide.md (99%) rename docs/{documentation => }/user-manual/gds/seqgen.md (100%) rename docs/{documentation => }/user-manual/index.md (100%) rename docs/{documentation => }/user-manual/overview/cmd-evt-chn-prm.md (97%) rename docs/{documentation => }/user-manual/overview/development-practice.md (100%) rename docs/{documentation => }/user-manual/overview/enum-arr-ser.md (100%) rename docs/{documentation => }/user-manual/overview/full-intro.md (100%) rename docs/{documentation => }/user-manual/overview/gds-introduction.md (96%) rename docs/{documentation => }/user-manual/overview/port-comp-top.md (97%) rename docs/{documentation => }/user-manual/overview/proj-dep.md (98%) rename docs/{documentation => }/user-manual/overview/source-tree.md (100%) rename docs/{documentation => }/user-manual/overview/unit-testing.md (99%) rename docs/{documentation => }/user-manual/security/software-bill-of-materials.md (100%) diff --git a/.gitignore b/.gitignore index 38ba02c2f7..2ce344b3f8 100644 --- a/.gitignore +++ b/.gitignore @@ -84,5 +84,6 @@ depend /venv/ Packet-Views -docs/documentation/reference/api/cpp -docs/documentation/reference/api/cmake +docs/reference/api/cpp +docs/reference/api/cmake +temp_dir/ diff --git a/Fw/Dp/docs/sdd.md b/Fw/Dp/docs/sdd.md index a09aee4045..d357cf5b1c 100644 --- a/Fw/Dp/docs/sdd.md +++ b/Fw/Dp/docs/sdd.md @@ -5,7 +5,7 @@ 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](../../../../../user-manual/design/data-products.md). +[data products documentation](../../../docs/user-manual/design/data-products.md). ## 2. Configuration @@ -81,7 +81,7 @@ The header hash has the following format. |Field Name|Serialized Size|Description| |----------|---------------|-----------| -|`Header Hash`|[`HASH_DIGEST_LENGTH`](../../../../api/cpp/html/index.html)|The hash value guarding the header.| +|`Header Hash`|[`HASH_DIGEST_LENGTH`](../../../Utils/Hash/README.md)|The hash value guarding the header.| #### 5.1.3. Data @@ -118,7 +118,7 @@ The data hash has the following format. |Field Name|Serialized Size|Description| |----------|---------------|-----------| -|`Data Hash`|[`HASH_DIGEST_LENGTH`](../../../../api/cpp/html/index.html)|The hash value guarding the data.| +|`Data Hash`|[`HASH_DIGEST_LENGTH`](../../../Utils/Hash/README.md)|The hash value guarding the data.| ### 5.2. Further Information diff --git a/README.md b/README.md index 390f0f6d34..099765c851 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ # F´ (F Prime) is a component-driven framework that enables rapid development and deployment of spaceflight and other embedded software applications. Originally developed at the [Jet Propulsion Laboratory](https://www.jpl.nasa.gov/), F´ has been successfully deployed on [several space applications](https://nasa.github.io/fprime/projects.html). It is tailored but not limited to small-scale spaceflight systems such as CubeSats, SmallSats, and instruments. -**Please Visit the F´ Website:** [https://fprime.jpl.gov/latest](https://fprime.jpl.nasa.gov/latest/) for more information. +**Please Visit the F´ Website:** [https://fprime.jpl.gov/](https://fprime.jpl.nasa.gov/) for more information. ## What does F´ provide @@ -17,7 +17,7 @@ F´ (F Prime) is a component-driven framework that enables rapid development and - A growing collection of ready-to-use components - Testing tools for testing flight software at the unit and integration levels. -Learn more about [F´ key features](https://fprime.jpl.nasa.gov/latest/). +Learn more about [F´ key features](https://fprime.jpl.nasa.gov/). ## System Requirements diff --git a/RPI/README.md b/RPI/README.md index 0e7f02079a..bddeb5b801 100644 --- a/RPI/README.md +++ b/RPI/README.md @@ -52,7 +52,7 @@ sudo apt update && sudo apt install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnu **Crosscompiling using CMake:** -The following commands are described at length in the [HelloWorld tutorial](../docs/documentation/tutorials/). These commands will +The following commands are described at length in the [HelloWorld tutorial](../docs/tutorials/index.md). These commands will go to the RPI directory and generate a build directory for the RPI example. This step generates a CMake Cache, sets the toolchain use to build the code and does an initial scan of the source tree. Since the RPI example sets a default F´ toolchain file in its CMakeLists.txt, we do not need to supply one on the command line when generating the build. This only needs to be done once to prepare for the build because CMake will detect diff --git a/Ref/README.md b/Ref/README.md index 159e11d2a8..7f2583aea8 100644 --- a/Ref/README.md +++ b/Ref/README.md @@ -63,5 +63,5 @@ cd fprime/Ref/build-artifacts//bin/ - The F´ utility's build command can build individual components too. - The 'generate' command can take a toolchain argument for quickly generating a cross-compile `fprime-util generate raspberrypi` for example. -Further work with the F´ utility can be found in the [HelloWorld tutorial](../docs/documentation/tutorials/) tutorial. +Further work with the F´ utility can be found in the [HelloWorld tutorial](../docs/tutorials/index.md) tutorial. diff --git a/docs/INSTALL.md b/docs/INSTALL.md index ee5b243eea..6b53ff999d 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -1 +1 @@ -Please refer to the F´ website: https://fprime.jpl.nasa.gov/latest/getting-started/ +Please refer to the F´ website: https://fprime.jpl.nasa.gov/ diff --git a/docs/documentation/index.md b/docs/documentation/index.md deleted file mode 100644 index 809d6b777e..0000000000 --- a/docs/documentation/index.md +++ /dev/null @@ -1,39 +0,0 @@ -# Documentation - - -
- -- __Tutorials__ *Learning-oriented* - - --- - - Tutorials walk through the essentials of F Prime development, starting with the canonical HelloWorld example and progressing to cross-compiling and deploying on hardware. - - [Visit Tutorials](tutorials/index.md){ .md-button .md-button--primary } - -- __User Manual__ *Understanding-oriented* - - --- - - The User Manual dives into F Prime design philosophy and architectural principles, providing a deep understanding of how the framework operates. - - [Visit User Manual](user-manual/index.md){ .md-button .md-button--primary } - -- __How To__ *Task-oriented* - - --- - - How-To guides offer step-by-step instructions for specific development tasks in F Prime. - - [Visit How Tos](how-to/index.md){ .md-button .md-button--primary } - -- __Reference__ *Information-oriented* - - --- - - Technical reference for the F Prime C++ API, CMake API, FPP language specification and more. - - [Visit Reference](reference/index.md){ .md-button .md-button--primary } - - -
\ No newline at end of file diff --git a/docs/documentation/reference/fpp-user-guide.md b/docs/documentation/reference/fpp-user-guide.md deleted file mode 100644 index d7d6081f19..0000000000 --- a/docs/documentation/reference/fpp-user-guide.md +++ /dev/null @@ -1,10 +0,0 @@ -# F´ Modeling: FPP User Guide - -F´ v3 introduced a new way of modeling with F´, the FPP (F Prime Prime) modeling language. The [MathComponent Tutorial](../../tutorials-math-component/docs/math-component) is a good introduction to FPP. - -To go into more detail, the full FPP documentation can be found here: [FPP Wiki](https://github.com/fprime-community/fpp/wiki). - -**Quick links:** - -- [FPP User Guide](https://nasa.github.io/fpp/fpp-users-guide.html) -- [FPP Language Specification](https://nasa.github.io/fpp/fpp-spec.html) diff --git a/docs/documentation/reference/sdd/index.md b/docs/documentation/reference/sdd/index.md deleted file mode 100644 index e47957ace0..0000000000 --- a/docs/documentation/reference/sdd/index.md +++ /dev/null @@ -1,5 +0,0 @@ -# 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/doxygen/Doxyfile b/docs/doxygen/Doxyfile index e261621353..082cc708d2 100644 --- a/docs/doxygen/Doxyfile +++ b/docs/doxygen/Doxyfile @@ -67,7 +67,7 @@ PROJECT_LOGO = ./docs/doxygen/small-logo.png # entered, it will be relative to the location where doxygen was started. If # left blank the current directory will be used. -OUTPUT_DIRECTORY = ./docs/documentation/reference/api/cpp +OUTPUT_DIRECTORY = ./docs/reference/api/cpp # If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- # directories (in 2 levels) under the output directory of each output format and @@ -906,8 +906,8 @@ RECURSIVE = YES # run. # ./docs need to be excluded individually because ./docs/doxygen/mainpage.md needs to be included -EXCLUDE = ./docs/documentation ./docs/events ./docs/getting-started \ - ./docs/overview ./docs/support \ +EXCLUDE = ./docs/how-to ./docs/reference ./docs/tutorials ./docs/user-manual \ + ./docs/events ./docs/getting-started ./docs/overview ./docs/support \ *CMakeFiles/* ./Autocoders ./cmake ./gtest ./Ref ./RPI ./FppTest \ STest ./mk ./README.md ./CONTRIBUTORS.md ./CONTRIBUTING.md ./SECURITY.md \ ./googletest/ ./CODE_OF_CONDUCT.md ./LICENSE.md ./docs/INSTALL.md diff --git a/docs/doxygen/generate_docs.bash b/docs/doxygen/generate_docs.bash index edc5236fa6..233e2cabef 100755 --- a/docs/doxygen/generate_docs.bash +++ b/docs/doxygen/generate_docs.bash @@ -6,7 +6,7 @@ SOURCE_DIR=`dirname $BASH_SOURCE` FPRIME=`cd ${SOURCE_DIR}/../../; pwd` -APIDOCS="${FPRIME}/docs/documentation/reference/api" +APIDOCS="${FPRIME}/docs/reference/api" DOXY_OUTPUT="${APIDOCS}/cpp" CMAKE_OUTPUT="${APIDOCS}/cmake" diff --git a/docs/doxygen/sdd_processing.py b/docs/doxygen/sdd_processing.py index 2658d9463f..b59848412f 100644 --- a/docs/doxygen/sdd_processing.py +++ b/docs/doxygen/sdd_processing.py @@ -1,15 +1,14 @@ -import os -import shutil from pathlib import Path -SDD_DIR = "./docs/documentation/reference/sdd" -os.makedirs(SDD_DIR, exist_ok=True) +SDD_INDEX_FILE = "./docs/reference/sdd.md" # Append the new file path to index.md -with open(Path(SDD_DIR) / 'index.md', 'a') as index_file: +with open(Path(SDD_INDEX_FILE), 'a') as index_file: # Find all sdd.md files and process them - for file in list(Path('.').rglob('*/docs/sdd.md')): + # Sort them for convenience, but also can't use the rglob generator since + # it would start matching generated files, so using sorted to create a list + for file in sorted(Path('.').rglob('*/docs/sdd.md')): # Get module name and parent directory name second_parent = file.parents[1].name third_parent = file.parents[2].name @@ -17,10 +16,4 @@ with open(Path(SDD_DIR) / 'index.md', 'a') as index_file: 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") + index_file.write(f"- [{third_parent}::{second_parent}](../../{third_parent}/{second_parent}/docs/sdd.md)\n") diff --git a/docs/events/event-request.md b/docs/events/event-request.md deleted file mode 100644 index f246abf820..0000000000 --- a/docs/events/event-request.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Event Request -template: event-request.html ---- - -[View the F Prime Event Request page here](https://fprime.jpl.nasa.gov/latest/events/event-request) \ No newline at end of file diff --git a/docs/events/index.md b/docs/events/index.md deleted file mode 100644 index d94238aafa..0000000000 --- a/docs/events/index.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Events -template: events.html ---- - -[View the F Prime Events page here](https://fprime.jpl.nasa.gov/latest/events/) \ No newline at end of file diff --git a/docs/getting-started/index.md b/docs/getting-started/index.md index 3c2aafa62a..f0e9036002 100644 --- a/docs/getting-started/index.md +++ b/docs/getting-started/index.md @@ -17,13 +17,13 @@ F´ has the following features: ## Hello, World! -New users should start with the [Hello World tutorial](../tutorials-hello-world/docs/hello-world//). This tutorial walks through the F´ installation process, how to create a new project and how to design, implement, and test a basic F Prime application. +New users should start with the [Hello World tutorial](../../tutorials-hello-world/docs/hello-world.md). This tutorial walks through the F´ installation process, how to create a new project and how to design, implement, and test a basic F Prime application. ## Further References Here are some additional references to continue learning about F´: -- [More tutorials](../documentation/tutorials/) -- [F´ User Manual](../documentation/user-manual/) +- [More tutorials](../tutorials/index.md) +- [F´ User Manual](../user-manual/index.md) - [Installation and Troubleshooting](./installing-fprime.md) diff --git a/docs/documentation/how-to/develop-fprime-libraries.md b/docs/how-to/develop-fprime-libraries.md similarity index 100% rename from docs/documentation/how-to/develop-fprime-libraries.md rename to docs/how-to/develop-fprime-libraries.md diff --git a/docs/documentation/how-to/develop-gds-plugins.md b/docs/how-to/develop-gds-plugins.md similarity index 100% rename from docs/documentation/how-to/develop-gds-plugins.md rename to docs/how-to/develop-gds-plugins.md diff --git a/docs/documentation/how-to/develop-subtopologies.md b/docs/how-to/develop-subtopologies.md similarity index 100% rename from docs/documentation/how-to/develop-subtopologies.md rename to docs/how-to/develop-subtopologies.md diff --git a/docs/documentation/how-to/index.md b/docs/how-to/index.md similarity index 100% rename from docs/documentation/how-to/index.md rename to docs/how-to/index.md diff --git a/docs/documentation/how-to/porting-guide.md b/docs/how-to/porting-guide.md similarity index 100% rename from docs/documentation/how-to/porting-guide.md rename to docs/how-to/porting-guide.md diff --git a/docs/index.md b/docs/index.md index 8f987c5ad9..809d6b777e 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,6 +1,39 @@ ---- -Title: Home -template: home.html ---- +# Documentation -[View the F Prime Website here](https://fprime.jpl.nasa.gov/latest/) \ No newline at end of file + +
+ +- __Tutorials__ *Learning-oriented* + + --- + + Tutorials walk through the essentials of F Prime development, starting with the canonical HelloWorld example and progressing to cross-compiling and deploying on hardware. + + [Visit Tutorials](tutorials/index.md){ .md-button .md-button--primary } + +- __User Manual__ *Understanding-oriented* + + --- + + The User Manual dives into F Prime design philosophy and architectural principles, providing a deep understanding of how the framework operates. + + [Visit User Manual](user-manual/index.md){ .md-button .md-button--primary } + +- __How To__ *Task-oriented* + + --- + + How-To guides offer step-by-step instructions for specific development tasks in F Prime. + + [Visit How Tos](how-to/index.md){ .md-button .md-button--primary } + +- __Reference__ *Information-oriented* + + --- + + Technical reference for the F Prime C++ API, CMake API, FPP language specification and more. + + [Visit Reference](reference/index.md){ .md-button .md-button--primary } + + +
\ No newline at end of file diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 7abc31bcbc..9792798318 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -2,13 +2,16 @@ site_name: F Prime site_url: https://fprime.jpl.nasa.gov/ repo_url: https://github.com/nasa/fprime repo_name: nasa/fprime +docs_dir: .. # using ./fprime/ as the root directory to host all source files in the website +site_dir: ../../site +edit_uri: edit/devel/ # for "Edit Source" button (see content.action.edit) theme: name: material # enables the material theme, DO NOT CHANGE language: en logo: assets/images/logo-fprime-jpl.svg favicon: assets/images/favicon.svg - custom_dir: overrides + custom_dir: ../../overrides # external directory icon: annotation: material/information-slab-circle # custom icon for annotations @@ -25,6 +28,7 @@ theme: - content.code.annotate # enable code annotations for all code blocks - content.tooltips # replaces the browser's rendering logic for title attribute with tooltips (for content, header, navigation) - content.tabs.link # all content tabs across the whole documentation site will be linked and switch to the same label when the user clicks on a tab + - content.action.edit # display a "Edit Source" button on the top right of the page palette: @@ -51,127 +55,7 @@ extra: provider: mike alias: true generator: false # removes "Made with Material for Mkdocs" - analytics: - provider: custom - # Event Values - events: - # Event 1 Information - - date: 'OCT 13-15 2025' - name: 'Flight Software Development Workshop' - location: 'Jet Propulsion Laboratory in Pasadena, California' - description: 'Check back in early 2025 for details and to request an invitation.' - button_text: Request an Invitation (coming soon) - button_link: '#' - category: 'Tutorial' - category_class: event-category-tutorial # Make sure class matches inputted category - image: '#' - alt: '' - # Project Values - projects: - # ISS-RapidScat - - bg_image: '../../assets/images/projects/iss-rapidscat.png' - bg_position: 50% 50% - name: 'ISS-RapidScat (International Space Station Rapid Scatterometer)' - type: 'Instrument' - nasa_center_company: 'NASA JPL' - os: '-' - hw_platform: '-' - start_date: 'Sep. 21, 2014' - end_date: 'Nov. 18, 2018' - target: 'Earth' - link: 'https://www.jpl.nasa.gov/missions/international-space-station-rapid-scatterometer-iss-rapidscat' - image_credit: 'JSC' - # ASTERIA - - bg_image: '../../assets/images/projects/asteria.png' - bg_position: 50% 75% - name: 'ASTERIA (Arcsecond Space Telescope Enabling Research in Astrophysics)' - type: 'Technology Demonstration, CubeSat/SmallSat' - nasa_center_company: 'NASA JPL' - os: 'Linux' - hw_platform: 'PowerPC' - start_date: 'Aug. 14, 2017' - end_date: 'End of Feb. 2020' - target: 'Exoplanets' - link: 'https://www.jpl.nasa.gov/missions/arcsecond-space-telescope-enabling-research-in-astrophysics-asteria' - image_credit: 'NASA/JPL-Caltech' - # Mars Ingenuity - - bg_image: '../../assets/images/projects/ingenuity.png' - bg_position: 50% 50% - name: 'Mars Helicopter (Ingenuity)' - type: 'Airborne' - nasa_center_company: 'NASA JPL' - os: 'Linux' - hw_platform: 'Qualcomm’s Snapdragon 801' - start_date: 'Jul. 30, 2020' - end_date: 'Ongoing' - target: 'Mars' - link: 'https://mars.nasa.gov/technology/helicopter/' - image_credit: 'NASA/JPL-Caltech' - # Lunar Flashlight - - bg_image: '../../assets/images/projects/lunar-flashlight.png' - bg_position: 50% 50% - name: 'Lunar Flashlight CubeSat' - type: 'Technology Demonstration, CubeSat/SmallSat' - nasa_center_company: 'NASA JPL' - os: 'VxWorks' - hw_platform: 'Sphinx (GR712 - LEON3FT SPARC)' - start_date: 'Dec. 11, 2022' - end_date: 'Ongoing' - target: "Earth's Moon" - link: 'https://www.jpl.nasa.gov/missions/lunar-flashlight' - image_credit: 'NASA/JPL-Caltech' - # NEA Scout - - bg_image: '../../assets/images/projects/nea-scout.png' - bg_position: 50% 50% - name: 'Near Earth Asteroid Scout CubeSat' - type: 'Technology Demonstration, CubeSat/SmallSat' - nasa_center_company: 'NASA JPL' - os: 'VxWorks' - hw_platform: 'Sphinx (GR712 - LEON3FT SPARC)' - start_date: 'Nov. 16, 2022' - end_date: 'Ongoing' - target: 'Asteroids and Comets' - link: 'https://www.jpl.nasa.gov/missions/near-earth-asteroid-scout-neascout' - image_credit: 'MSFC, EMMETT GIVEN' - # OWLS - - bg_image: '../../assets/images/projects/owls.png' - bg_position: 50% 25% - name: 'OWLS (Ocean Worlds Life Surveyor instrument)' - type: 'Instrument' - nasa_center_company: 'NASA JPL' - os: '-' - hw_platform: '-' - start_date: '-' - end_date: '-' - target: 'Ocean Worlds' - link: 'https://www.jpl.nasa.gov/go/owls' - image_credit: 'NASA/JPL-Caltech' - # CADRE - - bg_image: '../../assets/images/projects/cadre.png' - bg_position: 50% 15% - name: 'CADRE (Cooperative Autonomous Distributed Robotic Explorers)' - type: 'Rover, Technology Demonstration' - nasa_center_company: 'NASA JPL' - os: 'Linux' - hw_platform: 'Snapdragon 821' - start_date: '2025' - end_date: '-' - target: "Earth's Moon" - link: 'https://www.jpl.nasa.gov/missions/cadre' - image_credit: 'NASA/JPL-Caltech' - - bg_image: '../../assets/images/projects/coldarm.png' - bg_position: 50% 50% - name: 'COLDArm (Cold Operable Lunar Deployable Arm)' - type: 'Robotic arm' - nasa_center_company: 'NASA JPL' - os: '-' - hw_platform: '-' - start_date: '-' - end_date: '-' - target: 'N/A' - link: 'https://www.nasa.gov/feature/cold-operable-lunar-deployable-arm-coldarm/' - image_credit: 'NASA/JPL-Caltech' - + homepage: https://fprime.jpl.nasa.gov/ # Forces homepage link not to include versioning info @@ -183,9 +67,9 @@ extra_css: plugins: - search # enables search - mike: - # symlink are not allowed in our usage of GH Pages so we have to use copy + # symlink are not allowed in GH Pages so if website needs to be deployed on GH Pages, use `copy` instead # see https://github.blog/changelog/2023-02-21-github-pages-deprecating-symlinks-in-non-actions-builds/ - alias_type: copy + alias_type: symlink canonical_version: latest - open-in-new-tab - multirepo: @@ -258,83 +142,74 @@ markdown_extensions: # Custom navigation nav: - - Home: 'index.md' - - Overview: - - overview/index.md - - 'Powerful Software Architecture': overview/powerful-swa.md - - 'Streamline Software Development': overview/streamline-sd.md - - 'F´ Projects': overview/projects.md + - Home: '../' + - Overview: '../overview' - Getting Started: - - getting-started/index.md - - 'Installation and Troubleshooting': getting-started/installing-fprime.md + - docs/getting-started/index.md + - 'Installation and Troubleshooting': docs/getting-started/installing-fprime.md - Documentation: - - documentation/index.md + - docs/index.md - Tutorials: - - 'Tutorials Overview': documentation/tutorials/index.md + - 'Tutorials Overview': docs/tutorials/index.md - 'Hello World': tutorials-hello-world/docs/hello-world.md - 'LED Blinker': tutorials-led-blinker/docs/led-blinker.md - 'MathComponent': tutorials-math-component/docs/math-component.md - - 'Cross-Compilation Setup': documentation/tutorials/cross-compilation.md + - 'Cross-Compilation Setup': docs/tutorials/cross-compilation.md - 'Arduino LED Blinker': tutorials-arduino-led-blinker/docs/arduino-led-blinker.md - User Manual: - - documentation/user-manual/index.md + - docs/user-manual/index.md - Overview: - - 'Introduction to F´': documentation/user-manual/overview/full-intro.md - - 'The F´ Ground Data System': documentation/user-manual/overview/gds-introduction.md - - 'F´ Development Process': documentation/user-manual/overview/development-practice.md - - 'A Tour of the Source Tree': documentation/user-manual/overview/source-tree.md - - 'Projects and Deployments': documentation/user-manual/overview/proj-dep.md - - 'Core Constructs: Ports, Components, and Topologies': documentation/user-manual/overview/port-comp-top.md - - 'Data Constructs': documentation/user-manual/overview/cmd-evt-chn-prm.md - - 'Data Types and Data Structures': documentation/user-manual/overview/enum-arr-ser.md - - 'Unit Testing F´ Components': documentation/user-manual/overview/unit-testing.md + - 'Introduction to F´': docs/user-manual/overview/full-intro.md + - 'The F´ Ground Data System': docs/user-manual/overview/gds-introduction.md + - 'F´ Development Process': docs/user-manual/overview/development-practice.md + - 'A Tour of the Source Tree': docs/user-manual/overview/source-tree.md + - 'Projects and Deployments': docs/user-manual/overview/proj-dep.md + - 'Core Constructs: Ports, Components, and Topologies': docs/user-manual/overview/port-comp-top.md + - 'Data Constructs': docs/user-manual/overview/cmd-evt-chn-prm.md + - 'Data Types and Data Structures': docs/user-manual/overview/enum-arr-ser.md + - 'Unit Testing F´ Components': docs/user-manual/overview/unit-testing.md - Framework: - - 'Configuring F´': documentation/user-manual/framework/configuring-fprime.md - - 'Autocoded Functions': documentation/user-manual/framework/autocoded-functions.md - - 'Constructing the F´ Topology': documentation/user-manual/framework/building-topology.md - - 'Asserts in F´': documentation/user-manual/framework/assert.md - - 'F´ On Baremetal and Multi-Core Systems': documentation/user-manual/framework/baremetal-multicore.md - - 'Application, Manager, Driver Pattern': documentation/user-manual/framework/app-man-drv.md - - 'Ground Interface': documentation/user-manual/framework/ground-interface.md - - 'Dynamic Memory and Buffer Management': documentation/user-manual/framework/dynamic-memory.md - - 'The Hub Pattern': documentation/user-manual/framework/hub-pattern.md - - 'settings.ini: Build Settings Configuration': documentation/user-manual/framework/settings.md - - 'The F´ CMake Build System': documentation/user-manual/cmake/cmake-intro.md + - 'Configuring F´': docs/user-manual/framework/configuring-fprime.md + - 'Autocoded Functions': docs/user-manual/framework/autocoded-functions.md + - 'Constructing the F´ Topology': docs/user-manual/framework/building-topology.md + - 'Asserts in F´': docs/user-manual/framework/assert.md + - 'F´ On Baremetal and Multi-Core Systems': docs/user-manual/framework/baremetal-multicore.md + - 'Application, Manager, Driver Pattern': docs/user-manual/framework/app-man-drv.md + - 'Ground Interface': docs/user-manual/framework/ground-interface.md + - 'Dynamic Memory and Buffer Management': docs/user-manual/framework/dynamic-memory.md + - 'The Hub Pattern': docs/user-manual/framework/hub-pattern.md + - 'settings.ini: Build Settings Configuration': docs/user-manual/framework/settings.md + - 'The F´ CMake Build System': docs/user-manual/cmake/cmake-intro.md - 'FPP': 'https://nasa.github.io/fpp/fpp-users-guide.html' - GDS: - - "The GDS CLI": documentation/user-manual/gds/gds-cli.md - - 'The GDS Dashboard': documentation/user-manual/gds/gds-custom-dashboards.md - - 'GDS Dashboard Reference': documentation/user-manual/gds/gds-dashboard-reference.md - - 'Integration Test API': documentation/user-manual/gds/gds-test-api-guide.md - - 'Sequencing in F´': documentation/user-manual/gds/seqgen.md + - "The GDS CLI": docs/user-manual/gds/gds-cli.md + - 'The GDS Dashboard': docs/user-manual/gds/gds-custom-dashboards.md + - 'GDS Dashboard Reference': docs/user-manual/gds/gds-dashboard-reference.md + - 'Integration Test API': docs/user-manual/gds/gds-test-api-guide.md + - 'Sequencing in F´': docs/user-manual/gds/seqgen.md - Security: - - 'Software Bill of Materials Generation': documentation/user-manual/security/software-bill-of-materials.md + - 'Software Bill of Materials': docs/user-manual/security/software-bill-of-materials.md - Design: - - 'F´ Software Architecture': documentation/user-manual/design/fprime-architecture.md - - 'Numerical Types Design': documentation/user-manual/design/numerical-types.md - - 'Communication Adapter Interface': documentation/user-manual/design/communication-adapter-interface.md - - 'Package Implementations': documentation/user-manual/design/package-implementations.md - - 'FPP JSON Dictionary Specification': documentation/user-manual/design/fpp-json-dict.md - - 'Rate Groups and Timeliness': documentation/user-manual/design/rate-group.md - - 'F´ Data Products': documentation/user-manual/design/data-products.md - - 'State Machines': documentation/user-manual/design/state-machines.md + - 'F´ Software Architecture': docs/user-manual/design/fprime-architecture.md + - 'Numerical Types Design': docs/user-manual/design/numerical-types.md + - 'Communication Adapter Interface': docs/user-manual/design/communication-adapter-interface.md + - 'Package Implementations': docs/user-manual/design/package-implementations.md + - 'FPP JSON Dictionary Specification': docs/user-manual/design/fpp-json-dict.md + - 'Rate Groups and Timeliness': docs/user-manual/design/rate-group.md + - 'F´ Data Products': docs/user-manual/design/data-products.md + - 'State Machines': docs/user-manual/design/state-machines.md - How To: - - documentation/how-to/index.md - - 'F´ Library Development': documentation/how-to/develop-fprime-libraries.md - - 'F´ Subtopology Development': documentation/how-to/develop-subtopologies.md - - 'F´ GDS Plugin Development': documentation/how-to/develop-gds-plugins.md - - 'Porting F´ To a New Platform': documentation/how-to/porting-guide.md + - docs/how-to/index.md + - 'F´ Library Development': docs/how-to/develop-fprime-libraries.md + - 'F´ Subtopology Development': docs/how-to/develop-subtopologies.md + - 'F´ GDS Plugin Development': docs/how-to/develop-gds-plugins.md + - 'Porting F´ To a New Platform': docs/how-to/porting-guide.md - Reference: - - documentation/reference/index.md - - 'C++ Documentation': 'documentation/reference/api/cpp/html/index.html' - - 'Software Design Documents': 'documentation/reference/sdd/index.md' + - docs/reference/index.md + - 'C++ Documentation': docs/reference/api/cpp/html/index.html + - 'F´ Components SDDs': docs/reference/sdd.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 - - Support: - - support/index.md - - 'Publications': support/publications.md - - Events: - - events/index.md - - events/event-request.md - + - 'CMake User API': docs/user-manual/cmake/cmake-api.md + - 'GDS Developers Guide': docs/reference/gds-cli-dev.md + - Support: '../support' + - Events: '../events' diff --git a/docs/overview/index.md b/docs/overview/index.md deleted file mode 100644 index 0908cda18c..0000000000 --- a/docs/overview/index.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: F Prime Overview -template: overview.html ---- - -[View the F Prime Overview page here](https://fprime.jpl.nasa.gov/latest/overview/) \ No newline at end of file diff --git a/docs/overview/powerful-swa.md b/docs/overview/powerful-swa.md deleted file mode 100644 index 80ff56285b..0000000000 --- a/docs/overview/powerful-swa.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Powerful Software Architecture -template: powerful-swa.html ---- - -[Learn more about F Prime's Powerful Software Architecture here](https://fprime.jpl.nasa.gov/latest/overview/powerful-swa) \ No newline at end of file diff --git a/docs/overview/projects.md b/docs/overview/projects.md deleted file mode 100644 index 4e2dd7cfd6..0000000000 --- a/docs/overview/projects.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Projects -template: projects.html ---- - -[View the F Prime Projects page here](https://fprime.jpl.nasa.gov/latest/overview/projects/) \ No newline at end of file diff --git a/docs/overview/streamline-sd.md b/docs/overview/streamline-sd.md deleted file mode 100644 index cb6237ec63..0000000000 --- a/docs/overview/streamline-sd.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Streamline Software Development -template: streamline-sd.html ---- - -[Learn more about how to streamline software development with F Prime here](https://fprime.jpl.nasa.gov/latest/overview/streamline-sd) \ No newline at end of file diff --git a/docs/documentation/reference/gds-cli-dev.md b/docs/reference/gds-cli-dev.md similarity index 98% rename from docs/documentation/reference/gds-cli-dev.md rename to docs/reference/gds-cli-dev.md index ee1c428aca..04a6a5d6c2 100644 --- a/docs/documentation/reference/gds-cli-dev.md +++ b/docs/reference/gds-cli-dev.md @@ -42,7 +42,7 @@ This guide is for programmers who intend to maintain and develop code for the Gr ### Intended -![](../../img/proposed_architecture.png) +![](../img/proposed_architecture.png) The intended architecture for the CLI is: @@ -56,7 +56,7 @@ The CLI will interact with the GDS through an appropriate API, which the CLI mod Not including imports used only for type hints, or dependencies for modules not part of the GDS CLI source code (generated using [pydeps](https://pydeps.readthedocs.io/en/latest/): -![](../../img/overall_dependencies_edited.png) +![](../img/overall_dependencies_edited.png) > [!NOTE] > The above graph has arrows pointing **to** the module that does the importing and away from the dependency, and does not include Python standard library imports. @@ -67,7 +67,7 @@ Not including imports used only for type hints, or dependencies for modules not ### Dataflow -![](../../img/cli_data_flow.svg) +![](../img/cli_data_flow.svg) ### Dependencies diff --git a/docs/documentation/reference/index.md b/docs/reference/index.md similarity index 64% rename from docs/documentation/reference/index.md rename to docs/reference/index.md index e2ee283179..df5242cb79 100644 --- a/docs/documentation/reference/index.md +++ b/docs/reference/index.md @@ -18,13 +18,21 @@ Technical reference for the F Prime C++ API, CMake API, FPP language specificati [View C++ Documentation](./api/cpp/html/index.html){ .md-button .md-button--primary } -- __FPP Documentation__ +- __F´ Components SDDs__ + + --- + + Software Design Documents (SDD) capture the design of the F´ core components. + + [View F´ Components SDDs](sdd.md){ .md-button .md-button--primary } + +- __FPP Language Specification__ --- This document describes F Prime Prime, also known as FPP or F Double Prime. - [View FPP Documentation](fpp-user-guide.md){ .md-button .md-button--primary } + [View FPP Language Spec](https://nasa.github.io/fpp/fpp-spec.html){ .md-button .md-button--primary } - __CMake User API__ @@ -34,13 +42,5 @@ Technical reference for the F Prime C++ API, CMake API, FPP language specificati [View CMake User API Documentation](../user-manual/cmake/cmake-api.md){ .md-button .md-button--primary } -- __GDS CLI Design__ - - --- - - This guide is for programmers who intend to maintain and develop code for the Ground Data System's command-line interface suite. - - [View GDS CLI - Developer's Guide](gds-cli-dev.md){ .md-button .md-button--primary } - \ No newline at end of file diff --git a/docs/reference/sdd.md b/docs/reference/sdd.md new file mode 100644 index 0000000000..4a4b06ee3d --- /dev/null +++ b/docs/reference/sdd.md @@ -0,0 +1,6 @@ +# F´ Components SDDs + +Software Design Documents (SDD) 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/support/index.md b/docs/support/index.md deleted file mode 100644 index 8d672adaf7..0000000000 --- a/docs/support/index.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Support -template: support.html ---- - -[View the F Prime Support page here](https://fprime.jpl.nasa.gov/latest/support/) \ No newline at end of file diff --git a/docs/support/publications.md b/docs/support/publications.md deleted file mode 100644 index 52358facde..0000000000 --- a/docs/support/publications.md +++ /dev/null @@ -1,4 +0,0 @@ -# Publications - -- [F Prime: An Open-Source Framework for Small-Scale Flight Software Systems](https://digitalcommons.usu.edu/smallsat/2018/all2018/328/) -- [FPP: A Modeling Language for F Prime](https://dataverse.jpl.nasa.gov/dataset.xhtml?persistentId=hdl:2014/55048) \ No newline at end of file diff --git a/docs/documentation/tutorials/cross-compilation.md b/docs/tutorials/cross-compilation.md similarity index 100% rename from docs/documentation/tutorials/cross-compilation.md rename to docs/tutorials/cross-compilation.md diff --git a/docs/documentation/tutorials/img/rancher-config.png b/docs/tutorials/img/rancher-config.png similarity index 100% rename from docs/documentation/tutorials/img/rancher-config.png rename to docs/tutorials/img/rancher-config.png diff --git a/docs/documentation/tutorials/img/rancher-running.png b/docs/tutorials/img/rancher-running.png similarity index 100% rename from docs/documentation/tutorials/img/rancher-running.png rename to docs/tutorials/img/rancher-running.png diff --git a/docs/documentation/tutorials/index.md b/docs/tutorials/index.md similarity index 89% rename from docs/documentation/tutorials/index.md rename to docs/tutorials/index.md index 60baa6ebed..0eeff4caa2 100644 --- a/docs/documentation/tutorials/index.md +++ b/docs/tutorials/index.md @@ -15,7 +15,7 @@ Tutorials walk through the essentials of F Prime development, starting with the The Hello World tutorial shows how to create an F Prime project and how to design, implement, and test a basic F Prime component. We recommend that new users of F Prime start with this tutorial. - [View Hello World Tutorial](../../tutorials-hello-world/docs/hello-world/){ .md-button .md-button--primary } + [View Hello World Tutorial](../../tutorials-hello-world/docs/hello-world.md){ .md-button .md-button--primary } - __LED Blinker__ @@ -26,7 +26,7 @@ Tutorials walk through the essentials of F Prime development, starting with the > [!NOTE] > This tutorial can be run without hardware with the exception of section 6 “Running on Hardware”. - [View LED Blinker Tutorial](../../tutorials-led-blinker/docs/led-blinker/){ .md-button .md-button--primary } + [View LED Blinker Tutorial](../../tutorials-led-blinker/docs/led-blinker.md){ .md-button .md-button--primary } - __Math Component__ @@ -34,7 +34,7 @@ Tutorials walk through the essentials of F Prime development, starting with the The Math Component tutorial shows how to construct an F Prime application with user-defined ports and data types. It covers more advanced uses of events, telemetry, commands, and parameters. It also covers unit testing of F Prime components. - [View Math Component Tutorial](../../tutorials-math-component/docs/math-component/){ .md-button .md-button--primary } + [View Math Component Tutorial](../../tutorials-math-component/docs/math-component.md){ .md-button .md-button--primary } - __Cross-Compilation Setup Tutorial__ @@ -50,7 +50,7 @@ Tutorials walk through the essentials of F Prime development, starting with the This project is an implementation of the F´ LED Blinker ARM Linux Tutorial which will allow you to test on Arduino-based microcontrollers using the `fprime-arduino` toolchain instead of `fprime-arm-linux`. - [View Arduino LED Blinker Tutorial](../../tutorials-arduino-led-blinker/docs/arduino-led-blinker/){ .md-button .md-button--primary } + [View Arduino LED Blinker Tutorial](../../tutorials-arduino-led-blinker/docs/arduino-led-blinker.md){ .md-button .md-button--primary } \ No newline at end of file diff --git a/docs/documentation/user-manual/cmake/Customization.md b/docs/user-manual/cmake/Customization.md similarity index 100% rename from docs/documentation/user-manual/cmake/Customization.md rename to docs/user-manual/cmake/Customization.md diff --git a/docs/documentation/user-manual/cmake/Targets.md b/docs/user-manual/cmake/Targets.md similarity index 100% rename from docs/documentation/user-manual/cmake/Targets.md rename to docs/user-manual/cmake/Targets.md diff --git a/docs/documentation/user-manual/cmake/cmake-advanced.md b/docs/user-manual/cmake/cmake-advanced.md similarity index 100% rename from docs/documentation/user-manual/cmake/cmake-advanced.md rename to docs/user-manual/cmake/cmake-advanced.md diff --git a/docs/documentation/user-manual/cmake/cmake-api.md b/docs/user-manual/cmake/cmake-api.md similarity index 100% rename from docs/documentation/user-manual/cmake/cmake-api.md rename to docs/user-manual/cmake/cmake-api.md diff --git a/docs/documentation/user-manual/cmake/cmake-intro.md b/docs/user-manual/cmake/cmake-intro.md similarity index 100% rename from docs/documentation/user-manual/cmake/cmake-intro.md rename to docs/user-manual/cmake/cmake-intro.md diff --git a/docs/documentation/user-manual/cmake/cmake-platforms.md b/docs/user-manual/cmake/cmake-platforms.md similarity index 100% rename from docs/documentation/user-manual/cmake/cmake-platforms.md rename to docs/user-manual/cmake/cmake-platforms.md diff --git a/docs/documentation/user-manual/cmake/cmake-toolchains.md b/docs/user-manual/cmake/cmake-toolchains.md similarity index 100% rename from docs/documentation/user-manual/cmake/cmake-toolchains.md rename to docs/user-manual/cmake/cmake-toolchains.md diff --git a/docs/documentation/user-manual/cmake/cmake-uts.md b/docs/user-manual/cmake/cmake-uts.md similarity index 100% rename from docs/documentation/user-manual/cmake/cmake-uts.md rename to docs/user-manual/cmake/cmake-uts.md diff --git a/docs/documentation/user-manual/cmake/img/CMake - Architecture.png b/docs/user-manual/cmake/img/CMake - Architecture.png similarity index 100% rename from docs/documentation/user-manual/cmake/img/CMake - Architecture.png rename to docs/user-manual/cmake/img/CMake - Architecture.png diff --git a/docs/documentation/user-manual/cmake/img/CMake File Organization.png b/docs/user-manual/cmake/img/CMake File Organization.png similarity index 100% rename from docs/documentation/user-manual/cmake/img/CMake File Organization.png rename to docs/user-manual/cmake/img/CMake File Organization.png diff --git a/docs/documentation/user-manual/cmake/img/CMake Lists Hierarchy.png b/docs/user-manual/cmake/img/CMake Lists Hierarchy.png similarity index 100% rename from docs/documentation/user-manual/cmake/img/CMake Lists Hierarchy.png rename to docs/user-manual/cmake/img/CMake Lists Hierarchy.png diff --git a/docs/documentation/user-manual/cmake/img/CMake Ops - Old Style.png b/docs/user-manual/cmake/img/CMake Ops - Old Style.png similarity index 100% rename from docs/documentation/user-manual/cmake/img/CMake Ops - Old Style.png rename to docs/user-manual/cmake/img/CMake Ops - Old Style.png diff --git a/docs/documentation/user-manual/cmake/img/CMake Ops - Recommended.png b/docs/user-manual/cmake/img/CMake Ops - Recommended.png similarity index 100% rename from docs/documentation/user-manual/cmake/img/CMake Ops - Recommended.png rename to docs/user-manual/cmake/img/CMake Ops - Recommended.png diff --git a/docs/documentation/user-manual/cmake/img/CMake Ops - Traditional.png b/docs/user-manual/cmake/img/CMake Ops - Traditional.png similarity index 100% rename from docs/documentation/user-manual/cmake/img/CMake Ops - Traditional.png rename to docs/user-manual/cmake/img/CMake Ops - Traditional.png diff --git a/docs/documentation/user-manual/design/communication-adapter-interface.md b/docs/user-manual/design/communication-adapter-interface.md similarity index 98% rename from docs/documentation/user-manual/design/communication-adapter-interface.md rename to docs/user-manual/design/communication-adapter-interface.md index 3347817a38..2286151c18 100644 --- a/docs/documentation/user-manual/design/communication-adapter-interface.md +++ b/docs/user-manual/design/communication-adapter-interface.md @@ -6,7 +6,7 @@ to operate with the standard F´ uplink and downlink components. Implementors of this interface are referred to as *Communication Adapters*. -![Communication Adapter Interface](../../../img/com-adapter.png) +![Communication Adapter Interface](../../img/com-adapter.png) The communication adapter interface protocol is designed to work alongside the framer status protocol and the com queue protocol to ensure that data messages do not overload a communication interface. These protocols are discussed below. diff --git a/docs/documentation/user-manual/design/data-products.md b/docs/user-manual/design/data-products.md similarity index 94% rename from docs/documentation/user-manual/design/data-products.md rename to docs/user-manual/design/data-products.md index 0c7c22885f..05231ede77 100644 --- a/docs/documentation/user-manual/design/data-products.md +++ b/docs/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/sdd/Svc/DpManager/docs/sdd.md). + See [`Svc::DpManager`](../../../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/sdd/Svc/DpWriter/docs/sdd.md). + storage. See [`Svc::DpWriter`](../../../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/sdd/Svc/DpCatalog/docs/sdd.md). + See [`Svc::DpCatalog`](../../../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/sdd/Fw/Dp/docs/sdd.md). +1. A **product get port** of type [`Fw::DpGet`](../../../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/sdd/Fw/Dp/docs/sdd.md). +1. A **product request port** of type [`Fw::DpRequest`](../../../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/sdd/Fw/Dp/docs/sdd.md). +1. A **product receive port** of type [`Fw::DpResponse`](../../../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/sdd/Fw/Dp/docs/sdd.md). +1. A **product send port** of type [`Fw::DpSend`](../../../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/sdd/Fw/Dp/docs/sdd.md) and represents a container +[`Fw::DpContainer`](../../../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/sdd/Fw/Dp/docs/sdd.md). +for [`Fw::DpContainer`](../../../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/sdd/Svc/DpManager/docs/sdd.md). +[`Svc::DpManager`](../../../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/sdd/Svc/DpWriter/docs/sdd.md). +[`Svc::DpWriter`](../../../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/sdd/Svc/DpCatalog/docs/sdd.md). +see [`Svc::DpCatalog`](../../../Svc/DpCatalog/docs/sdd.md). **Processing data products:** TODO diff --git a/docs/documentation/user-manual/design/fpp-json-dict.md b/docs/user-manual/design/fpp-json-dict.md similarity index 100% rename from docs/documentation/user-manual/design/fpp-json-dict.md rename to docs/user-manual/design/fpp-json-dict.md diff --git a/docs/documentation/user-manual/design/fprime-architecture.md b/docs/user-manual/design/fprime-architecture.md similarity index 100% rename from docs/documentation/user-manual/design/fprime-architecture.md rename to docs/user-manual/design/fprime-architecture.md diff --git a/docs/documentation/user-manual/design/numerical-types.md b/docs/user-manual/design/numerical-types.md similarity index 100% rename from docs/documentation/user-manual/design/numerical-types.md rename to docs/user-manual/design/numerical-types.md diff --git a/docs/documentation/user-manual/design/package-implementations.md b/docs/user-manual/design/package-implementations.md similarity index 100% rename from docs/documentation/user-manual/design/package-implementations.md rename to docs/user-manual/design/package-implementations.md diff --git a/docs/documentation/user-manual/design/rate-group.md b/docs/user-manual/design/rate-group.md similarity index 98% rename from docs/documentation/user-manual/design/rate-group.md rename to docs/user-manual/design/rate-group.md index 8b651a399d..c4d3cdfdd7 100644 --- a/docs/documentation/user-manual/design/rate-group.md +++ b/docs/user-manual/design/rate-group.md @@ -7,7 +7,7 @@ groups". The `ActiveRateGroup` component contains multiple output `Sched` ports rate. Thus, components having an input `Sched` port can run a repeated action at this rate. Rate groups are driven by a central rate group driver and achieve their rates by dividing the incoming signal from the rate group driver. -![Rate Groups](../../../img/rate_group.png) +![Rate Groups](../../img/rate_group.png) ## Rate Group Driver diff --git a/docs/documentation/user-manual/design/state-machines.md b/docs/user-manual/design/state-machines.md similarity index 99% rename from docs/documentation/user-manual/design/state-machines.md rename to docs/user-manual/design/state-machines.md index 06c398a731..296644c7b6 100644 --- a/docs/documentation/user-manual/design/state-machines.md +++ b/docs/user-manual/design/state-machines.md @@ -223,7 +223,7 @@ class for _M_](#sm-base-class). The following class diagram shows these properties, for a state machine `A.B.M` instantiated in a component `C`: -![State Machine Implementation Class Diagram](../../../img/sm-impl-class-diagram.png) +![State Machine Implementation Class Diagram](../../img/sm-impl-class-diagram.png) Each state machine implementation class has the following elements in its interface. diff --git a/docs/documentation/user-manual/framework/app-man-drv.md b/docs/user-manual/framework/app-man-drv.md similarity index 98% rename from docs/documentation/user-manual/framework/app-man-drv.md rename to docs/user-manual/framework/app-man-drv.md index 297df09163..d0c002f5b3 100644 --- a/docs/documentation/user-manual/framework/app-man-drv.md +++ b/docs/user-manual/framework/app-man-drv.md @@ -40,7 +40,7 @@ are typically three layers to this design pattern: These layers are further discussed below using the example shown in Figure 1. Each layer defines components for only that layer’s functionality. -![Application Manager Driver](../../../img/app_man_drv1.png) +![Application Manager Driver](../../img/app_man_drv1.png) **Figure 1.** The three layers to a component model as shown in an example that drives a robotic arm using four servos attached to an I2C bus. diff --git a/docs/documentation/user-manual/framework/assert.md b/docs/user-manual/framework/assert.md similarity index 100% rename from docs/documentation/user-manual/framework/assert.md rename to docs/user-manual/framework/assert.md diff --git a/docs/documentation/user-manual/framework/autocoded-functions.md b/docs/user-manual/framework/autocoded-functions.md similarity index 100% rename from docs/documentation/user-manual/framework/autocoded-functions.md rename to docs/user-manual/framework/autocoded-functions.md diff --git a/docs/documentation/user-manual/framework/baremetal-multicore.md b/docs/user-manual/framework/baremetal-multicore.md similarity index 100% rename from docs/documentation/user-manual/framework/baremetal-multicore.md rename to docs/user-manual/framework/baremetal-multicore.md diff --git a/docs/documentation/user-manual/framework/building-topology.md b/docs/user-manual/framework/building-topology.md similarity index 100% rename from docs/documentation/user-manual/framework/building-topology.md rename to docs/user-manual/framework/building-topology.md diff --git a/docs/documentation/user-manual/framework/configuring-fprime.md b/docs/user-manual/framework/configuring-fprime.md similarity index 100% rename from docs/documentation/user-manual/framework/configuring-fprime.md rename to docs/user-manual/framework/configuring-fprime.md diff --git a/docs/documentation/user-manual/framework/dynamic-memory.md b/docs/user-manual/framework/dynamic-memory.md similarity index 98% rename from docs/documentation/user-manual/framework/dynamic-memory.md rename to docs/user-manual/framework/dynamic-memory.md index 09397fdab3..0fd3e44931 100644 --- a/docs/documentation/user-manual/framework/dynamic-memory.md +++ b/docs/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/sdd/Svc/StaticMemory/docs/sdd.md). +[Svc.StaticMemory is described in more detail](../../../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 SDD](../../reference/sdd/Svc/BufferManager/docs/sdd.md). +For more details, see the [Svc.BufferManager SDD](../../../Svc/BufferManager/docs/sdd.md). **When To Use Svc.BufferManager** diff --git a/docs/documentation/user-manual/framework/ground-interface.md b/docs/user-manual/framework/ground-interface.md similarity index 97% rename from docs/documentation/user-manual/framework/ground-interface.md rename to docs/user-manual/framework/ground-interface.md index 08026d58a0..6aca395b93 100644 --- a/docs/documentation/user-manual/framework/ground-interface.md +++ b/docs/user-manual/framework/ground-interface.md @@ -12,7 +12,7 @@ have two layers: framing and driver. Uplink handles data coming from the remote data going to the remote interface, framing handles serializing and deserializing data to and from byte buffers, and the driver layer handles writing data to and from the hardware. -![Ground Interface Block Diagram](../../../img/ground-interface.jpg) +![Ground Interface Block Diagram](../../img/ground-interface.jpg) Also of note is the framing protocol, which breaks out the handling of the byte serialization for quick adaptation. Each @@ -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/sdd/Svc/Deframer/docs/sdd.md) component. This component may be rate group driven in which case +the [Svc.Deframer](../../../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/sdd/Svc/Framer/docs/sdd.md) +sent to the driver for handling. Downlink is implemented with the [Svc.Framer](../../../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/user-manual/framework/hub-pattern.md similarity index 90% rename from docs/documentation/user-manual/framework/hub-pattern.md rename to docs/user-manual/framework/hub-pattern.md index 0f1d1ef169..49aa5cd6b5 100644 --- a/docs/documentation/user-manual/framework/hub-pattern.md +++ b/docs/user-manual/framework/hub-pattern.md @@ -8,7 +8,7 @@ connected to the Hub's serialization ports. These ports allow any inputs which s across the divide. On the other side of the divide, the Hub unwraps the calls back into the typed ports. In this way, typed ports are connected to typed ports using the Hub as an intermediary to get across the divide. -![Hub Pattern](../../../img/data_model6.png) +![Hub Pattern](../../img/data_model6.png) **Figure 9. Hub pattern.** Each hub instance is responsible for connecting to a remote node. Input port calls are repeated to corresponding output ports on a remote hub. These hubs have been demonstrated on Sockets, @@ -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/sdd/Svc/GenericHub/docs/sdd.md) is an +There is now a standard implementation of the hub pattern. The [GenericHub](../../../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/documentation/user-manual/framework/settings.md b/docs/user-manual/framework/settings.md similarity index 100% rename from docs/documentation/user-manual/framework/settings.md rename to docs/user-manual/framework/settings.md diff --git a/docs/documentation/user-manual/gds/gds-cli.md b/docs/user-manual/gds/gds-cli.md similarity index 99% rename from docs/documentation/user-manual/gds/gds-cli.md rename to docs/user-manual/gds/gds-cli.md index 5c669af8f6..e33145e29a 100644 --- a/docs/documentation/user-manual/gds/gds-cli.md +++ b/docs/user-manual/gds/gds-cli.md @@ -21,7 +21,7 @@ in more environments. - [events](#events) - [Conclusion](#conclusion) -![Landing Image](../../../img/gds_cli_user_guide_cover.png) +![Landing Image](../../img/gds_cli_user_guide_cover.png) ## What is `fprime-cli`? @@ -46,7 +46,7 @@ Let's see how you can use these for yourself! `fprime-cli` is automatically installed when installing F´. In order to use it, make sure that your virtual environment has been activated. To ensure the tool is ready, run `fprime-cli -h` and you should see the help usage. If an error is -received, ensure F´ is properly installed via [the installation guide](../../../getting-started/installing-fprime.md) and that your virtual +received, ensure F´ is properly installed via [the installation guide](../../getting-started/installing-fprime.md) and that your virtual environment has been activated. `fprime-cli` connects to the `fprime-gds` ground system layer. Should the user wish to run `fprime-cli` make sure to diff --git a/docs/documentation/user-manual/gds/gds-custom-dashboards.md b/docs/user-manual/gds/gds-custom-dashboards.md similarity index 98% rename from docs/documentation/user-manual/gds/gds-custom-dashboards.md rename to docs/user-manual/gds/gds-custom-dashboards.md index 2a09dccf56..d0f81b9e12 100644 --- a/docs/documentation/user-manual/gds/gds-custom-dashboards.md +++ b/docs/user-manual/gds/gds-custom-dashboards.md @@ -23,7 +23,7 @@ A more complete reference is available here: [GDS Dashboard Reference](gds-dashb - [An Example Dashboard Configuration](#an-example-dashboard-configuration) - [Conclusion](#conclusion) -![Dashboard Intro](../../../img/dashboard_header.png) +![Dashboard Intro](../../img/dashboard_header.png) ## How to Use the Dashboard @@ -114,7 +114,7 @@ This section will provide an example dashboard configuration file. It shows how structural components as well as examples of using the existing F´ display components. The dashboard we will explore will be rendered into the following display. -![Example ](../../../img/example_dashboard.png) +![Example ](../../img/example_dashboard.png) This view was rendered from the following XML. It is designed to be somewhat self-descriptive and should act as a good starting point for building your own dashboards. diff --git a/docs/documentation/user-manual/gds/gds-dashboard-reference.md b/docs/user-manual/gds/gds-dashboard-reference.md similarity index 100% rename from docs/documentation/user-manual/gds/gds-dashboard-reference.md rename to docs/user-manual/gds/gds-dashboard-reference.md diff --git a/docs/documentation/user-manual/gds/gds-test-api-guide.md b/docs/user-manual/gds/gds-test-api-guide.md similarity index 99% rename from docs/documentation/user-manual/gds/gds-test-api-guide.md rename to docs/user-manual/gds/gds-test-api-guide.md index 2784f58648..5d1736c5a1 100644 --- a/docs/documentation/user-manual/gds/gds-test-api-guide.md +++ b/docs/user-manual/gds/gds-test-api-guide.md @@ -529,7 +529,7 @@ The `start` argument specifies the Current Search Scope in an existing history. The `timeout` argument specifies the Future Search Scope (FSS) in seconds. FSS is how long a search should await until the search criteria is met. Searches that await a yet-to-be-received item can only specify how long in seconds. A `timeout` of zero seconds will skip awaiting at all. -![Search Scope diagram](../../../img/APISearchScope.png) +![Search Scope diagram](../../img/APISearchScope.png) All search methods can either be configured with CSS, FSS, or both. @@ -592,7 +592,7 @@ There are four columns in this file. They are summarized in the table below: | Message| A string message recording test behavior. The following image is an excerpt from an API log generated by the Ref App integration tests. -![Test Log Example](../../../img/TestLogExample.png) +![Test Log Example](../../img/TestLogExample.png) The following table summarizes the color meanings from API-generated messages. diff --git a/docs/documentation/user-manual/gds/seqgen.md b/docs/user-manual/gds/seqgen.md similarity index 100% rename from docs/documentation/user-manual/gds/seqgen.md rename to docs/user-manual/gds/seqgen.md diff --git a/docs/documentation/user-manual/index.md b/docs/user-manual/index.md similarity index 100% rename from docs/documentation/user-manual/index.md rename to docs/user-manual/index.md diff --git a/docs/documentation/user-manual/overview/cmd-evt-chn-prm.md b/docs/user-manual/overview/cmd-evt-chn-prm.md similarity index 97% rename from docs/documentation/user-manual/overview/cmd-evt-chn-prm.md rename to docs/user-manual/overview/cmd-evt-chn-prm.md index 71e846a704..6d7cd18621 100644 --- a/docs/documentation/user-manual/overview/cmd-evt-chn-prm.md +++ b/docs/user-manual/overview/cmd-evt-chn-prm.md @@ -52,7 +52,7 @@ When commands are defined for a component, the autocoder automatically adds port commands, and reporting an execution status when finished. Each component that handles commands should be hooked up to the command dispatcher connecting the registration, dispatch, and response ports in parallel. -![Command Dispatcher](../../../img/data_model1.png) +![Command Dispatcher](../../img/data_model1.png) **Figure 4. Command dispatcher.** The command dispatcher receives the raw buffer containing the command and arguments. The command opcode is extracted, and a lookup table is used to find the handling component. The argument buffer is then @@ -65,7 +65,7 @@ to the command dispatcher through the command sequencer is an alternate path to ### Command Sequencing -![Command Sequencer](../../../img/data_model2.png) +![Command Sequencer](../../img/data_model2.png) **Figure 5. Command sequence.** The command sequencer loads a sequence file from the file system, sends the command, and waits for the response for each command in the sequence. A failed response terminates the sequence, @@ -112,7 +112,7 @@ Events first acquire a time tag to represent when they occurred and then are typ component on their way to be sent down to the ground. This logger component both processes the event and also recognizes and begins responses for FATAL severity events. -![Active Logger](../../../img/data_model3.png) +![Active Logger](../../img/data_model3.png) **Figure 6. Event log.** The component implementation calls a function to generate the event. The base class retrieves the time tag from the time source component. The component sends the event to the event log component, which reads it from @@ -140,7 +140,7 @@ The telemetry database acts as a double-buffered store for telemetry values. Com any time; however, the current value will be read from the telemetry database and sent to the ground at a set rate. Components using this service should hook up the telemetry port to the telemetry database (`Svc::TlmChan`). -![Telemetry Database](../../../img/data_model4.png) +![Telemetry Database](../../img/data_model4.png) **Figure 7. Telemetry database.** The telemetry database has a double-buffered array of telemetry buffers. The base class function retrieves the time tag from the time source component and then writes the updated value to the telemetry @@ -169,7 +169,7 @@ implementation class can retrieve the value whenever the parameter value is need The framework provides the ability to store these parameters in the parameter database (`Svc::PrmDb`). This component provides ports to get and set parameters, which are stored in a file to persist across reboots. -![Parameter Database](../../../img/data_model5.png) +![Parameter Database](../../img/data_model5.png) **Figure 8. Parameter manager.** The parameter manager or database loads the file containing parameters from the file system during initialization. The initialization subsequently calls *loadParameters()* on components with parameters. diff --git a/docs/documentation/user-manual/overview/development-practice.md b/docs/user-manual/overview/development-practice.md similarity index 100% rename from docs/documentation/user-manual/overview/development-practice.md rename to docs/user-manual/overview/development-practice.md diff --git a/docs/documentation/user-manual/overview/enum-arr-ser.md b/docs/user-manual/overview/enum-arr-ser.md similarity index 100% rename from docs/documentation/user-manual/overview/enum-arr-ser.md rename to docs/user-manual/overview/enum-arr-ser.md diff --git a/docs/documentation/user-manual/overview/full-intro.md b/docs/user-manual/overview/full-intro.md similarity index 100% rename from docs/documentation/user-manual/overview/full-intro.md rename to docs/user-manual/overview/full-intro.md diff --git a/docs/documentation/user-manual/overview/gds-introduction.md b/docs/user-manual/overview/gds-introduction.md similarity index 96% rename from docs/documentation/user-manual/overview/gds-introduction.md rename to docs/user-manual/overview/gds-introduction.md index d4ec790a94..140c382480 100644 --- a/docs/documentation/user-manual/overview/gds-introduction.md +++ b/docs/user-manual/overview/gds-introduction.md @@ -25,7 +25,7 @@ will give you a quick introduction to what the F´ GDS is and how you can use it - [Dashboard](#dashboard) - [Conclusion](#conclusion) -![GDS Image](../../../img/gds_gui_events.png) +![GDS Image](../../img/gds_gui_events.png) ## What is the GDS? @@ -46,7 +46,7 @@ project too! ## Getting Started The F´ GDS is a minimal amount of Python code and JavaScript that is automatically installed when you run the F´ -installation instructions in the [installation guide](../../../getting-started/installing-fprime.md). This guide will walk the user through running +installation instructions in the [installation guide](../../getting-started/installing-fprime.md). This guide will walk the user through running the GDS, setting options, and letting the user loose to run the system. @@ -194,7 +194,7 @@ optional arguments: When running the GDS using the default UI, the GDS should launch a browser tab that looks similar to the following. In general, the available tabs are listed across the top and each view can be selected by clicking on those tabs. -![Launched Browser Window](../../../img/gds_gui_commanding.png) +![Launched Browser Window](../../img/gds_gui_commanding.png) Across the top of the screen is a series of tabs: "Commanding", "Events", etc. Each of those tabs represents a piece of the GDS's functionality. Each view opens when you click on it. Next, we'll go through each tab's functions in more @@ -225,7 +225,7 @@ arguments through the GDS and to the embedded system, while "Clear Arguments" wi to their default values. Should an error occur in the GDS, it will be shown below the inputs. The commanding tab is shown below. See: [Commands](cmd-evt-chn-prm.md#commands) -![Commanding Tab](../../../img/gds_gui_commanding.png) +![Commanding Tab](../../img/gds_gui_commanding.png) Below the command input is the "Command History" table. This records all the commands sent with their associated @@ -240,7 +240,7 @@ sending component and is useful to retry the transmission of a command. The Events tab will display a table of all the "Events" that have happened on the embedded system and been received by the GDS. See: [Events](cmd-evt-chn-prm.md#events). The Events tab is shown below. -![Events Tab](../../../img/gds_gui_events.png) +![Events Tab](../../img/gds_gui_events.png) Each event is color-coded based on its "Event Severity;" there are 7 different kinds of severities: @@ -266,7 +266,7 @@ embedded system. These represent the latest values and, by default, only telemet by the GDS are shown. Channels with no received value are not displayed but can be configured (described below). Only the most recently received value for each channel is shown. This view can be seen below. -![Channel GUIs](../../../img/gds_gui_channels.png) +![Channel GUIs](../../img/gds_gui_channels.png) If you want to view a full list of all available channels, set a view to watch specific channels, or monitor all channels even those which have not arrived, you can click on the "Edit View". This will show all available channels @@ -275,7 +275,7 @@ To apply the view, click the "Done". Import and Export allow downloading and up views such that they may be saved. The "Edit View" is shown below. -![Channel Edit GUIs](../../../img/gds_gui_channels_edit.png) +![Channel Edit GUIs](../../img/gds_gui_channels_edit.png) Just like the other tables, you can sort or filter these channel items. @@ -289,7 +289,7 @@ before committing to an uplink. Finally, the user should press the "Submit Uplin add them to the outgoing queue, and start the uplink. Uplink progress can be monitored and the queue can be paused to temporarily stop the uplink. Files are limited to no more than 32Mb. -![Uplink Tab](../../../img/gds_gui_uplink.png) +![Uplink Tab](../../img/gds_gui_uplink.png) ### Downlink @@ -297,7 +297,7 @@ The downlink tab monitors the downlink of files into the GDS. Any files that hav `fileDownlink.FileDownlink_SendFile` command will be tracked in this tab once the packets arrive in the F´ GDS. The progress of this download is tracked, and once the file has been downlinked, the user has the ability to download the files. -![Downlink](../../../img/gds_gui_downlink.png) +![Downlink](../../img/gds_gui_downlink.png) ### Logs @@ -305,7 +305,7 @@ The logs tab allows the user to monitor logs produced on-disk by the GDS. This i see those without going to the GDS server's ground system. Select a log from the list to see its contents, which update in real time. -![Logs](../../../img/gds_gui_logs.png) +![Logs](../../img/gds_gui_logs.png) There are several standard logs that appear: - `ThreadedTCP.log`: log from the GDS middleware server linking comm to the GDS actual @@ -322,7 +322,7 @@ The dashboard lets users combine the tools from the other tabs onto a single scr interface for working with the GDS. You can learn more about how this works in the [Dashboard guide](../gds/gds-custom-dashboards.md). An example is shown below: -![Dashboard](../../../img/dashboard_header.png) +![Dashboard](../../img/dashboard_header.png) ## Conclusion diff --git a/docs/documentation/user-manual/overview/port-comp-top.md b/docs/user-manual/overview/port-comp-top.md similarity index 97% rename from docs/documentation/user-manual/overview/port-comp-top.md rename to docs/user-manual/overview/port-comp-top.md index 59debe4e34..d85e98b49f 100644 --- a/docs/documentation/user-manual/overview/port-comp-top.md +++ b/docs/user-manual/overview/port-comp-top.md @@ -43,7 +43,7 @@ synchronous nature of the port along with the directionality is combined in the Finally, a port can be defined as "guarded", which means invocations into the port are limited to a single invocation at a time by a component-wide mutex. This is also combined into the "kind" attribute. -![Port Image](../../../img/core1.png) +![Port Image](../../img/core1.png) **Figure 1. Port connectivity.** Ports are connected to ports of the same type. When used by a *component*, the ports can define directionality. Using *serialized ports* (see below), serializes the call and passes it to a data buffer @@ -68,7 +68,7 @@ design and is known as the "kind" of port's instantiation. > [!NOTE] > A port's type (aka data_type) is dependent on the design and usage in the deployment. -![Port Instance Kinds](../../../img/core2.png) +![Port Instance Kinds](../../img/core2.png) **Figure 2. Port Kinds Used on a Component.** For the *synchronous port*, the call directly invokes derived functions without the use of a queue. For a *guarded port*, the call directly invokes derived functions, but only after locking a @@ -106,7 +106,7 @@ ports with return types. These ports allow serialized data to be passed around b the type contained. The [Hub pattern](../framework/hub-pattern.md) often uses serialized ports such that data can be routed across an address-space gap in a generic fashion. -![Serialization Ports](../../../img/core3.png) +![Serialization Ports](../../img/core3.png) **Figure 3. Serialization ports.** Input ports input the serialized buffer, while the output ports output the serialized buffer. @@ -124,7 +124,7 @@ The F′ architecture is based on decomposing the system into modules called com a discrete portion of the system's logic (Figure 10); The component architecture implies usage patterns, as well as usage constraints. -![Component Architecture](../../../img/core10.png) +![Component Architecture](../../img/core10.png) **Figure 10. Example of F′ component architecture pattern.** @@ -133,7 +133,7 @@ specific interactions with other components using ports. There should be no non- Components are responsible for handling the invocations of ports used in the component. They may also define and handle commands as well as emit telemetry and events. -![Example Component](../../../img/core11.png) +![Example Component](../../img/core11.png) **Figure 11. Encapsulation of Behavior** The component handles the port behaviors as well as executes the commands and then produces the telemetry. It does not directly interact with other components. @@ -178,7 +178,7 @@ class and contains only the user-specific implementation for the component. These are shown in Figure 12. -![Component Class Hierarchy](../../../img/core12.png) +![Component Class Hierarchy](../../img/core12.png) **Figure 12. Example of component class hierarchy.** @@ -218,7 +218,7 @@ software. There should be no code dependencies between the components, only depe component's ability to communicate with other components is enabled through the interconnections specified in the topology. Alternate implementations can therefore easily be swapped, for example with simulation versions. -![Example Topology](../../../img/core13.png) +![Example Topology](../../img/core13.png) **Figure 13. Example of a topology.** diff --git a/docs/documentation/user-manual/overview/proj-dep.md b/docs/user-manual/overview/proj-dep.md similarity index 98% rename from docs/documentation/user-manual/overview/proj-dep.md rename to docs/user-manual/overview/proj-dep.md index 4dda956637..a1e203dc1c 100644 --- a/docs/documentation/user-manual/overview/proj-dep.md +++ b/docs/user-manual/overview/proj-dep.md @@ -15,7 +15,7 @@ explanation of projects and deployments and how they differ is explained in this To illustrate this, the Mars Helicopter project is an excellent example. Mars Helicopter uses one project that defines two deployments: one for a base station, and one for the mobile helicopter. This is shown in Figure 1. -![Mars Helicopter](../../../img/proj_dep1.png) +![Mars Helicopter](../../img/proj_dep1.png) **Figure 1. Mars Helicopter flight software components.** ## Projects diff --git a/docs/documentation/user-manual/overview/source-tree.md b/docs/user-manual/overview/source-tree.md similarity index 100% rename from docs/documentation/user-manual/overview/source-tree.md rename to docs/user-manual/overview/source-tree.md diff --git a/docs/documentation/user-manual/overview/unit-testing.md b/docs/user-manual/overview/unit-testing.md similarity index 99% rename from docs/documentation/user-manual/overview/unit-testing.md rename to docs/user-manual/overview/unit-testing.md index d9804e0247..0aa27278a2 100644 --- a/docs/documentation/user-manual/overview/unit-testing.md +++ b/docs/user-manual/overview/unit-testing.md @@ -17,7 +17,7 @@ early and system-level issues only appear during integration. F′ provides the support for unit testing at the component level. The overall framework for unit testing is shown in Figure 1. -![Test](../../../img/test1.png) +![Test](../../img/test1.png) **Figure 1.** Unit testing framework overview. diff --git a/docs/documentation/user-manual/security/software-bill-of-materials.md b/docs/user-manual/security/software-bill-of-materials.md similarity index 100% rename from docs/documentation/user-manual/security/software-bill-of-materials.md rename to docs/user-manual/security/software-bill-of-materials.md