GNU Radio 3.6.4.1 C++ API
pager_flex_parse.h
Go to the documentation of this file.
1
/*
2
* Copyright 2006 Free Software Foundation, Inc.
3
*
4
* This file is part of GNU Radio
5
*
6
* GNU Radio is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 3, or (at your option)
9
* any later version.
10
*
11
* GNU Radio is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with GNU Radio; see the file COPYING. If not, write to
18
* the Free Software Foundation, Inc., 51 Franklin Street,
19
* Boston, MA 02110-1301, USA.
20
*/
21
22
#ifndef INCLUDED_PAGER_FLEX_PARSE_H
23
#define INCLUDED_PAGER_FLEX_PARSE_H
24
25
#include <
pager_api.h
>
26
#include <
gr_sync_block.h
>
27
#include <
gr_msg_queue.h
>
28
#include <
pageri_flex_modes.h
>
29
#include <sstream>
30
31
class
pager_flex_parse;
32
typedef
boost::shared_ptr<pager_flex_parse>
pager_flex_parse_sptr
;
33
34
PAGER_API
pager_flex_parse_sptr
pager_make_flex_parse(
gr_msg_queue_sptr
queue,
float
freq);
35
36
#define FIELD_DELIM ((unsigned char)128)
37
38
/*!
39
* \brief flex parse description
40
* \ingroup pager_blk
41
*/
42
class
PAGER_API
pager_flex_parse :
public
gr_sync_block
43
{
44
private
:
45
// Constructors
46
friend
PAGER_API
pager_flex_parse_sptr
pager_make_flex_parse(
gr_msg_queue_sptr
queue,
float
freq);
47
pager_flex_parse(
gr_msg_queue_sptr
queue,
float
freq);
48
49
std::ostringstream d_payload;
50
gr_msg_queue_sptr
d_queue;
// Destination for decoded pages
51
52
int
d_count;
// Count of received codewords
53
gr_int32
d_datawords[88];
// 11 blocks of 8 32-bit words
54
55
page_type_t
d_type;
// Current page type
56
int
d_capcode;
// Current page destination address
57
bool
d_laddr;
// Current page has long address
58
float
d_freq;
// Channel frequency
59
60
void
parse_data();
// Handle a frame's worth of data
61
void
parse_capcode(
gr_int32
aw1,
gr_int32
aw2);
62
void
parse_alphanumeric(
int
mw1,
int
mw2,
int
j);
63
void
parse_numeric(
int
mw1,
int
mw2,
int
j);
64
void
parse_tone_only();
65
void
parse_unknown(
int
mw1,
int
mw2);
66
67
public
:
68
int
work
(
int
noutput_items,
69
gr_vector_const_void_star
&input_items,
70
gr_vector_void_star
&output_items);
71
};
72
73
#endif
/* INCLUDED_PAGER_FLEX_PARSE_H */
gnuradio
gr-pager
lib
pager_flex_parse.h
Generated by
1.8.1.2