Skip to content

File burst_acq_core.h

File List > burst_acq > burst_acq_core.h

Go to the documentation of this file

#ifndef DP_BURST_ACQ_CORE_H
#define DP_BURST_ACQ_CORE_H

#include "doppler/acq/acq_core.h"
#include "doppler/clib_common.h"
#include "doppler/jm_perf.h"
#include "doppler/cvt/cvt_core.h"

#ifdef __cplusplus
extern "C"
{
#endif

  typedef struct
  {
    dp_acq_state_t *engine;
    uint8_t underpowered;
  } dp_burst_acq_state_t;

  dp_burst_acq_state_t *dp_burst_acq_create (const float _Complex *preamble,
                                       size_t preamble_len, size_t reps,
                                       double fs,
                                       double cn0_dbhz,
                                       double doppler_uncertainty, double pfa,
                                       double pd, int noise_mode,
                                       double doppler_rate,
                                       size_t rate_hypotheses);

  void dp_burst_acq_destroy (dp_burst_acq_state_t *state);

  void dp_burst_acq_reset (dp_burst_acq_state_t *state);

  size_t dp_burst_acq_push (dp_burst_acq_state_t *state, const float _Complex *x,
                         size_t n_in, acq_result_t *result,
                         size_t max_results);

  size_t dp_burst_acq_consumed (const dp_burst_acq_state_t *state);

  int dp_burst_acq_configure_search_raw (dp_burst_acq_state_t *state,
                                      size_t doppler_bins, size_t n_noncoh);

  int dp_burst_acq_set_max_peaks (dp_burst_acq_state_t *state, size_t n);

  /* ── Serializable state — forwards straight to the embedded engine's own
   * triplet (the serialized bytes ARE the shared dp_acq_state_t's own state;
   * no separate format needed). */

  size_t dp_burst_acq_state_bytes (const dp_burst_acq_state_t *state);
  void   dp_burst_acq_get_state (const dp_burst_acq_state_t *state, void *blob);
  int    dp_burst_acq_set_state (dp_burst_acq_state_t *state, const void *blob);

#ifdef __cplusplus
}
#endif

#endif /* BURST_ACQ_CORE_H */