MCPcopy Create free account
hub / github.com/OpenPTrack/open_ptrack_v2 / trackingCallback

Function trackingCallback

opt_utils/apps/ros2udp_converter_objects.cpp:66–123  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

64
65
66void
67trackingCallback(const opt_msgs::TrackArray::ConstPtr& tracking_msg)
68{
69 /// Create JSON-formatted message:
70 Jzon::Object root, header, stamp;
71
72 /// Add header (84 characters):
73 header.Add("seq", int(tracking_msg->header.seq));
74 stamp.Add("sec", int(tracking_msg->header.stamp.sec));
75 stamp.Add("nsec", int(tracking_msg->header.stamp.nsec));
76 header.Add("stamp", stamp);
77 header.Add("frame_id", tracking_msg->header.frame_id);
78 root.Add("header", header);
79
80 /// Add tracks array:
81 // >50 characters for every track
82 Jzon::Array tracks;
83
84
85 for (unsigned int i = 0; i < tracking_msg->tracks.size(); i++)
86 {
87 Jzon::Object current_track;
88 int index_roiname=tracking_msg->tracks[i].id;
89 current_track.Add("id", index_roiname);
90 current_track.Add("object_name",tracking_msg->tracks[i].object_name);
91 current_track.Add("x", tracking_msg->tracks[i].x);
92 current_track.Add("y", tracking_msg->tracks[i].y);
93 current_track.Add("height", tracking_msg->tracks[i].height);
94 current_track.Add("age", tracking_msg->tracks[i].age);
95 current_track.Add("confidence", 0.0);
96 tracks.Add(current_track);
97 }
98 root.Add("object_tracks", tracks);
99
100 /// Convert JSON object to string:
101 Jzon::Format message_format = Jzon::StandardFormat;
102 message_format.indentSize = json_indent_size;
103 message_format.newline = json_newline;
104 message_format.spacing = json_spacing;
105 message_format.useTabs = json_use_tabs;
106 Jzon::Writer writer(root, message_format);
107 writer.Write();
108 std::string json_string = writer.GetResult();
109 // std::cout << "String sent: " << json_string << std::endl;
110
111 /// Copy string to message buffer:
112 udp_data.si_num_byte_ = json_string.length()+1;
113 char buf[udp_data.si_num_byte_];
114 for (unsigned int i = 0; i < udp_data.si_num_byte_; i++)
115 {
116 buf[i] = 0;
117 }
118 sprintf(buf, "%s", json_string.c_str());
119 udp_data.pc_pck_ = buf; // buffer where the message is written
120
121 /// Send message:
122 udp_messaging.sendFromSocketUDP(&udp_data);
123}

Callers

nothing calls this directly

Calls 4

AddMethod · 0.80
WriteMethod · 0.80
sendFromSocketUDPMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected