commit-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Commit-gnuradio] r5740 - in gnuradio/branches/developers/jcorgan/sar/gr


From: jcorgan
Subject: [Commit-gnuradio] r5740 - in gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src: fpga/lib fpga/top python
Date: Fri, 8 Jun 2007 13:40:48 -0600 (MDT)

Author: jcorgan
Date: 2007-06-08 13:40:48 -0600 (Fri, 08 Jun 2007)
New Revision: 5740

Added:
   gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/sar.py
   gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/usrp_sar.py
Removed:
   gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/sar_tx.py
Modified:
   gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/cordic_nco.v
   gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar.v
   gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar_control.v
   gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar_tx.v
   gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/top/usrp_sar.rbf
   gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/top/usrp_sar.srf
   gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/Makefile.am
Log:
Work in progress.

Modified: 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/cordic_nco.v
===================================================================
--- 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/cordic_nco.v    
    2007-06-08 19:28:16 UTC (rev 5739)
+++ 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/cordic_nco.v    
    2007-06-08 19:40:48 UTC (rev 5740)
@@ -19,13 +19,13 @@
 //  Foundation, Inc., 51 Franklin Street, Boston, MA  02110-1301  USA
 //
 
-module 
cordic_nco(clk_i,rst_i,ena_i,strobe_i,mag_i,freq_i,phs_i,data_i_o,data_q_o);
+module 
cordic_nco(clk_i,rst_i,ena_i,strobe_i,ampl_i,freq_i,phs_i,data_i_o,data_q_o);
    input clk_i;
    input rst_i;
    input ena_i;
    input strobe_i;
 
-   input [15:0] mag_i;
+   input [15:0] ampl_i;
    input [31:0] freq_i;
    input [31:0] phs_i;
 
@@ -34,7 +34,7 @@
 
    reg [31:0] phase_reg;
    wire [31:0] phase = phase_reg + phs_i;
-   wire [15:0] mag;
+   wire [15:0] ampl;
    
    always @(posedge clk_i)
      begin
@@ -44,11 +44,11 @@
          phase_reg <= phase_reg + freq_i;
      end
 
-   assign mag = ena_i ? mag_i : 16'b0;
+   assign ampl = ena_i ? ampl_i : 16'b0;
 
    cordic tx_cordic
      (.clock(clk_i),.reset(rst_in),.enable(strobe_i), 
-       .xi(mag),.yi(16'b0),.zi(phase[31:16]),
+       .xi(ampl),.yi(16'b0),.zi(phase[31:16]),
        .xo(data_i_o),.yo(data_q_o),.zo());
          
 endmodule // cordic_nco

Modified: gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar.v
===================================================================
--- gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar.v       
2007-06-08 19:28:16 UTC (rev 5739)
+++ gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar.v       
2007-06-08 19:40:48 UTC (rev 5740)
@@ -50,19 +50,18 @@
    wire         tx_enable;     // Transmitter enable
    wire         rx_enable;     // Receiver enable
    
-   wire [13:0]          mag;           // temporary
+   wire [13:0]          ampl;          
    wire [31:0]          freq;          // temporary
-   wire [31:0]          phs;           // temporary
    
    sar_control controller
      (.clk_i(clk_i),.rst_i(1'b0),.ena_i(1'b1),
       .s_strobe_i(s_strobe_i),.saddr_i(saddr_i),.sdata_i(sdata_i),
       .reset_o(reset),.tx_ena_o(tx_enable),.rx_ena_o(rx_enable),
-      .mag_o(mag),.freq_o(freq),.phs_o(phs));
+      .ampl_o(ampl),.freq_o(freq));
 
    sar_tx transmitter
      ( .clk_i(clk_i),.rst_i(reset),.ena_i(tx_enable),
-       .mag_i(mag),.freq_i(freq),.phs_i(phs),
+       .ampl_i(ampl),.freq_i(freq),
        .strobe_i(tx_strobe_i),.tx_i_o(tx_dac_i_o),.tx_q_o(tx_dac_q_o) );
    
    sar_rx receiver

Modified: 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar_control.v
===================================================================
--- 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar_control.v   
    2007-06-08 19:28:16 UTC (rev 5739)
+++ 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar_control.v   
    2007-06-08 19:40:48 UTC (rev 5740)
@@ -23,8 +23,7 @@
 `include "../../../../usrp/firmware/include/fpga_regs_standard.v"
 
 module sar_control(clk_i,rst_i,ena_i,saddr_i,sdata_i,s_strobe_i,
-                  reset_o,tx_ena_o,rx_ena_o,
-                  mag_o,freq_o,phs_o);
+                  reset_o,tx_ena_o,rx_ena_o,ampl_o,freq_o);
 
    // System interface
    input         clk_i;                // Master clock @ 64 MHz
@@ -39,9 +38,8 @@
    output        tx_ena_o;
    output        rx_ena_o;
    
-   output [13:0] mag_o;
+   output [13:0] ampl_o;
    output [31:0] freq_o;
-   output [31:0] phs_o;
 
    // Internal configuration
    wire         lp_ena;
@@ -53,8 +51,7 @@
    setting_reg #(`FR_USER_0) 
sr_mode(.clock(clk_i),.reset(rst_i),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),
                                     
.out({chirps,md_ena,dr_ena,lp_ena,rx_ena_o,tx_ena_o,reset_o}));
                                     
-   setting_reg #(`FR_USER_1) 
sr_mag(.clock(clk_i),.reset(rst_i),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),.out(mag_o));
-   setting_reg #(`FR_USER_2) 
sr_freq(.clock(clk_i),.reset(rst_i),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),.out(freq_o));
-   setting_reg #(`FR_USER_3) 
sr_phs(.clock(clk_i),.reset(rst_i),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),.out(phs_o));
+   setting_reg #(`FR_USER_5) 
sr_ampl(.clock(clk_i),.reset(rst_i),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),.out(ampl_o));
+   setting_reg #(`FR_USER_8) 
sr_freq(.clock(clk_i),.reset(rst_i),.strobe(s_strobe_i),.addr(saddr_i),.in(sdata_i),.out(freq_o));
    
 endmodule // sar_control

Modified: 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar_tx.v
===================================================================
--- gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar_tx.v    
2007-06-08 19:28:16 UTC (rev 5739)
+++ gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/lib/sar_tx.v    
2007-06-08 19:40:48 UTC (rev 5740)
@@ -19,10 +19,7 @@
 //  Foundation, Inc., 51 Franklin Street, Boston, MA  02110-1301  USA
 //
 
-`include "../../../../usrp/firmware/include/fpga_regs_common.v"
-`include "../../../../usrp/firmware/include/fpga_regs_standard.v"
-
-module sar_tx(clk_i,rst_i,ena_i,strobe_i,mag_i,freq_i,phs_i,tx_i_o,tx_q_o);
+module sar_tx(clk_i,rst_i,ena_i,strobe_i,ampl_i,freq_i,tx_i_o,tx_q_o);
    // System control
    input clk_i;
    input rst_i;
@@ -30,9 +27,8 @@
    input strobe_i;
    
    // Configuration
-   input [13:0]  mag_i;
+   input [13:0]  ampl_i;
    input [31:0]  freq_i;
-   input [31:0]  phs_i;
    
    // Output
    output [13:0] tx_i_o;
@@ -41,7 +37,7 @@
    wire [15:0]          cordic_i, cordic_q;
 
    cordic_nco 
nco(.clk_i(clk_i),.rst_i(rst_i),.ena_i(ena_i),.strobe_i(strobe_i),
-                 .mag_i({2'b00,mag_i}),.freq_i(freq_i),.phs_i(phs_i),
+                 .ampl_i({2'b00,ampl_i}),.freq_i(freq_i),.phs_i(0),
                  .data_i_o(cordic_i),.data_q_o(cordic_q));
 
    assign       tx_i_o = cordic_i[15:2];

Modified: 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/top/usrp_sar.rbf
===================================================================
(Binary files differ)

Modified: 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/top/usrp_sar.srf
===================================================================
--- 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/top/usrp_sar.srf    
    2007-06-08 19:28:16 UTC (rev 5739)
+++ 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/fpga/top/usrp_sar.srf    
    2007-06-08 19:40:48 UTC (rev 5740)
@@ -65,3 +65,5 @@
 { "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" 
"sar:sar\|sar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[1\] data_in 
GND " "Warning: Reduced register 
\"sar:sar\|sar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[1\]\" with 
stuck data_in port to stuck value GND" {  } { { 
"../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text 
"H:/gnuradio/sar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } }  } 0 0 "Reduced 
register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0}
 { "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" 
"sar:sar\|sar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[0\] data_in 
GND " "Warning: Reduced register 
\"sar:sar\|sar_tx:transmitter\|cordic_nco:nco\|cordic:tx_cordic\|y0\[0\]\" with 
stuck data_in port to stuck value GND" {  } { { 
"../../../../usrp/fpga/sdr_lib/cordic.v" "" { Text 
"H:/gnuradio/sar/usrp/fpga/sdr_lib/cordic.v" 64 -1 0 } }  } 0 0 "Reduced 
register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0}
 { "Warning" "WCDB_SGATE_CDB_WARN_TRIVIAL_REG" 
"master_control:master_control\|atr_delay:atr_delay\|state.0001 data_in GND " 
"Warning: Reduced register 
\"master_control:master_control\|atr_delay:atr_delay\|state.0001\" with stuck 
data_in port to stuck value GND" {  } { { 
"../../../../usrp/fpga/sdr_lib/atr_delay.v" "" { Text 
"H:/gnuradio/sar/usrp/fpga/sdr_lib/atr_delay.v" 31 -1 0 } }  } 0 0 "Reduced 
register \"%1!s!\" with stuck %2!s! port to stuck value %3!s!" 1 0}
+{ "Warning" "WSGN_WIDTH_MISMATCH_OUTPUT_PORT" "out sr_ampl 14 32 " "Warning: 
Port \"out\" on the entity instantiation of \"sr_ampl\" is connected to a 
signal of width 14. The formal width of the signal in the module is 32.  Extra 
bits will be left dangling without any fanout logic." {  } { { 
"../lib/sar_control.v" "sr_ampl" { Text 
"H:/gnuradio/sar/gr-sar-fe/src/fpga/lib/sar_control.v" 54 0 0 } }  } 0 0 "Port 
\"%1!s!\" on the entity instantiation of \"%2!s!\" is connected to a signal of 
width %3!d!. The formal width of the signal in the module is %4!d!.  Extra bits 
will be left dangling without any fanout logic." 1 0}
+{ "Warning" "WSGN_WIDTH_MISMATCH_OUTPUT_PORT" "out sr_mode 8 32 " "Warning: 
Port \"out\" on the entity instantiation of \"sr_mode\" is connected to a 
signal of width 8. The formal width of the signal in the module is 32.  Extra 
bits will be left dangling without any fanout logic." {  } { { 
"../lib/sar_control.v" "sr_mode" { Text 
"H:/gnuradio/sar/gr-sar-fe/src/fpga/lib/sar_control.v" 52 0 0 } }  } 0 0 "Port 
\"%1!s!\" on the entity instantiation of \"%2!s!\" is connected to a signal of 
width %3!d!. The formal width of the signal in the module is %4!d!.  Extra bits 
will be left dangling without any fanout logic." 1 0}

Modified: 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/Makefile.am
===================================================================
--- gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/Makefile.am   
2007-06-08 19:28:16 UTC (rev 5739)
+++ gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/Makefile.am   
2007-06-08 19:40:48 UTC (rev 5740)
@@ -21,7 +21,17 @@
 
 include $(top_srcdir)/Makefile.common
 
+ourpythondir = $(grpythondir)
+ourlibdir    = $(grpyexecdir)
+
 EXTRA_DIST = \
-       sar_tx.py
+        sar.py \
+       usrp_sar.py
 
+bin_SCRIPTS =          \
+       usrp_sar.py
+
+ourpython_PYTHON =     \
+       sar.py
+
 MOSTLYCLEANFILES = *~ *.pyc *.pyo

Added: gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/sar.py
===================================================================
--- gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/sar.py        
                        (rev 0)
+++ gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/sar.py        
2007-06-08 19:40:48 UTC (rev 5740)
@@ -0,0 +1,252 @@
+#!/usr/bin/env python
+#
+# Copyright 2007 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 version 2, 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.
+# 
+
+from gnuradio import gr, usrp
+from gnuradio import eng_notation
+
+n2s = eng_notation.num_to_str
+
+#-----------------------------------------------------------------------
+# FPGA Register Definitions
+#-----------------------------------------------------------------------
+FR_SAR_MODE = usrp.FR_USER_0    # Operational mode
+bmFR_SAR_MODE_RESET  = 1 << 0  # bit 0: active high reset
+bmFR_SAR_MODE_TX     = 1 << 1  # bit 1: enable transmitter
+#bmFR_SAR_MODE_RX     = 1 << 2 # bit 2: enable receiver
+#bmFR_SAR_MODE_LP     = 1 << 3 # bit 3: enable digital loopback
+#bmFR_SAR_MODE_DR     = 1 << 4 # bit 4: enable on-board deramping
+#bmFR_SAR_MODE_MD     = 1 << 5   # bit 5: enable echo metadata
+#bmFR_SAR_MODE_CHIRPS = 3 << 6   # bit 6,7: number of chirp center frequencies
+
+#FR_SAR_TON    = usrp.FR_USER_1        # 16-bit transmitter on time in clocks
+#FR_SAR_TSW    = usrp.FR_USER_2        # 16-bit transmitter switch time in 
clocks
+#FR_SAR_TLOOK  = usrp.FR_USER_3        # 16-bit receiver look time in clocks
+#FR_SAR_TIDLE  = usrp.FR_USER_4        # 32-bit inter-pulse idle time
+FR_SAR_AMPL   = usrp.FR_USER_5  # 14-bit pulse amplitude (2s complement)
+#FR_SAR_FSTART = usrp.FR_USER_6  # 32-bit FTW for chirp start frequency
+#FR_SAR_FINCR  = usrp.FR_USER_7  # 32-bit FTW increment per transmit clock
+
+# This is temporary for debugging transmitter frequency response
+FR_SAR_FREQ   = usrp.FR_USER_8
+
+# These are for phase II development
+#FR_SAR_FREQ1N = usrp.FR_USER_8  # 24-bit N register for chirp #1
+#FR_SAR_FREQ1K = usrp.FR_USER_9  # 24-bit K register for chirp #1
+#FR_SAR_FREQ2N = usrp.FR_USER_10 # 24-bit N register for chirp #2
+#FR_SAR_FREQ2K = usrp.FR_USER_11 # 24-bit K register for chirp #2
+#FR_SAR_FREQ3N = usrp.FR_USER_12 # 24-bit N register for chirp #3
+#FR_SAR_FREQ3K = usrp.FR_USER_13 # 24-bit K register for chirp #3
+#FR_SAR_FREQ4N = usrp.FR_USER_14 # 24-bit N register for chirp #4
+#FR_SAR_FREQ4K = usrp.FR_USER_15 # 24-bit K register for chirp #4
+
+#-----------------------------------------------------------------------
+# Transmitter object.  Uses usrp_sink, but only for a handle to the
+# FPGA registers.
+#-----------------------------------------------------------------------
+class sar_tx:
+    def __init__(self, verbose=False, debug=False):
+       self._verbose = verbose
+       self._debug = debug
+
+        self._u = usrp.sink_s(fpga_filename='usrp_sar.rbf')
+        self._subdev_spec = (0,0); # FPGA code only implements side A
+        self._subdev = usrp.selected_subdev(self._u, self._subdev_spec)
+        if self._verbose:
+            print "Using", self._subdev.name(), "for sar transmitter."         
   
+
+    def tune(self, center_freq, waveform_freq):
+        self._center_freq = center_freq
+        self._waveform_freq = waveform_freq
+       self._ftw = int(waveform_freq*(2**32)/32e6)
+        if self._verbose:
+            print "Setting transmitter center frequency to", n2s(center_freq)
+            print "Setting waveform frequency offset to", n2s(waveform_freq), 
"with ftw of", self._ftw
+        result = self._u.tune(0, self._subdev, center_freq)
+        if result == False:
+            raise RuntimeError("Failed to set transmitter frequency.")
+       self._u._write_fpga_reg(FR_SAR_FREQ, self._ftw)
+
+    def set_amplitude(self, ampl):
+       self._amplitude = ampl
+        if self._debug:
+            print "Writing amplitude register with:", hex(self._amplitude)
+        self._u._write_fpga_reg(FR_SAR_AMPL, self._amplitude)
+
+    def start(self):
+        self._u.start()
+
+
+#-----------------------------------------------------------------------
+# Receiver object.  Uses usrp_source_c to receive echo records.
+# NOT IMPLEMENTED YET
+#-----------------------------------------------------------------------
+"""
+class sar_rx:
+    def 
__init__(self,gain=None,msgq=None,loopback=False,verbose=False,debug=False):
+        self._gain = gain
+        self._msgq = msgq
+       self._loopback = loopback
+       self._verbose = verbose
+       self._debug = debug
+               
+        self._fg = gr.flow_graph()
+        self._u = usrp.source_c(fpga_filename='usrp_sar.rbf')
+       if not self._loopback:
+            self._subdev_spec = (0,0) # FPGA only implements side A
+            self._u.set_mux(usrp.determine_rx_mux_value(self._u, 
self._subdev_spec))
+            self._subdev = usrp.selected_subdev(self._u, self._subdev_spec)
+            if self._verbose:
+               print "Using", self._subdev.name(), "for sar receiver."
+
+        self.set_gain(self._gain)
+
+        # need to compute length here
+        
+        self._vblen = gr.sizeof_gr_complex*self._length
+        if self._debug:
+            print "Generating echo vectors of length", self._length, "byte 
length", self._vblen
+            
+        self._s2v = gr.stream_to_vector(gr.sizeof_gr_complex, self._length)
+        self._sink = gr.message_sink(self._vblen, self._msgq, True)
+        self._fg.connect(self._u, self._s2v, self._sink)
+        
+    def tune(self, frequency):
+        if self._verbose:
+            print "Setting receiver frequency to", n2s(frequency)
+        result = self._u.tune(0, self._subdev, frequency)
+        if result == False:
+            raise RuntimeError("Failed to set receiver frequency.")
+
+    def set_gain(self, gain):
+        self._gain = gain
+       if self._loopback:
+           return
+           
+        if self._gain is None:
+            # if no gain was specified, use the mid-point in dB
+            g = self._subdev.gain_range()
+            self._gain = float(g[0]+g[1])/2
+        if self._verbose:
+            print "Setting receiver gain to", gain
+        self._subdev.set_gain(self._gain)
+
+    def start(self):
+        if self._debug:
+            print "Starting receiver flow graph."
+        self._fg.start()
+
+    def wait(self):
+        if self._debug:
+            print "Waiting for threads..."
+        self._fg.wait()
+
+    def stop(self):
+        if self._debug:
+            print "Stopping receiver flow graph."
+        self._fg.stop()
+        self.wait()
+        if self._debug:
+            print "Receiver flow graph stopped."
+"""
+
+class sar:
+    def __init__(self,msgq=None,verbose=False,debug=False):
+        self._msgq = msgq
+        self._verbose = verbose
+        self._debug = debug
+
+       self._mode = 0
+       self._transmitting = False
+        self._trans = sar_tx(verbose=self._verbose, debug=self._debug)
+       self.set_reset(True)
+       
+    def set_amplitude(self, ampl):
+        self._trans.set_amplitude(ampl)
+
+    def tune(self, center_freq, waveform_freq):
+        self._trans.tune(center_freq, waveform_freq)
+
+    def _write_mode(self):
+        if self._debug:
+            print "Writing mode register with:", hex(self._mode)
+        self._trans._u._write_fpga_reg(FR_SAR_MODE, self._mode)
+
+    def enable_tx(self, value):
+       if value:
+            if self._verbose:
+                print "Enabling transmitter."
+           self._mode |= bmFR_SAR_MODE_TX
+           self._transmitting = True
+       else:
+            if self._verbose:
+                print "Disabling transmitter."
+           self._mode &= ~bmFR_SAR_MODE_TX
+       self._write_mode()
+                   
+    """
+    def enable_rx(self, value):
+       if value:
+           self._mode |= bmFR_SAR_MODE_RX
+           self._write_mode()
+           self._rcvr.start()
+           self._receiving = True
+       else:
+            self._rcvr.stop()
+           self._mode &= ~bmFR_SAR_MODE_RX
+           self._write_mode()
+           self._receiving = False
+    """
+    """
+    def set_loopback(self, value):
+       if value:
+            if self._verbose:
+                print "Enabling digital loopback."
+           self._mode |= bmFR_SAR_MODE_LP
+       else:
+            if self._verbose:
+                print "Disabling digital loopback."
+           self._mode &= ~bmFR_SAR_MODE_LP
+       self._write_mode()
+    """
+    
+    def set_reset(self, value):
+       if value:
+            if self._debug:
+                print "Asserting reset."
+           self._mode |= bmFR_SAR_MODE_RESET
+       else:
+            if self._debug:
+                print "De-asserting reset."
+           self._mode &= ~bmFR_SAR_MODE_RESET
+       self._write_mode()
+
+    def start(self):
+        self.enable_tx(True)
+       self.set_reset(False)
+
+    def stop(self):
+       if self._transmitting:
+           self.enable_tx(False)
+        self.set_reset(True)
+
+    def __del__(self):
+        self.stop()

Deleted: gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/sar_tx.py

Added: gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/usrp_sar.py
===================================================================
--- gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/usrp_sar.py   
                        (rev 0)
+++ gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/usrp_sar.py   
2007-06-08 19:40:48 UTC (rev 5740)
@@ -0,0 +1,94 @@
+#!/usr/bin/env python
+#
+# Copyright 2007 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 version 2, 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.
+# 
+
+from gnuradio import gr
+from gnuradio.sar import sar
+from gnuradio import eng_notation
+from gnuradio.eng_option import eng_option
+from optparse import OptionParser
+import sys
+
+n2s = eng_notation.num_to_str
+
+def main():
+    parser = OptionParser(option_class=eng_option)
+    #parser.add_option("-g", "--gain", type="eng_float", default=None,
+    #                  help="set gain in dB (default is midpoint)")
+    parser.add_option("-f", "--frequency", type="eng_float", default=0.0,
+                      help="set transmitter center frequency to FREQ in Hz, 
default is %default", metavar="FREQ")
+    # Temporary for debugging transmitter frequency response
+    parser.add_option("-w", "--waveform-frequency", type="eng_float", 
default=0.0,
+                      help="set waveform offset frequency to FREQ in Hz, 
default is %default", metavar="FREQ")
+    parser.add_option("-a", "--amplitude", type="int", default=4096,
+                      help="set waveform amplitude, default is %default,")
+    #parser.add_option("-l", "--loopback", action="store_true", default=False,
+    #                  help="enable digital loopback, default is disabled")
+    parser.add_option("-v", "--verbose", action="store_true", default=False,
+                      help="enable verbose output, default is disabled")
+    parser.add_option("-D", "--debug", action="store_true", default=False,
+                      help="enable debugging output, default is disabled")
+    #parser.add_option("-F", "--filename", default=None,
+    #                  help="log received impulse responses to file")
+                     
+    (options, args) = parser.parse_args()
+
+    if len(args) != 0:
+        parser.print_help()
+        sys.exit(1)
+
+    """
+    if options.filename == None:
+        print "Must supply filename for logging received data."
+        sys.exit(1)
+    else:
+        if options.verbose:
+            print "Logging impulse records to file: ", options.filename
+    """
+        
+    msgq = gr.msg_queue()
+    s = sar(msgq=msgq,verbose=options.verbose,debug=options.debug)
+
+    s.set_amplitude(options.amplitude)
+    s.tune(options.frequency, options.waveform_frequency)
+    s.start()
+
+    """
+    f = open(options.filename, "wb")
+    print "Enter CTRL-C to stop."
+    try:
+        while (1):
+            msg = msgq.delete_head()
+            if msg.type() == 1:
+                break
+            rec = msg.to_string()
+            if options.debug:
+                print "Received echo vector of length", len(rec)
+               f.write(rec)
+               
+    except KeyboardInterrupt:
+        pass
+    """
+
+    raw_input("Press enter to stop transmitting.")
+    
+if __name__ == "__main__":
+    main()


Property changes on: 
gnuradio/branches/developers/jcorgan/sar/gr-sar-fe/src/python/usrp_sar.py
___________________________________________________________________
Name: svn:executable
   + *





reply via email to

[Prev in Thread] Current Thread [Next in Thread]