Statistics
| Branch: | Tag: | Revision:

root / usrp / host / include / usrp / db_xcvr2450.h @ ba4f8351

History | View | Annotate | Download (2.1 kB)

1 72c625f7 jcorgan
/* -*- c++ -*- */
2 72c625f7 jcorgan
//
3 6558bc31 eb
// Copyright 2008,2009 Free Software Foundation, Inc.
4 72c625f7 jcorgan
// 
5 72c625f7 jcorgan
// This file is part of GNU Radio
6 72c625f7 jcorgan
// 
7 72c625f7 jcorgan
// GNU Radio is free software; you can redistribute it and/or modify
8 72c625f7 jcorgan
// it under the terms of the GNU General Public License as published by
9 72c625f7 jcorgan
// the Free Software Foundation; either asversion 3, or (at your option)
10 72c625f7 jcorgan
// any later version.
11 72c625f7 jcorgan
// 
12 72c625f7 jcorgan
// GNU Radio is distributed in the hope that it will be useful,
13 72c625f7 jcorgan
// but WITHOUT ANY WARRANTY; without even the implied warranty of
14 72c625f7 jcorgan
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 72c625f7 jcorgan
// GNU General Public License for more details.
16 72c625f7 jcorgan
// 
17 72c625f7 jcorgan
// You should have received a copy of the GNU General Public License
18 72c625f7 jcorgan
// along with GNU Radio; see the file COPYING.  If not, write to
19 72c625f7 jcorgan
// the Free Software Foundation, Inc., 51 Franklin Street,
20 72c625f7 jcorgan
// Boston, MA 02110-1301, USA.
21 72c625f7 jcorgan
22 72c625f7 jcorgan
#ifndef DB_XCVR2450_H
23 72c625f7 jcorgan
#define DB_XCVR2450_H
24 72c625f7 jcorgan
25 c276a4ff jcorgan
#include <usrp/db_base.h>
26 72c625f7 jcorgan
#include <boost/shared_ptr.hpp>
27 72c625f7 jcorgan
28 72c625f7 jcorgan
class xcvr2450;
29 72c625f7 jcorgan
typedef boost::shared_ptr<xcvr2450> xcvr2450_sptr;
30 72c625f7 jcorgan
31 72c625f7 jcorgan
32 72c625f7 jcorgan
/******************************************************************************/
33 72c625f7 jcorgan
34 72c625f7 jcorgan
35 72c625f7 jcorgan
class db_xcvr2450_base: public db_base
36 72c625f7 jcorgan
{
37 72c625f7 jcorgan
  /*
38 72c625f7 jcorgan
   * Abstract base class for all xcvr2450 boards.
39 72c625f7 jcorgan
   * 
40 72c625f7 jcorgan
   * Derive board specific subclasses from db_xcvr2450_base_{tx,rx}
41 72c625f7 jcorgan
   */
42 72c625f7 jcorgan
public:
43 72c625f7 jcorgan
  db_xcvr2450_base(usrp_basic_sptr usrp, int which);
44 72c625f7 jcorgan
  ~db_xcvr2450_base();
45 72c625f7 jcorgan
  struct freq_result_t set_freq(double target_freq);
46 72c625f7 jcorgan
  bool is_quadrature();
47 72c625f7 jcorgan
  double freq_min();
48 72c625f7 jcorgan
  double freq_max();
49 72c625f7 jcorgan
50 72c625f7 jcorgan
protected:
51 72c625f7 jcorgan
  xcvr2450_sptr d_xcvr;
52 6558bc31 eb
  void shutdown_common();
53 72c625f7 jcorgan
};
54 72c625f7 jcorgan
55 72c625f7 jcorgan
56 72c625f7 jcorgan
/******************************************************************************/
57 72c625f7 jcorgan
58 72c625f7 jcorgan
59 72c625f7 jcorgan
class db_xcvr2450_tx : public db_xcvr2450_base
60 72c625f7 jcorgan
{
61 6558bc31 eb
protected:
62 6558bc31 eb
  void shutdown();
63 6558bc31 eb
64 72c625f7 jcorgan
public:
65 72c625f7 jcorgan
  db_xcvr2450_tx(usrp_basic_sptr usrp, int which);
66 72c625f7 jcorgan
  ~db_xcvr2450_tx();
67 72c625f7 jcorgan
68 72c625f7 jcorgan
  float gain_min();
69 72c625f7 jcorgan
  float gain_max();
70 72c625f7 jcorgan
  float gain_db_per_step();
71 72c625f7 jcorgan
  bool  set_gain(float gain);
72 72c625f7 jcorgan
  bool  i_and_q_swapped();
73 72c625f7 jcorgan
};
74 72c625f7 jcorgan
75 72c625f7 jcorgan
class db_xcvr2450_rx : public db_xcvr2450_base
76 72c625f7 jcorgan
{
77 6558bc31 eb
protected:
78 6558bc31 eb
  void shutdown();
79 6558bc31 eb
80 72c625f7 jcorgan
public:
81 72c625f7 jcorgan
  db_xcvr2450_rx(usrp_basic_sptr usrp, int which);
82 72c625f7 jcorgan
  ~db_xcvr2450_rx();
83 72c625f7 jcorgan
84 72c625f7 jcorgan
  float gain_min();
85 72c625f7 jcorgan
  float gain_max();
86 72c625f7 jcorgan
  float gain_db_per_step();
87 72c625f7 jcorgan
  bool  set_gain(float gain);
88 72c625f7 jcorgan
};
89 72c625f7 jcorgan
90 72c625f7 jcorgan
91 72c625f7 jcorgan
92 72c625f7 jcorgan
#endif