| 258 | } |
| 259 | |
| 260 | int |
| 261 | main(int argc, char **argv) |
| 262 | { |
| 263 | // Initialization: |
| 264 | ros::init(argc, argv, "ros2udp_converter"); |
| 265 | ros::NodeHandle nh("~"); |
| 266 | |
| 267 | // Read input parameters: |
| 268 | nh.param("udp/port", udp_port, 21234); |
| 269 | nh.param("udp/hostip", hostip, std::string("127.0.0.1")); |
| 270 | nh.param("udp/buffer_length", udp_buffer_length, 1400); // jb fit in an ethernet MTU |
| 271 | nh.param("json/indent_size", json_indent_size, 0); |
| 272 | nh.param("json/newline", json_newline, false); |
| 273 | nh.param("json/spacing", json_spacing, false); |
| 274 | nh.param("json/use_tabs", json_use_tabs, false); |
| 275 | nh.param("json/heartbeat_interval", heartbeat_interval, 0.25); |
| 276 | |
| 277 | // ROS subscriber: |
| 278 | |
| 279 | message_filters::Subscriber<opt_msgs::SkeletonTrackArray> |
| 280 | skel_track_array_sub(nh, "/tracker/skeleton_tracks", 5); |
| 281 | message_filters::Subscriber<opt_msgs::StandardSkeletonTrackArray> |
| 282 | standard_skel_track_array_sub(nh, "/tracker/standard_skeleton_tracks", 5); |
| 283 | message_filters::Subscriber<opt_msgs::PoseRecognitionArray> |
| 284 | pose_recognition_array_sub(nh, "/recognizer/poses", 5); |
| 285 | // message_filters::TimeSynchronizer<opt_msgs::SkeletonTrackArray, |
| 286 | // opt_msgs::StandardSkeletonTrackArray, opt_msgs::PoseRecognitionArray> |
| 287 | // sync(skel_track_array_sub, standard_skel_track_array_sub, |
| 288 | // pose_recognition_array_sub, 5); |
| 289 | // sync.registerCallback(boost::bind(&synchronizedCallback, _1, _2, _3)); |
| 290 | typedef message_filters::sync_policies::ApproximateTime |
| 291 | <opt_msgs::SkeletonTrackArray, |
| 292 | opt_msgs::StandardSkeletonTrackArray, |
| 293 | opt_msgs::PoseRecognitionArray> MySyncPolicy; |
| 294 | message_filters::Synchronizer<MySyncPolicy> sync_(MySyncPolicy(10), |
| 295 | skel_track_array_sub, |
| 296 | standard_skel_track_array_sub, |
| 297 | pose_recognition_array_sub); |
| 298 | sync_.registerCallback(boost::bind(&synchronizedCallback, _1, _2, _3)); |
| 299 | |
| 300 | |
| 301 | |
| 302 | |
| 303 | // Initialize UDP parameters: |
| 304 | char buf[0]; |
| 305 | udp_data.si_port_ = udp_port; // port |
| 306 | udp_data.si_retry_ = 1; |
| 307 | udp_data.si_num_byte_ = udp_buffer_length; // number of bytes to write (2048 -> about 30 tracks) |
| 308 | udp_data.pc_pck_ = buf; // buffer where the message is written |
| 309 | udp_data.si_timeout_ = 4; |
| 310 | udp_data.sj_addr_ = Inet_AtoN(hostip.c_str()); |
| 311 | |
| 312 | /// Create object for UDP messaging: |
| 313 | udp_messaging = open_ptrack::opt_utils::UDPMessaging(udp_data); |
| 314 | |
| 315 | /// Create client socket: |
| 316 | udp_messaging.createSocketClientUDP(&udp_data); |
| 317 |
nothing calls this directly
no test coverage detected