Changeset 195 for vtcross/trunk/src/shell
- Timestamp:
- 03/23/09 21:38:08 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
vtcross/trunk/src/shell/cr_shell.cpp
r181 r195 40 40 void 41 41 print_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++) { 45 45 LOG("Shell:: Utility: %s\n\tUnits: %s\n\tGoal: %s\n\tTarget: %f\n", \ 46 46 uList[i]->name.c_str(), uList[i]->units.c_str(), \ … … 48 48 } 49 49 50 for(size_t i = 0; i < ce_info->numParameters; i++) {50 for(size_t i = 0; i < radio_info->numParameters; i++) { 51 51 LOG("Shell:: Radio Operation Profile has been sucessfully sent.\n"); 52 52 LOG("Shell:: Parameter: %s\n\tUnits: %s\n\tMin: %f\n\t", \ … … 61 61 } 62 62 63 for(size_t i = 0; i < ce_info->numObservables; i++) {63 for(size_t i = 0; i < radio_info->numObservables; i++) { 64 64 LOG("Observable: %s\n", oList[i]->name.c_str()); 65 65 … … 79 79 int32_t 80 80 parse_ce_config(TiXmlDocument* doc, Utility* u[], Parameter* p[], \ 81 Observable* o[], CE_Info* ce_info)81 Observable* o[], Radio_Info* radio_info) 82 82 { 83 83 … … 128 128 } 129 129 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); 132 132 133 133 item_count = 0; … … 176 176 } 177 177 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); 180 180 181 181 pElem = hRoot.FirstChild("parameters").Element(); … … 240 240 } 241 241 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); 244 244 245 245 return 1; … … 249 249 void 250 250 LoadCEConfiguration(int32_t socketfd,Utility* uList[], Parameter* pList[], \ 251 Observable* oList[], CE_Info* ce_info)251 Observable* oList[], Radio_Info* radio_info) 252 252 { 253 253 int32_t n,i,j; … … 260 260 // utilities 261 261 // Send number of utilities 262 sprintf(counter,"%d", ce_info->numUtilities);262 sprintf(counter,"%d",radio_info->numUtilities); 263 263 SendMessage(socketfd,counter); 264 264 // send utility 265 for(i = 0; i < ce_info->numUtilities; i++) {265 for(i = 0; i < radio_info->numUtilities; i++) { 266 266 SendMessage(socketfd, uList[i]->name.c_str()); 267 267 SendMessage(socketfd, uList[i]->units.c_str()); … … 272 272 273 273 // parameters 274 sprintf(counter,"%i", ce_info->numParameters);274 sprintf(counter,"%i",radio_info->numParameters); 275 275 SendMessage(socketfd,counter); 276 for(i = 0; i < ce_info->numParameters; i++) {276 for(i = 0; i < radio_info->numParameters; i++) { 277 277 SendMessage(socketfd,pList[i]->name.c_str()); 278 278 SendMessage(socketfd,pList[i]->units.c_str()); … … 293 293 294 294 // observables 295 sprintf(counter,"%i", ce_info->numObservables);295 sprintf(counter,"%i",radio_info->numObservables); 296 296 SendMessage(socketfd,counter); 297 for(i = 0; i < ce_info->numObservables; i++) {297 for(i = 0; i < radio_info->numObservables; i++) { 298 298 SendMessage(socketfd,oList[i]->name.c_str()); 299 299 … … 351 351 352 352 int32_t 353 RequestPolicyValidation(Parameter * pList[], CE_Info *ce_info)353 RequestPolicyValidation(Parameter * pList[], Radio_Info *radio_info) 354 354 { 355 355 char counter[55]; … … 358 358 char* control_msg = "val"; 359 359 360 int32_t socketfd = ce_info->policy_socket;360 int32_t socketfd = radio_info->policy_socket; 361 361 362 362 // Control message that validation request is coming … … 366 366 367 367 // Send parameter information 368 sprintf(counter,"%i", ce_info->numParameters);368 sprintf(counter,"%i",radio_info->numParameters); 369 369 SendMessage(socketfd,counter); 370 for(i = 0; i < ce_info->numParameters; i++) {370 for(i = 0; i < radio_info->numParameters; i++) { 371 371 SendMessage(socketfd,pList[i]->name.c_str()); 372 372 SendMessage(socketfd,pList[i]->units.c_str()); … … 389 389 RequestCEOptimization(int32_t sockfd, Utility *uList[], 390 390 Parameter *pList[], Observable *oList[], 391 CE_Info *ce_info)391 Radio_Info *radio_info) 392 392 { 393 393 char buffer[256]; … … 398 398 /* 399 399 SendMessage(sockfd,"request"); 400 for (i = 0; i < ce_info->numObservables; i++){400 for (i = 0; i < radio_info->numObservables; i++){ 401 401 SendMessage(sockfd,..); 402 402 } … … 404 404 405 405 // 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++){ 407 407 bzero(buffer,256); 408 408 ReadMessage(sockfd,buffer); … … 413 413 414 414 // If policy engine is connect, validate new values 415 if( ce_info->policy_engine == 1) {415 if(radio_info->policy_engine == 1) { 416 416 417 417 printf("Cognitive Radio:: Found Policy Engine!\n"); 418 418 printf("Cognitive Radio:: Validating parameters with Policy Engine\n\n"); 419 RequestPolicyValidation(pList, ce_info);419 RequestPolicyValidation(pList,radio_info); 420 420 printf("Cognitive Radio:: Done\n\n"); 421 421 … … 429 429 RunSimulator(int32_t socketfd, Utility * uList[], 430 430 Parameter * pList[], Observable * oList[], 431 CE_Info * ce_info) {431 Radio_Info * radio_info) { 432 432 433 433 float **past_exp; … … 435 435 436 436 // Set fake current environment params = current environment 437 RequestCEOptimization(socketfd, uList, pList, oList, ce_info);437 RequestCEOptimization(socketfd, uList, pList, oList, radio_info); 438 438 439 439 // Act like we are updating the hardware tranmission settings … … 446 446 447 447 void 448 InitializePE(int32_t socket, CE_Info * ce_info)448 InitializePE(int32_t socket, Radio_Info * radio_info) 449 449 { 450 450 // Policy Engine is connected 451 451 // 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; 454 454 455 455 return; … … 458 458 void 459 459 InitializeCE(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); 463 463 464 464 // cr experience … … 466 466 int32_t num_cols; 467 467 // 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; 470 470 num_cols = num_cols + 1; // overall utility 471 471 int32_t num_rows = 2; … … 496 496 UpdateCEExperience(socketfd, num_rows, num_cols, past_exp); 497 497 498 RunSimulator(socketfd, uList, pList, oList, ce_info);498 RunSimulator(socketfd, uList, pList, oList, radio_info); 499 499 } 500 500 … … 502 502 void 503 503 HandleTCPClient(int32_t socketFD, Utility* uList[], Parameter* pList[], \ 504 Observable* oList[], CE_Info* ce_info)504 Observable* oList[], Radio_Info* radio_info) 505 505 { 506 506 char buffer[256]; … … 513 513 514 514 if(strcmp(buffer,"register_engine_cognitive") == 0) 515 InitializeCE(socketFD, uList, pList, oList, ce_info);515 InitializeCE(socketFD, uList, pList, oList, radio_info); 516 516 517 517 if(strcmp(buffer,"register_engine_policy") == 0) 518 InitializePE(socketFD, ce_info);518 InitializePE(socketFD, radio_info); 519 519 520 520 if(strcmp(buffer,"optimize") == 0) 521 RunSimulator(socketFD, uList, pList, oList, ce_info);521 RunSimulator(socketFD, uList, pList, oList, radio_info); 522 522 523 523 // TODO why aren't we doing this anymore? … … 528 528 int32_t 529 529 StartServers(Utility* uList[], Parameter* pList[], Observable* oList[], \ 530 CE_Info* ce_info)530 Radio_Info* radio_info) 531 531 { 532 532 int32_t * servSock; … … 632 632 } 633 633 634 HandleTCPClient(new_sd, uList, pList, oList, ce_info);634 HandleTCPClient(new_sd, uList, pList, oList, radio_info); 635 635 FD_SET(new_sd,&sockSet); 636 636 if(new_sd > maxDescriptor) … … 641 641 642 642 printf("Request on already open descriptor.\n\n"); 643 HandleTCPClient(port, uList, pList, oList, ce_info);643 HandleTCPClient(port, uList, pList, oList, radio_info); 644 644 645 645 } … … 671 671 Parameter * pList[10]; 672 672 Observable * oList[10]; 673 struct CE_Info *ce_info;673 struct Radio_Info *radio_info; 674 674 675 675 if((fd = open("/dev/zero", O_RDWR)) == -1) 676 676 return 1; 677 677 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); 679 679 680 680 close(fd); … … 696 696 697 697 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); 699 699 cout << "Initialize:: Configuration file parsing completed.\n" << endl; 700 700 701 //print_current_config(uList, pList, oList, & ce_info);701 //print_current_config(uList, pList, oList, &radio_info); 702 702 703 StartServers(uList, pList, oList, ce_info);703 StartServers(uList, pList, oList, radio_info); 704 704 return 1; 705 705 }