554 | | |
| 554 | bool |
| 555 | CognitiveRadioShell::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 | } |
| 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); |