MAVSDK实现方式

创建插件

Mavsdk mavsdk;

连接到系统-系统配置

class Configuration {
    public:
        enum class UsageType {
            Autopilot, /**< @brief SDK is used as an autopilot. */
            GroundStation, /**< @brief SDK is used as a ground station. */
            CompanionComputer, /**< @brief SDK is used as a companion computer on board the MAV. */
            Camera, /** < @brief SDK is used as a camera. */
            Custom /**< @brief the SDK is used in a custom configuration, no automatic ID will be
                      provided */
        };
        explicit Configuration(
            uint8_t system_id, uint8_t component_id, bool always_send_heartbeats);
        explicit Configuration(UsageType usage_type);
        Configuration() = delete;
        ~Configuration() = default;
        uint8_t get_system_id() const;
        void set_system_id(uint8_t system_id);
        uint8_t get_component_id() const;
        void set_component_id(uint8_t component_id);
        bool get_always_send_heartbeats() const;
        void set_always_send_heartbeats(bool always_send_heartbeats);
        UsageType get_usage_type() const;
        void set_usage_type(UsageType usage_type);
    private:
        uint8_t _system_id;
        uint8_t _component_id;
        bool _always_send_heartbeats;
        UsageType _usage_type;
        static Mavsdk::Configuration::UsageType usage_type_for_component(uint8_t component_id);
    };                  

连接到系统-连接


ConnectionResult
Mavsdk::add_any_connection(const std::string& connection_url, ForwardingOption forwarding_option)
{
    return _impl->add_any_connection(connection_url, forwarding_option);
}

ConnectionResult Mavsdk::add_udp_connection(int local_port, ForwardingOption forwarding_option)
{
    return Mavsdk::add_udp_connection(DEFAULT_UDP_BIND_IP, local_port, forwarding_option);
}

ConnectionResult Mavsdk::add_udp_connection(
const std::string& local_bind_ip, const int local_port, ForwardingOption forwarding_option)
{
    return _impl->add_udp_connection(local_bind_ip, local_port, forwarding_option);
}

ConnectionResult Mavsdk::setup_udp_remote(
const std::string& remote_ip, int remote_port, ForwardingOption forwarding_option)
{
    return _impl->setup_udp_remote(remote_ip, remote_port, forwarding_option);
}

ConnectionResult Mavsdk::add_tcp_connection(
const std::string& remote_ip, const int remote_port, ForwardingOption forwarding_option)
{
    return _impl->add_tcp_connection(remote_ip, remote_port, forwarding_option);
}

ConnectionResult Mavsdk::add_serial_connection(
const std::string& dev_path,
const int baudrate,
bool flow_control,
ForwardingOption forwarding_option)
{
    return _impl->add_serial_connection(dev_path, baudrate, flow_control, forwarding_option);
}

检测系统system


std::vector<std::shared_ptr<System>> MavsdkImpl::systems() const
{
    std::vector<std::shared_ptr<System>> systems_result{};

    std::lock_guard<std::recursive_mutex> lock(_systems_mutex);
    for (auto& system : _systems) {
        // We ignore the 0 entry because it's just a null system.
        // It's only created because the older, deprecated API needs a
        // reference.
        if (system.first == 0) {
            continue;
        }
        systems_result.push_back(system.second);
    }

    return systems_result;
}

创建一个共享指针,指向用system实例化的 FTP/offboard/起飞降落等实例

auto ftp_server = Ftp{system_cc};

进行业务处理(ftp等)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值