Changeset 26 for vtcross/trunk

Show
Ignore:
Timestamp:
10/24/08 15:52:19 (16 years ago)
Author:
jgaeddert
Message:

adding cbr to cognitive_engine_test

Location:
vtcross/trunk
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • vtcross/trunk/Makefile

    r16 r26  
    1111        gcc -Wall -c src/cognitive_radio_test.c -Wall -o cognitive_radio_test.o 
    1212 
    13 cognitive_radio_test: cognitive_radio_test.o main_test.o 
    14         gcc cognitive_radio_test.o main_test.o -Wall -lm -lsigprocc -o cognitive_radio_test 
     13cognitive_radio_test: cognitive_radio_test.o main_test.o sqlite3.o cbr.o 
     14        gcc cognitive_radio_test.o cbr.o sqlite3.o main_test.o -Wall -lm -ldl -pthread -lsigprocc -o cognitive_radio_test 
    1515 
    1616utility.o: src/utility.c 
  • vtcross/trunk/src/cbr.c

    r25 r26  
    5656    char *zErrMsg = 0; 
    5757 
    58     printf("command: %s\n", _cbr->command); 
     58    //printf("command: %s\n", _cbr->command); 
    5959    rc = sqlite3_exec(_cbr->db, _cbr->command, callback, 0, &zErrMsg); 
    6060    if( rc!=SQLITE_OK){ 
     
    6262        sqlite3_free(zErrMsg); 
    6363    } else{ 
    64         printf("command executed.\n"); 
     64        //printf("command executed.\n"); 
    6565    } 
    6666    return rc; 
     
    7474    unsigned int i; 
    7575 
    76     printf("command: %s\n", _cbr->command); 
     76    //printf("command: %s\n", _cbr->command); 
    7777    sqlite3_stmt * pStatement; 
    7878    rc = sqlite3_prepare_v2(_cbr->db, _cbr->command, -1, &pStatement, NULL); 
     
    8181            _retvals[i] = sqlite3_column_double(pStatement, i); 
    8282    } else { 
    83         printf("no row found\n"); 
     83        //printf("no row found\n"); 
    8484        return 0; 
    8585    } 
     
    243243     
    244244    // generate command 
    245     printf("%s\n", _cbr->command); 
     245    //printf("%s\n", _cbr->command); 
    246246    strcpy(_cbr->command, "insert into "); 
    247247    strcat(_cbr->command, _cbr->tablename); 
  • vtcross/trunk/src/main_test.c

    r12 r26  
    77#include <math.h> 
    88#include <sigprocc/sigprocc.h> 
     9#include "cbr.h" 
    910#include "cognitive_radio_test.h" 
    1011 
     
    3637    md->tx_power_dBW = -3.0f;   // transmit power [dBW] 
    3738    md->symbol_rate = 250e3f;   // symbol rate [symbols/s] 
     39 
     40    // case-based reasoner 
     41    unsigned int num_cols = 7; 
     42    char * cols[] = {  
     43        "BER", "throughput", 
     44        "mod_scheme", "tx_power", 
     45        "noise_power", "path_loss", 
     46        "utility" 
     47    };   
     48    float vals[num_cols]; 
     49    vals[0] = 1e-3f;    // BER 
     50    vals[1] = 10e3f;    // throughput 
     51    vals[2] = 1;        // mod_scheme 
     52    vals[3] = -3.0f;    // tx_power 
     53    vals[4] = -50.0f;   // noise_power 
     54    vals[5] = 125.0f;   // path_loss 
     55    vals[6] = 0.762;    // utility 
     56    int rc;  
     57 
     58    // create cbr database/table 
     59    cbr mycbr = cbr_create("ex1", "data", cols, num_cols); 
     60 
     61    // add row here 
     62    //rc = cbr_add_row(mycbr, cols, vals, num_cols); 
     63 
     64    // print 
     65    cbr_print(mycbr); 
     66 
     67    // cbr search setup 
     68    char * search_names[] = {"BER"}; 
     69    int search_ops[] = {LT}; 
     70    float search_vals[] = {30.0f/(float)PACKET_SIZE}; 
     71    float retvals[num_cols]; 
     72 
    3873 
    3974    unsigned int i; 
     
    76111        // 
    77112 
    78         // simple power adaptation 
    79         if (num_bit_errors > 30) { 
    80             md->tx_power_dBW += 0.1f; 
     113        // store result 
     114        vals[0] = (float) num_bit_errors / PACKET_SIZE; // BER 
     115        vals[1] = throughput_bps; 
     116        //vals[2] = // mod_scheme 
     117        vals[3] = md->tx_power_dBW; // tx_power 
     118        vals[6] = md->tx_power_dBW;// utility 
     119 
     120        rc = cbr_add_row(mycbr, cols, vals, num_cols); 
     121             
     122        // execute cbr search 
     123        rc = cbr_search(mycbr, search_names, search_ops, search_vals, 1, retvals); 
     124 
     125        if (rc==0) { 
     126            // no solution found 
     127            md->tx_power_dBW += 0.2f; 
     128            //printf("no solution found\n"); 
    81129        } else { 
    82             md->tx_power_dBW -= 0.1f; 
     130            // set values 
     131            md->tx_power_dBW = retvals[3]; 
    83132        } 
    84133 
    85134    } 
    86135 
     136    cbr_free(mycbr); 
     137 
    87138    printf("done.\n"); 
    88139    return 0;