| 32 | #include "openhd_util_time.h" |
| 33 | |
| 34 | AirTelemetry::AirTelemetry() : MavlinkSystem(OHD_SYS_ID_AIR) { |
| 35 | m_console = openhd::log::create_or_get("air_tele"); |
| 36 | assert(m_console); |
| 37 | m_air_settings = std::make_unique<openhd::telemetry::air::SettingsHolder>(); |
| 38 | m_fc_serial = std::make_unique<SerialEndpointManager>(); |
| 39 | m_ohd_main_component = std::make_shared<OHDMainComponent>(_sys_id, true); |
| 40 | m_components.push_back(m_ohd_main_component); |
| 41 | // |
| 42 | m_generic_mavlink_param_provider = std::make_shared<XMavlinkParamProvider>( |
| 43 | _sys_id, MAV_COMP_ID_ONBOARD_COMPUTER); |
| 44 | if (OHDPlatform::instance().is_rpi()) { |
| 45 | m_opt_gpio_control = |
| 46 | std::make_unique<openhd::telemetry::rpi::GPIOControl>(); |
| 47 | } |
| 48 | // NOTE: We don't call set ready yet, since we have to wait until other |
| 49 | // modules have provided all their paramters. |
| 50 | m_generic_mavlink_param_provider->add_params(get_all_settings()); |
| 51 | m_components.push_back(m_generic_mavlink_param_provider); |
| 52 | m_tcp_server = std::make_unique<TCPEndpoint>( |
| 53 | openhd::TCPServer::Config{TCPEndpoint::DEFAULT_PORT}); // 1445 |
| 54 | if (m_tcp_server) { |
| 55 | m_tcp_server->registerCallback( |
| 56 | [this](std::vector<MavlinkMessage> messages) { |
| 57 | // Technically not correct, but works |
| 58 | on_messages_ground_unit(messages); |
| 59 | }); |
| 60 | } |
| 61 | setup_uart(); |
| 62 | m_console->debug("Created AirTelemetry"); |
| 63 | } |
| 64 | |
| 65 | AirTelemetry::~AirTelemetry() {} |
| 66 |
nothing calls this directly
no test coverage detected