r3915 - in trunk/src/target/gsm: include/gsmd include/libgsmd src/gsmd

erin_yueh at sita.openmoko.org erin_yueh at sita.openmoko.org
Tue Jan 22 14:41:42 CET 2008


Author: erin_yueh
Date: 2008-01-22 14:41:36 +0100 (Tue, 22 Jan 2008)
New Revision: 3915

Modified:
   trunk/src/target/gsm/include/gsmd/gsmd.h
   trunk/src/target/gsm/include/libgsmd/misc.h
   trunk/src/target/gsm/src/gsmd/gsmd.c
   trunk/src/target/gsm/src/gsmd/usock.c
Log:
gsmd: retrieve imsi value before sending at command (Sean Chiang)


Modified: trunk/src/target/gsm/include/gsmd/gsmd.h
===================================================================
--- trunk/src/target/gsm/include/gsmd/gsmd.h	2008-01-22 12:27:14 UTC (rev 3914)
+++ trunk/src/target/gsm/include/gsmd/gsmd.h	2008-01-22 13:41:36 UTC (rev 3915)
@@ -91,6 +91,7 @@
 	unsigned int mlbuf_len;
 	int mlunsolicited;
 	int alive_responded;
+	char imsi[16];			/* imsi mem space */
 };
 
 struct gsmd_user {

Modified: trunk/src/target/gsm/include/libgsmd/misc.h
===================================================================
--- trunk/src/target/gsm/include/libgsmd/misc.h	2008-01-22 12:27:14 UTC (rev 3914)
+++ trunk/src/target/gsm/include/libgsmd/misc.h	2008-01-22 13:41:36 UTC (rev 3915)
@@ -36,6 +36,7 @@
 
 /* Operator Selection, Network Registration */
 extern int lgsm_oper_get(struct lgsm_handle *lh);
+extern int lgsm_oper_n_get(struct lgsm_handle *lh);
 extern int lgsm_opers_get(struct lgsm_handle *lh);
 extern int lgsm_netreg_register(struct lgsm_handle *lh,
 		gsmd_oper_numeric oper);

Modified: trunk/src/target/gsm/src/gsmd/gsmd.c
===================================================================
--- trunk/src/target/gsm/src/gsmd/gsmd.c	2008-01-22 12:27:14 UTC (rev 3914)
+++ trunk/src/target/gsm/src/gsmd/gsmd.c	2008-01-22 13:41:36 UTC (rev 3915)
@@ -147,6 +147,16 @@
 	return 0;
 }
 
+static int gsmd_get_imsi_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
+{
+	struct gsmd *g = ctx;
+
+	DEBUGP("imsi : %s\n", resp);
+	strcpy(g->imsi, resp);
+
+	return 0;
+}
+
 int gsmd_simplecmd(struct gsmd *gsmd, char *cmdtxt)
 {
 	struct gsmd_atcmd *cmd;
@@ -178,6 +188,9 @@
 	/* configure message format as PDU mode*/
 	/* FIXME: TEXT mode support!! */
 	rc |= gsmd_simplecmd(gsmd, "AT+CMGF=0");
+	/* reueset imsi */
+	atcmd_submit(gsmd, atcmd_fill("AT+CIMI", 7+1,
+					&gsmd_get_imsi_cb, gsmd, 0, NULL));
 
 
 	sms_cb_init(gsmd);

Modified: trunk/src/target/gsm/src/gsmd/usock.c
===================================================================
--- trunk/src/target/gsm/src/gsmd/usock.c	2008-01-22 12:27:14 UTC (rev 3914)
+++ trunk/src/target/gsm/src/gsmd/usock.c	2008-01-22 13:41:36 UTC (rev 3915)
@@ -638,7 +638,8 @@
 		gu->gsmd->dev_state.on = 0;
 		break;
 	case GSMD_PHONE_GET_IMSI:
-		cmd = atcmd_fill("AT+CIMI", 7 + 1, &get_imsi_cb, gu, 0, NULL);
+		return gsmd_ucmd_submit(gu, GSMD_MSG_PHONE, GSMD_PHONE_GET_IMSI,
+			0, strlen(gu->gsmd->imsi), gu->gsmd->imsi);
 		break;
 
 	default:





More information about the commitlog mailing list