navdata_<packet>.header is now correctly filled

Header.stamp and header.frame_id are now correctly filled. Messages are
also now member variables rather than local to save initialization time.
Esse commit está contido em:
Mike Hamer
2012-11-23 10:42:43 +01:00
commit b3ef0f186d
2 arquivos alterados com 427 adições e 365 exclusões
+9 -5
Ver Arquivo
@@ -19,6 +19,7 @@
% for item in structs: % for item in structs:
ros::Publisher pub_${item['struct_name']}; ros::Publisher pub_${item['struct_name']};
bool enabled_${item['struct_name']}; bool enabled_${item['struct_name']};
ardrone_autonomy::${item['struct_name']} ${item['struct_name']}_msg;
% endfor % endfor
bool enabled_legacy_navdata; bool enabled_legacy_navdata;
@@ -30,6 +31,8 @@
#ifdef NAVDATA_STRUCTS_SOURCE #ifdef NAVDATA_STRUCTS_SOURCE
void ARDroneDriver::PublishNavdataTypes(navdata_unpacked_t n) void ARDroneDriver::PublishNavdataTypes(navdata_unpacked_t n)
{ {
const ros::Time now = ros::Time::now();
if(!initialized_navdata_publishers) if(!initialized_navdata_publishers)
{ {
initialized_navdata_publishers = true; initialized_navdata_publishers = true;
@@ -63,26 +66,27 @@ void ARDroneDriver::PublishNavdataTypes(navdata_unpacked_t n)
% for item in structs: % for item in structs:
if(enabled_${item['struct_name']} && pub_${item['struct_name']}.getNumSubscribers()>0) if(enabled_${item['struct_name']} && pub_${item['struct_name']}.getNumSubscribers()>0)
{ {
ardrone_autonomy::${item['struct_name']} msg; ${item['struct_name']}_msg.drone_time = ((double)ardrone_time_to_usec(n.navdata_time.time))/1000000.0;
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']: % for member in item['members']:
% if member['array_size'] is None: % if member['array_size'] is None:
{\ {\
${format_member(item, member, None)} ${format_member(item, member, None)}
msg.${member['name']} = m; ${item['struct_name']}_msg.${member['name']} = m;
} }
% else: % else:
for(int i=0; i<${member['array_size']}; i++) for(int i=0; i<${member['array_size']}; i++)
{\ {\
${format_member(item, member, 'i')} ${format_member(item, member, 'i')}
msg.${member['name']}.push_back(m); ${item['struct_name']}_msg.${member['name']}.push_back(m);
} }
% endif % endif
% endfor % endfor
pub_${item['struct_name']}.publish(msg); pub_${item['struct_name']}.publish(${item['struct_name']}_msg);
} }
//------------------------- //-------------------------
Diferenças do arquivo suprimidas por serem muito extensas Carregar Diff