diff --git a/src/mavsdk/core/mavlink_ftp.h b/src/mavsdk/core/mavlink_ftp.h index afdbdab846..2302593815 100644 --- a/src/mavsdk/core/mavlink_ftp.h +++ b/src/mavsdk/core/mavlink_ftp.h @@ -93,8 +93,9 @@ class MavlinkFtp { uint8_t get_our_compid(); ClientResult set_target_compid(uint8_t component_id); -private: + void register_file(const std::string& path, const std::string& content); +private: SystemImpl& _system_impl; /// @brief Possible server results returned for requests. @@ -265,8 +266,9 @@ class MavlinkFtp { ServerResult _work_remove_file(PayloadHeader* payload); ServerResult _work_rename(PayloadHeader* payload); ServerResult _work_calc_file_CRC32(PayloadHeader* payload); -}; - -} + std::mutex _files_mutex{}; + std::unordered_map _files{}; +}; +} // namespace mavsdk diff --git a/src/mavsdk/core/system_impl.h b/src/mavsdk/core/system_impl.h index 14614626e0..b0c60b42ce 100644 --- a/src/mavsdk/core/system_impl.h +++ b/src/mavsdk/core/system_impl.h @@ -452,6 +452,9 @@ class SystemImpl : public Sender { MAV_PROTOCOL_CAPABILITY_COMMAND_INT, 0, 0, 0, 0, 0, 0, {0}}; std::atomic _should_send_autopilot_version{false}; + + std::mutex _mavlink_ftp_files_mutex{}; + std::unordered_map _mavlink_ftp_files{}; }; } // namespace mavsdk diff --git a/src/mavsdk/plugins/component_information_server/component_information_server_impl.cpp b/src/mavsdk/plugins/component_information_server/component_information_server_impl.cpp index 1fbe959068..58752a033a 100644 --- a/src/mavsdk/plugins/component_information_server/component_information_server_impl.cpp +++ b/src/mavsdk/plugins/component_information_server/component_information_server_impl.cpp @@ -126,8 +126,8 @@ void ComponentInformationServerImpl::update_json_files_with_lock() std::cout << "parameter: " << parameter_file << '\n'; std::cout << "meta: " << meta_file << '\n'; - //_parent.register_mftp_file("general.json", meta_file); - //_parent.register_mftp_file("parameter.json", parameter_file); + _parent->mavlink_ftp().register_file("general.json", std::move(meta_file)); + _parent->mavlink_ftp().register_file("parameter.json", std::move(parameter_file)); } std::string ComponentInformationServerImpl::generate_parameter_file()