Leveraging the synergy between ASI and L3 Communication’s Ground Data System, InControl, ASI has developed a subset of L3’s JAS language called FlightJAS for the flight environment.
Operation of a vehicle is dependent on having the ability to examine telemetry, make telemetry-based decisions and issue commands to the vehicle. Command Sequencing with FlightJAS enables this onboard process such that the vehicle can operate in an autonomous manner. Additionally, vehicle operations often entail complex and coordinated operations that are more complex than simple commands. Thus, the purpose of a command-sequencing engine is to provide the functionality of a ground system when a vehicle is out of communication.
FlightJAS functions as a simplified programming language with many programming-like features:
- Local variables (INT, REAL, STRING, DATE, TIME)
- Operations, (Arithmetic, Assignment, Bitwise, Logical, String, Time and Trigonometric)
- Conditionals (IF/ELIF/ELSE)
- Looping (FOR and WHILE)
- Procedures with optional arguments
To help reduce the learning curve, ASI has developed a Sequence Editor that lives within STK SOLIS as well as a standalone editor. The editor enables the rapid development of simple sequences without the need for an in-depth knowledge of the sequence engine’s syntax or function. Additionally, it provides a high-level human-readable list of the actions of the sequence.
To facilitate the construction of sequences, there are six different kinds of sequence elements:
- Spacecraft Command: Sends a basic command to any part of the flight software
- Parameter Update: Updates a parameter in any component in the flight software
- Pointing/Control Maneuver: Sends a series of commands that point the spacecraft
- Embed Sequence: Invokes another sequence, either as a procedure or for parallel execution
- Raw Code Block: This advanced element opens up the power of FlightJAS to the user
- Comment: Add a human-readable comment to the sequence