dsat_result_enum_type dsatcat_exec_search_gmd ( dsat_mode_enum_type mode, /* AT command mode */ const dsati_cmd_type *cmd_table, /* Ptr to cmd in command table */ const tokens_struct_type *tok_ptr, /* Command tokens from parser */ dsm_item_type *res_buff_ptr /* Place to put response */ ) { dsat_result_enum_type result; char *rb_ptr = (char*)res_buff_ptr->data_ptr; char bufferer[10]; boolean SEARCH_OK_OR_NOT; static char min_buf[270] = {0}; nv_pb_udb_entry_type *upb_item_ptr = NULL; //result = dsatparm_exec_param_cmd( mode, //cmd_table, //tok_ptr, //res_buff_ptr ); if (tok_ptr->op==(NA|EQ|QU)) { sprintf((char*)rb_ptr, "/r/n+SEARCH:(a-z)/r/n"); } else if (tok_ptr->op == (NA|EQ|AR)) { if(tok_ptr->args_found==1) { bufferer=tok_ptr->arg[0]; for(int i=0;i<250;i++) { boolean occupy = FALSE; dsat_upb_test_map(i, &occupy); if( occupy ) { upb_item_ptr = dsat_upb_get_item(i); if( upb_item_ptr != NULL ) { dsat_upb_output_item_data( upb_item_ptr , (char *)min_buf); //bufferer += min_buf; SEARCH_OK_OR_NOT=search_data(bufferer,min_buf); if(OK==SEARCH_OK_OR_NOT) { rb_ptr+=sprintf((char*)rb_ptr, "/r/n+SEARCH:%s/r/n",min_buf); result=DSAT_OK; } } } count++; if(count%MAX_ENQUEUE_ITEMS==0) { rex_sleep(HOLD_ON_MS); } } } else { result=DSAT_ERROR; } } return result; } boolean search_data(char *bufferer,char *min_buf) { if(NULL==bufferer||NULL==min_buf) { return Not; } for(i=0;i<strlen(min_buf);i++) { if(bufferer==min_buf++) { bufferer++; if(bufferer=='/0') { return OK; } } } return Not; }