102 | | } |
103 | | } |
104 | | |
105 | | void |
106 | | CognitiveEngine::ReceiveFeedback(Observable *observables, Parameter *parameters) |
107 | | { |
108 | | LOG("Cognitive Engine:: Receiving feedback.\n"); |
109 | | |
110 | | uint32_t numberColumns = radioInfo->numParameters + radioInfo->numUtilities; |
111 | | |
112 | | uint32_t obsColumns = radioInfo->numObservables + 1; |
113 | | |
114 | | float valList[numberColumns]; |
115 | | float obsVals[numberColumns]; |
116 | | string nameList[numberColumns]; |
117 | | string obsList[obsColumns]; |
118 | | |
119 | | size_t columnObsIndex = 0; |
120 | | for (size_t i = 0; i < radioInfo->numObservables; i++){ |
121 | | obsList[columnObsIndex] = observables[i].name; |
122 | | columnObsIndex++; |
123 | | } |
124 | | obsList[columnObsIndex] = "utility"; |
125 | | |
126 | | size_t columnIndex = 0; |
127 | | for (size_t i = 0; i < radioInfo->numParameters; i++){ |
128 | | nameList[columnIndex] = parameters[i].name; |
129 | | columnIndex++; |
130 | | } |
131 | | for (size_t i = 0; i < radioInfo->numUtilities; i++){ |
132 | | nameList[columnIndex] = uList[i].name; |
133 | | columnIndex++; |
134 | | } |
135 | | |
136 | | size_t obsValueIndex = 0; |
137 | | for(size_t i = 0; i < radioInfo->numObservables; i++) { |
138 | | obsVals[obsValueIndex] = observables[i].value; |
139 | | obsValueIndex++; |
140 | | } |
141 | | |
142 | | /* Calculate Utility */ |
143 | | float newUtilityValue = 0; |
144 | | |
145 | | for(size_t i = 0; i < radioInfo->numUtilities; i++) { |
146 | | newUtilityValue = newUtilityValue + (uList[i].target - observables[i].value); |
147 | | } |
148 | | obsVals[obsValueIndex] = newUtilityValue; |
149 | | |
150 | | size_t returnValueIndex = 0; |
151 | | for(size_t i = 0; i < radioInfo->numParameters; i++) { |
152 | | valList[returnValueIndex] = parameters[i].value; |
153 | | returnValueIndex++; |
154 | | } |
155 | | for(size_t i = 0; i < radioInfo->numUtilities; i++) { |
156 | | valList[returnValueIndex] = uList[i].target; |
157 | | returnValueIndex++; |
453 | | PerformUpdatePerformance() |
454 | | { |
455 | | } |
456 | | |
457 | | |
458 | | void |
459 | | PerformRequestOptimizationService() |
460 | | { |
461 | | } |
462 | | |
463 | | |
464 | | void |
465 | | PerformRequestOptimization() |
466 | | { |
467 | | } |
468 | | |
469 | | |
470 | | void |
471 | | PerformQueryComponentType() |
472 | | { |
473 | | } |
474 | | |
475 | | |
476 | | void |
477 | | PerformConnectSML() |
478 | | { |
479 | | } |
480 | | |
481 | | |
482 | | void |
483 | | PerformDisconnectSML() |
484 | | { |
485 | | } |
486 | | |
487 | | |
488 | | void |
489 | | PerformResetEngineCognitive() |
490 | | { |
491 | | } |
492 | | |
493 | | |
494 | | void |
495 | | PerformShutdownEngineCognitive() |
| 405 | CognitiveEngine::PerformUpdatePerformance() |
| 406 | { |
| 407 | } |
| 408 | |
| 409 | |
| 410 | void |
| 411 | CognitiveEngine::PerformRequestOptimizationService() |
| 412 | { |
| 413 | } |
| 414 | |
| 415 | |
| 416 | void |
| 417 | CognitiveEngine::PerformRequestOptimization() |
| 418 | { |
| 419 | } |
| 420 | |
| 421 | |
| 422 | void |
| 423 | CognitiveEngine::PerformQueryComponentType() |
| 424 | { |
| 425 | } |
| 426 | |
| 427 | |
| 428 | void |
| 429 | CognitiveEngine::PerformConnectSML() |
| 430 | { |
| 431 | } |
| 432 | |
| 433 | |
| 434 | void |
| 435 | CognitiveEngine::PerformDisconnectSML() |
| 436 | { |
| 437 | } |
| 438 | |
| 439 | |
| 440 | void |
| 441 | CognitiveEngine::PerformResetEngineCognitive() |
| 442 | { |
| 443 | } |
| 444 | |
| 445 | |
| 446 | void |
| 447 | CognitiveEngine::PerformShutdownEngineCognitive() |