00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "stdr_parser/stdr_parser_xml_file_writer.h"
00023
00024 namespace stdr_parser
00025 {
00026
00031 XmlFileWriter::XmlFileWriter(void)
00032 {
00033
00034 }
00035
00038 template void XmlFileWriter::messageToFile
00039 (stdr_msgs::Noise msg,std::string file_name);
00040
00042 template <>
00043 void XmlFileWriter::messageToXmlElement<stdr_msgs::Noise>
00044 (stdr_msgs::Noise msg,TiXmlNode* base)
00045 {
00047 TiXmlElement* noise;
00048 noise = new TiXmlElement("noise");
00049 base->LinkEndChild(noise);
00050
00052 TiXmlElement* noise_specs;
00053 noise_specs = new TiXmlElement("noise_specifications");
00054 noise->LinkEndChild(noise_specs);
00055
00057 TiXmlElement* noise_mean;
00058 noise_mean = new TiXmlElement("noise_mean");
00059 noise_specs->LinkEndChild(noise_mean);
00060
00061 TiXmlText * noise_mean_text = new TiXmlText(SSTR(msg.noiseMean));
00062 noise_mean->LinkEndChild(noise_mean_text);
00063
00065 TiXmlElement* noise_std;
00066 noise_std = new TiXmlElement("noise_std");
00067 noise_specs->LinkEndChild(noise_std);
00068
00069 TiXmlText * noise_std_text = new TiXmlText(SSTR(msg.noiseStd));
00070 noise_std->LinkEndChild(noise_std_text);
00071 }
00072
00075 template void XmlFileWriter::messageToFile
00076 (stdr_msgs::FootprintMsg msg,std::string file_name);
00077
00079 template <>
00080 void XmlFileWriter::messageToXmlElement<stdr_msgs::FootprintMsg>
00081 (stdr_msgs::FootprintMsg msg,TiXmlNode* base){
00083 TiXmlElement* footprint;
00084 footprint = new TiXmlElement("footprint");
00085 base->LinkEndChild(footprint);
00086
00088 TiXmlElement* footprint_specs;
00089 footprint_specs = new TiXmlElement("footprint_specifications");
00090 footprint->LinkEndChild(footprint_specs);
00091
00093 TiXmlElement* radius;
00094 radius = new TiXmlElement("radius");
00095 footprint_specs->LinkEndChild(radius);
00096 TiXmlText * radius_text = new TiXmlText(SSTR(msg.radius));
00097 radius->LinkEndChild(radius_text);
00098
00100 TiXmlElement* points;
00101 points = new TiXmlElement("points");
00102 footprint_specs->LinkEndChild(points);
00103
00104 for(unsigned int i = 0 ; i < msg.points.size() ; i++)
00105 {
00106 TiXmlElement* point;
00107 point = new TiXmlElement("point");
00108 points->LinkEndChild(point);
00109
00110 TiXmlElement* x;
00111 x = new TiXmlElement("x");
00112 point->LinkEndChild(x);
00113 TiXmlText * x_text = new TiXmlText(SSTR(msg.points[i].x));
00114 x->LinkEndChild(x_text);
00115
00116 TiXmlElement* y;
00117 y = new TiXmlElement("y");
00118 point->LinkEndChild(y);
00119 TiXmlText * y_text = new TiXmlText(SSTR(msg.points[i].y));
00120 y->LinkEndChild(y_text);
00121 }
00122 }
00123
00126 template <>
00127 void XmlFileWriter::messageToXmlElement<geometry_msgs::Pose2D>
00128 (geometry_msgs::Pose2D msg,TiXmlNode* base){
00130 TiXmlElement* pose;
00131 pose = new TiXmlElement("pose");
00132 base->LinkEndChild(pose);
00133
00135 TiXmlElement* x;
00136 x = new TiXmlElement("x");
00137 pose->LinkEndChild(x);
00138 TiXmlText * x_text = new TiXmlText(SSTR(msg.x));
00139 x->LinkEndChild(x_text);
00140
00142 TiXmlElement* y;
00143 y = new TiXmlElement("y");
00144 pose->LinkEndChild(y);
00145 TiXmlText * y_text = new TiXmlText(SSTR(msg.y));
00146 y->LinkEndChild(y_text);
00147
00149 TiXmlElement* theta;
00150 theta = new TiXmlElement("theta");
00151 pose->LinkEndChild(theta);
00152 TiXmlText * theta_text = new TiXmlText(SSTR(msg.theta));
00153 theta->LinkEndChild(theta_text);
00154 }
00155
00158 template void XmlFileWriter::messageToFile
00159 (stdr_msgs::LaserSensorMsg msg,std::string file_name);
00160
00162 template <>
00163 void XmlFileWriter::messageToXmlElement<stdr_msgs::LaserSensorMsg>
00164 (stdr_msgs::LaserSensorMsg msg,TiXmlNode* base){
00165
00167 TiXmlElement* laser = new TiXmlElement("laser");
00168 base->LinkEndChild(laser);
00169
00171 TiXmlElement* laser_specifications =
00172 new TiXmlElement("laser_specifications");
00173 laser->LinkEndChild(laser_specifications);
00174
00176 TiXmlElement* max_angle = new TiXmlElement("max_angle");
00177 laser_specifications->LinkEndChild(max_angle);
00178 TiXmlText * max_angle_text = new TiXmlText(SSTR(msg.maxAngle));
00179 max_angle->LinkEndChild(max_angle_text);
00180
00182 TiXmlElement* min_angle = new TiXmlElement("min_angle");
00183 laser_specifications->LinkEndChild(min_angle);
00184 TiXmlText * min_angle_text = new TiXmlText(SSTR(msg.minAngle));
00185 min_angle->LinkEndChild(min_angle_text);
00186
00188 TiXmlElement* max_range = new TiXmlElement("max_range");
00189 laser_specifications->LinkEndChild(max_range);
00190 TiXmlText * max_range_text = new TiXmlText(SSTR(msg.maxRange));
00191 max_range->LinkEndChild(max_range_text);
00192
00194 TiXmlElement* min_range = new TiXmlElement("min_range");
00195 laser_specifications->LinkEndChild(min_range);
00196 TiXmlText * min_range_text = new TiXmlText(SSTR(msg.minRange));
00197 min_range->LinkEndChild(min_range_text);
00198
00200 TiXmlElement* num_rays = new TiXmlElement("num_rays");
00201 laser_specifications->LinkEndChild(num_rays);
00202 TiXmlText * num_rays_text = new TiXmlText(SSTR(msg.numRays));
00203 num_rays->LinkEndChild(num_rays_text);
00204
00206 TiXmlElement* frequency = new TiXmlElement("frequency");
00207 laser_specifications->LinkEndChild(frequency);
00208 TiXmlText * frequency_text = new TiXmlText(SSTR(msg.frequency));
00209 frequency->LinkEndChild(frequency_text);
00210
00212 TiXmlElement* frame_id = new TiXmlElement("frame_id");
00213 laser_specifications->LinkEndChild(frame_id);
00214 TiXmlText * frame_id_text = new TiXmlText(SSTR(msg.frame_id));
00215 frame_id->LinkEndChild(frame_id_text);
00216
00218 messageToXmlElement(msg.pose,laser_specifications);
00219
00221 messageToXmlElement(msg.noise,laser_specifications);
00222 }
00223
00226 template void XmlFileWriter::messageToFile
00227 (stdr_msgs::SonarSensorMsg msg,std::string file_name);
00228
00230 template <>
00231 void XmlFileWriter::messageToXmlElement<stdr_msgs::SonarSensorMsg>
00232 (stdr_msgs::SonarSensorMsg msg,TiXmlNode* base){
00233
00235 TiXmlElement* sonar = new TiXmlElement("sonar");
00236 base->LinkEndChild(sonar);
00237
00239 TiXmlElement* sonar_specifications =
00240 new TiXmlElement("sonar_specifications");
00241 sonar->LinkEndChild(sonar_specifications);
00242
00244 TiXmlElement* cone_angle = new TiXmlElement("cone_angle");
00245 sonar_specifications->LinkEndChild(cone_angle);
00246 TiXmlText * cone_angle_text = new TiXmlText(SSTR(msg.coneAngle));
00247 cone_angle->LinkEndChild(cone_angle_text);
00248
00250 TiXmlElement* max_range = new TiXmlElement("max_range");
00251 sonar_specifications->LinkEndChild(max_range);
00252 TiXmlText * max_range_text = new TiXmlText(SSTR(msg.maxRange));
00253 max_range->LinkEndChild(max_range_text);
00254
00256 TiXmlElement* min_range = new TiXmlElement("min_range");
00257 sonar_specifications->LinkEndChild(min_range);
00258 TiXmlText * min_range_text = new TiXmlText(SSTR(msg.minRange));
00259 min_range->LinkEndChild(min_range_text);
00260
00262 TiXmlElement* frequency = new TiXmlElement("frequency");
00263 sonar_specifications->LinkEndChild(frequency);
00264 TiXmlText * frequency_text = new TiXmlText(SSTR(msg.frequency));
00265 frequency->LinkEndChild(frequency_text);
00266
00268 TiXmlElement* frame_id = new TiXmlElement("frame_id");
00269 sonar_specifications->LinkEndChild(frame_id);
00270 TiXmlText * frame_id_text = new TiXmlText(SSTR(msg.frame_id));
00271 frame_id->LinkEndChild(frame_id_text);
00272
00274 messageToXmlElement(msg.pose,sonar_specifications);
00275
00277 messageToXmlElement(msg.noise,sonar_specifications);
00278 }
00279
00282 template void XmlFileWriter::messageToFile
00283 (stdr_msgs::RfidSensorMsg msg,std::string file_name);
00284
00286 template <>
00287 void XmlFileWriter::messageToXmlElement<stdr_msgs::RfidSensorMsg>
00288 (stdr_msgs::RfidSensorMsg msg,TiXmlNode* base){
00289
00291 TiXmlElement* rfidReader = new TiXmlElement("rfid_reader");
00292 base->LinkEndChild(rfidReader);
00293
00295 TiXmlElement* rfid_reader_specifications =
00296 new TiXmlElement("rfid_reader_specifications");
00297 rfidReader->LinkEndChild(rfid_reader_specifications);
00298
00300 TiXmlElement* maxRange = new TiXmlElement("max_range");
00301 rfid_reader_specifications->LinkEndChild(maxRange);
00302 TiXmlText * maxRange_text = new TiXmlText(SSTR(msg.maxRange));
00303 maxRange->LinkEndChild(maxRange_text);
00304
00306 TiXmlElement* angleSpan = new TiXmlElement("angle_span");
00307 rfid_reader_specifications->LinkEndChild(angleSpan);
00308 TiXmlText * angleSpan_text = new TiXmlText(SSTR(msg.angleSpan));
00309 angleSpan->LinkEndChild(angleSpan_text);
00310
00312 TiXmlElement* signalCutoff = new TiXmlElement("signal_cutoff");
00313 rfid_reader_specifications->LinkEndChild(signalCutoff);
00314 TiXmlText * signalCutoff_text = new TiXmlText(SSTR(msg.signalCutoff));
00315 signalCutoff->LinkEndChild(signalCutoff_text);
00316
00318 TiXmlElement* frequency = new TiXmlElement("frequency");
00319 rfid_reader_specifications->LinkEndChild(frequency);
00320 TiXmlText * frequency_text = new TiXmlText(SSTR(msg.frequency));
00321 frequency->LinkEndChild(frequency_text);
00322
00324 TiXmlElement* frame_id = new TiXmlElement("frame_id");
00325 rfid_reader_specifications->LinkEndChild(frame_id);
00326 TiXmlText * frame_id_text = new TiXmlText(SSTR(msg.frame_id));
00327 frame_id->LinkEndChild(frame_id_text);
00328
00330 messageToXmlElement(msg.pose,rfid_reader_specifications);
00331 }
00334 template void XmlFileWriter::messageToFile
00335 (stdr_msgs::CO2SensorMsg msg,std::string file_name);
00336
00338 template <>
00339 void XmlFileWriter::messageToXmlElement<stdr_msgs::CO2SensorMsg>
00340 (stdr_msgs::CO2SensorMsg msg,TiXmlNode* base){
00341
00343 TiXmlElement* sensor = new TiXmlElement("co2_sensor");
00344 base->LinkEndChild(sensor);
00345
00347 TiXmlElement* sensor_specifications =
00348 new TiXmlElement("co2_sensor_specifications");
00349 sensor->LinkEndChild(sensor_specifications);
00350
00352 TiXmlElement* maxRange = new TiXmlElement("max_range");
00353 sensor_specifications->LinkEndChild(maxRange);
00354 TiXmlText * maxRange_text = new TiXmlText(SSTR(msg.maxRange));
00355 maxRange->LinkEndChild(maxRange_text);
00356
00358
00359
00360
00361
00362
00364
00365
00366
00367
00368
00370 TiXmlElement* frequency = new TiXmlElement("frequency");
00371 sensor_specifications->LinkEndChild(frequency);
00372 TiXmlText * frequency_text = new TiXmlText(SSTR(msg.frequency));
00373 frequency->LinkEndChild(frequency_text);
00374
00376 TiXmlElement* frame_id = new TiXmlElement("frame_id");
00377 sensor_specifications->LinkEndChild(frame_id);
00378 TiXmlText * frame_id_text = new TiXmlText(SSTR(msg.frame_id));
00379 frame_id->LinkEndChild(frame_id_text);
00380
00382 messageToXmlElement(msg.pose,sensor_specifications);
00383 }
00386 template void XmlFileWriter::messageToFile
00387 (stdr_msgs::ThermalSensorMsg msg,std::string file_name);
00388
00390 template <>
00391 void XmlFileWriter::messageToXmlElement<stdr_msgs::ThermalSensorMsg>
00392 (stdr_msgs::ThermalSensorMsg msg,TiXmlNode* base){
00393
00395 TiXmlElement* sensor = new TiXmlElement("thermal_sensor");
00396 base->LinkEndChild(sensor);
00397
00399 TiXmlElement* sensor_specifications =
00400 new TiXmlElement("thermal_sensor_specifications");
00401 sensor->LinkEndChild(sensor_specifications);
00402
00404 TiXmlElement* maxRange = new TiXmlElement("max_range");
00405 sensor_specifications->LinkEndChild(maxRange);
00406 TiXmlText * maxRange_text = new TiXmlText(SSTR(msg.maxRange));
00407 maxRange->LinkEndChild(maxRange_text);
00408
00410 TiXmlElement* angleSpan = new TiXmlElement("angle_span");
00411 sensor_specifications->LinkEndChild(angleSpan);
00412 TiXmlText * angleSpan_text = new TiXmlText(SSTR(msg.angleSpan));
00413 angleSpan->LinkEndChild(angleSpan_text);
00414
00416
00417
00418
00419
00420
00422 TiXmlElement* frequency = new TiXmlElement("frequency");
00423 sensor_specifications->LinkEndChild(frequency);
00424 TiXmlText * frequency_text = new TiXmlText(SSTR(msg.frequency));
00425 frequency->LinkEndChild(frequency_text);
00426
00428 TiXmlElement* frame_id = new TiXmlElement("frame_id");
00429 sensor_specifications->LinkEndChild(frame_id);
00430 TiXmlText * frame_id_text = new TiXmlText(SSTR(msg.frame_id));
00431 frame_id->LinkEndChild(frame_id_text);
00432
00434 messageToXmlElement(msg.pose,sensor_specifications);
00435 }
00438 template void XmlFileWriter::messageToFile
00439 (stdr_msgs::SoundSensorMsg msg,std::string file_name);
00440
00442 template <>
00443 void XmlFileWriter::messageToXmlElement<stdr_msgs::SoundSensorMsg>
00444 (stdr_msgs::SoundSensorMsg msg,TiXmlNode* base){
00445
00447 TiXmlElement* sensor = new TiXmlElement("sound_sensor");
00448 base->LinkEndChild(sensor);
00449
00451 TiXmlElement* sensor_specifications =
00452 new TiXmlElement("sound_sensor_specifications");
00453 sensor->LinkEndChild(sensor_specifications);
00454
00456 TiXmlElement* maxRange = new TiXmlElement("max_range");
00457 sensor_specifications->LinkEndChild(maxRange);
00458 TiXmlText * maxRange_text = new TiXmlText(SSTR(msg.maxRange));
00459 maxRange->LinkEndChild(maxRange_text);
00460
00462 TiXmlElement* angleSpan = new TiXmlElement("angle_span");
00463 sensor_specifications->LinkEndChild(angleSpan);
00464 TiXmlText * angleSpan_text = new TiXmlText(SSTR(msg.angleSpan));
00465 angleSpan->LinkEndChild(angleSpan_text);
00466
00468
00469
00470
00471
00472
00474 TiXmlElement* frequency = new TiXmlElement("frequency");
00475 sensor_specifications->LinkEndChild(frequency);
00476 TiXmlText * frequency_text = new TiXmlText(SSTR(msg.frequency));
00477 frequency->LinkEndChild(frequency_text);
00478
00480 TiXmlElement* frame_id = new TiXmlElement("frame_id");
00481 sensor_specifications->LinkEndChild(frame_id);
00482 TiXmlText * frame_id_text = new TiXmlText(SSTR(msg.frame_id));
00483 frame_id->LinkEndChild(frame_id_text);
00484
00486 messageToXmlElement(msg.pose,sensor_specifications);
00487 }
00488
00491 template void XmlFileWriter::messageToFile
00492 (stdr_msgs::KinematicMsg msg,std::string file_name);
00493
00495 template <>
00496 void XmlFileWriter::messageToXmlElement<stdr_msgs::KinematicMsg>
00497 (stdr_msgs::KinematicMsg msg,TiXmlNode* base){
00498
00500 TiXmlElement* kinematic = new TiXmlElement("kinematic");
00501 base->LinkEndChild(kinematic);
00502
00504 TiXmlElement* kinematic_specifications =
00505 new TiXmlElement("kinematic_specifications");
00506 kinematic->LinkEndChild(kinematic_specifications);
00507
00509 TiXmlElement* model;
00510 model = new TiXmlElement("kinematic_model");
00511 kinematic_specifications->LinkEndChild(model);
00512 TiXmlText * model_text = new TiXmlText(msg.type);
00513 model->LinkEndChild(model_text);
00514
00516 TiXmlElement* parameters;
00517 parameters = new TiXmlElement("kinematic_parameters");
00518 kinematic_specifications->LinkEndChild(parameters);
00519 TiXmlElement *a_ux_ux, *a_ux_uy, *a_ux_w, *a_uy_ux, *a_uy_uy, *a_uy_w;
00520 TiXmlElement *a_w_ux, *a_w_uy, *a_w_w, *a_g_ux, *a_g_uy, *a_g_w;
00521
00522 a_ux_ux = new TiXmlElement("a_ux_ux");
00523 parameters->LinkEndChild(a_ux_ux);
00524 TiXmlText *a_ux_ux_text = new TiXmlText(SSTR(msg.a_ux_ux));
00525 a_ux_ux->LinkEndChild(a_ux_ux_text);
00526
00527 a_ux_uy = new TiXmlElement("a_ux_uy");
00528 parameters->LinkEndChild(a_ux_uy);
00529 TiXmlText *a_ux_uy_text = new TiXmlText(SSTR(msg.a_ux_uy));
00530 a_ux_uy->LinkEndChild(a_ux_uy_text);
00531
00532 a_ux_w = new TiXmlElement("a_ux_w");
00533 parameters->LinkEndChild(a_ux_w);
00534 TiXmlText *a_ux_w_text = new TiXmlText(SSTR(msg.a_ux_w));
00535 a_ux_w->LinkEndChild(a_ux_w_text);
00536
00537 a_uy_ux = new TiXmlElement("a_uy_ux");
00538 parameters->LinkEndChild(a_uy_ux);
00539 TiXmlText *a_uy_ux_text = new TiXmlText(SSTR(msg.a_uy_ux));
00540 a_uy_ux->LinkEndChild(a_uy_ux_text);
00541
00542 a_uy_uy = new TiXmlElement("a_uy_uy");
00543 parameters->LinkEndChild(a_uy_uy);
00544 TiXmlText *a_uy_uy_text = new TiXmlText(SSTR(msg.a_uy_uy));
00545 a_uy_uy->LinkEndChild(a_uy_uy_text);
00546
00547 a_uy_w = new TiXmlElement("a_uy_w");
00548 parameters->LinkEndChild(a_uy_w);
00549 TiXmlText *a_uy_w_text = new TiXmlText(SSTR(msg.a_uy_w));
00550 a_uy_w->LinkEndChild(a_uy_w_text);
00551
00552 a_w_ux = new TiXmlElement("a_w_ux");
00553 parameters->LinkEndChild(a_w_ux);
00554 TiXmlText *a_w_ux_text = new TiXmlText(SSTR(msg.a_w_ux));
00555 a_w_ux->LinkEndChild(a_w_ux_text);
00556
00557 a_w_uy = new TiXmlElement("a_w_uy");
00558 parameters->LinkEndChild(a_w_uy);
00559 TiXmlText *a_w_uy_text = new TiXmlText(SSTR(msg.a_w_uy));
00560 a_w_uy->LinkEndChild(a_w_uy_text);
00561
00562 a_w_w = new TiXmlElement("a_w_w");
00563 parameters->LinkEndChild(a_w_w);
00564 TiXmlText *a_w_w_text = new TiXmlText(SSTR(msg.a_w_w));
00565 a_w_w->LinkEndChild(a_w_w_text);
00566
00567 a_g_ux = new TiXmlElement("a_g_ux");
00568 parameters->LinkEndChild(a_g_ux);
00569 TiXmlText *a_g_ux_text = new TiXmlText(SSTR(msg.a_g_ux));
00570 a_g_ux->LinkEndChild(a_g_ux_text);
00571
00572 a_g_uy = new TiXmlElement("a_g_uy");
00573 parameters->LinkEndChild(a_g_uy);
00574 TiXmlText *a_g_uy_text = new TiXmlText(SSTR(msg.a_g_uy));
00575 a_g_uy->LinkEndChild(a_g_uy_text);
00576
00577 a_g_w = new TiXmlElement("a_g_w");
00578 parameters->LinkEndChild(a_g_w);
00579 TiXmlText *a_g_w_text = new TiXmlText(SSTR(msg.a_g_w));
00580 a_g_w->LinkEndChild(a_g_w_text);
00581 }
00582
00585 template void XmlFileWriter::messageToFile
00586 (stdr_msgs::RobotMsg msg,std::string file_name);
00587
00589 template <>
00590 void XmlFileWriter::messageToXmlElement<stdr_msgs::RobotMsg>
00591 (stdr_msgs::RobotMsg msg,TiXmlNode* base){
00592
00594 TiXmlElement* robot = new TiXmlElement("robot");
00595 base->LinkEndChild(robot);
00596
00598 TiXmlElement* robot_specifications =
00599 new TiXmlElement("robot_specifications");
00600 robot->LinkEndChild(robot_specifications);
00601
00603 TiXmlElement* pose;
00604 pose = new TiXmlElement("initial_pose");
00605 robot_specifications->LinkEndChild(pose);
00606
00608 TiXmlElement* x;
00609 x = new TiXmlElement("x");
00610 pose->LinkEndChild(x);
00611 TiXmlText * x_text = new TiXmlText(SSTR(msg.initialPose.x));
00612 x->LinkEndChild(x_text);
00613
00615 TiXmlElement* y;
00616 y = new TiXmlElement("y");
00617 pose->LinkEndChild(y);
00618 TiXmlText * y_text = new TiXmlText(SSTR(msg.initialPose.y));
00619 y->LinkEndChild(y_text);
00620
00622 TiXmlElement* theta;
00623 theta = new TiXmlElement("theta");
00624 pose->LinkEndChild(theta);
00625 TiXmlText * theta_text = new TiXmlText(SSTR(msg.initialPose.theta));
00626 theta->LinkEndChild(theta_text);
00627
00629 messageToXmlElement(msg.footprint, robot_specifications);
00630
00632 messageToXmlElement(msg.kinematicModel, robot_specifications);
00633
00635 for(unsigned int i = 0 ; i < msg.laserSensors.size() ; i++)
00636 {
00637 messageToXmlElement(msg.laserSensors[i],robot_specifications);
00638 }
00639
00641 for(unsigned int i = 0 ; i < msg.sonarSensors.size() ; i++)
00642 {
00643 messageToXmlElement(msg.sonarSensors[i],robot_specifications);
00644 }
00645
00647 for(unsigned int i = 0 ; i < msg.rfidSensors.size() ; i++)
00648 {
00649 messageToXmlElement(msg.rfidSensors[i],robot_specifications);
00650 }
00651
00652 for(unsigned int i = 0 ; i < msg.co2Sensors.size() ; i++)
00653 {
00654 messageToXmlElement(msg.co2Sensors[i],robot_specifications);
00655 }
00656
00657 for(unsigned int i = 0 ; i < msg.thermalSensors.size() ; i++)
00658 {
00659 messageToXmlElement(msg.thermalSensors[i],robot_specifications);
00660 }
00661
00662 for(unsigned int i = 0 ; i < msg.soundSensors.size() ; i++)
00663 {
00664 messageToXmlElement(msg.soundSensors[i],robot_specifications);
00665 }
00666 }
00667
00669
00676 template <class T>
00677 void XmlFileWriter::messageToXmlElement(T msg,TiXmlNode* base)
00678 {
00679 }
00680
00687 template <class T>
00688 void XmlFileWriter::messageToFile(T msg,std::string file_name)
00689 {
00690 TiXmlDocument doc;
00691 messageToXmlElement<T>(msg,&doc);
00692 doc.SaveFile(file_name.c_str());
00693 }
00694 }
00695