From d65f55da91d0c72690fcad539bf5ef9b1ec6f437 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Mon, 27 May 2019 20:16:47 +0000 Subject: [PATCH] [Message Debug] - improved interpretation op dicts git-svn-id: http://moon:8086/svn/software/trunk/projects/GnuRadio@485 b431acfa-c32f-4a4a-93f1-934dc6c82436 --- gr-jay/lib/message_debug_impl.h | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/gr-jay/lib/message_debug_impl.h b/gr-jay/lib/message_debug_impl.h index 67f8e1e..350cc98 100644 --- a/gr-jay/lib/message_debug_impl.h +++ b/gr-jay/lib/message_debug_impl.h @@ -37,17 +37,33 @@ namespace gr { { if (pmt::is_dict(msg)) { - fprintf(stderr, "Is dictionary.\n"); - pmt::pmt_t keys = pmt::dict_keys(msg); - for (int i=0; i < pmt::length(keys); i++) + pmt::pmt_t items = pmt::dict_items(msg); + for (int i=0; i < pmt::length(items); i++) { - pmt::pmt_t key = pmt::nth(i, keys); - fprintf(stderr, "Key: %s\n!", pmt::symbol_to_string(key)); + pmt::pmt_t pair = pmt::nth(i, items); + + pmt::pmt_t key = pmt::car(pair); + pmt::pmt_t val = pmt::cdr(pair); + if (pmt::is_integer(val)) + { + fprintf(stderr, "[%s=%d]", pmt::symbol_to_string(key).c_str(), (int)pmt::to_long(val)); + } + else if (pmt::is_real(val)) + { + fprintf(stderr, "[%s=%f]", pmt::symbol_to_string(key).c_str(), pmt::to_float(val)); + } + else if (pmt::is_bool(val)) + { + fprintf(stderr, "[%s=%d]", pmt::symbol_to_string(key).c_str(), pmt::to_bool(val)); + } + } + fprintf(stderr, "\n"); + } else { - fprintf(stderr, "Sym: %s\n", pmt::symbol_to_string(msg).c_str()); + fprintf(stderr, "%s\n", pmt::symbol_to_string(msg).c_str()); } }