Sequence Editor
Aerie sequence editor is a web application with various features (auto complete, linting, hinting) to assist users while typing a sequence of commands. Aerie currently supports AMPCS command, parameter, and channel dictionary schemas for commands, parameters, and telemetry channels. To be able to author or edit a sequence, users must reference a parcel containing a command dictionary available in the Aerie instance. To upload a command dictionary see instructions here. Users may optionally upload parameter dictionaries, channel dictionaries, and adaptataion code on the same view. After these are uploaded a parcel should be specified.
Parcel
Aerie groups a command dictionary along with zero of more parameter dictionaries, an optional channel dictionary, and an optional javascript adaptation file. If a parcel includes an adaptation, the adaptation may use parameter and channel dictionaries for additional information beyond the command dictionary. If a parcek does not specify an adaption or specifies an adaptation does not make use of the additional dictionaries they may have no impact on sequencing.
Navigate to the parcel page to create a parcel or edit an existing parcel.
Create a new parcel or edit an existing parcel to change the configuration. Parcels are often named according to Ground Data System or Flight Software releases.
Navigate to the Aerie sequence editor from the Aerie drop down menu at the upper left corner.
The landing page lists all sequences available at this venue in the left panel. Upon click users can view the contents of sequences in the right hand side editor in a "read only" mode. To edit an individual sequence click the pencil icon for the sequence on the left hand side panel as shown in the image below.
Currently Aerie sequence editor does not support user roles and permissions, hence all sequences authored in this venue will be accessible to everyone who has access to Aerie. User roles will allow limiting edit and/or view access to some sequences. For now, we recommend pre-appending a user name to your sequence names to indicate ownership.
In the sequence editing page users need to select a command dictionary before they can edit the sequence. Editing sequence simply means adding any of the step types defined in the seqJSON format to the steps section of the sequence. In addition seqJSON allows arbitrary JSON objects to be added as metadata. Refer to your mission guidelines regarding metadata format expected by downstream processes and tools.
Import / export seqJSON
Aerie editor allows authoring and viewing sequences in a user friendly format which is more compact, easier to read and write compared to the seqJSON. However seqJSON is the exchange format that should be used to exchange sequences with upstream and downstream tools. While creating a new sequence, users can import a seqJSON using the in (Choose File
) button available at the new sequence the left panel. After authoring a sequence, it can be downloaded to the your local machine using the (Download
) button at the upper right corner of the seqJSON view panel at the bottom.
Typing commands
As explained earlier authoring a sequence simply means concatenating commands in the steps array. Example below illustrates how a simple sequence with a few commands and various time tags looks like.
R001T00:00:01 GROW_BANANA 1 60
C PICK_BANANA
C AVS_RESET_ECE
C BC_MANAGE_ACTIVE_BUS "BUS_A" "DISABLE"
A2024-123T00:00:00 PACKAGE_BANANA 0 ["lot_0" 1]
R00:00:10 THROW_BANANA 10
- Each command step must start with a time tag. Time tags supported in seqJSON are command complete (
C
), absolute (A2020-001T00:00:00
), relative (R00:00:00
), and epoch relative (E00:00:00
). To understand how these time tags get executed on board, refer to your missions Sequencing FDD. - To view list of commands, type a time tag and a space.
- To filter commands, start typing the first few letters of the command stem.
- After selecting the command the parameters will be inside of the right "Selected Command" panel.
- If command has arguments they will be deliniated with a space.
- Editor can autocomplete argument names with the
control + Space
shortcut. - For the enumerated args,
control + Space
can be used to select one of the defined enum values. - Errors will be linted with a red squiggly underline. Hovering over the error should provide explanation for the error as shown below.
- Generate seqJSON will fail if you have errors in the sequence.
Form editor
Aerie offers a form editor to edit individual arguments. Different argument types -- strings, enumerations, variables and numbers -- each have their own appropriate control
Keyboard shortcuts
When the cursor is within the sequence editor the following keyboard commands are available
Windows/Linux | Mac | Command | Description |
---|---|---|---|
Alt-ArrowLeft | Ctrl-ArrowLeft on macOS | cursorSyntaxLeft | Move the cursor over the next syntactic element to the left. |
Shift-Alt-ArrowLeft | Shift-Ctrl-ArrowLeft on macOS | selectSyntaxLeft | Move the selection head over the next syntactic element to the left. |
Alt-ArrowRight | Ctrl-ArrowRight on macOS | cursorSyntaxRight | Move the cursor over the next syntactic element to the right. |
Shift-Alt-ArrowRight | Shift-Ctrl-ArrowRight on macOS | selectSyntaxRight | Move the selection head over the next syntactic element to the right. |
Alt-ArrowUp | Alt-ArrowUp | moveLineUp | Move the selected lines up one line. |
Alt-ArrowDown | Alt-ArrowDown | moveLineDown | Move the selected lines down one line. |
Shift-Alt-ArrowUp | Shift-Alt-ArrowUp | copyLineUp | Create a copy of the selected lines. Keep the selection in the top copy. |
Shift-Alt-ArrowDown | Shift-Alt-ArrowDown | copyLineDown | Create a copy of the selected lines. Keep the selection in the bottom copy. |
Alt-l | Ctrl-l | selectLine | Expand the selection to cover entire lines. |
Ctrl-[ | Cmd-[ | indentLess | Remove a unit of indentation from all selected lines. |
Ctrl-] | Cmd-] | indentMore | Add a unit of indentation to all selected lines. |
Shift-Ctrl-k | Shift-Cmd-k | deleteLine | Delete selected lines. |
Ctrl-/ | Cmd-/ | toggleComment | Comment or uncomment the current selection. Will use line comments if available, otherwise falling back to block comments. |
Ctrl-S | Cmd-S | saveDocument | Save current editor contents |
Ctrl-Space | Cmd-Space | suggestCompletions | Show autocomplete options |