blob: cb4db43edce5fa18a6a23b6fe221b159d6d825fa (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
/* -*- c++ -*- */
%feature("autodoc", "1"); // generate python docstrings
%include "exception.i"
%import "gnuradio.i" // the common stuff
%{
#include "gnuradio_swig_bug_workaround.h" // mandatory bug fix
#include "gsm_constants.h"
#include "gsm_burst.h"
#include "gsm_burst_ff.h"
#include "gsm_burst_cf.h"
#include <stdexcept>
%}
// ----------------------------------------------------------------
#define PRINT_NOTHING 0x00000000
#define PRINT_EVERYTHING 0x7FFFFFFF //7 for SWIG overflow check work around
#define PRINT_BITS 0x00000001
#define PRINT_ALL_BITS 0x00000002
#define PRINT_CORR_BITS 0x00000004
#define PRINT_ALL_TYPES 0x00000FF0
#define PRINT_KNOWN 0x00000008
#define PRINT_UNKNOWN 0x00000010
#define PRINT_TS0 0x00000020
#define PRINT_FCCH 0x00000040
#define PRINT_SCH 0x00000080
#define PRINT_DUMMY 0x00000100
#define PRINT_NORMAL 0x00000200
//Timing/clock options
#define QB_NONE 0x00000000
#define QB_QUARTER 0x00000001 //only for internal clocked versions
#define QB_FULL04 0x00000003
#define QB_MASK 0x0000000F
#define CLK_CORR_TRACK 0x00000010 //adjust timing based on correlation offsets
//EQ options
enum EQ_TYPE {
EQ_NONE,
EQ_FIXED_LINEAR,
EQ_ADAPTIVE_LINEAR,
EQ_FIXED_DFE,
EQ_ADAPTIVE_DFE,
EQ_VITERBI
};
class gsm_burst
{
public:
~gsm_burst ();
unsigned long d_clock_options;
unsigned long d_print_options;
EQ_TYPE d_equalizer_type;
//stats
long d_sync_loss_count;
long d_fcch_count;
long d_part_sch_count;
long d_sch_count;
long d_normal_count;
long d_dummy_count;
long d_unknown_count;
int sync_state();
float freq_offset();
protected:
gsm_burst();
};
GR_SWIG_BLOCK_MAGIC(gsm,burst_ff);
gsm_burst_ff_sptr gsm_make_burst_ff ();
class gsm_burst_ff : public gr_block, public gsm_burst
{
//public:
private:
gsm_burst_ff ();
};
GR_SWIG_BLOCK_MAGIC(gsm,burst_cf);
gsm_burst_cf_sptr gsm_make_burst_cf (float);
class gsm_burst_cf : public gr_block, public gsm_burst
{
//public:
private:
gsm_burst_cf (float);
};
|