Struct FineAcqState

Struct Documentation

struct FineAcqState

Persistent state for the fine-acquisition per-frame state machine.

which - which camera to use (“L” or “R”) aimpoint - desired star location on the chip, FITS 1-based pixels. This is the pixel analogue of CF’s —goal-x / —goal-y. The star is driven toward this pixel, not toward an ra/dec. bg_region - background estimation ROI, 1-based inclusive. Matches the —bg-x1/x2/y1/y2 defaults in slicecamd.cfg. dra_samp - accumulated dRA*cos(dec) samples in degrees ddec_samp - accumulated dDEC samples in degrees max_samples - samples to gather before evaluating a move goal_arcsec - convergence threshold; loop stops when median offset magnitude falls below this value gain - fraction of the median offset commanded each cycle (0..1) settle_count - configured frames to discard after each commanded move settle_frames - runtime countdown; decremented to zero before resuming

Public Functions

inline void reset()
inline bool is_valid() const noexcept

Public Members

std::string which
Point aimpoint = {NAN, NAN}

1-based pixel aim point; NAN until configured

Rect bg_region

background ROI (1-based)

std::vector<double> dra_samp

dRA*cos(dec) samples, degrees

std::vector<double> ddec_samp

dDEC samples, degrees

int max_samples = 10

samples before evaluating a move

int min_samples = 3

minimum samples before scatter-gated early exit

double prec_arcsec = 0.1

MAD scatter threshold per axis for early exit (arcsec)

double goal_arcsec = 0.3

convergence threshold, arcsec

double gain = 0.7

gain applied when offset <= gain_threshold_arcsec

double gain_large = 1.0

gain applied when offset > gain_threshold_arcsec

double gain_threshold_arcsec = 2.0

offset above which gain_large is used

int settle_frames = 0

countdown of frames to discard while telescope settles

int settle_count = 2

configured: frames to discard after each move

int consecutive_centroid_failures = 0

counts consecutive centroid failures

double exptime_min = 0.1

clamp: minimum auto-adjusted exposure (sec)

double exptime_max = 15.0

clamp: maximum auto-adjusted exposure (sec)

double saturation = NAN

raw-peak saturation ceiling; NAN disables the guard

double counts_faint = NAN

below this (top-10%-mean) raise toward counts_faint_goal

double counts_faint_goal = NAN

faint-mode brightness goal

double counts_bright = NAN

above this lower toward counts_bright_goal

double counts_bright_goal = NAN

bright-mode brightness goal

double min_snr = NAN

peak SNR at/above which faint raises are vetoed; NAN disables

int autoexpose_window = 2

frames per pre-acquisition auto-exposure decision

std::vector<double> top10_samp

per-frame top-10%-mean brightness samples, parallel to dra_samp

std::vector<double> snr_samp

per-frame peak-SNR samples, parallel to top10_samp