Changeset 20

Show
Ignore:
Timestamp:
10/17/08 17:06:55 (16 years ago)
Author:
ahe
Message:

adding search statement

Location:
vtcross/trunk/src
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • vtcross/trunk/src/cbr.c

    r19 r20  
    151151} 
    152152 
    153 int cbr_search(cbr _cbr, char *_names[], int * _ops, float *_vals, unsigned int _n, float *_retvals) 
     153const char * ops_str[] = { 
     154    "==", "!=", ">", ">=", "<", "<="}; 
     155 
     156int cbr_search( 
     157    cbr _cbr, 
     158    char *_names[], 
     159    int * _ops, 
     160    float *_vals, 
     161    unsigned int _n, 
     162    float *_retvals) 
    154163{ 
    155164    // set up statement 
     
    165174    strcat(_cbr->command, _cbr->tablename); 
    166175    strcat(_cbr->command, " where "); 
     176 
     177    unsigned int i; 
     178    char str_buffer[64]; 
     179    for (i=0; i<_n; i++) { 
     180        // ensure valid ops value 
     181        if (_ops[i] < 0 || _ops[i] > 5) { 
     182            printf("error: cbr_search(), invalid ops id : %d\n", _ops[i]); 
     183            exit(1); 
     184        } 
     185 
     186        strcat(_cbr->command, _names[i]); 
     187        //strcat(_cbr->command, " "); 
     188        strcat(_cbr->command, ops_str[_ops[i]]); 
     189        sprintf(str_buffer, "%E", _vals[i]); 
     190        strcat(_cbr->command, str_buffer); 
     191 
     192        if (i<_n-1) 
     193            strcat(_cbr->command, " AND "); 
     194        else 
     195            strcat(_cbr->command, ";"); 
     196    } 
     197 
     198    //printf("command: %s\n", _cbr->command); 
     199    ExecuteCommand(_cbr); 
    167200 
    168201    return 0; 
  • vtcross/trunk/src/main_cbr.c

    r18 r20  
    1515    }; 
    1616    float vals[num_cols]; 
    17     unsigned int i; 
    18     for (i=0; i<num_cols; i++) 
    19         vals[i] = 0.0f; 
     17    vals[0] = 1e-3f;    // BER 
     18    vals[1] = 10e3f;    // throughput 
     19    vals[2] = 1;        // mod_scheme 
     20    vals[3] = -3.0f;    // tx_power 
     21    vals[4] = -50.0f;   // noise_power 
     22    vals[5] = 125.0f;   // path_loss 
     23    vals[6] = 0.762;    // utility 
    2024    int rc; 
    2125 
     
    2933    cbr_print(mycbr); 
    3034 
     35    // simple search: find entry where... 
     36    //   BER < 1e-2 and path_loss > 100 
     37    char * search_names[] = {"BER", "path_loss"}; 
     38    int search_ops[] = {LT, GT}; 
     39    float search_vals[] = {1e-2f, 100.f}; 
     40    float retvals[num_cols]; 
     41    rc = cbr_search(mycbr, search_names, search_ops, search_vals, 2, retvals); 
     42 
    3143    // clean up 
    3244    cbr_free(mycbr);