GNU Radio's FOOT Package
gr::bluetooth::multi_block Class Referenceabstract

Bluetooth multi-channel parent class. More...

#include <multi_block.h>

Inheritance diagram for gr::bluetooth::multi_block:
gr::bluetooth::multi_hopper gr::bluetooth::multi_LAP gr::bluetooth::multi_sniffer gr::bluetooth::multi_UAP gr::bluetooth::multi_hopper_impl gr::bluetooth::multi_LAP_impl gr::bluetooth::multi_sniffer_impl gr::bluetooth::multi_UAP_impl

Public Member Functions

virtual int work (int noutput_items, gr_vector_const_void_star &input_items, gr_vector_void_star &output_items)=0
 

Protected Member Functions

 multi_block ()
 
 multi_block (double sample_rate, double center_freq, double squelch_threshold)
 
int mm_cr (const float *in, int ninput_items, float *out, int noutput_items)
 
void demod (const gr_complex *in, float *out, int noutput_items)
 
void slicer (const float *in, char *out, int noutput_items)
 
int channel_samples (const double freq, gr_vector_const_void_star &in, gr_vector_void_star &out, double &energy, int ninput_items)
 
int channel_symbols (gr_vector_const_void_star &in, char *out, int ninput_items)
 
bool check_snr (const double freq, const double on_channel_energy, double &snr, gr_vector_const_void_star &in)
 
void set_symbol_history (int num_symbols)
 
void set_channels ()
 
double channel_rel_freq (int channel)
 
double channel_abs_freq (int channel)
 
int abs_freq_channel (double freq)
 

Protected Attributes

uint64_t d_cumulative_count
 
double d_sample_rate
 
double d_samples_per_symbol
 
double d_samples_per_slot
 
double d_center_freq
 
double d_low_freq
 
double d_high_freq
 
int d_ddc_decimation_rate
 
float d_gain_mu
 
float d_mu
 
float d_omega_relative_limit
 
float d_omega
 
float d_gain_omega
 
float d_omega_mid
 
float d_last_sample
 
double d_target_snr
 
double d_channel_filter_width
 
std::vector< float > d_channel_filter
 
std::map< int, gr::filter::freq_xlating_fir_filter_ccf::sptr > d_channel_ddcs
 
double d_noise_filter_width
 
std::vector< float > d_noise_filter
 
std::map< int, gr::filter::freq_xlating_fir_filter_ccf::sptr > d_noise_ddcs
 
int d_first_channel_sample
 
int d_first_noise_sample
 
float d_demod_gain
 
gr::filter::mmse_fir_interpolator_ff * d_interp
 

Static Protected Attributes

static const int SYMBOL_RATE = 1000000
 
static const int SYMBOLS_PER_BASIC_RATE_SHORTENED_ACCESS_CODE = 68
 
static const int SYMBOLS_PER_LOW_ENERGY_PREAMBLE_AA = 40
 
static const int SYMBOLS_PER_BASIC_RATE_SLOT = 625
 
static const int SYMBOLS_FOR_BASIC_RATE_HISTORY = 3125
 
static const uint32_t BASE_FREQUENCY = 2402000000UL
 
static const int CHANNEL_WIDTH = 1000000
 

Detailed Description

Bluetooth multi-channel parent class.

Constructor & Destructor Documentation

◆ multi_block() [1/2]

gr::bluetooth::multi_block::multi_block ( )
inlineprotected

◆ multi_block() [2/2]

gr::bluetooth::multi_block::multi_block ( double  sample_rate,
double  center_freq,
double  squelch_threshold 
)
protected

Member Function Documentation

◆ abs_freq_channel()

int gr::bluetooth::multi_block::abs_freq_channel ( double  freq)
protected

◆ channel_abs_freq()

double gr::bluetooth::multi_block::channel_abs_freq ( int  channel)
protected

◆ channel_rel_freq()

double gr::bluetooth::multi_block::channel_rel_freq ( int  channel)
protected

◆ channel_samples()

int gr::bluetooth::multi_block::channel_samples ( const double  freq,
gr_vector_const_void_star &  in,
gr_vector_void_star &  out,
double &  energy,
int  ninput_items 
)
protected

Extract a single BT channel's worth of samples from the wider bandwidth samples.

◆ channel_symbols()

int gr::bluetooth::multi_block::channel_symbols ( gr_vector_const_void_star &  in,
char *  out,
int  ninput_items 
)
protected

Produce symbols stream for a single BT channel, developed from of the raw samples for a single BT channel.

◆ check_snr()

bool gr::bluetooth::multi_block::check_snr ( const double  freq,
const double  on_channel_energy,
double &  snr,
gr_vector_const_void_star &  in 
)
protected

◆ demod()

void gr::bluetooth::multi_block::demod ( const gr_complex *  in,
float *  out,
int  noutput_items 
)
protected

◆ mm_cr()

int gr::bluetooth::multi_block::mm_cr ( const float *  in,
int  ninput_items,
float *  out,
int  noutput_items 
)
protected

◆ set_channels()

void gr::bluetooth::multi_block::set_channels ( )
protected

◆ set_symbol_history()

void gr::bluetooth::multi_block::set_symbol_history ( int  num_symbols)
protected

◆ slicer()

void gr::bluetooth::multi_block::slicer ( const float *  in,
char *  out,
int  noutput_items 
)
protected

◆ work()

virtual int gr::bluetooth::multi_block::work ( int  noutput_items,
gr_vector_const_void_star &  input_items,
gr_vector_void_star &  output_items 
)
pure virtual

Member Data Documentation

◆ BASE_FREQUENCY

const uint32_t gr::bluetooth::multi_block::BASE_FREQUENCY = 2402000000UL
staticprotected

◆ CHANNEL_WIDTH

const int gr::bluetooth::multi_block::CHANNEL_WIDTH = 1000000
staticprotected

◆ d_center_freq

double gr::bluetooth::multi_block::d_center_freq
protected

◆ d_channel_ddcs

std::map<int, gr::filter::freq_xlating_fir_filter_ccf::sptr> gr::bluetooth::multi_block::d_channel_ddcs
protected

◆ d_channel_filter

std::vector<float> gr::bluetooth::multi_block::d_channel_filter
protected

◆ d_channel_filter_width

double gr::bluetooth::multi_block::d_channel_filter_width
protected

◆ d_cumulative_count

uint64_t gr::bluetooth::multi_block::d_cumulative_count
protected

◆ d_ddc_decimation_rate

int gr::bluetooth::multi_block::d_ddc_decimation_rate
protected

◆ d_demod_gain

float gr::bluetooth::multi_block::d_demod_gain
protected

◆ d_first_channel_sample

int gr::bluetooth::multi_block::d_first_channel_sample
protected

◆ d_first_noise_sample

int gr::bluetooth::multi_block::d_first_noise_sample
protected

◆ d_gain_mu

float gr::bluetooth::multi_block::d_gain_mu
protected

◆ d_gain_omega

float gr::bluetooth::multi_block::d_gain_omega
protected

◆ d_high_freq

double gr::bluetooth::multi_block::d_high_freq
protected

◆ d_interp

gr::filter::mmse_fir_interpolator_ff* gr::bluetooth::multi_block::d_interp
protected

◆ d_last_sample

float gr::bluetooth::multi_block::d_last_sample
protected

◆ d_low_freq

double gr::bluetooth::multi_block::d_low_freq
protected

◆ d_mu

float gr::bluetooth::multi_block::d_mu
protected

◆ d_noise_ddcs

std::map<int, gr::filter::freq_xlating_fir_filter_ccf::sptr> gr::bluetooth::multi_block::d_noise_ddcs
protected

◆ d_noise_filter

std::vector<float> gr::bluetooth::multi_block::d_noise_filter
protected

◆ d_noise_filter_width

double gr::bluetooth::multi_block::d_noise_filter_width
protected

◆ d_omega

float gr::bluetooth::multi_block::d_omega
protected

◆ d_omega_mid

float gr::bluetooth::multi_block::d_omega_mid
protected

◆ d_omega_relative_limit

float gr::bluetooth::multi_block::d_omega_relative_limit
protected

◆ d_sample_rate

double gr::bluetooth::multi_block::d_sample_rate
protected

◆ d_samples_per_slot

double gr::bluetooth::multi_block::d_samples_per_slot
protected

◆ d_samples_per_symbol

double gr::bluetooth::multi_block::d_samples_per_symbol
protected

◆ d_target_snr

double gr::bluetooth::multi_block::d_target_snr
protected

◆ SYMBOL_RATE

const int gr::bluetooth::multi_block::SYMBOL_RATE = 1000000
staticprotected

◆ SYMBOLS_FOR_BASIC_RATE_HISTORY

const int gr::bluetooth::multi_block::SYMBOLS_FOR_BASIC_RATE_HISTORY = 3125
staticprotected

◆ SYMBOLS_PER_BASIC_RATE_SHORTENED_ACCESS_CODE

const int gr::bluetooth::multi_block::SYMBOLS_PER_BASIC_RATE_SHORTENED_ACCESS_CODE = 68
staticprotected

◆ SYMBOLS_PER_BASIC_RATE_SLOT

const int gr::bluetooth::multi_block::SYMBOLS_PER_BASIC_RATE_SLOT = 625
staticprotected

◆ SYMBOLS_PER_LOW_ENERGY_PREAMBLE_AA

const int gr::bluetooth::multi_block::SYMBOLS_PER_LOW_ENERGY_PREAMBLE_AA = 40
staticprotected

The documentation for this class was generated from the following file: