Ticket #1238: queryAntennaStatus.patch

File queryAntennaStatus.patch, 2.8 KB (added by erin_yueh@…, 11 years ago)

query antenna status

  • include/gsmd/usock.h

     
    142142        GSMD_PHONE_GET_BATTERY  = 8, 
    143143        GSMD_PHONE_VIB_ENABLE   = 9, 
    144144        GSMD_PHONE_VIB_DISABLE  = 10, 
     145        GSMD_PHONE_POWER_STATUS = 11, 
    145146}; 
    146147 
    147148enum gsmd_msg_modem { 
  • src/libgsmd/libgsmd_phone.c

     
    4545        return lgsm_send_simple(lh, GSMD_MSG_PHONE, type); 
    4646} 
    4747 
     48int lgsm_get_power_status(struct lgsm_handle *lh) 
     49{ 
     50        return lgsm_send_simple(lh, GSMD_MSG_PHONE, GSMD_PHONE_POWER_STATUS); 
     51} 
     52 
    4853int lgsm_get_imsi(struct lgsm_handle *lh) 
    4954{ 
    5055        return lgsm_send_simple(lh, GSMD_MSG_PHONE, GSMD_PHONE_GET_IMSI); 
  • src/gsmd/usock.c

     
    613613                        cmd->id, sizeof(ret), &ret); 
    614614} 
    615615 
     616static int phone_power_status_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) 
     617{ 
     618        DEBUGP("resp: %s\n", resp); 
     619        if (!strncmp(resp, "+CFUN: ", 7)) 
     620                resp += 7; 
     621        return gsmd_ucmd_submit(ctx, GSMD_MSG_PHONE, GSMD_PHONE_POWER_STATUS, 
     622                        cmd->id, strlen(resp) + 1, resp); 
     623} 
     624 
    616625static int phone_get_manuf_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) 
    617626{ 
    618627        struct gsmd_user *gu = ctx; 
     
    721730                                &phone_powerdown_cb, gu, 0, NULL); 
    722731                gu->gsmd->dev_state.on = 0; 
    723732                break; 
     733        case GSMD_PHONE_POWER_STATUS: 
     734                cmd = atcmd_fill("AT+CFUN?", 8+1, 
     735                                &phone_power_status_cb, gu, 0, NULL); 
     736                break; 
     737 
    724738        case GSMD_PHONE_GET_IMSI: 
    725739                return gsmd_ucmd_submit(gu, GSMD_MSG_PHONE, GSMD_PHONE_GET_IMSI, 
    726740                        0, strlen(gu->gsmd->imsi) + 1, gu->gsmd->imsi); 
  • src/util/shell.c

     
    425425                else 
    426426                        printf("Modem down\n"); 
    427427                break; 
     428        case GSMD_PHONE_POWER_STATUS: 
     429                printf("Antenna Status: %s\n", payload); 
     430                break; 
    428431        case GSMD_PHONE_GET_BATTERY: 
    429432                printf("<BCS>: %d <BCL>: %d \n", bc->bcs, bc->bcl); 
    430433                break;           
     
    546549                "\tH\tHangup call\n" 
    547550                "\tO\tAntenna Power On\n" 
    548551                "\to\tAntenna Power Off\n" 
     552                "\tgos\tGet Antenna Status\n" 
    549553                "\tV\tVibrator Enable (CVIB=1)\n" 
    550554                "\tv\tVibrator Disable (CVIB=0)\n" 
    551555                "\tM\tModem Power On\n" 
     
    680684                        } else if (!strcmp(buf, "o")) { 
    681685                                printf("Power-Off\n"); 
    682686                                lgsm_phone_power(lgsmh, 0); 
     687                        } else if (!strcmp(buf, "gos")) { 
     688                                printf("Get Antenna status\n"); 
     689                                lgsm_get_power_status(lgsmh, 0); 
    683690                        } else if (!strcmp(buf, "V")) { 
    684691                                printf("Vibrator-Enable\n"); 
    685692                                lgsm_phone_vibrator(lgsmh, 1);