MCPcopy Create free account
hub / github.com/OpenHD/OpenHD / GroundTelemetry

Method GroundTelemetry

OpenHD/ohd_telemetry/src/GroundTelemetry.cpp:34–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32#include "openhd_util_time.h"
33
34GroundTelemetry::GroundTelemetry() : MavlinkSystem(OHD_SYS_ID_GROUND) {
35 m_console = openhd::log::create_or_get("ground_tele");
36 assert(m_console);
37 m_gnd_settings =
38 std::make_unique<openhd::telemetry::ground::SettingsHolder>();
39 m_endpoint_tracker = std::make_unique<SerialEndpointManager>();
40 m_gcs_endpoint = std::make_unique<UDPEndpoint>(
41 "GroundStationUDP", OHD_GROUND_CLIENT_UDP_PORT_OUT,
42 OHD_GROUND_CLIENT_UDP_PORT_IN,
43 // We send data to localhost::14550 and any other external device IPs
44 "127.0.0.1",
45 // and we accept udp data from anybody on 14551
46 "0.0.0.0");
47 m_gcs_endpoint->registerCallback(
48 [this](std::vector<MavlinkMessage> messages) {
49 on_messages_ground_station_clients(messages);
50 });
51 m_tcp_server = std::make_unique<TCPEndpoint>(
52 openhd::TCPServer::Config{TCPEndpoint::DEFAULT_PORT}); // 1445
53 // m_tcp_server= nullptr;
54 if (m_tcp_server) {
55 m_tcp_server->registerCallback(
56 [this](std::vector<MavlinkMessage> messages) {
57 on_messages_ground_station_clients(messages);
58 });
59 }
60 m_ohd_main_component = std::make_shared<OHDMainComponent>(_sys_id, false);
61 m_components.push_back(m_ohd_main_component);
62#ifdef OPENHD_TELEMETRY_SDL_FOR_JOYSTICK_FOUND
63 if (m_gnd_settings->get_settings().enable_rc_over_joystick) {
64 enable_joystick();
65 } else {
66 m_console->info("Joystick disabled");
67 }
68#else
69 m_console->info("No Joystick support");
70#endif
71 //
72 // NOTE: We don't call set ready yet, since we have to wait until other
73 // modules have provided all their parameters.
74 m_generic_mavlink_param_provider = std::make_shared<XMavlinkParamProvider>(
75 _sys_id, MAV_COMP_ID_ONBOARD_COMPUTER);
76 m_generic_mavlink_param_provider->add_params(get_all_settings());
77 m_components.push_back(m_generic_mavlink_param_provider);
78 setup_uart();
79 openhd::ExternalDeviceManager::instance().register_listener(
80 [this](openhd::ExternalDevice external_device, bool connected) {
81 if (!external_device.discovered_by_mavlink_tcp_server) {
82 if (connected) {
83 add_external_ground_station_ip(external_device);
84 } else {
85 remove_external_ground_station_ip(external_device);
86 }
87 }
88 });
89 m_console->debug("Created GroundTelemetry");
90}
91

Callers

nothing calls this directly

Calls 5

registerCallbackMethod · 0.80
push_backMethod · 0.80
add_paramsMethod · 0.80
debugMethod · 0.80
register_listenerMethod · 0.45

Tested by

no test coverage detected