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
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
00022
00023
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
00035 int start_data();
00036
00037 int stop_data();
00038
00039
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
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