GKD.RoboCtrl
RoboMaster Linux 电控:异步 IO、设备驱动与机器人控制
载入中...
搜索中...
未找到
base.hpp 文件参考

云台抽象接口与运行时注册表。 更多...

详细描述

云台抽象接口与运行时注册表。

在文件 base.hpp 中定义.

#include <any>
#include <chrono>
#include <concepts>
#include <functional>
#include <memory>
#include <string>
#include <string_view>
#include "utils/pid.h"
#include "utils/utils.hpp"
base.hpp 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

类

class  roboctrl::device::gimbal_base
 云台的统一姿态目标接口。 更多...
 
struct  roboctrl::device::gimbal_base::info_type
 云台初始化参数,包括 IMU、电机和角度限制。 更多...
 
class  roboctrl::device::gimbal_registry
 具体云台实现的运行时工厂注册表。 更多...
 

命名空间

namespace  roboctrl::device
 设备模块
 

概念

concept  roboctrl::device::gimbal
 判断类型是否实现云台抽象。
 

宏定义

#define ROBOCTRL_DETAIL_CAT_IMPL(a, b)   a##b
 
#define ROBOCTRL_DETAIL_CAT(a, b)   ROBOCTRL_DETAIL_CAT_IMPL(a, b)
 
#define ROBOCTRL_REGISTER_GIMBAL(TYPE_NAME, CLASS_NAME)
 

宏定义说明

◆ ROBOCTRL_DETAIL_CAT

#define ROBOCTRL_DETAIL_CAT (   a,
  b 
)    ROBOCTRL_DETAIL_CAT_IMPL(a, b)

在文件 base.hpp 第 96 行定义.

◆ ROBOCTRL_DETAIL_CAT_IMPL

#define ROBOCTRL_DETAIL_CAT_IMPL (   a,
  b 
)    a##b

在文件 base.hpp 第 95 行定义.

◆ ROBOCTRL_REGISTER_GIMBAL

#define ROBOCTRL_REGISTER_GIMBAL (   TYPE_NAME,
  CLASS_NAME 
)
值:
namespace { [[maybe_unused]] const bool ROBOCTRL_DETAIL_CAT(roboctrl_gimbal_registered_, __LINE__) = [] { \
return ::roboctrl::device::gimbal_registry::register_type( \
(TYPE_NAME), [](const std::any& value) -> std::unique_ptr<::roboctrl::device::gimbal_base> { \
const auto& info = std::any_cast<const CLASS_NAME::info_type&>(value); \
auto result = std::make_unique<CLASS_NAME>(); \
if (!result->init(info)) return nullptr; \
return result; \
}); \
}(); }

在文件 base.hpp 第 99 行定义.