X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=usrp%2Fhost%2Finclude%2Fusrp%2Fdb_wbxng.h;h=2158face2e77eb15077ccaf0f61254f3938b4bfb;hb=69caa7dce5a58b39614b1aba99c2dd71b38af322;hp=b255cf91c5a6ff85647a18d0ecb6bee3c4369f39;hpb=052e7a2c880edbc0dd55dc05d2758d3730cf9cb8;p=debian%2Fgnuradio diff --git a/usrp/host/include/usrp/db_wbxng.h b/usrp/host/include/usrp/db_wbxng.h index b255cf91..2158face 100644 --- a/usrp/host/include/usrp/db_wbxng.h +++ b/usrp/host/include/usrp/db_wbxng.h @@ -1,82 +1,113 @@ /* -*- c++ -*- */ // -// Copyright 2008,2009 Free Software Foundation, Inc. -// +// Copyright 2009 Free Software Foundation, Inc. +// // This file is part of GNU Radio -// +// // GNU Radio is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either asversion 3, or (at your option) // any later version. -// +// // GNU Radio is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. -// +// // You should have received a copy of the GNU General Public License // along with GNU Radio; see the file COPYING. If not, write to // the Free Software Foundation, Inc., 51 Franklin Street, // Boston, MA 02110-1301, USA. -#ifndef DB_WBXNG_H -#define DB_WBXNG_H +#ifndef INCLUDED_DB_WBXNG_H +#define INCLUDED_DB_WBXNG_H #include -#include +#include -class wbxng; -typedef boost::shared_ptr wbxng_sptr; +class adf4350; - -/******************************************************************************/ - - -class db_wbxng_base: public db_base +class wbxng_base : public db_base { - /* - * Abstract base class for all wbxng boards. - * - * Derive board specific subclasses from db_wbxng_base_{tx,rx} - */ public: - db_wbxng_base(usrp_basic_sptr usrp, int which); - ~db_wbxng_base(); - struct freq_result_t set_freq(double target_freq); - bool is_quadrature(); + wbxng_base(usrp_basic_sptr usrp, int which, int _power_on=0); + ~wbxng_base(); + + struct freq_result_t set_freq(double freq); + + bool is_quadrature(); double freq_min(); double freq_max(); protected: - wbxng_sptr d_wbxng; - void shutdown_common(); -}; + bool _lock_detect(); + //virtual bool _compute_regs(double freq, int &retR, int &retcontrol, int &retN, double &retfreq); + int _compute_control_reg(); + int _refclk_divisor(); + double _refclk_freq(); -/******************************************************************************/ + bool _set_pga(float pga_gain); + int power_on() { return d_power_on; } + int power_off() { return 0; } -class db_wbxng_tx : public db_wbxng_base + bool d_first; + int d_spi_format; + int d_spi_enable; + int d_power_on; + int d_PD; + + adf4350 *d_common; +}; + +// ---------------------------------------------------------------- + +class wbxng_base_tx : public wbxng_base { protected: void shutdown(); public: - db_wbxng_tx(usrp_basic_sptr usrp, int which); - ~db_wbxng_tx(); + wbxng_base_tx(usrp_basic_sptr usrp, int which, int _power_on=0); + ~wbxng_base_tx(); float gain_min(); float gain_max(); float gain_db_per_step(); - bool set_gain(float gain); - bool i_and_q_swapped(); + + bool set_auto_tr(bool on); + bool set_enable(bool on); + bool set_gain(float gain); }; -class db_wbxng_rx : public db_wbxng_base +class wbxng_base_rx : public wbxng_base { protected: void shutdown(); + bool _set_attn(float attn); +public: + wbxng_base_rx(usrp_basic_sptr usrp, int which, int _power_on=0); + ~wbxng_base_rx(); + + bool set_auto_tr(bool on); + bool select_rx_antenna(int which_antenna); + bool select_rx_antenna(const std::string &which_antenna); + bool set_gain(float gain); +}; + +// ---------------------------------------------------------------- + +class db_wbxng_tx : public wbxng_base_tx +{ + public: + db_wbxng_tx(usrp_basic_sptr usrp, int which); + ~db_wbxng_tx(); +}; + +class db_wbxng_rx : public wbxng_base_rx +{ public: db_wbxng_rx(usrp_basic_sptr usrp, int which); ~db_wbxng_rx(); @@ -84,9 +115,7 @@ public: float gain_min(); float gain_max(); float gain_db_per_step(); - bool set_gain(float gain); + bool i_and_q_swapped(); }; - - -#endif +#endif /* INCLUDED_DB_WBXNG_H */