Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Phoenix: Psyche Transpiler, Linting, and Macros Adaptation #1369

Closed
shaheerk94 opened this issue Jul 10, 2024 · 1 comment
Closed

Phoenix: Psyche Transpiler, Linting, and Macros Adaptation #1369

shaheerk94 opened this issue Jul 10, 2024 · 1 comment
Assignees
Labels
feature New feature or request sequencing Anything related to the sequencing domain

Comments

@shaheerk94
Copy link

shaheerk94 commented Jul 10, 2024

Checked for duplicates

Yes - I've already checked

Alternatives considered

Yes - and alternatives don't suffice

Related problems

No response

Describe the feature request

Develop a Psyche adaptation for phoenix that:

  • Supports SASF and SATF export
  • Performs psyche-specific linting

Psyche's primary source sequence formats are SASF and SATF. If we want to support Psyche sequencing, we'll need to be able to export sequences in both formats.

SASF and SATF export are functions that are already performed by the jpl-sequence library: https://github.jpl.nasa.gov/PSYCHE/jpl-sequence. See https://github.jpl.nasa.gov/PSYCHE/jpl-sequence/blob/master/jpl_sequence/satf.py, and the to_sasf_string and to_satf_string methods here: https://github.jpl.nasa.gov/PSYCHE/jpl-sequence/blob/master/jpl_sequence/sequence.py

Given that this library is not open-source, it may be a better approach to replicate the functions in Aerie rather than attempt to use the functions in this library. The functions are simple enough, so replicating them shouldn't be too much work.

Note that not all sequences can be exported as SASF or SATF. An SASF must only contains commands group by request, and an SATF must have no requests at all. See the following code snippet from jpl-sequence:

    def is_satf(self):
        """Returns true if this sequence is possible to express as an SATF. Only sequences that define the 'steps' list
        can be expressed as SATF."""
        if self.__steps is not None:
            return True
        else:
            return False

    def is_sasf(self):
        """Returns true if this sequence is possible to express as an SASF. Only sequences that define 'requests',
        'immediate_commands' or 'hardware commands' can be expressed as SASF."""

        has_requests = self.__requests is not None
        has_hwc = self.__hardware_commands is not None
        has_ic = self.__immediate_commands is not None

        if has_requests or has_hwc or has_ic:
            return True
        else:
            return False

Aerie will need to implement a similar check to ensure valid sasf/satf can be output.

I don't have ITAR-safe SASF and SATF examples, so I can't attach them here, but I can email to anyone that needs examples.

@shaheerk94 shaheerk94 added the feature New feature or request label Jul 10, 2024
@shaheerk94 shaheerk94 changed the title Implement SASF and SATF Export for Psyche Phoenix: Implement workspace organization for Jul 10, 2024
@shaheerk94 shaheerk94 changed the title Phoenix: Implement workspace organization for Phoenix: Implement workspace organization Jul 18, 2024
@shaheerk94 shaheerk94 changed the title Phoenix: Implement workspace organization Phoenix: Export SASF and SATF for Psyche Jul 18, 2024
@shaheerk94 shaheerk94 changed the title Phoenix: Export SASF and SATF for Psyche Phoenix: Import and Export SASF and SATF for Psyche Jul 24, 2024
@shaheerk94 shaheerk94 added this to Aerie Jul 24, 2024
@github-project-automation github-project-automation bot moved this to Todo in Aerie Jul 24, 2024
@shaheerk94 shaheerk94 moved this from Todo to In Progress in Aerie Jul 24, 2024
@shaheerk94 shaheerk94 assigned shaheerk94 and cohansen and unassigned shaheerk94 Jul 24, 2024
@duranb duranb added the sequencing Anything related to the sequencing domain label Aug 1, 2024
@shaheerk94 shaheerk94 changed the title Phoenix: Import and Export SASF and SATF for Psyche Phoenix: Psyche Transpiler, Linting, and Macros Adaptation Oct 9, 2024
@shaheerk94
Copy link
Author

Closing as duplicate of #1495

@github-project-automation github-project-automation bot moved this from In Progress to Done in Aerie Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request sequencing Anything related to the sequencing domain
Projects
Status: Done
Development

No branches or pull requests

3 participants