<p dir="ltr">Ditto here</p>
<p dir="ltr">Please excuse typos. Written with a touchscreen keyboard.</p>
<p dir="ltr">--<br>
Regards,<br>
Alexander Chemeris<br>
CEO Fairwaves, Inc.<br>
<a href="https://fairwaves.co">https://fairwaves.co</a></p>
<div class="gmail_quote">On Dec 12, 2015 5:44 PM, "Alexander Chemeris" <<a href="mailto:alexander.chemeris@gmail.com">alexander.chemeris@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">---<br>
 openbsc/src/utils/Makefile.am |  3 ++-<br>
 openbsc/src/utils/meas_json.c | 25 ++++++++++++++++++++++---<br>
 2 files changed, 24 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/openbsc/src/utils/Makefile.am b/openbsc/src/utils/Makefile.am<br>
index 89f2dfb..681d074 100644<br>
--- a/openbsc/src/utils/Makefile.am<br>
+++ b/openbsc/src/utils/Makefile.am<br>
@@ -33,7 +33,8 @@ meas_vis_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS) -lcdk -lncurses<br>
 meas_vis_CFLAGS = $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS)<br>
<br>
 meas_json_SOURCES = meas_json.c<br>
-meas_json_LDADD = $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS)<br>
+meas_json_LDADD = $(top_builddir)/src/libcommon/libcommon.a \<br>
+                 $(LIBOSMOCORE_LIBS) $(LIBOSMOGSM_LIBS)<br>
 meas_json_CFLAGS = $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS)<br>
<br>
 osmo_meas_pcap2db_SOURCES = meas_pcap2db.c meas_db.c<br>
diff --git a/openbsc/src/utils/meas_json.c b/openbsc/src/utils/meas_json.c<br>
index 940e5e7..88d713b 100644<br>
--- a/openbsc/src/utils/meas_json.c<br>
+++ b/openbsc/src/utils/meas_json.c<br>
@@ -36,6 +36,8 @@<br>
<br>
 #include <osmocom/gsm/gsm_utils.h><br>
<br>
+#include <openbsc/gsm_data.h><br>
+#include <openbsc/gsm_data_shared.h><br>
 #include <openbsc/meas_feed.h><br>
<br>
 static void print_meas_rep_uni_json(struct gsm_meas_rep_unidir *mru)<br>
@@ -92,6 +94,14 @@ static void print_meas_rep_json(struct gsm_meas_rep *mr)<br>
        printf("]");<br>
 }<br>
<br>
+static void print_chan_info_json(struct meas_feed_meas *mfm)<br>
+{<br>
+       printf("\"lchan_type\":\"%s\", \"pchan_type\":\"%s\", "<br>
+                  "\"bts_nr\":%d, \"trx_nr\":%d, \"ts_nr\":%d, \"ss_nr\":%d",<br>
+       gsm_lchant_name(mfm->lchan_type), gsm_pchan_name(mfm->pchan_type),<br>
+       mfm->bts_nr, mfm->trx_nr, mfm->ts_nr, mfm->ss_nr);<br>
+}<br>
+<br>
 static void print_meas_feed_json(struct meas_feed_meas *mfm)<br>
 {<br>
        time_t now = time(NULL);<br>
@@ -100,9 +110,18 @@ static void print_meas_feed_json(struct meas_feed_meas *mfm)<br>
        printf("\"time\":%ld, \"imsi\":\"%s\", \"name\":\"%s\", \"scenario\":\"%s\", ",<br>
                now, mfm->imsi, mfm->name, mfm->scenario);<br>
<br>
-       printf("\"meas_rep\":{");<br>
-       print_meas_rep_json(&mfm->mr);<br>
-       printf("}");<br>
+       switch (mfm->hdr.version) {<br>
+       case 1:<br>
+               printf("\"chan_info\":{");<br>
+               print_chan_info_json(mfm);<br>
+               printf("}, ");<br>
+               /* no break, fall to version 0 */<br>
+       case 0:<br>
+               printf("\"meas_rep\":{");<br>
+               print_meas_rep_json(&mfm->mr);<br>
+               printf("}");<br>
+               break;<br>
+       }<br>
<br>
        printf("}\n");<br>
<br>
--<br>
1.9.1<br>
<br>
</blockquote></div>