GNU Radio 3.4.0 C++ API
msdd6000_rs.h
Go to the documentation of this file.
00001 #ifndef MSDD_RS__RS_6000_H
00002 #define MSDD_RS__RS_6000_H
00003 
00004 #include <boost/scoped_ptr.hpp>
00005 
00006 class MSDD6000_RS {
00007   class detail;
00008 
00009   //! holds objects with system dependent types
00010   boost::scoped_ptr<detail>     d_detail;  
00011 
00012 public:
00013 
00014   enum state {
00015     STATE_STOPPED, STATE_STARTED
00016   };
00017 
00018   MSDD6000_RS(char* ip_addr);
00019   ~MSDD6000_RS();
00020 
00021   /* set functions -- sets digitizer parameters */
00022  
00023  // void set_output(int mode, void* arg);
00024 
00025   void set_rf_attn(int attn);
00026   void set_ddc_gain(int gain);
00027   void set_fc(int center_mhz, int offset_hz);
00028   void set_ddc_samp_rate(float sample_rate_khz);
00029   void set_ddc_bw(float bw_khz);
00030 
00031   void start();
00032   void stop();
00033 
00034   /* function starts the flow of data from the digitizer */
00035   int start_data();
00036   /* function stops the flow of data from the digitizer */
00037   int stop_data();
00038   
00039   /* query functions -- queries digitizer 'actual' parameters */
00040   float pull_ddc_samp_rate();
00041   float pull_ddc_bw();
00042   float pull_rx_freq();
00043   int   pull_ddc_gain();
00044   int   pull_rf_atten();
00045         
00046   void send_request(float,float,float,float,float,float,float); 
00047   int read(char*, int);
00048 
00049   int parse_control(char*, int);
00050 
00051 private:
00052   // parameters for a receiver object.
00053   int   d_fc_mhz;
00054   int   d_offset_hz;
00055   int   d_rf_attn;
00056   int   d_ddc_gain;
00057   float d_ddc_sample_rate_khz;
00058   float d_ddc_bw_khz;
00059   int   d_start;
00060   int   d_sock;
00061   state d_state;
00062 
00063 };
00064 
00065 
00066 #endif