From b808da44ab417df0a66a9530c6aa8a45f74e74be Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Mon, 26 Jun 2017 10:50:28 +0200 Subject: utils: add function gsm_fn_as_gsmtime_str() Convert a given frame number into a printable string that displays the sub components of the frame number. Change-Id: I8015d2ded3940b01b35df7b72fc35c70c25e9926 --- include/osmocom/gsm/gsm_utils.h | 3 +++ src/gsm/gsm_utils.c | 11 +++++++++++ src/gsm/libosmogsm.map | 1 + 3 files changed, 15 insertions(+) diff --git a/include/osmocom/gsm/gsm_utils.h b/include/osmocom/gsm/gsm_utils.h index a879d33c..bfcef08b 100644 --- a/include/osmocom/gsm/gsm_utils.h +++ b/include/osmocom/gsm/gsm_utils.h @@ -165,6 +165,9 @@ uint16_t gsm_freq102arfcn(uint16_t freq10, int uplink); /* Convert from frame number to GSM time */ void gsm_fn2gsmtime(struct gsm_time *time, uint32_t fn); +/* Parse GSM Frame Number into printable string */ +char *gsm_fn_as_gsmtime_str(uint32_t fn); + /* Convert from GSM time to frame number */ uint32_t gsm_gsmtime2fn(struct gsm_time *time); diff --git a/src/gsm/gsm_utils.c b/src/gsm/gsm_utils.c index 2c980d28..477f076d 100644 --- a/src/gsm/gsm_utils.c +++ b/src/gsm/gsm_utils.c @@ -750,6 +750,17 @@ void gsm_fn2gsmtime(struct gsm_time *time, uint32_t fn) time->tc = (time->fn / 51) % 8; } +/*! Parse GSM Frame Number into printable string + * \param[in] fn GSM Frame Number + * \returns pointer to printable string */ +char *gsm_fn_as_gsmtime_str(uint32_t fn) +{ + struct gsm_time time; + + gsm_fn2gsmtime(&time, fn); + return osmo_dump_gsmtime(&time); +} + /*! Encode decoded \ref gsm_time to Frame Number * \param[in] time GSM Time in decoded structure * \returns GSM Frame Number */ diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index ad7e0131..714cb25f 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -272,6 +272,7 @@ gsm_freq102arfcn; gsm_band_name; gsm_band_parse; gsm_fn2gsmtime; +gsm_fn_as_gsmtime_str; gsm_get_octet_len; gsm_gsmtime2fn; osmo_dump_gsmtime; -- cgit v1.2.3