Changeset 231 for vtcross/trunk/src/shell
- Timestamp:
- 04/07/09 00:42:38 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
vtcross/trunk/src/shell/CognitiveRadioShell.cpp
r230 r231 111 111 112 112 113 // TODO what is the point of always returning a 1? 113 114 bool 114 CognitiveRadioShell::SendRadioConfiguration(int32_t socket fd)115 CognitiveRadioShell::SendRadioConfiguration(int32_t socketFD) 115 116 { 116 117 LOG("Cognitive Radio Shell:: Sending radio configuration to Cognitive Engine.\n"); 117 uint32_t i,j; 118 118 119 char counter[55]; 119 120 char var[50]; 120 121 121 // utilities 122 // Send number of utilities 123 sprintf(counter,"%d",radio_info->numUtilities); 124 SendMessage(socketfd,counter); 125 // send utility 126 for(i = 0; i < radio_info->numUtilities; i++) { 127 SendMessage(socketfd, utils[i].name.c_str()); 128 SendMessage(socketfd, utils[i].units.c_str()); 129 SendMessage(socketfd, utils[i].goal.c_str()); 122 /* Send utilities */ 123 sprintf(counter, "%d", radio_info->numUtilities); 124 SendMessage(socketFD, counter); 125 for(size_t i = 0; i < radio_info->numUtilities; i++) { 126 SendMessage(socketFD, utils[i].name.c_str()); 127 SendMessage(socketFD, utils[i].units.c_str()); 128 SendMessage(socketFD, utils[i].goal.c_str()); 130 129 sprintf(var,"%f", utils[i].target); 131 SendMessage(socket fd, var);132 } 133 134 / / parameters130 SendMessage(socketFD, var); 131 } 132 133 /* Send parameters */ 135 134 sprintf(counter,"%i",radio_info->numParameters); 136 SendMessage(socket fd,counter);137 for( i = 0; i < radio_info->numParameters; i++) {138 SendMessage(socket fd, params[i].name.c_str());139 SendMessage(socket fd, params[i].units.c_str());135 SendMessage(socketFD,counter); 136 for(size_t i = 0; i < radio_info->numParameters; i++) { 137 SendMessage(socketFD, params[i].name.c_str()); 138 SendMessage(socketFD, params[i].units.c_str()); 140 139 sprintf(var, "%f", params[i].min); 141 SendMessage(socket fd,var);140 SendMessage(socketFD,var); 142 141 sprintf(var, "%f", params[i].max); 143 SendMessage(socket fd, var);142 SendMessage(socketFD, var); 144 143 sprintf(var, "%f", params[i].step); 145 SendMessage(socket fd, var);144 SendMessage(socketFD, var); 146 145 147 146 sprintf(counter, "%i", params[i].numAffects); 148 SendMessage(socket fd, counter);149 for( j = 0; j < params[i].numAffects; j++) {150 SendMessage(socket fd, params[i].affection_list[j].u->name.c_str());151 SendMessage(socket fd, params[i].affection_list[j].relation.c_str());147 SendMessage(socketFD, counter); 148 for(size_t j = 0; j < params[i].numAffects; j++) { 149 SendMessage(socketFD, params[i].affection_list[j].u->name.c_str()); 150 SendMessage(socketFD, params[i].affection_list[j].relation.c_str()); 152 151 } 153 152 } 154 153 155 / / observables154 /* Send observables */ 156 155 sprintf(counter,"%i",radio_info->numObservables); 157 SendMessage(socket fd, counter);158 for( i = 0; i < radio_info->numObservables; i++) {159 SendMessage(socket fd, observables[i].name.c_str());156 SendMessage(socketFD, counter); 157 for(size_t i = 0; i < radio_info->numObservables; i++) { 158 SendMessage(socketFD, observables[i].name.c_str()); 160 159 161 160 sprintf(counter, "%i", observables[i].numAffects); 162 SendMessage(socket fd, counter);163 for( j = 0; j < observables[i].numAffects; j++) {164 SendMessage(socket fd, observables[i].affection_list[j].u->name.c_str());165 SendMessage(socket fd, observables[i].affection_list[j].relation.c_str());161 SendMessage(socketFD, counter); 162 for(size_t j = 0; j < observables[i].numAffects; j++) { 163 SendMessage(socketFD, observables[i].affection_list[j].u->name.c_str()); 164 SendMessage(socketFD, observables[i].affection_list[j].relation.c_str()); 166 165 } 167 166 } 168 167 169 / / Receive ACK for utils168 /* Receive ACK for radio configuration */ 170 169 char buffer[256]; 171 170 memset(buffer, 0, 256); 172 ReadMessage(socket fd, buffer);171 ReadMessage(socketFD, buffer); 173 172 174 173 if(strcmp(buffer, "receive_config_ack") != 0) { … … 178 177 179 178 return 1; 180 181 179 } 182 180 … … 189 187 char numberExpString[50]; 190 188 191 sprintf(numberExpString, "%i",numberExp);189 sprintf(numberExpString, "%i", numberExp); 192 190 SendMessage(socketFD, numberExpString); 193 191 … … 196 194 ReadMessage(socketFD, buffer); 197 195 if(strcmp(buffer, "receive_exp_ack") != 0) { 198 LOG("Cognitive Radio Shell:: Unexpected response: %s\n",buffer); 196 // TODO perhaps this should be a WARNING instead of a LOG? 197 LOG("Cognitive Radio Shell:: Unexpected response: %s\n", buffer); 199 198 return 0; 200 199 } 200 201 201 return 1; 202 202 } … … 446 446 447 447 return 1; 448 449 448 } 450 449 … … 454 453 { 455 454 char buffer[256]; 456 uint32_t numObservables,numParameters,numCurrentParameters;457 455 char counter[55]; 458 456 char var[50]; … … 462 460 memset(buffer, 0, 256); 463 461 ReadMessage(commandSocketFD, buffer); 464 numObservables = atoi(buffer);462 uint32_t numObservables = atoi(buffer); 465 463 466 464 LOG("Cognitive Radio Shell:: Attempting to get %i observables.\n", numObservables); … … 476 474 o[i].value = atof(buffer); 477 475 } 476 478 477 /* Receive Set of Current Parameters */ 479 478 memset(buffer, 0, 256); 480 479 ReadMessage(commandSocketFD,buffer); 481 numCurrentParameters = atoi(buffer);480 uint32_t numCurrentParameters = atoi(buffer); 482 481 483 482 LOG("Cognitive Radio Shell:: Attempting to get %i parameters.\n",numCurrentParameters); … … 492 491 cp[i].value = atof(buffer); 493 492 } 493 494 494 /* Send to Cognitive Engine 495 495 * TODO: With multiple CEs we need to make a decision about where 496 496 * to send this information 497 497 */ 498 499 498 if(!SML_present) { 500 499 LOG("Cognitive Radio Shell:: Passing on observables to Cognitive Engine\n"); … … 522 521 memset(buffer, 0, 256); 523 522 ReadMessage(ceSocketFD, buffer); 524 numParameters = atoi(buffer);523 uint32_t numParameters = atoi(buffer); 525 524 526 525 Parameter *p = new Parameter[numParameters]; … … 552 551 } 553 552 553 // TODO point of always returning 1? 554 554 bool 555 555 CognitiveRadioShell::UpdateParameterPerformance(int32_t socketFD) 556 556 { 557 557 char counter[55]; 558 uint32_t numObservables,numParameters;559 558 char var[50]; 560 559 char buffer[256]; … … 563 562 memset(buffer, 0, 256); 564 563 ReadMessage(commandSocketFD,buffer); 565 numParameters = atoi(buffer);564 uint32_t numParameters = atoi(buffer); 566 565 567 566 Parameter *p = new Parameter[numParameters]; … … 579 578 memset(buffer, 0, 256); 580 579 ReadMessage(commandSocketFD, buffer); 581 numObservables = atoi(buffer);580 uint32_t numObservables = atoi(buffer); 582 581 583 582 Observable *o = new Observable[numObservables]; … … 593 592 } 594 593 595 596 594 SendMessage(ceSocketFD, "update_performance"); 597 595 598 / / Send Parameters596 /* Send Parameters */ 599 597 memset(counter, 0, 55); 600 598 sprintf(counter, "%i", numParameters); … … 607 605 } 608 606 609 / / Send Observables607 /* Send Observables */ 610 608 sprintf(counter, "%i", numObservables); 611 609 SendMessage(ceSocketFD, counter); … … 615 613 SendMessage(ceSocketFD, var); 616 614 } 615 616 delete [] p; 617 delet [] o; 617 618 618 619 return 1; 619 620 } 621 622 620 623 void 621 624 CognitiveRadioShell::HandleMessage(int32_t socketFD) … … 625 628 ReadMessage(socketFD, buffer); 626 629 630 // TODO trying to read this code lock makes my eyes bleed 627 631 if(strcmp(buffer, "register_engine_cognitive") == 0) { 628 632 RegisterCognitiveEngine(socketFD); … … 639 643 } else if(strcmp(buffer, "update_performance") == 0) { 640 644 UpdateParameterPerformance(socketFD); 641 } else if(strcmp(buffer, "get_number_utilities") == 0) {645 } else if(strcmp(buffer, "get_number_utilities") == 0) { 642 646 char numUtilities[20]; 643 sprintf(numUtilities, "%i",radio_info->numUtilities);644 SendMessage(commandSocketFD, numUtilities);645 } else if(strcmp(buffer, "get_number_observables") == 0) {647 sprintf(numUtilities, "%i", radio_info->numUtilities); 648 SendMessage(commandSocketFD, numUtilities); 649 } else if(strcmp(buffer, "get_number_observables") == 0) { 646 650 char numObservables[20]; 647 sprintf(numObservables, "%i",radio_info->numObservables);648 SendMessage(commandSocketFD, numObservables);649 } else if(strcmp(buffer, "get_number_parameters") == 0) {651 sprintf(numObservables, "%i", radio_info->numObservables); 652 SendMessage(commandSocketFD, numObservables); 653 } else if(strcmp(buffer, "get_number_parameters") == 0) { 650 654 char numParameters[20]; 651 sprintf(numParameters, "%i",radio_info->numParameters);652 SendMessage(commandSocketFD, numParameters);653 } else if(strcmp(buffer, "request_optimization") == 0) {655 sprintf(numParameters, "%i", radio_info->numParameters); 656 SendMessage(commandSocketFD, numParameters); 657 } else if(strcmp(buffer, "request_optimization") == 0) { 654 658 /* Receive optimization request and current environment */ 655 659 GetOptimalParameters(socketFD); 656 } else if(strcmp(buffer, "request_optimization_service") == 0) {660 } else if(strcmp(buffer, "request_optimization_service") == 0) { 657 661 /* Receive optimization request and current environment */ 658 662 //GetOptimalParametersService(socketFD);