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

ADCS: Repeatedly poll and save ADCS telemetry #210

Open
DeemDeem52 opened this issue Oct 9, 2024 · 5 comments · May be fixed by #215
Open

ADCS: Repeatedly poll and save ADCS telemetry #210

DeemDeem52 opened this issue Oct 9, 2024 · 5 comments · May be fixed by #215
Assignees
Labels
requirement A mission requirement

Comments

@DeemDeem52
Copy link
Contributor

DeemDeem52 commented Oct 9, 2024

Now that the main bulk of ADCS command functions are complete, the Commissioning Manual requires that certain ADCS telemetry requests be repeatedly polled every few seconds over the course of between several minutes to one full orbit (see Sections 2.2 and 2.3 of the Commissioning Manual for more details).

In total there are 30 telemetry request functions that must be called in various combinations, of which there are 18 combinations which we care about for commissioning.

This function will need to take inputs:

  • Which functions to poll (either the specific functions to poll)
  • The period to poll them over (in seconds; either 1 second or 10 seconds)
  • How long to poll them for (either time in minutes/hours or else enable/disable; need to check what's most appropriate for the "1 orbit" condition)

Note that all of these inputs can be replaced with a single input: the numbered commissioning step to execute, in exchange for less freedom of operation.

What it will need to do:

  • Check the ACP Execution State telemetry to ensure that Time Since Iteration Start > 500 ms (see Section 2.3)
  • Call the appropriate telemetry request functions and load them into their structs (the Current ADCS State telemetry request may also be necessary)
  • Save the structs to memory (preferably with timestamp, which is another ADCS telemetry request or can be from the OBC)
  • Do this all periodically until the time of polling is complete, then downlink the data when next possible.

This downlink will be for ground processing, and varies depending on the commissioning step.

@DeemDeem52 DeemDeem52 self-assigned this Oct 9, 2024
@DeflateAwning
Copy link
Contributor

DeflateAwning commented Oct 9, 2024

Great points! Should this "setup repeated command execution" be created to support all commands, and not just ADCS? I think that would be good, probably!

I think a good way to implement this may be to extend the existing agenda system.

Is there any indication of how important hitting "exactly 1 second" time interval is? Is there a plus/minus requirement at all?

@DeemDeem52
Copy link
Contributor Author

Thanks! That's a good point, actually -- this functionality could be pretty useful more generally.

As for the one-second interval... as far as I can tell, all the ADCS data should be logged within one second from the 500 ms Time Since Iteration Start so that it's all on the same frame.

@DeflateAwning
Copy link
Contributor

What does "frame" mean in this case? Is it some sort of time partition/sampling the ADCS uses? Or more related to data partitioning?

@DeflateAwning DeflateAwning added the requirement A mission requirement label Oct 9, 2024
@DeemDeem52
Copy link
Contributor Author

The commissioning manual seems to use "frame" to refer to a single update of all the ADCS telemetry... so it would be a time partition.

@DeemDeem52 DeemDeem52 linked a pull request Oct 19, 2024 that will close this issue
@DeemDeem52
Copy link
Contributor Author

It looks like there's a built-in method to log telemetry data to the ADCS SD card, which generates log files directly. I think it will be easier to do this for the ADCS purpose specifically, because then the ADCS can do it automatically when we request a given commissioning step.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
requirement A mission requirement
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants