You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Extend simpleInstrumentController with cumulative holds and target illumination #1602
Space-to-space imaging needs a minimum period of valid pointing, access, and, optionally, target illumination before commanding an image. Some missions need an uninterrupted hold; others need to accumulate valid intervals across interruptions. We also need the acquired image's mean illumination over those valid intervals.
simpleInstrumentController already supports continuous duration imaging. Could we extend it with cumulative holds and target illumination so these acquisition checks live in the instrument controller?
Proposed behavior:
Add an optional cumulative hold. Continuous mode resets on a constraint break; cumulative mode pauses and keeps completed valid intervals.
Read a target illumination message, optionally enforce a minimum illuminated fraction, and report the time-weighted mean illumination when the image is commanded.
Count intervals only when both sampled endpoints qualify, including irregular update spacing, so an interrupted interval adds neither hold time nor illumination.
Keep existing configurations working by making the new constraints opt-in.
The local candidate also includes optional input freshness and capture readiness. These prevent guidance from a previous target from qualifying a new acquisition and allow the instrument to wait for storage space. Reset clears the hold and output command. Those additions can be reviewed alongside the core hold/illumination change.
Describe alternatives solutions you've considered
For BSK-RL PR #356, we agreed to retain a temporary acquisition gate in BSK-RL while this controller update is reviewed. That lets the imaging work continue with the existing Basilisk API. Once the upstream extension is merged and available, a separate BSK-RL follow-up will replace the gate with the updated module.
A local C/SWIG implementation, module documentation, and tests are prepared. Its 44 existing and added controller tests passed against an isolated rebuilt controller and wrapper; this is local validation, not GitHub CI. The BSK-RL gate has also been checked with a Basilisk controller that lacks the proposed API, including actual acquisition, storage, and complete downlink.
The replacement on the BSK-RL side is tracked in BSK-RL #358.
Activity