Changeset 195

Show
Ignore:
Timestamp:
03/23/09 21:38:08 (15 years ago)
Author:
bhilburn
Message:

CE_Info didn't make sense anymore since it was really describing the
entire radio; fixed.

Location:
vtcross/trunk/src
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • vtcross/trunk/src/include/vtcross/components.h

    r194 r195  
    205205         * of transmission parameters. 
    206206         */ 
    207         void SendPEDecision(struct Parameter pList[], struct CE_Info *ce_info, \ 
     207        void SendPEDecision(struct Parameter pList[], struct Radio_Info *radio_info, \ 
    208208                int32_t decision_array[]); 
    209209 
  • vtcross/trunk/src/include/vtcross/containers.h

    r187 r195  
    2121 * 
    2222 */ 
    23 struct CE_Info { 
     23struct Radio_Info { 
    2424    uint32_t numUtilities; 
    2525    uint32_t numParameters; 
  • vtcross/trunk/src/include/vtcross/socketcomm.h

    r187 r195  
    3030 */ 
    3131int32_t GetParameter(int32_t socketFD, struct Parameter pList[], \ 
    32         struct CE_Info *ce_info); 
     32        struct Radio_Info *radio_info); 
    3333 
    3434 
     
    3636 */ 
    3737int32_t GetRequest(int32_t socketFD, struct Parameter pList[], \ 
    38         struct CE_Info *ce_info); 
     38        struct Radio_Info *radio_info); 
    3939 
    4040 
     
    5858 */ 
    5959void HandleTCPClient(int32_t socketfd, Utility* uList[], Parameter* pList[], \ 
    60         Observable* oList[], CE_Info* ce_info); 
     60        Observable* oList[], Radio_Info* radio_info); 
    6161 
    6262#endif 
  • vtcross/trunk/src/lib/socketcomm/socketcomm.cpp

    r190 r195  
    2828// TODO can someone write a description of how this function is operating? I'm 
    2929// not sure I understand why it is making two separate blocking calls to recv 
     30// 
     31// TODO also, it appears that this function can, at maximum, receive 256 bytes 
     32// without causing a buffer overflow. can someone confirm/deny? 
    3033void 
    3134ReadMessage(int32_t socketFD, char* msgBuffer) 
     
    123126int32_t  
    124127GetParameter(int32_t socketFD, struct Parameter pList[], \ 
    125         struct CE_Info *ce_info) 
     128        struct Radio_Info *radio_info) 
    126129{ 
    127130    char buffer[256]; 
     
    129132 
    130133    ReadMessage(socketFD, buffer); 
    131     ce_info->numParameters = atoi(buffer); 
     134    radio_info->numParameters = atoi(buffer); 
    132135    LOG("socket_comm::GetParameter - Number of parameters: %d\n", \ 
    133             ce_info->numParameters); 
    134      
    135     for(size_t i = 0; i < ce_info->numParameters; i++) { 
     136            radio_info->numParameters); 
     137     
     138    for(size_t i = 0; i < radio_info->numParameters; i++) { 
    136139        memset(buffer, 0, 256); 
    137140        ReadMessage(socketFD, buffer); 
     
    172175// instead of an entire 32 bit integer?  Seems wasteful. 
    173176int32_t  
    174 GetRequest(int32_t socketFD, struct Parameter pList[], struct CE_Info *ce_info) 
     177GetRequest(int32_t socketFD, struct Parameter pList[], struct Radio_Info *radio_info) 
    175178{ 
    176179    char buffer[256]; 
     
    185188 
    186189    LOG("socket_comm::GetRequest - Getting parameters.\n\n"); 
    187     GetParameter(socketFD, pList, ce_info); 
     190    GetParameter(socketFD, pList, radio_info); 
    188191 
    189192    return 1; 
  • vtcross/trunk/src/policy_engines/PolicyEngine.cpp

    r194 r195  
    230230void  
    231231PolicyEngine::SendPEDecision(struct Parameter pList[], \ 
    232         struct CE_Info *ce_info, int32_t decision_array[]) 
     232        struct Radio_Info *radio_info, int32_t decision_array[]) 
    233233{ 
    234234    char var[50]; 
    235235  
    236     for (size_t i = 0; i < ce_info->numParameters; i++) { 
     236    for (size_t i = 0; i < radio_info->numParameters; i++) { 
    237237        sprintf(var, "%i", decision_array[i]); 
    238238        SendMessage(commandSocketFD, var); 
     
    248248    int32_t decision_array[10]; 
    249249    struct Parameter pList[10]; 
    250     struct CE_Info ce_info; 
    251  
    252     if(GetRequest(commandSocketFD, pList, &ce_info)) { 
     250    struct Radio_Info radio_info; 
     251 
     252    if(GetRequest(commandSocketFD, pList, &radio_info)) { 
    253253        LOG("Policy Engine:: Validating Transmission Parameters.\n"); 
    254         for (size_t i = 0; i < ce_info.numParameters; i++) 
     254        for (size_t i = 0; i < radio_info.numParameters; i++) 
    255255            decision_array[i] = 1; 
    256256 
    257257        LOG("Policy Engine:: Sending Policy decision to Server.\n"); 
    258         SendPEDecision(pList, &ce_info, decision_array); 
     258        SendPEDecision(pList, &radio_info, decision_array); 
    259259 
    260260        LOG("Policy Engine:: Policies Validated.\n"); 
  • vtcross/trunk/src/shell/cr_shell.cpp

    r181 r195  
    4040void  
    4141print_current_config(Utility* uList[], Parameter* pList[], \ 
    42         Observable* oList[], CE_Info* ce_info) 
    43 { 
    44         for(size_t i = 0; i < ce_info->numUtilities ; i++) { 
     42        Observable* oList[], Radio_Info* radio_info) 
     43{ 
     44        for(size_t i = 0; i < radio_info->numUtilities ; i++) { 
    4545        LOG("Shell:: Utility: %s\n\tUnits: %s\n\tGoal: %s\n\tTarget: %f\n", \ 
    4646                uList[i]->name.c_str(), uList[i]->units.c_str(), \ 
     
    4848        } 
    4949 
    50         for(size_t i = 0; i < ce_info->numParameters; i++) { 
     50        for(size_t i = 0; i < radio_info->numParameters; i++) { 
    5151            LOG("Shell:: Radio Operation Profile has been sucessfully sent.\n"); 
    5252        LOG("Shell:: Parameter: %s\n\tUnits: %s\n\tMin: %f\n\t", \ 
     
    6161        } 
    6262         
    63     for(size_t i = 0; i < ce_info->numObservables; i++) { 
     63    for(size_t i = 0; i < radio_info->numObservables; i++) { 
    6464                LOG("Observable: %s\n", oList[i]->name.c_str()); 
    6565 
     
    7979int32_t 
    8080parse_ce_config(TiXmlDocument* doc, Utility* u[], Parameter* p[], \ 
    81         Observable* o[], CE_Info* ce_info) 
     81        Observable* o[], Radio_Info* radio_info) 
    8282{ 
    8383 
     
    128128        } 
    129129 
    130         ce_info->numUtilities = item_count;      
    131         LOG("Initialize:: Parsed %d utilities.\n", ce_info->numUtilities); 
     130        radio_info->numUtilities = item_count;   
     131        LOG("Initialize:: Parsed %d utilities.\n", radio_info->numUtilities); 
    132132 
    133133        item_count = 0; 
     
    176176        } 
    177177 
    178         ce_info->numObservables = item_count;    
    179         LOG("Initialize:: Parsed %d observables.\n", ce_info->numObservables); 
     178        radio_info->numObservables = item_count;         
     179        LOG("Initialize:: Parsed %d observables.\n", radio_info->numObservables); 
    180180 
    181181        pElem = hRoot.FirstChild("parameters").Element(); 
     
    240240        } 
    241241 
    242         ce_info->numParameters = item_count; 
    243         LOG("Initialize:: Parsed %d parameters.\n", ce_info->numParameters); 
     242        radio_info->numParameters = item_count; 
     243        LOG("Initialize:: Parsed %d parameters.\n", radio_info->numParameters); 
    244244 
    245245        return 1; 
     
    249249void  
    250250LoadCEConfiguration(int32_t socketfd,Utility* uList[], Parameter* pList[], \ 
    251         Observable* oList[], CE_Info* ce_info) 
     251        Observable* oList[], Radio_Info* radio_info) 
    252252{ 
    253253        int32_t n,i,j; 
     
    260260        // utilities 
    261261        // Send number of utilities 
    262         sprintf(counter,"%d",ce_info->numUtilities); 
     262        sprintf(counter,"%d",radio_info->numUtilities); 
    263263        SendMessage(socketfd,counter); 
    264264        // send utility  
    265     for(i = 0; i < ce_info->numUtilities; i++) { 
     265    for(i = 0; i < radio_info->numUtilities; i++) { 
    266266                SendMessage(socketfd, uList[i]->name.c_str()); 
    267267                SendMessage(socketfd, uList[i]->units.c_str()); 
     
    272272 
    273273        // parameters 
    274     sprintf(counter,"%i",ce_info->numParameters); 
     274    sprintf(counter,"%i",radio_info->numParameters); 
    275275        SendMessage(socketfd,counter); 
    276         for(i = 0; i < ce_info->numParameters; i++) { 
     276        for(i = 0; i < radio_info->numParameters; i++) { 
    277277                SendMessage(socketfd,pList[i]->name.c_str()); 
    278278                SendMessage(socketfd,pList[i]->units.c_str()); 
     
    293293 
    294294    // observables 
    295         sprintf(counter,"%i",ce_info->numObservables); 
     295        sprintf(counter,"%i",radio_info->numObservables); 
    296296        SendMessage(socketfd,counter); 
    297         for(i = 0; i < ce_info->numObservables; i++) { 
     297        for(i = 0; i < radio_info->numObservables; i++) { 
    298298                SendMessage(socketfd,oList[i]->name.c_str()); 
    299299                 
     
    351351 
    352352int32_t  
    353 RequestPolicyValidation(Parameter * pList[], CE_Info *ce_info) 
     353RequestPolicyValidation(Parameter * pList[], Radio_Info *radio_info) 
    354354{ 
    355355        char counter[55]; 
     
    358358    char* control_msg = "val"; 
    359359     
    360     int32_t socketfd = ce_info->policy_socket; 
     360    int32_t socketfd = radio_info->policy_socket; 
    361361 
    362362    // Control message that validation request is coming 
     
    366366 
    367367        // Send parameter information  
    368     sprintf(counter,"%i",ce_info->numParameters); 
     368    sprintf(counter,"%i",radio_info->numParameters); 
    369369        SendMessage(socketfd,counter); 
    370         for(i = 0; i < ce_info->numParameters; i++) { 
     370        for(i = 0; i < radio_info->numParameters; i++) { 
    371371                SendMessage(socketfd,pList[i]->name.c_str()); 
    372372                SendMessage(socketfd,pList[i]->units.c_str()); 
     
    389389RequestCEOptimization(int32_t sockfd, Utility *uList[],  
    390390        Parameter *pList[], Observable *oList[], 
    391         CE_Info *ce_info) 
     391        Radio_Info *radio_info) 
    392392{ 
    393393    char buffer[256]; 
     
    398398    /* 
    399399    SendMessage(sockfd,"request");  
    400     for (i = 0; i < ce_info->numObservables; i++){ 
     400    for (i = 0; i < radio_info->numObservables; i++){ 
    401401        SendMessage(sockfd,..); 
    402402    } 
     
    404404 
    405405    // Receive optimized values from the Cognitive Engine  
    406     for (i = 0; i < ce_info->numParameters; i++){ 
     406    for (i = 0; i < radio_info->numParameters; i++){ 
    407407        bzero(buffer,256); 
    408408        ReadMessage(sockfd,buffer); 
     
    413413 
    414414    // If policy engine is connect, validate new values 
    415     if(ce_info->policy_engine == 1) { 
     415    if(radio_info->policy_engine == 1) { 
    416416 
    417417        printf("Cognitive Radio:: Found Policy Engine!\n"); 
    418418        printf("Cognitive Radio:: Validating parameters with Policy Engine\n\n"); 
    419         RequestPolicyValidation(pList,ce_info);  
     419        RequestPolicyValidation(pList,radio_info);  
    420420        printf("Cognitive Radio:: Done\n\n"); 
    421421 
     
    429429RunSimulator(int32_t socketfd, Utility * uList[],  
    430430        Parameter * pList[], Observable * oList[],  
    431         CE_Info * ce_info) { 
     431        Radio_Info * radio_info) { 
    432432         
    433433        float **past_exp; 
     
    435435 
    436436        // Set fake current environment params = current environment 
    437         RequestCEOptimization(socketfd, uList, pList, oList, ce_info); 
     437        RequestCEOptimization(socketfd, uList, pList, oList, radio_info); 
    438438 
    439439        // Act like we are updating the hardware tranmission settings 
     
    446446 
    447447void  
    448 InitializePE(int32_t socket, CE_Info * ce_info)  
     448InitializePE(int32_t socket, Radio_Info * radio_info)  
    449449{ 
    450450    // Policy Engine is connected 
    451451    // Set global policy engine value to 1 
    452     ce_info->policy_engine = 1; 
    453     ce_info->policy_socket = socket; 
     452    radio_info->policy_engine = 1; 
     453    radio_info->policy_socket = socket; 
    454454 
    455455    return; 
     
    458458void  
    459459InitializeCE(int32_t socketfd, Utility* uList[], Parameter* pList[], \ 
    460         Observable* oList[], CE_Info* ce_info)  
    461 { 
    462         LoadCEConfiguration(socketfd, uList, pList, oList, ce_info); 
     460        Observable* oList[], Radio_Info* radio_info)  
     461{ 
     462        LoadCEConfiguration(socketfd, uList, pList, oList, radio_info); 
    463463         
    464464    // cr experience 
     
    466466        int32_t num_cols; 
    467467    // get number of columns 
    468     num_cols = ce_info->numUtilities + ce_info->numParameters; 
    469     num_cols = num_cols + ce_info->numObservables; 
     468    num_cols = radio_info->numUtilities + radio_info->numParameters; 
     469    num_cols = num_cols + radio_info->numObservables; 
    470470    num_cols = num_cols + 1;    // overall utility 
    471471    int32_t num_rows = 2; 
     
    496496    UpdateCEExperience(socketfd, num_rows, num_cols, past_exp);  
    497497 
    498         RunSimulator(socketfd, uList, pList, oList, ce_info); 
     498        RunSimulator(socketfd, uList, pList, oList, radio_info); 
    499499} 
    500500 
     
    502502void  
    503503HandleTCPClient(int32_t socketFD, Utility* uList[], Parameter* pList[], \ 
    504         Observable* oList[], CE_Info* ce_info)  
     504        Observable* oList[], Radio_Info* radio_info)  
    505505{ 
    506506    char buffer[256]; 
     
    513513 
    514514    if(strcmp(buffer,"register_engine_cognitive") == 0)  
    515             InitializeCE(socketFD, uList, pList, oList, ce_info); 
     515            InitializeCE(socketFD, uList, pList, oList, radio_info); 
    516516 
    517517    if(strcmp(buffer,"register_engine_policy") == 0) 
    518             InitializePE(socketFD, ce_info); 
     518            InitializePE(socketFD, radio_info); 
    519519 
    520520    if(strcmp(buffer,"optimize") == 0) 
    521             RunSimulator(socketFD, uList, pList, oList, ce_info); 
     521            RunSimulator(socketFD, uList, pList, oList, radio_info); 
    522522         
    523523    // TODO why aren't we doing this anymore? 
     
    528528int32_t  
    529529StartServers(Utility* uList[], Parameter* pList[], Observable* oList[], \ 
    530         CE_Info* ce_info) 
     530        Radio_Info* radio_info) 
    531531{ 
    532532    int32_t * servSock;  
     
    632632                            } 
    633633                             
    634                             HandleTCPClient(new_sd, uList, pList, oList, ce_info); 
     634                            HandleTCPClient(new_sd, uList, pList, oList, radio_info); 
    635635                            FD_SET(new_sd,&sockSet); 
    636636                            if(new_sd > maxDescriptor)  
     
    641641                         
    642642                        printf("Request on already open descriptor.\n\n"); 
    643                         HandleTCPClient(port, uList, pList, oList, ce_info); 
     643                        HandleTCPClient(port, uList, pList, oList, radio_info); 
    644644 
    645645                    } 
     
    671671        Parameter * pList[10]; 
    672672        Observable * oList[10]; 
    673         struct CE_Info *ce_info; 
     673        struct Radio_Info *radio_info; 
    674674 
    675675    if((fd = open("/dev/zero", O_RDWR)) == -1) 
    676676            return 1; 
    677677 
    678     ce_info = (struct CE_Info *)mmap(0,sizeof(CE_Info),PROT_READ|PROT_WRITE,MAP_SHARED,fd,0); 
     678    radio_info = (struct Radio_Info *)mmap(0,sizeof(Radio_Info),PROT_READ|PROT_WRITE,MAP_SHARED,fd,0); 
    679679 
    680680    close(fd); 
     
    696696 
    697697        cout << "\n\nInitialize:: Attemping to parse " << pFilename << "." << endl; 
    698         parse_ce_config( &doc , uList, pList, oList, ce_info); 
     698        parse_ce_config( &doc , uList, pList, oList, radio_info); 
    699699        cout << "Initialize:: Configuration file parsing completed.\n" << endl; 
    700700 
    701     //print_current_config(uList, pList, oList, &ce_info); 
     701    //print_current_config(uList, pList, oList, &radio_info); 
    702702         
    703    StartServers(uList, pList, oList, ce_info); 
     703   StartServers(uList, pList, oList, radio_info); 
    704704   return 1; 
    705705}