NMEA: detectio of the optional tag block in front of a sentence, ignoring it for...
[marnav.git] / src / marnav / ais / name.cpp
blob116d501cadc824e8e4216c2afb078df13d0b3c5e
1 #include "name.hpp"
3 namespace marnav
5 namespace ais
7 std::string to_name(message_id t)
9 switch (t) {
10 case message_id::NONE:
11 return "<none>";
12 case message_id::position_report_class_a:
13 return "Position Report Class A";
14 case message_id::position_report_class_a_assigned_schedule:
15 return "Position Report Class A - Assigned Schedule";
16 case message_id::position_report_class_a_response_to_interrogation:
17 return "Position Report Class A - Response to Interrogation";
18 case message_id::base_station_report:
19 return "Base Station Report";
20 case message_id::static_and_voyage_related_data:
21 return "Static and Voyage related Data";
22 case message_id::binary_addressed_message:
23 return "Binary Addressed Message";
24 case message_id::binary_acknowledge:
25 return "Binary Acknowledge";
26 case message_id::binary_broadcast_message:
27 return "Binary Broadcast Message";
28 case message_id::standard_sar_aircraft_position_report:
29 return "Standard SAR Aircraft Position Report";
30 case message_id::utc_and_date_inquiry:
31 return "UTC and Date Inquiry";
32 case message_id::utc_and_date_response:
33 return "UTC and Date Response";
34 case message_id::addressed_safety_related_message:
35 return "Addresed Safety related Message";
36 case message_id::safety_related_acknowledgement_:
37 return "Safety related Acknowledgement";
38 case message_id::safety_related_broadcast_message:
39 return "Safety related Broadcast Message";
40 case message_id::interrogation:
41 return "Interrogation";
42 case message_id::assignment_mode_command:
43 return "Assignment Mode Command";
44 case message_id::dgnss_binary_broadcast_message:
45 return "DGNSS Binary Broadcast Message";
46 case message_id::standard_class_b_cs_position_report:
47 return "Standard Class B CS Position Report";
48 case message_id::extended_class_b_equipment_position_report:
49 return "Extended Class B Equipment Position Report";
50 case message_id::data_link_management:
51 return "Data Link Management";
52 case message_id::aid_to_navigation_report:
53 return "Aid to Navigation Report";
54 case message_id::channel_management:
55 return "Channel Management";
56 case message_id::group_assignment_command:
57 return "Group Assignment Command";
58 case message_id::static_data_report:
59 return "Static Data Report";
60 case message_id::single_slot_binary_message:
61 return "Single Slot Binary Message";
62 case message_id::multiple_slot_binary_message_with_communications_state:
63 return "Multiple slot Binary Message with Communication State";
64 case message_id::position_report_for_long_range_applications:
65 return "Position Report for long range Applications";
67 return "-";
70 /// Returns a printable name (in english) for the specified type.
71 ///
72 /// @param[in] t Ship type to get the name for.
73 /// @return The printable name for the ship type.
74 std::string to_name(ship_type t)
76 switch (t) {
77 case ship_type::not_available:
78 return "Not Available";
79 case ship_type::wing_in_ground:
80 return "Wing in ground";
81 case ship_type::wing_in_ground_hazardous_cat_a:
82 return "Wing in ground hazardous Cat A";
83 case ship_type::wing_in_ground_hazardous_cat_b:
84 return "Wing in ground hazardous Cat B";
85 case ship_type::wing_in_ground_hazardous_cat_c:
86 return "Wing in ground hazardous Cat C";
87 case ship_type::wing_in_ground_hazardous_cat_d:
88 return "Wing in ground hazardous Cat D";
89 case ship_type::fishing:
90 return "Fishing";
91 case ship_type::towing:
92 return "Towing";
93 case ship_type::towing_large:
94 return "Towing large";
95 case ship_type::dredging_or_underwater_ops:
96 return "Dredging or underwater ops";
97 case ship_type::diving_ops:
98 return "Diving ops";
99 case ship_type::military_ops:
100 return "Military ops";
101 case ship_type::sailing:
102 return "Sailing";
103 case ship_type::pleasure_craft:
104 return "Pleasure Craft";
105 case ship_type::high_speed_craft:
106 return "High speed craft";
107 case ship_type::high_speed_craft_hazardous_cat_a:
108 return "High speed craft hazardous Cat A";
109 case ship_type::high_speed_craft_hazardous_cat_b:
110 return "High speed craft hazardous Cat B";
111 case ship_type::high_speed_craft_hazardous_cat_c:
112 return "High speed craft hazardous Cat C";
113 case ship_type::high_speed_craft_hazardous_cat_d:
114 return "High speed craft hazardous Cat D";
115 case ship_type::high_speed_craft_no_info:
116 return "High speed craft no_info";
117 case ship_type::pilot_vessel:
118 return "Pilot Vessel";
119 case ship_type::search_and_rescue_vessel:
120 return "Search and Rescue Vessel";
121 case ship_type::tug:
122 return "Tug";
123 case ship_type::port_tender:
124 return "Port Tender";
125 case ship_type::anti_pollution_equipment:
126 return "Anti Pollution Equipment";
127 case ship_type::law_enforcement:
128 return "Law Enforcement";
129 case ship_type::medical_transport:
130 return "Medical Transport";
131 case ship_type::noncombatant:
132 return "Noncombatant";
133 case ship_type::passenger:
134 return "Passenger";
135 case ship_type::passenger_hazardous_cat_a:
136 return "Passenger hazardous Cat A";
137 case ship_type::passenger_hazardous_cat_b:
138 return "Passenger hazardous Cat B";
139 case ship_type::passenger_hazardous_cat_c:
140 return "Passenger hazardous Cat C";
141 case ship_type::passenger_hazardous_cat_d:
142 return "Passenger hazardous Cat D";
143 case ship_type::passenger_no_info:
144 return "Passenger no info";
145 case ship_type::cargo:
146 return "Cargo";
147 case ship_type::cargo_hazardous_cat_a:
148 return "Cargo hazardous Cat A";
149 case ship_type::cargo_hazardous_cat_b:
150 return "Cargo hazardous Cat B";
151 case ship_type::cargo_hazardous_cat_c:
152 return "Cargo hazardous Cat C";
153 case ship_type::cargo_hazardous_cat_d:
154 return "Cargo hazardous Cat D";
155 case ship_type::cargo_no_info:
156 return "Cargo no info";
157 case ship_type::tanker:
158 return "Tanker";
159 case ship_type::tanker_hazardous_cat_a:
160 return "Tanker hazardous Cat A";
161 case ship_type::tanker_hazardous_cat_b:
162 return "Tanker hazardous Cat B";
163 case ship_type::tanker_hazardous_cat_c:
164 return "Tanker hazardous Cat C";
165 case ship_type::tanker_hazardous_cat_d:
166 return "Tanker hazardous Cat D";
167 case ship_type::tanker_no_info:
168 return "Tanker no info";
169 case ship_type::other:
170 return "Other";
171 case ship_type::other_hazardous_cat_a:
172 return "Other hazardous Cat A";
173 case ship_type::other_hazardous_cat_b:
174 return "Other hazardous Cat B";
175 case ship_type::other_hazardous_cat_c:
176 return "Other hazardous Cat C";
177 case ship_type::other_hazardous_cat_d:
178 return "Other hazardous Cat D";
179 case ship_type::other_no_info:
180 return "Other no info";
182 return "-";
185 std::string to_name(epfd_fix_type t)
187 switch (t) {
188 case epfd_fix_type::undefined:
189 return "undefined";
190 case epfd_fix_type::gps:
191 return "GPS";
192 case epfd_fix_type::glonass:
193 return "GLONASS";
194 case epfd_fix_type::combined_gps_glonass:
195 return "Combined GPS GLONASS";
196 case epfd_fix_type::loran_c:
197 return "Loran C";
198 case epfd_fix_type::chayka:
199 return "Chayka";
200 case epfd_fix_type::integrated_navigation_system:
201 return "Integrated Navigation System";
202 case epfd_fix_type::surveyed:
203 return "surveyed";
204 case epfd_fix_type::galileo:
205 return "Galileo";
207 return "-";
210 std::string to_name(navigation_status t)
212 switch (t) {
213 case navigation_status::under_way_using_engine:
214 return "Under way using Engine";
215 case navigation_status::at_anchor:
216 return "At Anchor";
217 case navigation_status::not_under_command:
218 return "Not under Command";
219 case navigation_status::restricted_maneuverability:
220 return "Restricted Maneuverability";
221 case navigation_status::constrained_by_her_draught:
222 return "Constrained by her Draught";
223 case navigation_status::moored:
224 return "Moored";
225 case navigation_status::aground:
226 return "Aground";
227 case navigation_status::engaged_in_Fishing:
228 return "Engaged in Fishing";
229 case navigation_status::under_way_sailing:
230 return "Under way Sailing";
231 case navigation_status::reserved_09:
232 break;
233 case navigation_status::reserved_10:
234 break;
235 case navigation_status::reserved_11:
236 break;
237 case navigation_status::reserved_12:
238 break;
239 case navigation_status::reserved_13:
240 break;
241 case navigation_status::ais_sart_is_active:
242 return "AIS SART is Active";
243 case navigation_status::not_defined:
244 return "Not Defined";
246 return "-";
249 std::string to_name(virtual_aid t)
251 switch (t) {
252 case virtual_aid::real_aid:
253 return "Real Aid";
254 case virtual_aid::virtual_aid:
255 return "Virtual Aid";
257 return "-";
260 std::string to_name(off_position_indicator t)
262 switch (t) {
263 case off_position_indicator::on_position:
264 return "On Position";
265 case off_position_indicator::off_position:
266 return "Off Position";
268 return "-";
271 std::string to_name(aid_type_id t)
273 switch (t) {
274 case aid_type_id::unspecified:
275 return "unspecified";
276 case aid_type_id::reference_point:
277 return "Reference point";
278 case aid_type_id::racon:
279 return "RACON (radar transponder marking a navigation hazard)";
280 case aid_type_id::fixed_structure:
281 return "Fixed structure";
282 case aid_type_id::reserved:
283 return "Spare, Reserved for future use";
284 case aid_type_id::light_no_sectors:
285 return "Light, without sectors";
286 case aid_type_id::light_sectors:
287 return "Light, with sectors";
288 case aid_type_id::leading_light_fromt:
289 return "Leading Light Front";
290 case aid_type_id::leading_light_rear:
291 return "Leading Light Rear";
292 case aid_type_id::beacon_cardinal_n:
293 return "Beacon, Cardinal N";
294 case aid_type_id::beacon_cardinal_e:
295 return "Beacon, Cardinal E";
296 case aid_type_id::beacon_cardinal_s:
297 return "Beacon, Cardinal S";
298 case aid_type_id::beacon_cardinal_w:
299 return "Beacon, Cardinal W";
300 case aid_type_id::beacon_port_hand:
301 return "Beacon, Port hand";
302 case aid_type_id::beacon_starboard_hand:
303 return "Beacon, Starboard hand";
304 case aid_type_id::beacon_preferred_channel_port_hand:
305 return "Beacon, Preferred Channel port hand";
306 case aid_type_id::beacon_preferred_channel_starboard_hand:
307 return "Beacon, Preferred Channel starboard hand";
308 case aid_type_id::beacon_isolated_danger:
309 return "Beacon, Isolated danger";
310 case aid_type_id::beacon_safe_water:
311 return "Beacon, Safe water";
312 case aid_type_id::beacon_sepcial_mark:
313 return "Beacon, Special mark";
314 case aid_type_id::cardinal_n:
315 return "Cardinal Mark N";
316 case aid_type_id::cardinal_e:
317 return "Cardinal Mark E";
318 case aid_type_id::cardinal_s:
319 return "Cardinal Mark S";
320 case aid_type_id::cardinal_w:
321 return "Cardinal Mark W";
322 case aid_type_id::mark_port_hand:
323 return "Port hand Mark";
324 case aid_type_id::mark_starboard_hand:
325 return "Starboard hand Mark";
326 case aid_type_id::preferred_channel_port_hand:
327 return "Preferred Channel Port hand";
328 case aid_type_id::preferred_channel_starboard_hand:
329 return "Preferred Channel Starboard hand";
330 case aid_type_id::isolated_danger:
331 return "Isolated danger";
332 case aid_type_id::safe_water:
333 return "Safe Water";
334 case aid_type_id::special_mark:
335 return "Special Mark";
336 case aid_type_id::light_vessel:
337 return "Light Vessel / LANBY / Rigs";
339 return "-";
342 std::string to_name(maneuver_indicator_id t)
344 switch (t) {
345 case maneuver_indicator_id::not_available:
346 return "Not Available";
347 case maneuver_indicator_id::normal:
348 return "Not Special";
349 case maneuver_indicator_id::special:
350 return "Special";
352 return "-";
355 std::string to_name(data_terminal t)
357 switch (t) {
358 case data_terminal::ready:
359 return "ready";
360 case data_terminal::not_ready:
361 return "not ready";
363 return "-";