On 04/09/2012 01:38 PM, Tom Rondeau wrote:
On Sat, Apr 7, 2012 at 10:12 PM, Marcus D. Leech<mle...@ripnet.com>  wrote:
Just looking at this function:

correlate_access_code_bb

In the method set_access_code, it takes a string.  Which should be ASCII '1'
and '0' characters to represent the binary sequence being
  correlated against.

Here's a little beauty of a code snippet:

  d_access_code = 0;
  for (unsigned i=0; i<  64; i++){
    d_access_code<<= 1;
    if (i<  len)
      d_access_code |= access_code[i]&  1;    // look at LSB only
  }

This relies on the fact that ASCII '1' and '0' happen to have low-order bits
of the right "flavour".  This is insanely dirty and gross and I can't
  believe we let this nonsense in the code base.

There's no reason not to do the right thing here.


--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

Want to submit a patch?

Tom


Attached.



--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

diff --git a/gr-digital/lib/digital_correlate_access_code_bb.cc b/gr-digital/lib/digital_correlate_access_code_bb.cc
index f21b57d..79c7639 100644
--- a/gr-digital/lib/digital_correlate_access_code_bb.cc
+++ b/gr-digital/lib/digital_correlate_access_code_bb.cc
@@ -78,7 +78,20 @@ digital_correlate_access_code_bb::set_access_code(
   for (unsigned i=0; i < 64; i++){
     d_access_code <<= 1;
     if (i < len)
-      d_access_code |= access_code[i] & 1;	// look at LSB only
+    {
+      if (access_code[i] == '1')
+      {
+		  d_access_code |= 1;
+	  }
+	  else if (access_code[i] == '0')
+	  {
+		  d_access_code |= 0;
+	  }
+	  else
+	  {
+		  return false;
+	  }
+    }
   }
 
   return true;
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to