diff --git a/docs/mission-modeling/activity-types/introduction.mdx b/docs/mission-modeling/activity-types/introduction.mdx index 80c2b14..7dab961 100644 --- a/docs/mission-modeling/activity-types/introduction.mdx +++ b/docs/mission-modeling/activity-types/introduction.mdx @@ -6,13 +6,13 @@ An **activity type** defines a simulated behavior that may be invoked by a plann Activity types may define **parameters**, which are filled with **arguments** by a planner and provided to the activity upon execution. Activity types may also define **validations** for the purpose of informing a planner when the parameters they have provided may be problematic. -For example, here is a simple activity type from the FireSat template mission model: +For example, here is a simple activity type from the examples in the template mission model: Aerie automatically generates parameter serialization boilerplate for every activity type defined in the mission model's [package-info.java](../introduction.mdx#the-package-infojava-file). @@ -23,7 +23,7 @@ Moreover, the generated Model base class provides helper methods for spawning ea In order for Aerie to detect an activity type, its class must be annotated with the `@ActivityType` tag. An activity type is declared with its name using the following annotation: ```java -@ActivityType("GncChangeControlMode") +@ActivityType("CollectData") ``` By doing so, the Aerie annotation processor can discover all activity types declared in the mission model, and validate that activity type names are unique. diff --git a/docs/mission-modeling/configuration.md b/docs/mission-modeling/configuration.md index 1eb5b56..e375197 100644 --- a/docs/mission-modeling/configuration.md +++ b/docs/mission-modeling/configuration.md @@ -6,18 +6,18 @@ A **mission model configuration** enables mission modelers to set initial missio To use a mission model configuration the `@WithConfiguration` annotation must be used within the mission model's [package-info.java](./introduction.mdx#the-package-infojava-file) to register the configuration with Aerie. -For example, the Aerie mission model template [package-info.java](https://github.com/NASA-AMMOS/aerie-mission-model-template/blob/main/src/main/java/firesat/package-info.java) makes use of this annotation: +For example, the Aerie mission model template [package-info.java](https://github.com/NASA-AMMOS/aerie-mission-model-template/blob/main/src/main/java/missionmodel/package-info.java) makes use of this annotation: ```java @MissionModel(model = Mission.class) @WithConfiguration(Configuration.class) -package firesat; +package missionmodel; import gov.nasa.jpl.aerie.merlin.framework.annotations.MissionModel; import gov.nasa.jpl.aerie.merlin.framework.annotations.MissionModel.WithConfiguration; ``` -In this example `Configuration` is the class class containing all mission model configuration data. When the `@WithConfiguration` annotation is used, the model – defined within the `@MissionModel` annotation – must accept the configuration as the last constructor parameter. See [Mission.java](https://github.com/NASA-AMMOS/aerie-mission-model-template/blob/main/src/main/java/firesat/Mission.java): +In this example `Configuration` is the class class containing all mission model configuration data. When the `@WithConfiguration` annotation is used, the model – defined within the `@MissionModel` annotation – must accept the configuration as the last constructor parameter. See [Mission.java](https://github.com/NASA-AMMOS/aerie-mission-model-template/blob/main/src/main/java/missionmodel/Mission.java): ```java public Mission(final Registrar registrar, final Configuration config) { @@ -44,7 +44,7 @@ Similarly to activities, the annotation processor will take care of all serializ A `Configuration` can be a simple data class. For example: ```java -package firesat; +package missionmodel; import gov.nasa.jpl.aerie.merlin.framework.annotations.Export; import java.nio.file.Path; diff --git a/docs/mission-modeling/introduction.mdx b/docs/mission-modeling/introduction.mdx index 2f82be6..bbb066e 100644 --- a/docs/mission-modeling/introduction.mdx +++ b/docs/mission-modeling/introduction.mdx @@ -6,10 +6,13 @@ In Aerie, a mission model serves activity planning needs in two ways. First, it ## Creating a Mission Model -You can create your first mission model by using our [GitHub template mission model repository](https://github.com/NASA-AMMOS/aerie-mission-model-template). -See the template mission model repository [README](https://github.com/NASA-AMMOS/aerie-mission-model-template/blob/main/README.md#aerie-mission-model-template) for detailed build instructions. +If you want to learn how to develop a mission model, head to our [mission modeling tutorial](../../tutorials/mission-modeling/introduction/), +or check out our [GitHub template mission model repository](https://github.com/NASA-AMMOS/aerie-mission-model-template) for an empty template. You will need a public [GitHub.com](https://github.com/) account to download the Aerie Maven packages. +If you do not want to develop a mission model and just want to try an example, you can download the [missionmodel.jar](https://github.com/NASA-AMMOS/aerie-modeling-tutorial/blob/main/missionmodel.jar) from the [Aerie modeling tutorial repository](https://github.com/NASA-AMMOS/aerie-modeling-tutorial). +Make sure you note where you downloaded the `.jar` file as you will need to browse to that location in the UI. + ## The package-info.java File A mission model must contain a [package-info.java](https://www.baeldung.com/java-package-info) file containing annotations that describe the highest-level features of the mission model. For example: @@ -17,8 +20,8 @@ A mission model must contain a [package-info.java](https://www.baeldung.com/java This `package-info.java` identifies the top-level class representing the mission model, and registers activity types that may interact with the mission model. Aerie processes these annotations at compile-time, generating a set of boilerplate classes which take care of interacting with the Aerie system. @@ -35,8 +38,8 @@ The top-level model is received by activities, however, so it must make accessib Mission resources are declared using `Registrar#discrete` or `Registrar#real` functions. diff --git a/docs/planning/upload-mission-model.mdx b/docs/planning/upload-mission-model.mdx index 2b4ac72..8b98228 100644 --- a/docs/planning/upload-mission-model.mdx +++ b/docs/planning/upload-mission-model.mdx @@ -8,11 +8,11 @@ To get the Aerie services running locally first follow the [fast track instructi ## Instructions -1. First develop your mission model using the [mission modeling documentation](../../mission-modeling/introduction). If you want to learn how to develop a mission model, head to our [mission modeling tutorial](../../tutorials/mission-modeling). If you do not want to develop a mission model and just want to try an example, you can download the [missionmodel.jar](https://github.com/NASA-AMMOS/aerie-modeling-tutorial/blob/main/missionmodel.jar) from the [Aerie modeling tutorial repository](https://github.com/NASA-AMMOS/aerie-modeling-tutorial). Make sure you note where you downloaded the `.jar` file as you will need to browse to that location in the UI. +1. First develop your mission model using the [mission modeling documentation](../../mission-modeling/introduction). If you want to learn how to develop a mission model, head to our [mission modeling tutorial](../../tutorials/mission-modeling/introduction). If you do not want to develop a mission model and just want to try an example, you can download the [missionmodel.jar](https://github.com/NASA-AMMOS/aerie-modeling-tutorial/blob/main/missionmodel.jar) from the [Aerie modeling tutorial repository](https://github.com/NASA-AMMOS/aerie-modeling-tutorial). Make sure you note where you downloaded the `.jar` file as you will need to browse to that location in the UI. 1. Navigate to the `/models` page in the Aerie UI. If you are running Aerie locally it is at [http://localhost/models](http://localhost/models). -1. Use the form on the `/models` page to upload the mission model `.jar` file. Give the mission model a name ("FireSat" in this example). The version can be any string (preferably a semantic version string like `1.0.0`). After you fill in all the fields click the 'Create' button to upload the model. Here is a video demonstration: +1. Use the form on the `/models` page to upload the mission model `.jar` file. Give the mission model a name ("MissionModel" in this example). The version can be any string (preferably a semantic version string like `1.0.0`). After you fill in all the fields click the 'Create' button to upload the model. Here is a video demonstration: