Moved navdata initialization to configureDrone() rather than happening the first time that navdata is sent

Esse commit está contido em:
Mike Hamer
2012-11-27 13:51:32 +01:00
commit af03f2536e
3 arquivos alterados com 1153 adições e 1140 exclusões
+28 -24
Ver Arquivo
@@ -31,11 +31,7 @@
bool initialized_navdata_publishers;
#endif
#ifdef NAVDATA_STRUCTS_SOURCE
void ARDroneDriver::PublishNavdataTypes(navdata_unpacked_t &n)
{
const ros::Time now = ros::Time::now();
#ifdef NAVDATA_STRUCTS_INITIALIZE
if(!initialized_navdata_publishers)
{
initialized_navdata_publishers = true;
@@ -61,38 +57,46 @@ void ARDroneDriver::PublishNavdataTypes(navdata_unpacked_t &n)
% endfor
}
#endif
% for item in structs:
if(enabled_${item['struct_name']} && pub_${item['struct_name']}.getNumSubscribers()>0)
#ifdef NAVDATA_STRUCTS_SOURCE
void ARDroneDriver::PublishNavdataTypes(navdata_unpacked_t &n)
{
const ros::Time now = ros::Time::now();
if(initialized_navdata_publishers)
{
${item['struct_name']}_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
${item['struct_name']}_msg.header.stamp = now;
${item['struct_name']}_msg.header.frame_id = droneFrameBase;
% for item in structs:
if(enabled_${item['struct_name']} && pub_${item['struct_name']}.getNumSubscribers()>0)
{
${item['struct_name']}_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
${item['struct_name']}_msg.header.stamp = now;
${item['struct_name']}_msg.header.frame_id = droneFrameBase;
% for member in item['members']:
% if member['array_size'] is None:
{\
${format_member(item, member, None)}
${item['struct_name']}_msg.${member['name']} = m;
}
{\
${format_member(item, member, None)}
${item['struct_name']}_msg.${member['name']} = m;
}
% else:
${item['struct_name']}_msg.${member['name']}.clear();
for(int i=0; i<${member['array_size']}; i++)
{\
${format_member(item, member, 'i')}
${item['struct_name']}_msg.${member['name']}.push_back(m);
}
${item['struct_name']}_msg.${member['name']}.clear();
for(int i=0; i<${member['array_size']}; i++)
{\
${format_member(item, member, 'i')}
${item['struct_name']}_msg.${member['name']}.push_back(m);
}
% endif
% endfor
pub_${item['struct_name']}.publish(${item['struct_name']}_msg);
}
pub_${item['struct_name']}.publish(${item['struct_name']}_msg);
}
//-------------------------
//-------------------------
% endfor
}
}
#endif
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff
+6 -1
Ver Arquivo
@@ -137,7 +137,7 @@ void ARDroneDriver::run()
ardrone_control_config.num_version_soft,
shared_raw_navdata.navdata_demo.vbat_flying_percentage);
ROS_INFO("Navdata Publish Settings:");
//ROS_INFO(" Legacy Mode: %s", enabled_legacy_navdata ? "On" : "Off"); //Bug: This is being inited after in the NavdataMessage*.h
ROS_INFO(" Legacy Mode: %s", enabled_legacy_navdata ? "On" : "Off"); //Bug: This is being inited after in the NavdataMessage*.h
ROS_INFO(" ROS Loop Rate: %d", looprate);
ROS_INFO(" Instant New Navdata Publish: %s", fullspeed_navdata ? "On" : "Off");
// TODO: Enabled Navdata Demo
@@ -225,6 +225,11 @@ void ARDroneDriver::configureDrone()
#undef ARDRONE_CONFIG_KEY_IMM_a10
#undef ARDRONE_CONFIG_KEY_REF_a10
#undef ARDRONE_CONFIG_KEY_STR_a10
#define NAVDATA_STRUCTS_INITIALIZE
#include "NavdataMessageDefinitions.h"
#undef NAVDATA_STRUCTS_INITIALIZE
}
void ARDroneDriver::resetCaliberation()