Show
Ignore:
Timestamp:
04/03/09 13:05:41 (15 years ago)
Author:
trnewman
Message:

Added a loop in the demo to actually adapt.

Added simple adaptation functionality and proper db querying in the CE.

Files:
1 modified

Legend:

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

    r229 r230  
    552552} 
    553553 
    554  
     554bool 
     555CognitiveRadioShell::UpdateParameterPerformance(int32_t socketFD) 
     556{ 
     557    char counter[55]; 
     558    uint32_t numObservables,numParameters; 
     559    char var[50]; 
     560    char buffer[256]; 
     561 
     562        /* Receive Set of Parameters */ 
     563    memset(buffer, 0, 256); 
     564    ReadMessage(commandSocketFD,buffer); 
     565    numParameters = atoi(buffer); 
     566   
     567    Parameter *p = new Parameter[numParameters]; 
     568 
     569    for (size_t i = 0; i < numParameters; i++){ 
     570        memset(buffer, 0, 256); 
     571        ReadMessage(commandSocketFD,buffer); 
     572        p[i].name = std::string(buffer); 
     573        memset(buffer, 0, 256); 
     574        ReadMessage(commandSocketFD,buffer); 
     575        p[i].value = atof(buffer); 
     576    } 
     577 
     578    /* Receive Set of Observables */ 
     579    memset(buffer, 0, 256); 
     580    ReadMessage(commandSocketFD, buffer); 
     581    numObservables = atoi(buffer); 
     582   
     583    Observable *o = new Observable[numObservables]; 
     584  
     585    for(size_t i = 0; i < numObservables; i++) { 
     586        memset(buffer, 0, 256); 
     587        ReadMessage(commandSocketFD, buffer); 
     588        o[i].name = std::string(buffer); 
     589    
     590        memset(buffer, 0, 256); 
     591        ReadMessage(commandSocketFD, buffer); 
     592        o[i].value = atof(buffer); 
     593    } 
     594 
     595 
     596    SendMessage(ceSocketFD, "update_performance"); 
     597    
     598    // Send Parameters  
     599    memset(counter, 0, 55); 
     600    sprintf(counter, "%i", numParameters); 
     601    SendMessage(ceSocketFD, counter); 
     602     
     603    for(size_t i = 0; i < numParameters; i++) { 
     604        SendMessage(ceSocketFD,p[i].name.c_str()); 
     605        sprintf(var,"%f",p[i].value); 
     606        SendMessage(ceSocketFD,var);   
     607    }    
     608     
     609    // Send Observables 
     610    sprintf(counter, "%i", numObservables); 
     611    SendMessage(ceSocketFD, counter); 
     612    for(size_t i = 0; i < numObservables; i++) { 
     613        SendMessage(ceSocketFD, o[i].name.c_str()); 
     614        sprintf(var, "%f", o[i].value); 
     615        SendMessage(ceSocketFD, var);  
     616    }    
     617     
     618    return 1; 
     619} 
    555620void 
    556621CognitiveRadioShell::HandleMessage(int32_t socketFD) 
     
    572637    } else if(strcmp(buffer, "deregister_sml") == 0) { 
    573638        DeregisterSML(socketFD); 
     639    } else if(strcmp(buffer, "update_performance") == 0) { 
     640        UpdateParameterPerformance(socketFD); 
     641    } else if(strcmp(buffer,"get_number_utilities") == 0) { 
     642                char numUtilities[20]; 
     643                sprintf(numUtilities,"%i",radio_info->numUtilities); 
     644        SendMessage(commandSocketFD,numUtilities); 
     645    } else if(strcmp(buffer,"get_number_observables") == 0) { 
     646                char numObservables[20]; 
     647                sprintf(numObservables,"%i",radio_info->numObservables); 
     648        SendMessage(commandSocketFD,numObservables); 
    574649    } else if(strcmp(buffer,"get_number_parameters") == 0) { 
    575650                char numParameters[20];