root/vtcross/branches/hasan/db_boards.cc @ 546

Revision 546, 8.2 KB (checked in by hasan, 14 years ago)

Modified version of Sriram's driver

Line 
1/* -*- c++ -*- */
2//
3// Copyright 2008 Free Software Foundation, Inc.
4//
5// This file is part of GNU Radio
6//
7// GNU Radio is free software; you can redistribute it and/or modify
8// it under the terms of the GNU General Public License as published by
9// the Free Software Foundation; either asversion 3, or (at your option)
10// any later version.
11//
12// GNU Radio is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15// GNU General Public License for more details.
16//
17// You should have received a copy of the GNU General Public License
18// along with GNU Radio; see the file COPYING.  If not, write to
19// the Free Software Foundation, Inc., 51 Franklin Street,
20// Boston, MA 02110-1301, USA.
21//
22
23#include <db_boards.h>
24#include <usrp_dbid.h>
25#include <db_basic.h>
26#include <db_tv_rx.h>
27#include <db_dbs_rx.h>
28#include <db_flexrf.h>
29#include <db_flexrf_mimo.h>
30#include <db_xcvr2450.h>
31#include <db_wbx.h>
32#include <db_dtt754.h>
33#include <db_dtt768.h>
34#include <db_rfic.h>
35#include <iostream>
36
37
38std::vector<db_base_sptr>
39instantiate_dbs(int dbid, usrp_basic_sptr usrp, int which_side)
40{
41  std::vector<db_base_sptr> db;
42  std::cout<<"the db id is : checking value "<<dbid<<std::endl;
43  printf("checking if it came here hhhghhg \n");
44 
45  switch(dbid) {
46
47  case(USRP_DBID_BASIC_TX):
48    db.push_back(db_base_sptr(new db_basic_tx(usrp, which_side)));
49    break;
50
51  case(USRP_DBID_BASIC_RX):
52    db.push_back(db_base_sptr(new db_basic_rx(usrp, which_side, 0)));
53    db.push_back(db_base_sptr(new db_basic_rx(usrp, which_side, 1)));
54    db.push_back(db_base_sptr(new db_basic_rx(usrp, which_side, 2)));
55    break;
56
57  case(USRP_DBID_LF_TX):
58    db.push_back(db_base_sptr(new db_lf_tx(usrp, which_side)));
59    break;
60
61  case(USRP_DBID_LF_RX):
62    db.push_back(db_base_sptr(new db_lf_rx(usrp, which_side, 0)));
63    db.push_back(db_base_sptr(new db_lf_rx(usrp, which_side, 1)));
64    db.push_back(db_base_sptr(new db_lf_rx(usrp, which_side, 2)));
65    break;
66   
67  case(USRP_DBID_DBS_RX):
68    db.push_back(db_base_sptr(new db_dbs_rx(usrp, which_side)));
69    break;
70
71  case(USRP_DBID_TV_RX):
72    db.push_back(db_base_sptr(new db_tv_rx(usrp, which_side, 43.75e6, 5.75e6)));
73    break;
74  case(USRP_DBID_TV_RX_REV_2):
75    db.push_back(db_base_sptr(new db_tv_rx(usrp, which_side, 44e6, 20e6)));
76    break;
77  case(USRP_DBID_TV_RX_REV_3):
78    db.push_back(db_base_sptr(new db_tv_rx(usrp, which_side, 44e6, 20e6)));
79    break;
80
81  case(USRP_DBID_FLEX_2400_TX):
82    db.push_back(db_base_sptr(new db_flexrf_2400_tx(usrp, which_side)));
83    break;
84  case(USRP_DBID_FLEX_2400_RX):
85    db.push_back(db_base_sptr(new db_flexrf_2400_rx(usrp, which_side)));
86    break;
87  case(USRP_DBID_FLEX_1200_TX):
88    db.push_back(db_base_sptr(new db_flexrf_1200_tx(usrp, which_side)));
89    break;
90  case(USRP_DBID_FLEX_1200_RX):
91    db.push_back(db_base_sptr(new db_flexrf_1200_rx(usrp, which_side)));
92    break;
93  case(USRP_DBID_FLEX_1800_TX):
94    db.push_back(db_base_sptr(new db_flexrf_1800_tx(usrp, which_side)));
95    break;
96  case(USRP_DBID_FLEX_1800_RX):
97    db.push_back(db_base_sptr(new db_flexrf_1800_rx(usrp, which_side)));
98    break;
99  case(USRP_DBID_FLEX_900_TX):
100    db.push_back(db_base_sptr(new db_flexrf_900_tx(usrp, which_side)));
101    break;
102  case(USRP_DBID_FLEX_900_RX):
103    db.push_back(db_base_sptr(new db_flexrf_900_rx(usrp, which_side)));
104    break;
105  case(USRP_DBID_FLEX_400_TX):
106    db.push_back(db_base_sptr(new db_flexrf_400_tx(usrp, which_side)));
107    break;
108  case(USRP_DBID_FLEX_400_RX):
109    db.push_back(db_base_sptr(new db_flexrf_400_rx(usrp, which_side)));
110    break;
111  case(USRP_DBID_FLEX_2400_TX_MIMO_A):
112    db.push_back(db_base_sptr(new db_flexrf_2400_tx_mimo_a(usrp, which_side)));
113    break;
114  case(USRP_DBID_FLEX_2400_RX_MIMO_A):
115    db.push_back(db_base_sptr(new db_flexrf_2400_rx_mimo_a(usrp, which_side)));
116    break;
117  case(USRP_DBID_FLEX_1800_TX_MIMO_A):
118    db.push_back(db_base_sptr(new db_flexrf_1800_tx_mimo_a(usrp, which_side)));
119    break;
120  case(USRP_DBID_FLEX_1800_RX_MIMO_A):
121    db.push_back(db_base_sptr(new db_flexrf_1800_rx_mimo_a(usrp, which_side)));
122    break;
123  case(USRP_DBID_FLEX_1200_TX_MIMO_A):
124    db.push_back(db_base_sptr(new db_flexrf_1200_tx_mimo_a(usrp, which_side)));
125    break;
126  case(USRP_DBID_FLEX_1200_RX_MIMO_A):
127    db.push_back(db_base_sptr(new db_flexrf_1200_rx_mimo_a(usrp, which_side)));
128    break;
129  case(USRP_DBID_FLEX_900_TX_MIMO_A):
130    db.push_back(db_base_sptr(new db_flexrf_900_tx_mimo_a(usrp, which_side)));
131    break;
132  case(USRP_DBID_FLEX_900_RX_MIMO_A):
133    db.push_back(db_base_sptr(new db_flexrf_900_rx_mimo_a(usrp, which_side)));
134    break;
135  case(USRP_DBID_FLEX_400_TX_MIMO_A):
136    db.push_back(db_base_sptr(new db_flexrf_400_tx_mimo_a(usrp, which_side)));
137    break;
138  case(USRP_DBID_FLEX_400_RX_MIMO_A):
139    db.push_back(db_base_sptr(new db_flexrf_400_rx_mimo_a(usrp, which_side)));
140    break;
141  case(USRP_DBID_FLEX_2400_TX_MIMO_B):
142    db.push_back(db_base_sptr(new db_flexrf_2400_tx_mimo_b(usrp, which_side)));
143    break;
144  case(USRP_DBID_FLEX_2400_RX_MIMO_B):
145    db.push_back(db_base_sptr(new db_flexrf_2400_rx_mimo_b(usrp, which_side)));
146    break;
147  case(USRP_DBID_FLEX_1800_TX_MIMO_B):
148    db.push_back(db_base_sptr(new db_flexrf_1800_tx_mimo_b(usrp, which_side)));
149    break;
150  case(USRP_DBID_FLEX_1800_RX_MIMO_B):
151    db.push_back(db_base_sptr(new db_flexrf_1800_rx_mimo_b(usrp, which_side)));
152    break;
153  case(USRP_DBID_FLEX_1200_TX_MIMO_B):
154    db.push_back(db_base_sptr(new db_flexrf_1200_tx_mimo_b(usrp, which_side)));
155    break;
156  case(USRP_DBID_FLEX_1200_RX_MIMO_B):
157    db.push_back(db_base_sptr(new db_flexrf_1200_rx_mimo_b(usrp, which_side)));
158    break;
159  case(USRP_DBID_FLEX_900_TX_MIMO_B):
160    db.push_back(db_base_sptr(new db_flexrf_900_tx_mimo_b(usrp, which_side)));
161    break;
162  case(USRP_DBID_FLEX_900_RX_MIMO_B):
163    db.push_back(db_base_sptr(new db_flexrf_900_rx_mimo_b(usrp, which_side)));
164    break;
165  case(USRP_DBID_FLEX_400_TX_MIMO_B):
166    db.push_back(db_base_sptr(new db_flexrf_400_tx_mimo_b(usrp, which_side)));
167    break;
168  case(USRP_DBID_FLEX_400_RX_MIMO_B):
169    db.push_back(db_base_sptr(new db_flexrf_400_rx_mimo_b(usrp, which_side)));
170    break;
171
172  case(USRP_DBID_XCVR2450_TX):
173    db.push_back(db_base_sptr(new db_xcvr2450_tx(usrp, which_side)));
174    break;
175  case(USRP_DBID_XCVR2450_RX):
176    db.push_back(db_base_sptr(new db_xcvr2450_rx(usrp, which_side)));
177    break;
178 
179#if 0   // FIXME wbx doesn't compile
180  case(USRP_DBID_WBX_LO_TX):
181    db.push_back(db_base_sptr(new db_wbx_lo_tx(usrp, which_side)));
182    break;
183  case(USRP_DBID_WBX_LO_RX):
184    db.push_back(db_base_sptr(new db_wbx_lo_rx(usrp, which_side)));
185    break;
186#endif
187
188  case(USRP_DBID_DTT754):
189    db.push_back(db_base_sptr(new db_dtt754(usrp, which_side)));
190    break;
191  case(USRP_DBID_DTT768):
192    db.push_back(db_base_sptr(new db_dtt768(usrp, which_side)));
193    break;
194
195  case(USRP_DBID_RFIC_TX):
196    db.push_back(db_base_sptr(new db_rfic_tx(usrp, which_side)));
197    break;
198
199  case(USRP_DBID_RFIC_RX):
200    db.push_back(db_base_sptr(new db_rfic_rx(usrp, which_side)));
201    break;
202
203
204  case(-1):
205    if (boost::dynamic_pointer_cast<usrp_basic_tx>(usrp)){
206      db.push_back(db_base_sptr(new db_basic_tx(usrp, which_side)));
207    }
208    else {
209      db.push_back(db_base_sptr(new db_basic_rx(usrp, which_side, 0)));
210      db.push_back(db_base_sptr(new db_basic_rx(usrp, which_side, 1)));
211    }
212    break;
213 
214  case(-2):
215  default:
216    fprintf(stderr, "\n\aWarning: Treatinl\n");
217    if (boost::dynamic_pointer_cast<usrp_basic_tx>(usrp)){
218      fprintf(stderr, "\n\aWarning: Treating daughterboard with invalid EEPROM contents as if it were a \"Basic Tx.\"\n");
219      fprintf(stderr, "Warning: This is almost certainly wrong...  Use appropriate burn-*-eeprom utility.\n\n");
220      db.push_back(db_base_sptr(new db_basic_tx(usrp, which_side)));
221    }
222    else {
223      fprintf(stderr, "\n\aWarning: Treating daughterboard with invalid EEPROM contents as if it were a \"Basic Rx.\"\n");
224      fprintf(stderr, "Warning: This is almost certainly wrong...  Use appropriate burn-*-eeprom utility.\n\n");
225      db.push_back(db_base_sptr(new db_basic_rx(usrp, which_side, 0)));
226      db.push_back(db_base_sptr(new db_basic_rx(usrp, which_side, 1)));
227    }
228    break;
229  }
230
231  return db;
232}
Note: See TracBrowser for help on using the browser.