r3621 - in trunk/src/target/gsm: include/gsmd include/libgsmd src/gsmd src/libgsmd src/util
erin_yueh at sita.openmoko.org
erin_yueh at sita.openmoko.org
Mon Dec 10 07:36:46 CET 2007
Author: erin_yueh
Date: 2007-12-10 07:36:38 +0100 (Mon, 10 Dec 2007)
New Revision: 3621
Modified:
trunk/src/target/gsm/include/gsmd/usock.h
trunk/src/target/gsm/include/libgsmd/misc.h
trunk/src/target/gsm/src/gsmd/usock.c
trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c
trunk/src/target/gsm/src/util/shell.c
Log:
gsmd: Bug 1082 - PIN Status Missing (Erin Yueh)
Modified: trunk/src/target/gsm/include/gsmd/usock.h
===================================================================
--- trunk/src/target/gsm/include/gsmd/usock.h 2007-12-10 03:41:33 UTC (rev 3620)
+++ trunk/src/target/gsm/include/gsmd/usock.h 2007-12-10 06:36:38 UTC (rev 3621)
@@ -95,6 +95,7 @@
GSMD_PHONE_POWERUP = 1,
GSMD_PHONE_POWERDOWN = 2,
GSMD_PHONE_GET_IMSI = 3,
+ GSMD_PIN_GET_STATUS = 4,
};
enum gsmd_msg_modem {
Modified: trunk/src/target/gsm/include/libgsmd/misc.h
===================================================================
--- trunk/src/target/gsm/include/libgsmd/misc.h 2007-12-10 03:41:33 UTC (rev 3620)
+++ trunk/src/target/gsm/include/libgsmd/misc.h 2007-12-10 06:36:38 UTC (rev 3621)
@@ -79,5 +79,6 @@
/* Retrieve IMSI information */
extern int lgsm_get_imsi(struct lgsm_handle *lh);
-
+/* Get PIN status information */
+extern int lgsm_pin_status(struct lgsm_handle *lh);
#endif
Modified: trunk/src/target/gsm/src/gsmd/usock.c
===================================================================
--- trunk/src/target/gsm/src/gsmd/usock.c 2007-12-10 03:41:33 UTC (rev 3620)
+++ trunk/src/target/gsm/src/gsmd/usock.c 2007-12-10 06:36:38 UTC (rev 3621)
@@ -383,6 +383,14 @@
cmd->id, strlen(resp) + 1, resp);
}
+static int get_cpin_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
+{
+ DEBUGP("resp: %s\n", resp);
+
+ return gsmd_ucmd_submit(ctx, GSMD_MSG_PHONE, GSMD_PIN_GET_STATUS,
+ cmd->id, strlen(resp) + 1, resp);
+}
+
static int usock_rcv_phone(struct gsmd_user *gu, struct gsmd_msg_hdr *gph,
int len)
{
@@ -402,7 +410,10 @@
case GSMD_PHONE_GET_IMSI:
cmd = atcmd_fill("AT+CIMI", 7 + 1, &get_imsi_cb, gu, 0, NULL);
break;
-
+
+ case GSMD_PIN_GET_STATUS:
+ cmd = atcmd_fill("AT+CPIN?", 8 + 1, &get_cpin_cb, gu, 0, NULL);
+ break;
default:
return -EINVAL;
}
Modified: trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c
===================================================================
--- trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c 2007-12-10 03:41:33 UTC (rev 3620)
+++ trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c 2007-12-10 06:36:38 UTC (rev 3621)
@@ -50,3 +50,7 @@
return lgsm_send_simple(lh, GSMD_MSG_PHONE, GSMD_PHONE_GET_IMSI);
}
+int lgsm_pin_status(struct lgsm_handle *lh)
+{
+ return lgsm_send_simple(lh, GSMD_MSG_PHONE, GSMD_PIN_GET_STATUS);
+}
Modified: trunk/src/target/gsm/src/util/shell.c
===================================================================
--- trunk/src/target/gsm/src/util/shell.c 2007-12-10 03:41:33 UTC (rev 3620)
+++ trunk/src/target/gsm/src/util/shell.c 2007-12-10 06:36:38 UTC (rev 3621)
@@ -356,6 +356,10 @@
payload = (char *)gmh + sizeof(*gmh);
printf("imsi <%s>\n", payload);
break;
+ case GSMD_PIN_GET_STATUS:
+ payload = (char *)gmh + sizeof(*gmh);
+ printf("%s\n", payload);
+ break;
case GSMD_PHONE_POWERUP:
if (*intresult)
printf("Modem power-up failed: %i\n", *intresult);
@@ -470,6 +474,7 @@
"\tsC\tSMS Set Service Centre (sC=number)\n"
"\tim\tGet imsi\n"
"\tcs\tGet Call status\n"
+ "\tgp\tGet PIN status\n"
"\tq\tQuit\n"
);
}
@@ -761,6 +766,10 @@
printf("List current call status\n");
lgsm_voice_get_status(lgsmh);
pending_responses ++;
+ } else if ( !strncmp(buf, "gp", 2)) {
+ printf("Get PIN status\n");
+ lgsm_pin_status(lgsmh);
+ pending_responses ++;
} else {
printf("Unknown command `%s'\n", buf);
}
More information about the commitlog
mailing list