From daef9115f918db3b9eed873d88feccc0c129193e Mon Sep 17 00:00:00 2001 From: Rob Bocchino Date: Wed, 22 Jan 2025 18:20:00 -0800 Subject: [PATCH 1/2] Updates to release branch --- README.adoc | 4 +- compiler/.jvmopts | 2 + compiler/build.sbt | 4 +- docs/fpp-spec.html | 7 +- docs/fpp-users-guide.html | 72 +++++++++---------- docs/index.html | 6 +- docs/index/defs.sh | 14 ++++ docs/index/index.adoc | 4 +- docs/spec/Introduction.adoc | 5 +- .../Analyzing-and-Translating-Models.adoc | 11 ++- .../Defining-Component-Instances.adoc | 4 +- docs/users-guide/Defining-Components.adoc | 44 ++++++------ docs/users-guide/Defining-State-Machines.adoc | 4 +- docs/users-guide/Introduction.adoc | 7 +- 14 files changed, 97 insertions(+), 91 deletions(-) create mode 100644 compiler/.jvmopts create mode 100644 docs/index/defs.sh diff --git a/README.adoc b/README.adoc index a729de921..c5d79b4ec 100644 --- a/README.adoc +++ b/README.adoc @@ -3,7 +3,7 @@ This repository contains the code and documentation for F Prime Prime (FPP for short). FPP is a modeling language for the -https://nasa.github.io/fprime/[F Prime flight software framework]. +https://fprime.jpl.nasa.gov[F Prime flight software framework]. == Contents @@ -24,7 +24,7 @@ To use or develop FPP in a standalone mode, you should install these tools. To use FPP as part of F Prime development, you can install the F Prime tool set, which includes FPP. See the F Prime installation instructions -https://github.com/nasa/fprime/blob/master/docs/INSTALL.md[here]. +https://fprime.jpl.nasa.gov/latest/getting-started/installing-fprime/[here]. === Spec and User's Guide diff --git a/compiler/.jvmopts b/compiler/.jvmopts new file mode 100644 index 000000000..4b07f9489 --- /dev/null +++ b/compiler/.jvmopts @@ -0,0 +1,2 @@ +-XX:+CMSClassUnloadingEnabled +-Xss2M diff --git a/compiler/build.sbt b/compiler/build.sbt index 5dced3bd4..c7f5ecc12 100644 --- a/compiler/build.sbt +++ b/compiler/build.sbt @@ -9,7 +9,7 @@ lazy val settings = Seq( "-deprecation", "-unchecked", "-Xfatal-warnings", - "-Xmax-inlines:200" + "-Xmax-inlines:100" ), libraryDependencies ++= dependencies, Test / testOptions += Tests.Argument(TestFrameworks.ScalaTest, "-oNCXELOPQRM"), @@ -110,4 +110,4 @@ lazy val fpp_to_dict = (project in file("tools/fpp-to-dict")) lazy val fpp_to_layout = (project in file("tools/fpp-to-layout")) .settings(settings) .dependsOn(lib) - .enablePlugins(AssemblyPlugin) \ No newline at end of file + .enablePlugins(AssemblyPlugin) diff --git a/docs/fpp-spec.html b/docs/fpp-spec.html index 3d25c330b..42f33469d 100644 --- a/docs/fpp-spec.html +++ b/docs/fpp-spec.html @@ -977,10 +977,7 @@

1. Introduction

This document provides a detailed description of F Prime Prime, also known as FPP or F Double Prime. FPP is a modeling language for the -F Prime flight software framework. -A paper presented at -SmallSat 2018 -provides an overview of F Prime.

+F Prime flight software framework.

The goals of FPP are as follows:

@@ -10582,7 +10579,7 @@

22.4. Translation Tools

diff --git a/docs/fpp-users-guide.html b/docs/fpp-users-guide.html index e9edf6138..1c284c029 100644 --- a/docs/fpp-users-guide.html +++ b/docs/fpp-users-guide.html @@ -751,12 +751,9 @@

1. Introduction

This document describes F Prime Prime, also known as FPP or F Double Prime. FPP is a modeling language for the -F Prime flight software framework. -A paper presented at -SmallSat 2018 -provides an overview of F Prime. +F Prime flight software framework. For more detailed information about F Prime, see the -F Prime User Manual.

+F Prime User Manual.

The goals of FPP are as follows:

@@ -3635,8 +3632,8 @@

9.1. Writing of FPP state machines. For more details about the C++ code generation for state machines, see the -F Prime design -documentation.

+F +Prime design documentation.

@@ -5794,7 +5791,7 @@

10.2.1. Basic P base class with a virtual handler function, and then override that virtual function in a derived class that you write. For further details about implementing F Prime components, see the -F Prime User Manual.

+F Prime User Manual.

Note on terminology: As explained above, there is a technical @@ -6089,7 +6086,7 @@

10.2.6. Serial This flexibility comes at the cost that you lose the type compile-time type checking provided by port connections with named types. For more information about serial ports and their use, see -the F Prime User Manual.

+the F Prime User Manual.

@@ -6228,7 +6225,7 @@

10.3.1. Comman

For further information about command registration, receipt, and response, and implementing command handlers, see the -F Prime User Manual.

+F Prime User Manual.

@@ -6309,7 +6306,7 @@

10.3.2. Event Po

For further information about events in F Prime, see the -F Prime User Manual.

+F Prime User Manual.

@@ -6358,7 +6355,7 @@

10.3.3. Tele

For further information about telemetry in F Prime, see the -F Prime User Manual.

+F Prime User Manual.

@@ -6443,7 +6440,7 @@

10.3.4. Para

For further information about parameters in F Prime, see the -F Prime User Manual.

+F Prime User Manual.

@@ -6493,7 +6490,7 @@

10.3.5. Time

For further information about time in F Prime, see the -F Prime User Manual.

+F Prime User Manual.

@@ -6616,8 +6613,8 @@

10.3.6. D

For further information about data products in F Prime, see the -data -products documentation in the F Prime repository.

+F +Prime design documentation.

@@ -6761,7 +6758,7 @@

10.5. Commands

For complete information about F Prime command dispatch and handling, see the -F Prime User Manual. +F Prime User Manual. Here we concentrate on how to specify commands in FPP.

@@ -7124,7 +7121,7 @@

10.6. Events

For complete information about F Prime event handling, see the -F Prime User Manual. +F Prime User Manual. Here we concentrate on how to specify events in FPP.

@@ -7423,7 +7420,7 @@

10.6.4. Throttling

emit the event until the throttling is canceled. Typically, the canceling happens via a FSW command. For details, see the -F Prime User Manual.

+F Prime User Manual.

@@ -7444,7 +7441,7 @@

10.7. Telemetry

For complete information about F Prime telemetry handling, see the -F Prime User Manual. +F Prime User Manual. Here we concentrate on how to specify telemetry channels in FPP.

@@ -7804,7 +7801,7 @@

10.8. Parameters

database component for storing parameters in a non-volatile manner (e.g., on a file system). For complete information about F Prime parameters, see the -F Prime User Manual. +F Prime User Manual. Here we concentrate on how to specify parameters in FPP.

@@ -8135,8 +8132,8 @@

10.9. Data Products

(2) writing data products to the file system; and (3) cataloging stored data products for downlink in priority order. For more information about these F Prime features, see the -F Prime data -products documentation.

+F +Prime design documentation.

10.9.1. Basic Data Products

@@ -8149,8 +8146,8 @@

10.9.1. Basic Dat representing a list of serialized records. A record is a unit of data. For a complete specification of the container format, see the -documentation -on F Prime framework support for data products.

+F Prime design +documentation.

In an F Prime component, you can specify one or more containers @@ -8215,8 +8212,8 @@

10.9.1. Basic Dat

The FPP back end uses this specification to generate code for requesting buffers to hold containers and for serializing records into containers. See the -F -Prime data products documentation for the details.

+F +Prime design documentation for the details.

Note the following:

@@ -8456,8 +8453,8 @@

10.10. State Machine Instan machine definitions may be internal (specified in FPP) or external (specified by an external tool). For more details about the C++ code generation for instances of internal state machines, see the -F Prime design -documentation.

+F +Prime design documentation.

@@ -8850,7 +8847,9 @@

F Prime +documentation.) We have given the component two telemetry channels: ImpulseTemp for reporting the temperature of the impulse engine, and WarpTemp for reporting the temperature of the warp core.

@@ -12988,13 +12987,13 @@

Once you generate C++ code for these definitions, you can use it to write a flight software implementation. -The F +The F User Manual explains how to do this.

For more information about the generated code for data products, for state machines, and for state machine instances, see the -F +F Prime design documentation.

@@ -13006,8 +13005,7 @@

F -Prime User Manual.

+the F Prime User Manual.

Generating implementation templates: @@ -13982,8 +13980,8 @@

14.8. G T TopologyDictionary.json. The dictionary is specified in JavaScript Object Notation (JSON) format. The JSON format is specified in the -F -Prime dictionary documentation.

+F +Prime design documentation.

Here is a common use case:

@@ -14817,7 +14815,7 @@

diff --git a/docs/index.html b/docs/index.html index 07e30b8d1..f7c175a1e 100644 --- a/docs/index.html +++ b/docs/index.html @@ -439,8 +439,8 @@

F Prime Prime (FPP)

-

FPP is a modeling language for the F Prime -flight software framework. +

FPP is a modeling language for the +F Prime flight software framework. To use FPP, you write a model in the source language; then you use the FPP tools to generate XML and C++. Compared to writing XML by hand, FPP provides a cleaner and more succinct syntax, a well-defined semantics, good error @@ -463,7 +463,7 @@

F Prime Prime (FPP)

diff --git a/docs/index/defs.sh b/docs/index/defs.sh new file mode 100644 index 000000000..722294132 --- /dev/null +++ b/docs/index/defs.sh @@ -0,0 +1,14 @@ +#!/bin/sh -e + +# ---------------------------------------------------------------------- +# defs.sh +# ---------------------------------------------------------------------- + +export LEVEL=../.. +. $LEVEL/defs.sh + +redo-ifchange defs.sh + +export FILES=" +index.adoc +" diff --git a/docs/index/index.adoc b/docs/index/index.adoc index e308070d8..5c3d0066b 100644 --- a/docs/index/index.adoc +++ b/docs/index/index.adoc @@ -1,7 +1,7 @@ = F Prime Prime (FPP) -FPP is a modeling language for the https://nasa.github.io/fprime/[F Prime -flight software framework]. +FPP is a modeling language for the +https://fprime.jpl.nasa.gov[F Prime flight software framework]. To use FPP, you write a model in the source language; then you use the FPP tools to generate XML and {cpp}. Compared to writing XML by hand, FPP provides a cleaner and more succinct syntax, a well-defined semantics, good error diff --git a/docs/spec/Introduction.adoc b/docs/spec/Introduction.adoc index a020e5e4d..db6606aa6 100644 --- a/docs/spec/Introduction.adoc +++ b/docs/spec/Introduction.adoc @@ -3,10 +3,7 @@ This document provides a detailed description of **F Prime Prime**, also known as FPP or F Double Prime. FPP is a modeling language for the -https://nasa.github.io/fprime/[F Prime flight software framework]. -A https://digitalcommons.usu.edu/smallsat/2018/all2018/328/[paper presented at -SmallSat 2018] -provides an overview of F Prime. +https://fprime.jpl.nasa.gov[F Prime flight software framework]. The goals of FPP are as follows: diff --git a/docs/users-guide/Analyzing-and-Translating-Models.adoc b/docs/users-guide/Analyzing-and-Translating-Models.adoc index 0eeb68e73..6632bb283 100644 --- a/docs/users-guide/Analyzing-and-Translating-Models.adoc +++ b/docs/users-guide/Analyzing-and-Translating-Models.adoc @@ -566,12 +566,12 @@ uses the name `A_B_CComponentAc_HPP` in its include guard. Once you generate {cpp} code for these definitions, you can use it to write a flight software implementation. -The https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F +The https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F User Manual] explains how to do this. For more information about the generated code for data products, for state machines, and for state machine instances, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F +https://fprime.jpl.nasa.gov/latest/docs/user-manual/design/state-machines/[F Prime design documentation]. ==== Component Implementation and Unit Test Code @@ -581,8 +581,7 @@ or partial implementations and for generating unit test code. Here we cover the mechanics of using these options. For more information on implementing and testing components in F Prime, see -the https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F -Prime User Manual]. +the https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. *Generating implementation templates:* When you run `fpp-to-cpp` with option `-t` and without option `-u`, @@ -1361,8 +1360,8 @@ file _T_ `TopologyDictionary.json`. The dictionary is specified in JavaScript Object Notation (JSON) format. The JSON format is specified in the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/design/fpp-json-dict/[F -Prime dictionary documentation]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/design/fpp-json-dict/[F +Prime design documentation]. Here is a common use case: diff --git a/docs/users-guide/Defining-Component-Instances.adoc b/docs/users-guide/Defining-Component-Instances.adoc index f7b8aa0cc..bc9f10b59 100644 --- a/docs/users-guide/Defining-Component-Instances.adoc +++ b/docs/users-guide/Defining-Component-Instances.adoc @@ -84,7 +84,9 @@ a schedule input port for driving the component periodically on a rate group, a time get port for getting the time, and a telemetry port for reporting telemetry. (For more information on rate groups and the use of `Svc.Sched` -ports, see the F Prime documentation.) +ports, see the +https://fprime.jpl.nasa.gov/latest/docs/user-manual/design/rate-group/[F Prime +documentation].) We have given the component two telemetry channels: `ImpulseTemp` for reporting the temperature of the impulse engine, and `WarpTemp` for reporting the temperature of the warp core. diff --git a/docs/users-guide/Defining-Components.adoc b/docs/users-guide/Defining-Components.adoc index 41c015807..1e791e7d6 100644 --- a/docs/users-guide/Defining-Components.adoc +++ b/docs/users-guide/Defining-Components.adoc @@ -142,7 +142,7 @@ For example, in the {cpp} implementation, you would generate a base class with a virtual handler function, and then override that virtual function in a derived class that you write. For further details about implementing F Prime components, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. *Note on terminology:* As explained above, there is a technical distinction between a _port type_ (defined outside any component, and providing @@ -405,7 +405,7 @@ on that side. This flexibility comes at the cost that you lose the type compile-time type checking provided by port connections with named types. For more information about serial ports and their use, see -the https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +the https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. === Special Port Instances @@ -507,7 +507,7 @@ properly with F Prime {cpp} code generation. For further information about command registration, receipt, and response, and implementing command handlers, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. ==== Event Ports @@ -566,7 +566,7 @@ module Fw { -------- For further information about events in F Prime, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. ==== Telemetry Ports @@ -609,7 +609,7 @@ module Fw { -------- For further information about telemetry in F Prime, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. ==== Parameter Ports @@ -671,7 +671,7 @@ module Fw { -------- For further information about parameters in F Prime, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. ==== Time Get Ports @@ -715,7 +715,7 @@ module Fw { -------- For further information about time in F Prime, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. ==== Data Product Ports @@ -811,8 +811,8 @@ module Fw { -------- For further information about data products in F Prime, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/design/data-products/[data -products documentation] in the F Prime repository. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/design/data-products/[F +Prime design documentation]. === Internal Ports @@ -944,7 +944,7 @@ as part of the component implementation. For complete information about F Prime command dispatch and handling, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. Here we concentrate on how to specify commands in FPP. ==== Basic Commands @@ -1271,7 +1271,7 @@ you can store in an on-board file system or send to the ground. For complete information about F Prime event handling, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. Here we concentrate on how to specify events in FPP. ==== Basic Events @@ -1545,7 +1545,7 @@ Once an event is throttled, the component instance will no longer emit the event until the throttling is canceled. Typically, the canceling happens via a FSW command. For details, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. === Telemetry @@ -1562,7 +1562,7 @@ or send them the ground. For complete information about F Prime telemetry handling, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. Here we concentrate on how to specify telemetry channels in FPP. ==== Basic Telemetry @@ -1890,7 +1890,7 @@ F Prime has special support for parameters, including a parameter database component for storing parameters in a non-volatile manner (e.g., on a file system). For complete information about F Prime parameters, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. Here we concentrate on how to specify parameters in FPP. ==== Basic Parameters @@ -2199,8 +2199,8 @@ for (1) managing buffers that can store data products in memory; (2) writing data products to the file system; and (3) cataloging stored data products for downlink in priority order. For more information about these F Prime features, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime data -products documentation]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/design/data-products/[F +Prime design documentation]. ==== Basic Data Products @@ -2212,8 +2212,8 @@ the container (e.g., the size of the data payload), and binary data representing a list of serialized *records*. A record is a unit of data. For a complete specification of the container format, see the -https://fprime.jpl.nasa.gov/latest/documentation/reference/api/cpp/html/_fw_dp.html[documentation] -on F Prime framework support for data products. +https://fprime.jpl.nasa.gov/latest/Fw/Dp/docs/sdd/[F Prime design +documentation]. In an F Prime component, you can specify one or more containers and one or more records. @@ -2275,8 +2275,8 @@ passive component BasicDataProducts { The FPP back end uses this specification to generate code for requesting buffers to hold containers and for serializing records into containers. See the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/design/data-products/[F -Prime data products documentation] for the details. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/design/data-products/[F +Prime design documentation] for the details. Note the following: @@ -2495,8 +2495,8 @@ As discussed machine definitions may be internal (specified in FPP) or external (specified by an external tool). For more details about the {cpp} code generation for instances of internal state machines, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime design -documentation]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/design/state-machines/[F +Prime design documentation]. === Constants, Types, Enums, and State Machines diff --git a/docs/users-guide/Defining-State-Machines.adoc b/docs/users-guide/Defining-State-Machines.adoc index 0c488d39f..1110279bb 100644 --- a/docs/users-guide/Defining-State-Machines.adoc +++ b/docs/users-guide/Defining-State-Machines.adoc @@ -87,8 +87,8 @@ In this manual, we focus on the syntax and high-level behavior of FPP state machines. For more details about the {cpp} code generation for state machines, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime design -documentation]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/design/state-machines/[F +Prime design documentation]. === States, Signals, and Transitions diff --git a/docs/users-guide/Introduction.adoc b/docs/users-guide/Introduction.adoc index d6d6ad5fd..e8a099f50 100644 --- a/docs/users-guide/Introduction.adoc +++ b/docs/users-guide/Introduction.adoc @@ -2,12 +2,9 @@ This document describes **F Prime Prime**, also known as FPP or F Double Prime. FPP is a modeling language for the -https://nasa.github.io/fprime/[F Prime flight software framework]. -A https://digitalcommons.usu.edu/smallsat/2018/all2018/328/[paper presented at -SmallSat 2018] -provides an overview of F Prime. +https://fprime.jpl.nasa.gov[F Prime flight software framework]. For more detailed information about F Prime, see the -https://fprime.jpl.nasa.gov/latest/documentation/user-manual/[F Prime User Manual]. +https://fprime.jpl.nasa.gov/latest/docs/user-manual/[F Prime User Manual]. The goals of FPP are as follows: From 6769c3ae556b088ebb9b488abf83d91aa37ff343 Mon Sep 17 00:00:00 2001 From: Rob Bocchino Date: Wed, 29 Jan 2025 10:41:15 -0800 Subject: [PATCH 2/2] Fix broken link in README --- README.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.adoc b/README.adoc index c5d79b4ec..6334f21a3 100644 --- a/README.adoc +++ b/README.adoc @@ -21,10 +21,10 @@ There is also an FPP plugin available within Visual Studio Code. See `compiler/README.adoc`. To use or develop FPP in a standalone mode, you should install these tools. -To use FPP as part of F Prime development, you can install the F Prime tool set, -which includes FPP. +To use FPP as part of F Prime development, you can install the F Prime tool +set, which includes FPP. See the F Prime installation instructions -https://fprime.jpl.nasa.gov/latest/getting-started/installing-fprime/[here]. +https://fprime.jpl.nasa.gov/latest/docs/getting-started/installing-fprime/[here]. === Spec and User's Guide