| 64 | |
| 65 | |
| 66 | void |
| 67 | trackingCallback(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 | } |
nothing calls this directly
no test coverage detected