Skip to content

Struct async_dsss_receiver_status_t

ClassList > async_dsss_receiver_status_t

One consistent picture of what the receiver is doing, by value. More...

  • #include <async_dsss_receiver_core.h>

Public Attributes

Type Name
uint64_t both_down_samples
double car_last_error
double chip_phase
double cn0_dbhz_est
int code_locked
double code_rate
double doppler_hz
double lock_metric
double lock_threshold
int locked
double mpsk_last_error
int state
uint64_t state_samples

Detailed Description

The status record of docs/design/async-dsss-receiver.md section 11.3: the holder of a pool reads it on demand once per data-free window at least, because the searcher's exclusion zone is keyed on the receiver's CURRENT estimate, not on its seed and gets every field from one call, so a reader on another thread never assembles a picture across a steps() from the one-at-a-time getters (which remain the same fields' other face). It is a read of live state, not get_state(): the bytes triplet resumes the receiver elsewhere, this describes it here. No timestamp: the counters are in input samples, and the holder, which owns the sample clock, stamps them (section 2.2's rule).

Public Attributes Documentation

variable both_down_samples

uint64_t async_dsss_receiver_status_t::both_down_samples;

Input samples both flags have been down without a break (the release clock); in lost it keeps counting samples since the flags dropped.


variable car_last_error

double async_dsss_receiver_status_t::car_last_error;

Pre-despread Costas residual, rad.


variable chip_phase

double async_dsss_receiver_status_t::chip_phase;

Live Dll code phase, chips.


variable cn0_dbhz_est

double async_dsss_receiver_status_t::cn0_dbhz_est;

C/N0 estimate, dB-Hz (the hit's).


variable code_locked

int async_dsss_receiver_status_t::code_locked;

Presence flag: the Dll's lock detector.


variable code_rate

double async_dsss_receiver_status_t::code_rate;

Live Dll code rate, chips/sample.


variable doppler_hz

double async_dsss_receiver_status_t::doppler_hz;

Where the emitter is NOW: the whole carrier estimate, Hz loop 1's plus what loop 2 has taken up beyond it (the seed while refining, 0 when idle, frozen where it was when lost). Only as good as locked: with the carrier unlocked, loop 1 free-runs and this wanders.


variable lock_metric

double async_dsss_receiver_status_t::lock_metric;

cos(2*phi) over the symbols, drives locked.


variable lock_threshold

double async_dsss_receiver_status_t::lock_threshold;

locked latches above this.


variable locked

int async_dsss_receiver_status_t::locked;

Health flag: the symbol-lock detector.


variable mpsk_last_error

double async_dsss_receiver_status_t::mpsk_last_error;

Post-despread carrier residual, rad.


variable state

int async_dsss_receiver_status_t::state;

ASYNC_DSSS_RX_SEARCHING .. _LOST where it is.


variable state_samples

uint64_t async_dsss_receiver_status_t::state_samples;

Input samples since state was entered.



The documentation for this class was generated from the following file native/inc/async_dsss_receiver/async_dsss_receiver_core.h