| 193 | } |
| 194 | |
| 195 | void |
| 196 | synchronizedCallback( |
| 197 | const opt_msgs::SkeletonTrackArrayConstPtr& skel_track_msg, |
| 198 | const opt_msgs::StandardSkeletonTrackArrayConstPtr& st_skel_msg, |
| 199 | const opt_msgs::PoseRecognitionArrayConstPtr& pr_array_msg) |
| 200 | { |
| 201 | // ROS_INFO_STREAM("Synchronized!"); |
| 202 | std::string buffer(""); |
| 203 | for (int i = 0, end = skel_track_msg->tracks.size(); i < end; ++i) |
| 204 | { |
| 205 | Jzon::Object current_track; |
| 206 | const opt_msgs::SkeletonTrack& t = skel_track_msg->tracks[i]; |
| 207 | const opt_msgs::StandardSkeletonTrack& st_t = st_skel_msg->tracks[i]; |
| 208 | const opt_msgs::PoseRecognition& pr = pr_array_msg->poses[i]; |
| 209 | std::string jsonmsg = toJsonPoseMsg(pr_array_msg->header, |
| 210 | skel_track_msg->header.frame_id, |
| 211 | t, st_t, pr); |
| 212 | if (jsonmsg.length() + 1 > udp_buffer_length) |
| 213 | { |
| 214 | ROS_WARN_STREAM("Unexpected: json message doesn’t fit in payload " |
| 215 | << jsonmsg); |
| 216 | if (not buffer.empty()) |
| 217 | { |
| 218 | sendPacket(buffer); |
| 219 | buffer = ""; |
| 220 | } |
| 221 | sendPacket(jsonmsg); |
| 222 | continue; |
| 223 | } |
| 224 | if (jsonmsg.length() + 1 + buffer.length() + 1 > udp_buffer_length) |
| 225 | { |
| 226 | sendPacket(buffer); |
| 227 | buffer = ""; |
| 228 | } |
| 229 | buffer += jsonmsg; |
| 230 | } |
| 231 | // jb |
| 232 | // send remaining buffer |
| 233 | if (not buffer.empty()) |
| 234 | sendPacket(buffer); |
| 235 | } |
| 236 | |
| 237 | |
| 238 | typedef unsigned long uint32; |
nothing calls this directly
no test coverage detected