Show
Ignore:
Timestamp:
04/02/09 17:35:03 (15 years ago)
Author:
trnewman
Message:

Added sending current parameters in the libvt request optimization function.

Added guts to the CBR so it actually creates an sql db and searches it.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • vtcross/trunk/src/shell/CognitiveRadioShell.cpp

    r227 r228  
    454454{ 
    455455    char buffer[256]; 
     456    uint32_t numObservables,numParameters,numCurrentParameters; 
    456457    char counter[55]; 
    457458    char var[50]; 
     
    476477    } 
    477478 
     479    /* Receive Set of Current Parameters */ 
     480    memset(buffer, 0, 256); 
     481    ReadMessage(commandSocketFD,buffer); 
     482    numCurrentParameters = atoi(buffer); 
     483   
     484        LOG("Cognitive Radio Shell:: Attempting to get %i parameters.\n",numCurrentParameters); 
     485    Parameter * cp = new Parameter[numCurrentParameters]; 
     486  
     487    for (i = 0; i < numCurrentParameters; i++){ 
     488        memset(buffer, 0, 256); 
     489        ReadMessage(commandSocketFD,buffer); 
     490        cp[i].name = std::string(buffer); 
     491     
     492        memset(buffer, 0, 256); 
     493        ReadMessage(commandSocketFD,buffer); 
     494        cp[i].value = atof(buffer); 
     495    } 
    478496    /* Send to Cognitive Engine  
    479497         * TODO: With multiple CEs we need to make a decision about where 
     
    481499         */ 
    482500 
    483         LOG("Cognitive Radio Shell:: Passing on observables to Cognitive Engine\n"); 
    484     SendMessage(ceSocketFD, "get_solution"); 
    485     sprintf(counter, "%i", numObservables); 
    486     SendMessage(ceSocketFD, counter); 
    487     for(size_t i = 0; i < numObservables; i++) { 
    488         SendMessage(ceSocketFD, o[i].name.c_str()); 
    489         sprintf(var, "%f", o[i].value); 
    490             SendMessage(ceSocketFD, var); 
    491     } 
    492  
     501        if(!SML_present) {  
     502            LOG("Cognitive Radio Shell:: Passing on observables to Cognitive Engine\n"); 
     503        SendMessage(ceSocketFD,"request_optimization"); 
     504        sprintf(counter,"%i",numObservables); 
     505        SendMessage(ceSocketFD,counter); 
     506        for(i = 0; i < numObservables; i++) { 
     507            SendMessage(ceSocketFD,o[i].name.c_str()); 
     508            sprintf(var,"%f",o[i].value); 
     509                SendMessage(ceSocketFD,var); 
     510        } 
     511             
     512                LOG("Cognitive Radio Shell:: Passing on current parameters to Cognitive Engine\n"); 
     513        sprintf(counter,"%i",numCurrentParameters); 
     514        SendMessage(ceSocketFD,counter); 
     515        for(i = 0; i < numCurrentParameters; i++) { 
     516            SendMessage(ceSocketFD,cp[i].name.c_str()); 
     517            sprintf(var,"%f",cp[i].value); 
     518                SendMessage(ceSocketFD,var); 
     519        } 
     520        } 
    493521 
    494522        LOG("Cognitive Radio Shell:: Receiving optimized parameters from Cognitive Engine.\n"); 
     
    546574    } else if(strcmp(buffer, "deregister_sml") == 0) { 
    547575        DeregisterSML(socketFD); 
    548     } else if(strcmp(buffer, "request_optimization") == 0) { 
     576    } else if(strcmp(buffer,"get_number_parameters") == 0) { 
     577                char numParameters[20]; 
     578                sprintf(numParameters,"%i",radio_info->numParameters); 
     579        SendMessage(commandSocketFD,numParameters); 
     580    } else if(strcmp(buffer,"request_optimization") == 0) { 
    549581        /* Receive optimization request and current environment */ 
    550582        GetOptimalParameters(socketFD);   
     583    } else if(strcmp(buffer,"request_optimization_service") == 0) { 
     584        /* Receive optimization request and current environment */ 
     585        //GetOptimalParametersService(socketFD);   
    551586    } 
    552587}