117 | | } |
118 | | |
119 | | |
120 | | void |
| 117 | uint32_t i,j; |
| 118 | char counter[55]; |
| 119 | char var[50]; |
| 120 | |
| 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, u[i].name.c_str()); |
| 128 | SendMessage(socketfd, u[i].units.c_str()); |
| 129 | SendMessage(socketfd, u[i].goal.c_str()); |
| 130 | sprintf(var,"%f", u[i].target); |
| 131 | SendMessage(socketfd,var); |
| 132 | } |
| 133 | |
| 134 | // parameters |
| 135 | sprintf(counter,"%i",radio_info->numParameters); |
| 136 | SendMessage(socketfd,counter); |
| 137 | for(i = 0; i < radio_info->numParameters; i++) { |
| 138 | SendMessage(socketfd,p[i].name.c_str()); |
| 139 | SendMessage(socketfd,p[i].units.c_str()); |
| 140 | sprintf(var,"%f",p[i].min); |
| 141 | SendMessage(socketfd,var); |
| 142 | sprintf(var,"%f",p[i].max); |
| 143 | SendMessage(socketfd,var); |
| 144 | sprintf(var,"%f",p[i].step); |
| 145 | SendMessage(socketfd,var); |
| 146 | |
| 147 | sprintf(counter,"%i",p[i].numAffects); |
| 148 | SendMessage(socketfd,counter); |
| 149 | for(j = 0; j < p[i].numAffects; j++) { |
| 150 | SendMessage(socketfd,p[i].affection_list[j].u->name.c_str()); |
| 151 | SendMessage(socketfd,p[i].affection_list[j].relation.c_str()); |
| 152 | } |
| 153 | } |
| 154 | |
| 155 | // observables |
| 156 | sprintf(counter,"%i",radio_info->numObservables); |
| 157 | SendMessage(socketfd,counter); |
| 158 | for(i = 0; i < radio_info->numObservables; i++) { |
| 159 | SendMessage(socketfd,o[i].name.c_str()); |
| 160 | |
| 161 | sprintf(counter,"%i",o[i].numAffects); |
| 162 | SendMessage(socketfd,counter); |
| 163 | for(j = 0; j < o[i].numAffects; j++) { |
| 164 | SendMessage(socketfd,o[i].affection_list[j].u->name.c_str()); |
| 165 | SendMessage(socketfd,o[i].affection_list[j].relation.c_str()); |
| 166 | } |
| 167 | } |
| 168 | |
| 169 | // Receive ACK for utils |
| 170 | char buffer[256]; |
| 171 | memset(buffer, 0, 256); |
| 172 | ReadMessage(socketfd, buffer); |
| 173 | |
| 174 | if(strcmp(buffer, "receive_config_ack") != 0) { |
| 175 | LOG("Cognitive Radio Shell:: Unexpected response: %s\n",buffer); |
| 176 | return 0; |
| 177 | } |
| 178 | return 1; |
| 179 | |
| 180 | } |
| 181 | |
| 182 | bool |