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

Function trackingCallback

opt_utils/apps/ros2udp_converter.cpp:70–133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

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