Open Source Telephony
 help / color / mirror / Atom feed
From: Yang Gu <yang.gu@intel.com>
To: ofono@ofono.org
Subject: [PATCH 10/12] stk: Add parser for timing advance objects
Date: Sun, 13 Jun 2010 17:43:20 +0800	[thread overview]
Message-ID: <1276422202-16240-10-git-send-email-yang.gu@intel.com> (raw)
In-Reply-To: <1276422202-16240-1-git-send-email-yang.gu@intel.com>

[-- Attachment #1: Type: text/plain, Size: 3516 bytes --]

---
 src/stkutil.c       |   22 ++++++++++++++++++++++
 src/stkutil.h       |   28 ++++++++++++++++++----------
 unit/test-stkutil.c |    2 +-
 3 files changed, 41 insertions(+), 11 deletions(-)

diff --git a/src/stkutil.c b/src/stkutil.c
index 1631610..35d9be6 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -1145,6 +1145,26 @@ static gboolean parse_dataobj_language(struct comprehension_tlv_iter *iter,
 	return TRUE;
 }
 
+/* Defined in 31.111 Section 8.46 */
+static gboolean parse_dataobj_timing_advance(
+			struct comprehension_tlv_iter *iter, void *user)
+{
+	struct stk_timing_advance *ta = user;
+	const unsigned char *data;
+	unsigned int len = comprehension_tlv_iter_get_length(iter);
+
+	if (len != 2)
+		return FALSE;
+
+	data = comprehension_tlv_iter_get_data(iter);
+
+	ta->has_value = TRUE;
+	ta->status = data[0];
+	ta->advance = data[1];
+
+	return TRUE;
+}
+
 /* Defined in 102.223 Section 8.47 */
 static gboolean parse_dataobj_browser_id(struct comprehension_tlv_iter *iter,
 						void *user)
@@ -2029,6 +2049,8 @@ static dataobj_handler handler_for_type(enum stk_data_object_type type)
 		return parse_dataobj_language;
 	case STK_DATA_OBJECT_TYPE_BROWSER_ID:
 		return parse_dataobj_browser_id;
+	case STK_DATA_OBJECT_TYPE_TIMING_ADVANCE:
+		return parse_dataobj_timing_advance;
 	case STK_DATA_OBJECT_TYPE_URL:
 		return parse_dataobj_url;
 	case STK_DATA_OBJECT_TYPE_BEARER:
diff --git a/src/stkutil.h b/src/stkutil.h
index 20c3c02..6ccf307 100644
--- a/src/stkutil.h
+++ b/src/stkutil.h
@@ -447,6 +447,11 @@ enum stk_broadcast_network_technology {
 	STK_BROADCAST_NETWORK_T_DMB = 0x03
 };
 
+enum stk_me_status {
+	STK_ME_STATUS_IDLE = 		0x00,
+	STK_ME_STATUS_NOT_IDLE = 	0x01
+};
+
 /* For data object that only has a byte array with undetermined length */
 struct stk_common_byte_array {
 	unsigned char *array;
@@ -671,6 +676,18 @@ struct stk_timer_value {
 	unsigned char second;
 };
 
+/* Defined in TS 31.111 Section 8.46 */
+struct stk_timing_advance {
+	ofono_bool_t has_value;
+	unsigned char status;
+	/*
+	 * Contains bit periods number according to 3GPP TS
+	 * 44.118 Section 9.3.106 / 3GPP TS 44.018 Section
+	 * 10.5.2.40.1, not microseconds
+	 */
+	unsigned char advance;
+};
+
 /*
  * According to 102.223 Section 8.52 the length of CTLV is 1 byte. This means
  * that the maximum size is 127 according to the rules of CTLVs. This size also
@@ -1229,16 +1246,7 @@ struct stk_response_local_info {
 		const char *language;
 		enum stk_battery_state battery_charge;
 		enum stk_access_technology_type access_technology;
-		struct stk_timing_advance {
-			enum {
-				STK_TIMING_ADVANCE_ME_IDLE = 0x00,
-				STK_TIMING_ADVANCE_ME_NOT_IDLE = 0x01,
-			} status;
-			/* Contains bit periods number according to 3GPP TS
-			 * 44.118 Section 9.3.106 / 3GPP TS 44.018 Section
-			 * 10.5.2.40.1, not microseconds */
-			int advance;
-		} tadv;
+		struct stk_timing_advance tadv;
 		/* Bits[31:24]: manufacturer, bits[23:0]: serial number */
 		guint32 esn;
 		const char *imeisv;
diff --git a/unit/test-stkutil.c b/unit/test-stkutil.c
index 507d86d..eab62f0 100644
--- a/unit/test-stkutil.c
+++ b/unit/test-stkutil.c
@@ -18695,7 +18695,7 @@ static const struct terminal_response_test
 		},
 		{ .provide_local_info = {
 			{ .tadv = {
-				.status = STK_TIMING_ADVANCE_ME_IDLE,
+				.status = STK_ME_STATUS_IDLE,
 				.advance = 0,
 			}},
 		}},
-- 
1.7.0.4


  parent reply	other threads:[~2010-06-13  9:43 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-13  9:43 [PATCH 01/12] stk: Add parser for send ss commands Yang Gu
2010-06-13  9:43 ` [PATCH 02/12] teststk: Add test for send ss parser Yang Gu
2010-06-13  9:43 ` [PATCH 03/12] stk: Add parser for send ussd commands Yang Gu
2010-06-16 22:44   ` Denis Kenzior
2010-06-13  9:43 ` [PATCH 04/12] teststk: Add test for send ussd parser Yang Gu
2010-06-13  9:43 ` [PATCH 05/12] Modify " Yang Gu
2010-06-16 22:48   ` Denis Kenzior
2010-06-17 10:33     ` Gu, Yang
2010-06-17  9:35       ` Denis Kenzior
2010-06-13  9:43 ` [PATCH 06/12] Refactor " Yang Gu
2010-06-16 22:49   ` Denis Kenzior
2010-06-21 14:09     ` Aki Niemi
2010-06-21 14:08   ` Aki Niemi
2010-06-13  9:43 ` [PATCH 07/12] Add several proactive command parsers Yang Gu
2010-06-13  9:43 ` [PATCH 08/12] stk: Add parser for cell broadcast page objects Yang Gu
2010-06-13  9:43 ` [PATCH 09/12] stk: Add parser for bcch channel list objects Yang Gu
2010-06-13  9:43 ` Yang Gu [this message]
2010-06-16 22:50   ` [PATCH 10/12] stk: Add parser for timing advance objects Denis Kenzior
2010-06-16 23:19   ` andrzej zaborowski
2010-06-17  1:44     ` Gu, Yang
2010-06-13  9:43 ` [PATCH 11/12] stk: Add parser for PDP activation param objects Yang Gu
2010-06-13  9:43 ` [PATCH 12/12] stk: Add parser for UTRAN meas qualifier objects Yang Gu
2010-06-16 22:42 ` [PATCH 01/12] stk: Add parser for send ss commands Denis Kenzior

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1276422202-16240-10-git-send-email-yang.gu@intel.com \
    --to=yang.gu@intel.com \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox