1 #include "talker_id.hpp"
10 talker
make_talker(const std::string
& s
)
12 static const std::array
<talker
, 65> talkers
= {{talker_id::none
,
13 talker_id::integrated_instrumentation
, talker_id::global_positioning_system
,
14 talker_id::autopilot_general
, talker_id::autopilot_magnetic
, talker_id::beidou_2
,
15 talker_id::computer_calculator
, talker_id::communications_dsc
,
16 talker_id::computer_memory
, talker_id::communications_satellite
,
17 talker_id::communications_mfhf
, talker_id::communications_vhf
,
18 talker_id::communications_scanning_receiver
, talker_id::decca_navigation
,
19 talker_id::direction_finder
, talker_id::electronic_chart_display
,
20 talker_id::emergency_position_indicating_beacon
,
21 talker_id::engine_room_monitoring_systems
, talker_id::galileo
, talker_id::beidou_1
,
22 talker_id::glonass
, talker_id::mixed_gps_glonass
, talker_id::magnetic_compass
,
23 talker_id::north_seeking_gyro
, talker_id::non_north_seeking_gyro
,
24 talker_id::integrated_navigation
, talker_id::loran_a
, talker_id::loran_c
,
25 talker_id::microwave_positioning_system
, talker_id::omega_navigation_system
,
26 talker_id::distress_alarm_system
, talker_id::qzss_gps_augmentation_system
,
27 talker_id::radar
, talker_id::sounder_depth
, talker_id::electronic_positioning_system
,
28 talker_id::sounder_scanning
, talker_id::turn_rate_indicator
,
29 talker_id::transit_navigation_system
, talker_id::velocity_sensor_doppler
,
30 talker_id::velocity_sensor_water_magnetic
, talker_id::velocity_sensor_water_mechanical
,
31 talker_id::weather_instruments
, talker_id::transducer_temperature
,
32 talker_id::transducer_displacement
, talker_id::transducer_frequency
,
33 talker_id::transducer_level
, talker_id::transducer_pressure
,
34 talker_id::transducer_flow_rate
, talker_id::transducer_tachometer
,
35 talker_id::transducer_volume
, talker_id::transducer
, talker_id::timekeeper_atomic_clock
,
36 talker_id::timekeeper_chronometer
, talker_id::timekeeper_quartz
,
37 talker_id::timekeeper_radio_update
, talker_id::ais_base_station
,
38 talker_id::ais_dependent_base_station
, talker_id::ais_mobile_station
,
39 talker_id::ais_aid_to_navigation_station
, talker_id::ais_receiving_station
,
40 talker_id::ais_limited_base_station
, talker_id::ais_transmitting_station
,
41 talker_id::ais_repeater_ais_station
, talker_id::ais_base_station_obsolete
,
42 talker_id::ais_physical_shore_station
}};
44 const auto i
= std::find_if(
45 std::begin(talkers
), std::end(talkers
), [&](const talker
& t
) { return s
== t
.str(); });
46 if (i
== std::end(talkers
))
47 throw std::runtime_error
{"invalid talker in make_talker: " + s
};