hi list, R4174 is committed for query the antenna status.
Regards, Erin
Modified: trunk/src/target/gsm/include/gsmd/usock.h =================================================================== --- trunk/src/target/gsm/include/gsmd/usock.h 2008-03-05 20:26:56 UTC (rev 4173) +++ trunk/src/target/gsm/include/gsmd/usock.h 2008-03-06 09:35:12 UTC (rev 4174) @@ -142,6 +142,7 @@ GSMD_PHONE_GET_BATTERY = 8, GSMD_PHONE_VIB_ENABLE = 9, GSMD_PHONE_VIB_DISABLE = 10, + GSMD_PHONE_POWER_STATUS = 11, }; enum gsmd_msg_modem { Modified: trunk/src/target/gsm/src/gsmd/usock.c =================================================================== --- trunk/src/target/gsm/src/gsmd/usock.c 2008-03-05 20:26:56 UTC (rev 4173) +++ trunk/src/target/gsm/src/gsmd/usock.c 2008-03-06 09:35:12 UTC (rev 4174) @@ -613,6 +613,15 @@ cmd->id, sizeof(ret), &ret); } +static int phone_power_status_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) +{ + DEBUGP("resp: %s\n", resp); + if (!strncmp(resp, "+CFUN: ", 7)) + resp += 7; + return gsmd_ucmd_submit(ctx, GSMD_MSG_PHONE, GSMD_PHONE_POWER_STATUS, + cmd->id, strlen(resp) + 1, resp); +} + static int phone_get_manuf_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) { struct gsmd_user *gu = ctx; @@ -721,6 +730,11 @@ &phone_powerdown_cb, gu, 0, NULL); gu->gsmd->dev_state.on = 0; break; + case GSMD_PHONE_POWER_STATUS: + cmd = atcmd_fill("AT+CFUN?", 8+1, + &phone_power_status_cb, gu, 0, NULL); + break; + case GSMD_PHONE_GET_IMSI: return gsmd_ucmd_submit(gu, GSMD_MSG_PHONE, GSMD_PHONE_GET_IMSI, 0, strlen(gu->gsmd->imsi) + 1, gu->gsmd->imsi); Modified: trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c =================================================================== --- trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c 2008-03-05 20:26:56 UTC (rev 4173) +++ trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c 2008-03-06 09:35:12 UTC (rev 4174) @@ -45,6 +45,11 @@ return lgsm_send_simple(lh, GSMD_MSG_PHONE, type); } +int lgsm_get_power_status(struct lgsm_handle *lh) +{ + return lgsm_send_simple(lh, GSMD_MSG_PHONE, GSMD_PHONE_POWER_STATUS); +} + int lgsm_get_imsi(struct lgsm_handle *lh) { return lgsm_send_simple(lh, GSMD_MSG_PHONE, GSMD_PHONE_GET_IMSI); Modified: trunk/src/target/gsm/src/util/shell.c =================================================================== --- trunk/src/target/gsm/src/util/shell.c 2008-03-05 20:26:56 UTC (rev 4173) +++ trunk/src/target/gsm/src/util/shell.c 2008-03-06 09:35:12 UTC (rev 4174) @@ -425,6 +425,9 @@ else printf("Modem down\n"); break; + case GSMD_PHONE_POWER_STATUS: + printf("Antenna Status: %s\n", payload); + break; case GSMD_PHONE_GET_BATTERY: printf("<BCS>: %d <BCL>: %d \n", bc->bcs, bc->bcl); break; @@ -546,6 +549,7 @@ "\tH\tHangup call\n" "\tO\tAntenna Power On\n" "\to\tAntenna Power Off\n" + "\tgos\tGet Antenna Status\n" "\tV\tVibrator Enable (CVIB=1)\n" "\tv\tVibrator Disable (CVIB=0)\n" "\tM\tModem Power On\n" @@ -680,6 +684,9 @@ } else if (!strcmp(buf, "o")) { printf("Power-Off\n"); lgsm_phone_power(lgsmh, 0); + } else if (!strcmp(buf, "gos")) { + printf("Get Antenna status\n"); + lgsm_get_power_status(lgsmh, 0); } else if (!strcmp(buf, "V")) { printf("Vibrator-Enable\n"); lgsm_phone_vibrator(lgsmh, 1);