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
uint64_t refused_hits
int state
uint64_t state_samples

Detailed Description

The status record of docs/design/async-dsss-receiver.md §11.3: a holder the controller of docs/design/async-dsss-parallel.md §4 reads it on demand, because the exclusions it hands the other receivers are keyed on this receiver's CURRENT code phase, not on its seed, and gets every field from one call between steps() calls, rather than assembling a picture from the one-at-a-time getters. It is a read of live state, not get_state(): the bytes triplet resumes the receiver elsewhere, this describes it here. Its doppler_hz is the live carrier (loop 1 plus loop 2), where get_doppler_hz() reports the estimate the chain was built from. No timestamp: the counters are in input samples, and the holder, which owns the sample clock, stamps them (docs/design/async-dsss-receiver.md §11.3).

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. With reacquire, the symbol lock flag's clock alone.


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;

Code phase, chips: the live Dll's; while refining, the seed's advanced by the clock dilation since (what the hand-over starts from), so a refining receiver's signal can be excluded too.


variable cn0_dbhz_est

double async_dsss_receiver_status_t::cn0_dbhz_est;

C/N0 estimate, dB-Hz (the seed'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;

The Dll's code rate, chips per nominal chip (~1.0 at lock), without the carrier aid; a coasting Dll's is its held rate.


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 while searching, 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 declares strictly 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 refused_hits

uint64_t async_dsss_receiver_status_t::refused_hits;

Searching hits refused as seeds by the seed domain (a Doppler at or past fs/2), since create or reset. The search went on over each one's tail.


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/doppler/async_dsss_receiver/async_dsss_receiver_core.h