added sync output port to dxpsk2 demod
authorJosh Blum <josh@joshknows.com>
Thu, 26 Nov 2009 03:38:36 +0000 (19:38 -0800)
committerJosh Blum <josh@joshknows.com>
Thu, 26 Nov 2009 03:38:36 +0000 (19:38 -0800)
gnuradio-core/src/python/gnuradio/blks2impl/dbpsk2.py
gnuradio-core/src/python/gnuradio/blks2impl/dqpsk2.py
grc/blocks/blks2_dxpsk2_demod.xml

index 4541b453b38d6f46efbe229d5152973ac3e44259..cd9a207c876cd51d1caa01b1d54d42247cccd6c0 100644 (file)
@@ -187,7 +187,8 @@ class dbpsk2_demod(gr.hier_block2):
                  timing_max_dev=_def_timing_max_dev,
                  gray_code=_def_gray_code,
                  verbose=_def_verbose,
-                 log=_def_log):
+                 log=_def_log,
+                 sync_out=False):
         """
        Hierarchical block for RRC-filtered differential BPSK demodulation
 
@@ -208,14 +209,18 @@ class dbpsk2_demod(gr.hier_block2):
         @type gray_code: bool
         @param verbose: Print information about modulator?
         @type verbose: bool
-        @param debug: Print modualtion data to files?
-        @type debug: bool
+        @param log: Print modualtion data to files?
+        @type log: bool
+        @param sync_out: Output a sync signal on :1?
+        @type sync_out: bool
        """
-        
-       gr.hier_block2.__init__(self, "dbpsk2_demod",
-                               gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature
-                               gr.io_signature(1, 1, gr.sizeof_char))       # Output signature
-                               
+       if sync_out: io_sig_out = gr.io_signaturev(2, 2, (gr.sizeof_char, gr.sizeof_gr_complex))
+       else: io_sig_out = gr.io_signature(1, 1, gr.sizeof_char)
+
+       gr.hier_block2.__init__(self, "dqpsk2_demod",
+                               gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature
+                               io_sig_out)       # Output signature
+
         self._samples_per_symbol = samples_per_symbol
         self._excess_bw = excess_bw
         self._costas_alpha = costas_alpha
@@ -278,6 +283,7 @@ class dbpsk2_demod(gr.hier_block2):
                      self.clock_recov,
                      self.time_recov,
                      self.diffdec, self.slicer, self.symbol_mapper, self.unpack, self)
+        if sync_out: self.connect(self.time_recov, (self, 1))
 
     def samples_per_symbol(self):
         return self._samples_per_symbol
index 9704ac98c5776ea250294b38596be293d164a898..fd1e9f0efcfb38aab9529513403cd3e55118c4c7 100644 (file)
@@ -187,7 +187,8 @@ class dqpsk2_demod(gr.hier_block2):
                  timing_max_dev=_def_timing_max_dev,
                  gray_code=_def_gray_code,
                  verbose=_def_verbose,
-                 log=_def_log):
+                 log=_def_log,
+                 sync_out=False):
         """
        Hierarchical block for RRC-filtered DQPSK demodulation
 
@@ -208,13 +209,17 @@ class dqpsk2_demod(gr.hier_block2):
         @type gray_code: bool
         @param verbose: Print information about modulator?
         @type verbose: bool
-        @param debug: Print modualtion data to files?
-        @type debug: bool
+        @param log: Print modualtion data to files?
+        @type log: bool
+        @param sync_out: Output a sync signal on :1?
+        @type sync_out: bool
        """
+       if sync_out: io_sig_out = gr.io_signaturev(2, 2, (gr.sizeof_char, gr.sizeof_gr_complex))
+       else: io_sig_out = gr.io_signature(1, 1, gr.sizeof_char)
 
        gr.hier_block2.__init__(self, "dqpsk2_demod",
                                gr.io_signature(1, 1, gr.sizeof_gr_complex), # Input signature
-                               gr.io_signature(1, 1, gr.sizeof_char))       # Output signature
+                               io_sig_out)       # Output signature
 
         self._samples_per_symbol = samples_per_symbol
         self._excess_bw = excess_bw
@@ -278,6 +283,7 @@ class dqpsk2_demod(gr.hier_block2):
                      self.clock_recov,
                      self.time_recov,
                      self.diffdec, self.slicer, self.symbol_mapper, self.unpack, self)
+        if sync_out: self.connect(self.time_recov, (self, 1))
 
     def samples_per_symbol(self):
         return self._samples_per_symbol
index 98658442e1b260ffd3fb2b691cc65ac05bbf3c67..c1af5368e9ca2581a4c48956888b4c1cd8d670f5 100644 (file)
@@ -17,6 +17,7 @@
        gray_code=$gray_code,
        verbose=$verbose,
        log=$log,
+       sync_out=$sync_out,
 )</make>
        <param>
                <name>Type</name>
@@ -71,7 +72,7 @@
                <name>Gray Code</name>
                <key>gray_code</key>
                <value>True</value>
-               <type>enum</type>
+               <type>bool</type>
                <option>
                        <name>Yes</name>
                        <key>True</key>
                        <key>False</key>
                </option>
        </param>
+       <param>
+               <name>Sync Out</name>
+               <key>sync_out</key>
+               <value>False</value>
+               <type>bool</type>
+               <option>
+                       <name>On</name>
+                       <key>True</key>
+               </option>
+               <option>
+                       <name>Off</name>
+                       <key>False</key>
+               </option>
+       </param>
        <sink>
                <name>in</name>
                <type>complex</type>
                <name>out</name>
                <type>byte</type>
        </source>
+       <source>
+               <name>sync</name>
+               <type>complex</type>
+               <optional>1</optional>
+       </source>
 </block>