Changeset 3201


Ignore:
Timestamp:
10/17/07 08:14:20 (6 years ago)
Author:
jserv
Message:

Added 'Ask Status report' option in shell.

From: Andrzej Zaborowski <balrogg@…>

I also moved the .ask_ds field from struct gsmd_sms into struct
gsmd_sms_submit because it seemed more logical being a property
of SMS-SUBMIT PDU.

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

Legend:

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

    r2748 r3201  
    331331        struct gsmd_addr addr; 
    332332        struct gsmd_sms payload; 
     333        int ask_ds; 
    333334}; 
    334335 
  • trunk/src/target/gsm/include/libgsmd/sms.h

    r2723 r3201  
    4747        u_int8_t data[LGSM_SMS_DATA_MAXLEN+1]; 
    4848        int length; 
     49        int ask_ds; 
    4950}; 
    5051 
  • trunk/src/target/gsm/src/gsmd/sms_pdu.c

    r3200 r3201  
    248248                (0 << 2) |              /* Reject Duplicates: 0 */ 
    249249                GSMD_SMS_TP_VPF_NOT_PRESENT | 
    250                 GSMD_SMS_TP_SRR_STATUS_REQUEST | 
     250                (src->ask_ds ? GSMD_SMS_TP_SRR_STATUS_REQUEST : 
     251                 GSMD_SMS_TP_SRR_NOT_REQUEST) | 
    251252                (src->payload.has_header ? GSMD_SMS_TP_UDHI_WITH_HEADER : 
    252253                 GSMD_SMS_TP_UDHI_NO_HEADER) | 
  • trunk/src/target/gsm/src/libgsmd/libgsmd_sms.c

    r2723 r3201  
    127127                return -EINVAL; 
    128128 
     129        gss->ask_ds = sms->ask_ds; 
    129130        gss->payload.has_header = 0; 
    130131        gss->payload.length = sms->length; 
     
    162163                return -EINVAL; 
    163164 
     165        gsw->sms.ask_ds = sms_write->sms.ask_ds; 
    164166        gsw->sms.payload.has_header = 0; 
    165167        gsw->sms.payload.length = sms_write->sms.length; 
  • trunk/src/target/gsm/src/util/shell.c

    r3199 r3201  
    390390                "\tsl\tSMS List (sl=stat)\n" 
    391391                "\tsr\tSMS Read (sr=index)\n" 
    392                 "\tss\tSMS Send (ss=number,text|[\"text\"])\n" 
     392                "\tss\tSMS Send (ss=ask_ds,number,text|[\"text\"])\n" 
    393393                "\tsw\tSMS Write (sw=stat,number,text)\n" 
    394394                "\tsm\tSMS Storage stats\n" 
     
    616616 
    617617                                ptr = strchr(buf, '='); 
     618                                sms.ask_ds = atoi(ptr+1); 
    618619                                fcomma = strchr(buf, ','); 
    619                                 if (!ptr || !fcomma) { 
    620                                         printf("Wrong command format\n"); 
    621                                 } else { 
    622                                         strncpy(sms.addr, ptr+1, fcomma-ptr-1); 
    623                                         sms.addr[fcomma-ptr-1] = '\0'; 
    624  
    625                                         /* todo define \" to allow " in text */ 
    626                                         if (fcomma[1] == '"' && 
    627                                                 !strchr(fcomma+2, '"')) { 
     620                                lcomma = strchr(fcomma+1, ','); 
     621                                strncpy(sms.addr, fcomma+1, lcomma-fcomma-1); 
     622                                sms.addr[lcomma-fcomma-1] = '\0'; 
     623                                /* todo define \" to allow " in text */ 
     624                                if (lcomma[1]=='"' && 
     625                                                !strchr(lcomma+2, '"')) { 
    628626                                                /* read until closing '"' */ 
    629627                                                rc = fscanf(stdin, "%[^\"]\"", 
    630                                                         fcomma+strlen(fcomma)); 
     628                                                        lcomma+strlen(lcomma)); 
    631629                                                if (rc == EOF) { 
    632630                                                        printf("EOF\n"); 
     
    634632                                                } 
    635633                                                /* remove brackets */ 
    636                                                 fcomma++; 
    637                                                 fcomma[strlen(fcomma)] = '\0'; 
    638                                         } 
    639  
    640                                         printf("Send SMS\n"); 
    641                                         packing_7bit_character(fcomma+1, &sms); 
    642  
    643                                         lgsm_sms_send(lgsmh, &sms); 
     634                                                lcomma++; 
     635                                                lcomma[strlen(lcomma)] = '\0'; 
    644636                                } 
     637                                printf("Send SMS\n"); 
     638                                packing_7bit_character(lcomma+1, &sms); 
     639 
     640                                lgsm_sms_send(lgsmh, &sms); 
    645641                        } else if ( !strncmp(buf, "sw", 2)) {    
    646642                                printf("Write SMS\n");                           
     
    656652                                packing_7bit_character( 
    657653                                                lcomma+1, &sms_write.sms); 
     654                                sms_write.sms.ask_ds = 0; 
    658655 
    659656                                lgsm_sms_write(lgsmh, &sms_write); 
Note: See TracChangeset for help on using the changeset viewer.