From 0dcdc099ecbb01e72b0c5935437f154e47763055 Mon Sep 17 00:00:00 2001
From: Johnathan Corgan <johnathan@corganlabs.com>
Date: Sun, 17 Feb 2013 10:02:06 -0800
Subject: core: fix gr_message_debug for printing PDUs

---
 gnuradio-core/src/lib/io/gr_message_debug.cc   |  9 ++++++---
 gnuradio-core/src/lib/io/gr_message_debug.h    | 13 ++++++++++++-
 gnuradio-core/src/python/gnuradio/gr/qa_pdu.py |  2 +-
 3 files changed, 19 insertions(+), 5 deletions(-)

(limited to 'gnuradio-core/src')

diff --git a/gnuradio-core/src/lib/io/gr_message_debug.cc b/gnuradio-core/src/lib/io/gr_message_debug.cc
index 1327c31ba3..9eb1bb6399 100644
--- a/gnuradio-core/src/lib/io/gr_message_debug.cc
+++ b/gnuradio-core/src/lib/io/gr_message_debug.cc
@@ -59,10 +59,10 @@ gr_message_debug::store(pmt::pmt_t msg)
 }
 
 void
-gr_message_debug::print_verbose(pmt::pmt_t msg)
+gr_message_debug::print_pdu(pmt::pmt_t pdu)
 {
-  pmt::pmt_t meta = pmt::pmt_car(msg);
-  pmt::pmt_t vector = pmt::pmt_cdr(msg);
+  pmt::pmt_t meta = pmt::pmt_car(pdu);
+  pmt::pmt_t vector = pmt::pmt_cdr(pdu);
   std::cout << "* MESSAGE DEBUG PRINT PDU VERBOSE *\n";
   pmt::pmt_print(meta);
   size_t len = pmt::pmt_length(vector);
@@ -110,6 +110,9 @@ gr_message_debug::gr_message_debug()
   
   message_port_register_in(pmt::mp("store"));
   set_msg_handler(pmt::mp("store"), boost::bind(&gr_message_debug::store, this, _1));
+
+  message_port_register_in(pmt::mp("print_pdu"));
+  set_msg_handler(pmt::mp("print_pdu"), boost::bind(&gr_message_debug::print_pdu, this, _1));
 }
 
 gr_message_debug::~gr_message_debug()
diff --git a/gnuradio-core/src/lib/io/gr_message_debug.h b/gnuradio-core/src/lib/io/gr_message_debug.h
index 6e6e5103cb..f1374e8062 100644
--- a/gnuradio-core/src/lib/io/gr_message_debug.h
+++ b/gnuradio-core/src/lib/io/gr_message_debug.h
@@ -55,7 +55,18 @@ class GR_CORE_API gr_message_debug : public gr_block
    * \param msg A pmt message passed from the scheduler's message handling.
    */
   void print(pmt::pmt_t msg);
-  void print_verbose(pmt::pmt_t msg);
+
+  /*!
+   * \brief PDU formatted messages received in this port are printed to stdout.
+   *
+   * This port receives messages from the scheduler's message handling
+   * mechanism and prints it to stdout. This message handler function
+   * is only meant to be used by the scheduler to handle messages
+   * posted to port 'print'.
+   *
+   * \param pdu A PDU message passed from the scheduler's message handling.
+   */
+  void print_pdu(pmt::pmt_t pdu);
 
   /*!
    * \brief Messages received in this port are stored in a vector.
diff --git a/gnuradio-core/src/python/gnuradio/gr/qa_pdu.py b/gnuradio-core/src/python/gnuradio/gr/qa_pdu.py
index 572d8b1861..c1110c10bd 100755
--- a/gnuradio-core/src/python/gnuradio/gr/qa_pdu.py
+++ b/gnuradio-core/src/python/gnuradio/gr/qa_pdu.py
@@ -46,7 +46,7 @@ class test_pdu(gr_unittest.TestCase):
         # Test that the right number of ports exist.
         pi = dbg.message_ports_in()
         po = dbg.message_ports_out()
-        self.assertEqual(pmt.pmt_length(pi), 2)
+        self.assertEqual(pmt.pmt_length(pi), 3)
         self.assertEqual(pmt.pmt_length(po), 0)
 
         pi = snk3.message_ports_in()
-- 
cgit v1.2.3