Changeset 3519


Ignore:
Timestamp:
11/27/07 09:24:57 (5 years ago)
Author:
tick
Message:

gsmd: Refactorying get_imsi from PHONEBOOK to PHONE (tick)

Location:
trunk/src/target/gsm
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/gsm/include/gsmd/usock.h

    r3504 r3519  
    5757        GSMD_PHONE_POWERUP      = 1, 
    5858        GSMD_PHONE_POWERDOWN    = 2, 
     59        GSMD_PHONE_GET_IMSI     = 3, 
    5960}; 
    6061 
     
    256257        GSMD_PHONEBOOK_RETRIEVE_READRG  = 9, 
    257258        GSMD_PHONEBOOK_RETRIEVE_FIND    = 10, 
    258         GSMD_PHONEBOOK_GET_IMSI         = 11, 
    259259}; 
    260260 
  • trunk/src/target/gsm/include/libgsmd/misc.h

    r3449 r3519  
    7878/* TBD */ 
    7979 
     80/* Retrieve IMSI information */ 
     81extern int lgsm_get_imsi(struct lgsm_handle *lh); 
    8082 
    8183#endif 
  • trunk/src/target/gsm/include/libgsmd/phonebook.h

    r3394 r3519  
    100100extern int lgsm_pb_retrieve_find(struct lgsm_handle *lh, int num); 
    101101 
    102 /* Retrieve IMSI information */ 
    103 extern int lgsm_get_imsi(struct lgsm_handle *lh); // TODO this needs to go into a SIM specific file 
    104  
    105102#endif 
  • trunk/src/target/gsm/src/gsmd/usock.c

    r3449 r3519  
    264264} 
    265265 
     266static int get_imsi_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) 
     267{ 
     268        struct gsmd_user *gu = ctx; 
     269        struct gsmd_ucmd *ucmd; 
     270 
     271        DEBUGP("resp: %s\n", resp); 
     272 
     273        ucmd = gsmd_ucmd_fill(strlen(resp)+1, GSMD_MSG_PHONE, 
     274                                  GSMD_PHONE_GET_IMSI, 0); 
     275        if (!ucmd) 
     276                return -ENOMEM; 
     277 
     278        strcpy(ucmd->buf, resp); 
     279 
     280        usock_cmd_enqueue(ucmd, gu); 
     281 
     282        return 0; 
     283} 
     284 
    266285static int usock_rcv_phone(struct gsmd_user *gu, struct gsmd_msg_hdr *gph,  
    267286                           int len) 
     
    280299                gu->gsmd->dev_state.on = 0; 
    281300                break; 
     301        case GSMD_PHONE_GET_IMSI: 
     302                cmd = atcmd_fill("AT+CIMI", 7 + 1, &get_imsi_cb, gu, 0, NULL); 
     303                break; 
     304 
    282305        default: 
    283306                return -EINVAL; 
    284307        } 
     308 
    285309        if (!cmd) 
    286310                return -ENOMEM; 
     
    962986} 
    963987 
    964 static int get_imsi_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) 
    965 { 
    966         struct gsmd_user *gu = ctx; 
    967         struct gsmd_ucmd *ucmd; 
    968  
    969         DEBUGP("resp: %s\n", resp); 
    970  
    971         ucmd = gsmd_ucmd_fill(strlen(resp)+1, GSMD_MSG_PHONEBOOK, 
    972                                   GSMD_PHONEBOOK_GET_IMSI, 0); 
    973         if (!ucmd) 
    974                 return -ENOMEM; 
    975  
    976         strcpy(ucmd->buf, resp); 
    977  
    978         usock_cmd_enqueue(ucmd, gu); 
    979  
    980         return 0; 
    981 } 
    982  
    983988 
    984989static int usock_rcv_phonebook(struct gsmd_user *gu, 
     
    11571162                break; 
    11581163         
    1159         case GSMD_PHONEBOOK_GET_IMSI: 
    1160                 cmd = atcmd_fill("AT+CIMI", 7 + 1, &get_imsi_cb, gu, 0, NULL); 
    1161                 break; 
    11621164 
    11631165        default: 
  • trunk/src/target/gsm/src/libgsmd/libgsmd_phone.c

    r546 r3519  
    4545        return lgsm_send_simple(lh, GSMD_MSG_PHONE, type); 
    4646} 
     47 
     48int lgsm_get_imsi(struct lgsm_handle *lh) 
     49{ 
     50        return lgsm_send_simple(lh, GSMD_MSG_PHONE, GSMD_PHONE_GET_IMSI); 
     51} 
     52 
  • trunk/src/target/gsm/src/libgsmd/libgsmd_phonebook.c

    r3497 r3519  
    247247} 
    248248 
    249 int lgsm_get_imsi(struct lgsm_handle *lh) 
    250 { 
    251         return lgsm_send_simple(lh, GSMD_MSG_PHONEBOOK, GSMD_PHONEBOOK_GET_IMSI); 
    252 } 
    253  
     249 
  • trunk/src/target/gsm/src/util/shell.c

    r3498 r3519  
    131131 
    132132                nFIND = 0; 
    133                 break; 
    134         case GSMD_PHONEBOOK_GET_IMSI: 
    135                 payload = (char *)gmh + sizeof(*gmh); 
    136                 printf("imsi <%s>\n", payload); 
    137                 pending_responses --; 
    138133                break; 
    139134        default: 
     
    348343                return -EINVAL; 
    349344        } 
     345} 
     346 
     347static int phone_msghandler(struct lgsm_handle *lh, struct gsmd_msg_hdr *gmh) { 
     348        char *payload; 
     349        switch (gmh->msg_subtype) { 
     350        case GSMD_PHONE_GET_IMSI: 
     351                payload = (char *)gmh + sizeof(*gmh); 
     352                printf("imsi <%s>\n", payload); 
     353                pending_responses --; 
     354                break; 
     355        default: 
     356                return -EINVAL; 
     357        } 
     358        return 0; 
    350359} 
    351360 
     
    406415        lgsm_register_handler(lgsmh, GSMD_MSG_SMS, &sms_msghandler); 
    407416        lgsm_register_handler(lgsmh, GSMD_MSG_NETWORK, &net_msghandler); 
     417        lgsm_register_handler(lgsmh, GSMD_MSG_PHONE, &phone_msghandler); 
    408418 
    409419        fcntl(0, F_SETFD, O_NONBLOCK); 
Note: See TracChangeset for help on using the changeset viewer.