Skip to content

Add acquisition automation modes and fine-tune pipeline#397

Open
cfremling wants to merge 3 commits intomainfrom
feature/acq-automation-clean
Open

Add acquisition automation modes and fine-tune pipeline#397
cfremling wants to merge 3 commits intomainfrom
feature/acq-automation-clean

Conversation

@cfremling
Copy link
Collaborator

Summary

  • Implement three acquisition automation modes (MANUAL, AUTOMATIC, FULL_AUTOMATIC) controlled via the new acqmode command, enabling configurable hands-off target acquisition
  • Integrate ngps_acq fine-acquisition algorithm in slicecamd (source detection, centroiding, TCS offsets, closed-loop acquisition) via C callback API
  • Publish ACAM guiding/acquiring state and preserve guiding during offsets
  • Add seq_progress_gui (X11+ZMQ) for real-time observation phase display (SLEW/SOLVE/FINE/OFFSET/EXPOSE)
  • Add configuration parameters for acquisition timeouts and fine-tune settings

Files changed (19)

New files (4): slicecamd/ngps_acq.c, common/ngps_acq_embed.h, utils/seq_progress_gui.cpp, common/message_keys.h, run/seq-progress

Modified files (14): sequencerd/sequence.cpp, slicecamd/slicecam_interface.cpp, sequencerd/sequence.h, sequencerd/sequencer_server.cpp, slicecamd/slicecam_interface.h, Config/sequencerd.cfg.in, Config/slicecamd.cfg.in, acamd/acam_interface.cpp, utils/CMakeLists.txt, slicecamd/CMakeLists.txt, common/sequencerd_commands.h, common/slicecamd_commands.h, sequencerd/sequencerd.cpp, slicecamd/slicecam_server.cpp

Test plan

  • Build with cmake .. && make -j$(nproc) — verify all 19 files compile cleanly
  • Verify acqmode command accepts MANUAL/AUTOMATIC/FULL_AUTOMATIC
  • Test acquisition state machine transitions: SLEW → SOLVE → FINE → OFFSET → EXPOSE
  • Verify seq_progress_gui launches and displays phase updates via ZMQ
  • Test fine-acquisition loop with slicecam source detection and TCS offsets
  • Confirm ACAM guiding state is preserved during offset_goal operations

🤖 Generated with Claude Code

Properly rebased against main, preserving all existing functionality
(can_expose wait, channel activate/deactivate, camerad ZMQ handler).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@cfremling cfremling force-pushed the feature/acq-automation-clean branch from 723cc0a to 527fe81 Compare March 7, 2026 01:57
cfremling and others added 2 commits March 6, 2026 19:15
Latch ontarget=true when received; only clear on new target via
reset_progress_only(). Prevents blinking caused by transient 1-second
is_ontarget signal being repeatedly published as false.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
get_logical() was reading detrows/detcols (skip-adjusted) and
osrows/oscols (binning-divided), causing set_image_size to shrink
the image on every call. Use defrows/defcols and defosrows/defoscols
(original config values) so repeated bin commands are idempotent.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant