NASA-AMMOS/aerie

Aerie/FPrime Sequencing Integration

Closed this issue · 1 comments

Describe the feature request

  • Question: Can we parse FPrime (xml json) dictionary formats to the Aerie AMPCS dictionary format, or do we need to support a generic dictionary format in Aerie?
  • Question: how to integrate command expansion with FPrime support etc.?
  • Sequence Server Plugin Architecture: Establish a plugin architecture for the sequence server to accommodate various dictionary formats. Define a standard interface for dictionary objects and determine if the parser plugins should convert to a AMPCS format.
    • FPrime XML JSON Parser: Develop a parser to process commands from FPrime JSON files into the Aerie-supported AMPCS command dictionary format (or another Aerie-supported format)
    • Dictionary Flexibility: If necessary, update the Aerie UI to handle different dictionary formats beyond AMPCS by allowing the passing of generic dictionary objects.
  • FPrime Adaptation Layer:
    • Build a layer to import/export FPrime (string) Sequences to/from SeqN sequences.
    • Support autocomplete and linting for FPrime sequences in the Phoenix editor

Some notes on above:

  • We decided to split the compiler integration part of this into a separate task: #1531
  • Met with FPrime folks this week and found out they are switching to a JSON format for their dictionaries (instead of XML) in the near future, so we plan to write our parser to target the new JSON format. @goetzrrGit is getting a sample of that format from the FPrime team.
  • Re: the AMPCS question above, we discussed and decided we should try to parse FPrime dictionaries into our AMPCS format, and potentially propose changes to future versions of AMPCS if there is anything in the FPrime dictionaries that we can't support. The biggest sticking point might be their support for custom/struct types, whereas AMPCS only supports primitive types currently - need to come up with a plan for this.